dhpcd: 4년 동안이나 숨어 있던 암호화폐 채굴기
핵심 요약
Akamai Security Intelligence Group에서는 장기간 이루어진 공격 캠페인을 관측했으며 'dhpcd'라고 명명했습니다. 이 캠페인은 SSH 서버가 설치된 Linux 시스템을 무차별 암호 대입 방식으로 공격하며 결국 이 시스템에서 Monero 암호화폐 채굴기를 실행합니다.
이 공격은 2018년 4월에 Akamai의 위협 센서 네트워크에서 처음 탐지되었으며, 지금도 진행되고 있습니다.
처음 출현한 이후 위협 탐지 네트워크에 있는 800개 이상의 고유 소스 IP에서 2200건이 넘는 공격이 관측되었으며, 이는 2022년 5월에 눈에 띄게 폭증했습니다.
공격자들은 공격 사슬의 일부로 암호 변경과 SSH 키 추가를 사용해 여러 백도어를 배포하고, 수많은 스크립트를 실행해 경쟁사를 무력화하며, cron 작업과 rc.local 파일을 사용해 지속성을 유지합니다.
일부 암호화폐 채굴기 바이너리 파일은 다른 보안 벤더사에게 익숙하지 않습니다.
Tor 출구 노드 뒤에 숨어 작동하는 공격자 인프라의 오리진은 알려지지 않았습니다. 이러한 Tor 출구 노드 중 일부는 대학, 비영리 단체, 사이버 보안 기업 등에 속합니다.
손상 지표(IOC)의 일부 목록은 부록에 나와 있습니다. IOC의 전체 목록과 탐지 스크립트는 당사 퍼블릭 리포지토리에서 확인하시기 바랍니다.
dhpcd란 무엇입니까?
인터넷의 상당 부분은 Akamai의 인프라에서 실행됩니다. 이에 따라 저희는 진행 중인 상황에 대해 넓은 시야를 확보하고 있으며, 그 덕분에 이와 같이 새로운 멀웨어도 찾아낼 수 있습니다. 2018년 4월, 오픈 소스인 XMRig를 기반으로 한암호화폐 채굴기가(Akamai에서는 “dhpcd”라고 명명) Akamai의 위협 센서를 처음으로 공격했으며, 이후 활동을 이어오고 있습니다. 플래그가 지정된 멀웨어가 상대적 일관성을 유지하면서 오랫동안 실행 중임에도 논의되지 않은 경우가 흔하지는 않습니다. 이는 이 암호화폐 채굴기가 무차별 대입을 하고 숨어 있다가, 탐지 위협이 있으면 정찰하기 때문입니다.
이 멀웨어의 이름은 정상적인 Linux 데몬인 dhcpd에서 따왔는데,탐지하기가 어렵습니다. dhcpd는 컴퓨터가 시작될 때 시스템에서 실행 중인 DHCP 서버를 설정하는 프로세스입니다. 이 문자 스와핑 기술은 탐지를 회피할 목적으로 여러 공격 경로에 많이 사용되며, 이것이 바로 이 멀웨어가 최소 4년 동안 활동할 수 있었던 원인 중 하나입니다. Tor 출구 노드를 사용해 숨기 때문에, 공격 오리진을 추적하는 것이 불가능하지는 않지만 어렵습니다. 이후 이 멀웨어는 프라이버시 코인인 Monero를 채굴합니다. 저희는 암호화폐 채굴기 바이너리 파일에서 Monero 지갑을 확보할 수 있었습니다.
이는 몇 번의 변형을 거쳤는데, 이러한 방식으로 감염된 시스템의 로컬 환경에서는 물론, 보안 벤더사와 다양한 위협 인텔리전스 피드의 탐지를 회피하는 데에도 성공했습니다. 이 블로그 게시물에서는 공격 흐름, 방어 및 다양한 배포의 영향에 대해 알아봅니다.
인시던트 활동
2018년 4월부터 당사의 센서는 800개 이상의 고유 IP 주소에서 2200건 이상의 인시던트를 기록했습니다. 이러한 IP 주소는 주로 호스팅 및 통신 회사에 속해 있습니다. 그러나 대학 및 비영리 단체의 IP도 상당히 많았으며, 이들은 실제로 멀웨어가 의도한 목적에 알맞은 인프라가 되었습니다.
2022년 3월, dhpcd의 기반이 되는 암호화폐 채굴기인 XMRig의 버전이 2.13.0에서 5.2.0으로 크게 업데이트되었습니다. 이 주요 버전 업데이트와 함께 규모와 범위 모두에서 큰 변화가 관찰되었습니다. 얼마 지나지 않은 2022년 5월 현재, 이 변화는 정점에 이르렀습니다. 2021년의 최고치만큼 높지는 않았지만, 이는 공격자가 향후 이 특정 멀웨어로부터 얻는 잠재적 이득을 더욱 높이고자 한다는 의지를 보여줍니다. 앞으로 몇 달 동안 더 많은 사례가 나타날 것이 분명합니다.
캠페인 범위
dhpcd를 처음 탐지한 이후 2215건의 공격이 발생했고, 이는 843개의 공격자 IP에 분산되어 있었으며, IP당 평균 2.6건의 공격이 이루어졌습니다. 소스 IP마다 1~27건의 공격이 관찰되었습니다.
840개의 공격자 IP 중 약 80%가 Tor 출구 노드이므로공격 배후에 있는 공격자를 추적하는 것은 거의 불가능합니다. 공격자 측에서는 Tor를 사용하는 것이 OPSEC 모범 사례이지만, 이는 곧 Tor를 사용하는 기업이 dhpcd(및 기타 캠페인의) 전파 및 멀웨어 배포에 (의도치 않게) 적극적으로 가담하게 된다는 것을 의미합니다. Akamai의 센서를 공격하는 조직은 미국 대학, 유럽 비영리 단체 등에 속한 컴퓨터였습니다.
이러한 국가의 Tor 출구 노드 수를 기준으로 봤을 때 대부분의 공격자 IP는 미국과 유럽에 소재합니다. 유럽으로부터의 공격은 대부분 독일과 네덜란드에서 발생했습니다.
금융
공격자는 여러 개의 지갑을 사용해 암호화폐 채굴의 수익을 거두어 들입니다. Akamai에서는 암호화폐 채굴기 바이너리 파일에 하드코딩된 13개의 고유한 Monero 지갑을 발견했습니다. 이러한 지갑을 모니터링하는 과정에서 각 지갑에 150달러에서 160달러에 해당하는 금액이 들어 있다는 사실을 발견했으며, 이 금액을 얻은 공격자는 이를 다른 지갑으로 ‘돌릴’ 것입니다. 각 지갑의 잔고가 상대적으로 적다는 점으로 미루어 봤을 때, 실제 지갑의 총 개수는 훨씬 더 많은 것으로 예상됩니다. 이처럼 적은 금액은 이 멀웨어가 가진 OPSEC, 즉, 소액을 유지해 눈에 띄지 않도록 하는 또 다른 예입니다.
지금까지 계산한 총 이익은 약 85mBTC로, 이는 약 2000달러에 해당합니다. 그러나 다시 한번 강조하건대, 저희는 채 확보하지 못한 멀웨어 파일에 더 많은 지갑이 있을 것이라 가정합니다. 즉 실제 이득은 훨씬 더 높을 것입니다.
공격자들은 minexmr[.]com, such as: sg97[.]minexmr[.]com, fr13[.]minexmr[.]com, us40[.]minexmr[.]com 등의 채굴 풀 도메인을 사용해 Monero 코인(XMR)을 채굴했습니다. 전체 목록은 IOC 리포지토리에서 확인하실 수 있습니다.
8월 19일에 이러한 채굴 풀이 폐쇄되었으므로 공격자는 사용할 다른 풀을 찾아야 했으며, 현재 채굴 풀은 pool[.]supportxmr[.]com:80입니다.
공격 흐름
초기 침해
공격자는 암호를 무차별 대입해, SSH 서버를 실행하는 Linux 시스템을 표적으로 삼아 공격합니다. 그런 다음 SCP를 사용해 더미 실행 파일을 bin 폴더에 다운로드합니다. 더미 프로그램은 콘솔에 'Hello, World'라고만 쓰면 실행 권한을 확인할 수 있을 것입니다. 파일 이름은 임의의 영문 및 숫자 26자로 이루어진 문자열입니다 (예: /bin/cpuufcdmorv9crpa8h6wgh6iq2).
암호화폐 채굴기
그런 다음 공격자는 암호화폐 채굴기(‘dhpcd’라는 이름의 파일)를 SCP를 통해 동일한 디렉터리에 다운로드합니다. 이 채굴기는 TCP 포트 4444를 통해 사용 가능한 채굴 풀 서버를 검색합니다. 예를 들면 다음과 같습니다.
fr14[.]minexmr[.]com
ca61[.]minexmr[.]com
sg97[.]minexmr[.]com
fr13[.]minexmr[.]com
us40[.]minexmr[.]com
지속성
공격자는 이제 암호 해독자를 유지할 수 있습니다. 이를 위해 여러 가지 기술을 사용합니다.
먼저 root, admin, test, oracle, test1, ubuntu 등과 같은 시스템의 기존 사용자 암호를변경합니다. 시스템의 복제된 암호와 메타데이터를 보관하는 파일인 /etc/shadow의 특성을 수정함으로써 변경 사항을 보호합니다.
공격자는 SSH 키를 ~/.ssh/authorized_keys 파일에 추가하고 변경할 수 없게 설정합니다.
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCuhPmv3xdhU7JbMoc/ecBTDxiGqFNKbe564p4aNT6JbYWjNwZ5z6E4iQQDQ0bEp7uBtB0aut0apqDF/SL7pN5ybh2X44aCwDaSEB6bJuJi0yMkZwIvenmtCA1LMAr2XifvGS/Ulac7Qh5vFzfw562cWC+IOI+LyQZAcPgr+CXphJhm8QQ+O454ItXurQX6oPlA2rNfF36fnxYss1ZvUYC80wWTi9k2+/XR3IoQXZHKCFsJiwyKO2CY+j
공격자는 주기적으로 실행할 명령과 작업을 설정하는 작업 스케줄러인 cron을 사용해 1시간마다 암호화폐 채굴기를 실행합니다. 또 다른 자체 유지 지속성 툴로 시스템을 부팅할 때마다 암호화폐 채굴기를 실행하는 /etc/rc.local 스크립트 파일을 다운로드합니다.
/bin/dhpcd -o ca.minexmr.com:4444 -B >/dev/null 2>/dev/null exit 0
경쟁자 활동의 무력화
공격자는 다른 공격자의 활동을 종료해 시스템 리소스를 극대화하고 결과적으로 수익을 극대화합니다. 이를 위해 /dev/shm 디렉토리에서 두 가지 스크립트인 /dev/shm/knrm 및 /dev/shm/r을 실행합니다. 그러나 디렉토리의 실행 권한을 확인하기 전에는 실행하지 않습니다(다시 'Hello, World' 프로그램 사용).
여기에서 /dev/shm 폴더는 tmpfs 파일 시스템입니다. 모든 파일은 영구 저장 디바이스가 아닌 가상 메모리에 보관됩니다. 멀웨어는 /dev/shm에서스크립트를 저장하고 실행하므로 파일 시스템에는 이러한 파일의 흔적이 남지 않습니다.
Bash 스크립트는 경쟁을 철저히 제거하는데, /dev/shm/r를 사용해 방법을 보여 드리겠습니다. 이 스크립트는 시스템에서 실행 중인 최상위 리소스 소모 프로세스를 쿼리하는 것으로 시작하며, RAM을 많이 사용하는 프로세스를 종료하고 자기 작업에만 더 많은 메모리를 사용할 수 있도록 합니다. 그런 다음 cron 파일을 지웁니다. 이 cron 파일은 XorDdos, Tsunami, aliyun.one 등 다른 공격 캠페인과 관련되어 있습니다.
/etc/cron.hourly/gcc.sh
/etc/cron.hourly/cron.sh
/etc/cron.hourly/gcc4.sh/lib/libudev.so
스크립트는 이전에 언급한(및 기타) 멀웨어 캠페인과 연결된 파일을 삭제합니다.
/root/pty
/tmp/bash
/dev/shm/bash
/var/tmp/bash
/var/lock/bash
/var/run/bash
/bin/httpsd
/lib/udev/udev
/lib/udev/debug
/root/sysem
/root/systma
/etc/jourxlv
/tmp/sysem
/tmp/su
'/tmp/ddgs.*'
/root/pty10
/root/pty4
/root/xmr64
/usr/local/sbin/t
/usr/local/sbin/rsync
/etc/ceurnad
또한 Xm64, Ceurnad, /tmp/samba, Sc64u 등의 멀웨어 관련 프로세스가 실행 중이라면 종료합니다.
새로운 경쟁자나 알 수 없는 경쟁자에 대한 정보를 수집하기 위해, 스크립트는 다양한 시스템 디렉토리에 있는 파일뿐만 아니라 보류 중인 작업의 목록을 표시하는 명령 atq를 실행합니다. 알려진 파일 패턴(dump, Docker, mount 등)을 필터링한 후 공격자는 멀웨어와 경쟁할 수 있는 파일 목록을 남겨둡니다.
탐지 및 방어
SSH 서버는 아주 흔하게 사용됩니다. 안타깝게도 높은 권한으로 실행되는데 기초적인 암호만 사용해 접속할 수 있는 SSH 서버 또한 흔히 사용되죠. dhpcd와 같은 SSH 대상 공격은 SSH가 비공개 및 공개 키를 통해서만 작동하도록 설정하고, 모든 암호 기반 로그인 시도를 차단하면 쉽게 저지할 수 있습니다.
이를 적용하려면 다음 두 줄이 포함되도록 SSH 구성 파일(/etc/ssh/sshd_config)을 수정하세요.
PermitRootLogin no
PasswordAuthentication no
dhpcd의 암호화폐 채굴 작업을 저지하려면 지금까지 살펴본 다양한 공격 인시던트에서 사용된 발신 TCP 포트 4444를 차단하는 것이 좋습니다. 또한 알려진 채굴 풀 도메인에 대한 모든 연결도 차단하세요. dhpcd와 관련된 연결은 IOC 리포지토리에서 확인하실 수 있습니다.
시스템이 감염되었는지 탐지하려면 Akamai의 탐지 스크립트를 실행해 dhpcd 흔적을 찾을 수 있습니다.
결론
dhpcd는 시도된 기법과 실제 기법을 사용하는 암호화폐 채굴 캠페인입니다. SSH를 통해 퍼지고, 잘 알려진 XMRig를 기반으로 암호화폐 채굴기를 실행하며, 알려진 기법을 사용해 백도어를 설치하고 경쟁자를 제거합니다.
이 캠페인은 Tor를 감염 파이프라인에 통합해 관찰되는 대부분의 공격 캠페인보다 더 나은 OPSEC를 보여줍니다. Tor를 사용하면 방어자가 공격 인프라와 오리진을 추적하지 못하므로 전체 운영의 안정성과 저항성을 높일 수 있습니다.
Tor의 사용은 양날의 검과 같습니다. 기업에서는 Tor를 사용해 익명성, 개인 정보 보호 및 보안 기능을 지원할 수 있지만, 종료 노드를 설치함으로써 감염 사슬의 일부가 된다는 부작용도 감당하게 됩니다 스스로 감염되지 않더라도, 이러한 기업은 인터넷을 통해 멀웨어를 전파하는 데 사용되는 메커니즘을 제공해 공격자가 익명 상태를 유지하고 스스로를 보호할 수 있도록 합니다.
dhpcd는 가장 기본적이고 단순한 공격 캠페인(침해를 위한 사전 공격과 탐지되지 않도록 문자를 바꾼 파일 이름이 특징임)도 여전히 네트워크를 감염시키고 수익을 창출한다는 사실을 다시 한번 증명합니다. 또한 이러한 캠페인은 잠재적 이익의 규모와 범위를 늘리기 위해 개발 및 유지됩니다. 그러나 전술, 팁 및 절차가 간단하다는 점은, 경계만 잘 한다면 기본 보호 수단으로도 시스템의 보안을 강화할 수 있음을 시사합니다.
부록: 감염 지표
다음은 IOC의 일부 목록입니다. 전체 목록은 리포지토리에서 확인하세요.
파일 이름
/bin/[a-z0-9]{26}(Hello World 프로그램)
/bin/dhpcd
도메인
fr14[.]minexmr[.]com
ca61[.]minexmr[.]com
sg97[.]minexmr[.]com
fr13[.]minexmr[.]com
us40[.]minexmr[.]com
pool[.]supportxmr[.]com
파일 해시
eb808932714c9533962e129e61d84c29536497e62b2a7d89dce3376d882c6965
e971fa0c392a9f43c37dccfdd4f8e6bc109e162716d9b206170f7bb133634ffd
76005592ad7d8901c64a5cfbcdde589a960ba35c9672da6182d131cd67ae0c97
2cca764d24212f8fc58780b9135740929f38b45bcd5fc82c4a2ff47e90890d06
3ea8cc0977e5542053353bcf3e58de947dd727259369707a13a4d0c8f14b7486