클라우드 컴퓨팅이 필요하신가요? 지금 시작해보세요

다시 기승을 부리기 시작한 Mexals 캠페인 조사

Stiv Kupchik

에 의해 작성

Stiv Kupchik

April 12, 2023

Stiv Kupchik

에 의해 작성

Stiv Kupchik

스티브 쿱치크는 Akamai의 보안 연구원 팀장입니다. OS 내부, 취약점 리서치, 멀웨어 분석을 중심으로 연구 프로젝트를 진행하고 있습니다. 그는 Black Hat, Hexacon, 44CON 등의 콘퍼런스에서 리서치 결과를 발표했습니다. 사이버 보안 전문가일 뿐 아니라 물리학 학사 학위도 보유하고 있습니다.

Akamai 보안 연구팀은 공격 활동이 활발해진 크립토재킹 캠페인에 대해 연구해왔으며, 이는 2021년에 Bitdefender에서 다룬 캠페인이 다시 성행하고 있는 것으로 보입니다.

핵심 요약

편집 및 추가 기여: 트리샤 하워드(Tricia Howard)

  • Akamai 보안 연구팀은 루마니아 기반의 크립토재킹 캠페인일 가능성이 높은 Mexals의 재유행을 추적하고 분석해왔습니다.

  • 이 캠페인은 최소 2020년부터 활발해지기 시작했으며, 이전에 Bitdefender 의 보고서(2021년 7월)에서 다룬 바 있습니다.

  • 2022년 10월에 최신 공격 및 멀웨어 강화를 시작한 것으로 보입니다. 이 조직은 현재 자신들을 Diicot이라 칭하고 있는데, 이는 루마니아 정부 소속의 테러 및 조직 범죄 수사국의 이름이기도 합니다.

  • Akamai 보안 연구팀은 한 Akamai 고객사에서 악성 DNS를 탐지한 후 이 캠페인을 분석하기 시작했습니다. 이러한 공격의 영향을 받은 모든 Akamai 고객사에 해당 사실이 신속하게 고지되었고 적절한 대책이 시행되었습니다.

  • Monero 암호화폐 채굴기를 배포하기 전에 공격자는 긴 페이로드 사슬을 사용합니다.

  • 새로운 기능에는 SSH(Secure Shell Protocol) 웜 모듈 사용, 보고 증가, 향상된 페이로드 난독화, 새로운 LAN 스프레더 모듈 등이 포함됩니다.

  • 채굴기의 풀을 분석한 결과, 공격자들은 약 10,000달러(USD)에 달하는 XMR 코인을 채굴해온 것으로 추정됩니다.

  • Akamai는 방어 조치, 탐지 툴, 전체 감염 징후(IOC) 저장소를 제공합니다. 또한 이 블로그의 게시물을 공개하기 전에, 이러한 툴을 보유한 피해 고객사에도 연락을 취했습니다.

서론

Akamai 보안 연구팀은 공격 활동이 활발해진 크립토재킹 캠페인에 대해 연구해왔으며, 이는 2021년에 Bitdefender에서 다룬 캠페인이 다시 성행하고 있는 것으로 보입니다. 이전 보고서의 내용과 몇 가지 상관 관계가 있긴 하지만, 이 멀웨어는 그때 이래로 훨씬 더 업그레이드 되었습니다.  

두 캠페인을 비교했을 때 변경된 것 중 하나는 다음과 같습니다. 이전에 Mexals(그림 1에서 해당 웹페이지 참조)로 알려졌던 이 조직은 현재 자신들을 Diicot이라고 칭하며, 자신들이 만든 툴에도 같은 이름을 붙였습니다. Diicot루마니아 대테러 수사국의 이름이기도 합니다.따라서 혼란을 방지하기 위해, 이 위협 단체는 Mexals로 지칭하겠습니다. 운영 방식, 페이로드 사슬, IOC를 분석하는 과정에서 이름은 달라졌어도 이 두 캠페인의 연관성이 확연히 드러났습니다.

공격자가 소유한 악성 도메인의 웹페이지. 이 웹페이지의 제목은 "Haceru #DIICOT"이며 루마니아 경찰 또는 SWAT 팀의 이미지 한 장이 포함되어 있습니다 그림 1: 페이로드를 호스팅하는 공격자의 도메인에 표시된 기본 웹페이지

이번 캠페인의 경우 난독화가 강화되고, 파일 이름을 은닉하는 기술이 더 교묘해졌으며, 이전 버전에는 없었던 맞춤형 채굴 풀 프록시가 생겼다는 점이 확인되었습니다. 이 공격 사슬은 SSH 인증정보 무차별 대입으로 시작됩니다. 그런 다음, 난독화된 긴 페이로드 사슬이 등장하면서 최종적으로 XMRig 암호화폐 채굴기를 배포합니다. 배포된 페이로드 중 하나는 자동 전파가 가능한 워머블(Wormable) 모듈로, 이번 재유행에서 활발히 사용된 것으로 보입니다.

그리고 Mexals의 자체 공격 서버는 네덜란드에 소재한 VPS에서 호스팅되며, 전 세계에서 피해자가 속출할 것으로 우려됩니다. 공격자들은 XMR 코인으로 10,000달러(USD) 이상을 채굴한 것으로 추정됩니다.

일부 공격자가 툴킷을 사용하는 것과 달리, Mexals는 사슬을 사용하는 것으로 추정됨

공격자들의 감염 사슬을 분석한 결과, 실행 파일 8개를 발견했습니다. 이러한 실행 파일은 파일 이름, 경로, 새로운 기능 을 제외하고는 Bitdefender 보고서에 언급됐던 내용과 크게 다른 것 같지 않습니다(그림 2).

페이로드 이름

용도

History

Bash 스크립트입니다. 이 스크립트는 Update 가 실행 중인지 확인합니다. 그렇지 않은 경우 이를 실행합니다.

Update

이는 컴파일된 Bash 스크립트입니다. Discord 웹훅을 통해 공격자에게 알리고 SSH가 열려 있는 머신의 무작위 B 클래스 IP 네트워크에서 네트워크 스캔을 실행합니다. 결과를 aliases에 제공합니다.

Chrome/ps

네트워크 스캐너입니다. 클래스 B 네트워크 범위(255.255.0.0)와 포트를 승인합니다. 해당 포트가 열려 있는 컴퓨터의 네트워크 범위를 스캔하고 결과를 파일에 저장합니다.

aliases

Golang으로 작성된 SSH 웜 모듈입니다. 이 모듈은 payload를 실행합니다.

payload

유출 후에 사용되는 주 모듈입니다. 피해자에게 제공되는 리소스에 따라 백도어, 암호화폐 채굴기 또는 LAN SSH 웜을 설치합니다.

.diicot

컴파일된 Bash 스크립트입니다. 이 스크립트는 암호화폐 채굴기인 Opera를 다운로드합니다. 새로운 사용자 및 SSH 키 형태로 또 다른 백도어도 설치합니다.

Opera

XMRig 암호화폐 채굴기입니다.

retea

컴파일된 Bash 스크립트입니다. LAN 스프레더 모듈의 시작점입니다. 내부 LAN IP 범위에서 SSH 포트 스캐너를 실행한 다음, Network를 호출해 SSH가 있는 머신에 공격을 시도하고 침투합니다.

Network

기능이 적어진 aliases 의 또 다른 변종입니다. 로컬 LAN에서 SSH 사전 공격을 수행하고, 크랙된 머신(및 유효한 인증정보)에 대한 정보를 텍스트 파일에 저장합니다.

그림 2: 공격자들이 사용한 여러 페이로드에 대한 요약

바이너리 생성 및 난독화

지금까지 확인된 가장 중요한 변화는 페이로드 난독화입니다. 이전에는 대부분의 실행 가능한 페이로드가 사실 shc로 컴파일된 Bash 스크립트였으나, 지금은 그러한 컴파일된 Bash 스크립트도 UPX로 압축되었습니다. 그리고 분석 및 압축 풀기를 막기 위해 UPX 헤더가 제거된 상태였습니다(그림 3).

악성 페이로드에서 UPX 압축을 실행 중인 Windows 명령줄 화면 캡처. 이 명령은 'UPX로 압축되지 않음'이라는 오류를 반환합니다 그림 3: 헤더가 제거되어 UPX로 압축을 해제할 수 없는 압축된 실행 파일

다행히 Akamai 연구원인 래리 캐시달러(Larry Cashdollar)가 구축한 이전 SIRT 알림 에 포함됨)을 사용해 UPX 헤더를 쉽게 복원하고, ELF 실행 파일의 압축을 풀고, 그 안에 있는 Bash 스크립트를 추출할 수 있었습니다.

이렇게 하면 바이너리가 완전히 제거되고 정적으로 컴파일되므로, 멀웨어의 코드와 glibc의 코드를 구분할 방법이 없어집니다(그림 4).

UPX에서 압축을 해제한 후 제거된 바이너리의 진입점(시작점). 이름이 지정되지 않은 다른 함수를 호출하기 전에 레지스터 r8, rcx, rid에 이름이 지정되지 않은 함수 세 개가 로드되었습니다 그림 4: 제거된 바이너리의 진입점

glibc의 소스 코드를 사용하면 발생 가능한 진입점을 파악할 수 있습니다. 실제 주 함수는 rdi에 로드된 함수입니다. 이를 살펴보면 다음과 같은 매우 구체적인 오류 문자열을 찾을 수 있습니다. E: neither argv[0] nor $_ works.이는 웹에서 검색할 수 있는 문자열입니다. 이 문자열은 shc로 이어집니다. 안타깝게도 쉽게 사용할 수 있는 디컴파일러가 없는 상황입니다. 이를 리버스 엔지니어링하고 굉장히 번거로운 일인 암호 해독기를 만드는 작업 대신, 페이로드를 디버깅하고 1초 후에 실행을 일시 중지할 수 있습니다. 암호가 해독된 셸 스크립트는 멀웨어의 메모리에 상주하는데, 우리는 이 스크립트를 덤프하고 분석할 수 있습니다.

감염 사슬

각각의 페이로드는 다음 링크를 설정하는 다양한 방법을 사용해 비교적 쉽게 서로 연결됩니다.  그림 5: 전체 페이로드 사슬

각각의 페이로드는 다음 링크를 설정하는 다양한 방법을 사용해 비교적 쉽게 서로 연결됩니다. 이를테면 경쟁사 채굴기 또는 CPU를 많이 사용하는 프로세스를 중단시키거나, Bash 내역을 지우거나, 지속 공격을 설치한 후 다음 페이로드를 다운로드하고 실행하는 방법입니다(그림 5).

주요 페이로드 기술 분석

aliases

Golang 바이너리입니다. 이 바이너리는 제거되지 않았기에 멀웨어의 모든 로직을 쉽게 찾을 수 있었습니다. 멀웨어는 이전 단계에서 생성된 파일 두 개를 읽습니다. 하나는 protocols ( Update에 의해 배포된 사용자 비밀번호 단어목록)이고, 나머지 하나는 bios.txt (SSH가 열려 있는 머신의 표적 IP 목록, Chrome에서 생성됨)입니다. 이 페이로드는 그런 다음, 각 표적에 대해 사전 공격을 진행하며 인증에 성공하면 payload 및 기타 명령을 실행해 유출된 시스템을 프로파일링합니다.

실행할 마지막 명령은 uname -s -v -n -r -m이며, 이 명령의 출력이 구문 분석됩니다. 이는 이러한 출력 내에서 관심 표적을 나타낼 수 있는 특정 OS 이름을 구체적으로 찾습니다. 검색하는 대부분의 OS 이름을 대상으로는 아무런 작업도 실행하지 않지만, 표적 머신이 OpenWrt를 실행 중인 경우, 다른 Bash 명령을 실행해 해당 머신에 이를 다운로드하고 107,182,129,219에서 또 다른 셸 스크립트를 실행해 몇 가지 Mirai 변종을 배포합니다. 주목할 대상은 OpenWrt 같습니다. 이는 내장형 디바이스에 설치되며, 기업의 네트워크에 접근하는 초기 접속 기법으로 사용될 수 있기 때문입니다. 이를 통해 공격자들은 단순히 또 다른 암호화폐 채굴 캠페인에 관심이 있는 수준을 넘어, 새로운 환경을 적극적으로 찾고 있다는 걸 알 수 있습니다.

멀웨어는 유출 시도를 마친 후, Discord 웹훅(점점 인기를 얻고 있는 공격 수단)을 통해 공격자에게 보고합니다. 웹훅은 용도에 따라 4가지로 나뉩니다(그림 6).

멀웨어의 Discord 웹훅 보고에 대한 가로채기 로그. 서로 다른 웹훅 URI 3개에 대한 POST 요청 3건, 멀웨어가 전송한 json 데이터 포함 그림 6: 멀웨어에 의해 호출된 Discord 웹훅의 가로채기

첫 번째 웹훅은 toDiscord라는 함수에서 호출되며, 표적 머신에서 실행되는 다양한 프로파일링 명령의 결과를 대체합니다. 그 다음 두 가지 웹훅은 toAPIlogstoDisc라는 함수에서 호출됩니다. 둘 다 동일한 정보, 즉 표적의 IP와 이를 인증할 수 있는 사용자 및 비밀번호를 대체합니다.

마지막으로, 피해자가 OpenWrt를 실행 중이었을 경우 또 다른 함수인 toMirai가 호출되며, 동일한 정보를 다른 웹훅에 전송합니다. 여기에서 몇 가지 중복성이 나타납니다. 이는 공격자가 여러 지표를 더 쉽게 추적하기 위한 것이거나, 공격 캠페인의 여러 요소와 구분하는 역할을 하는 것일 수도 있습니다(Mirai를 봇넷 또는 IAB로 사용하는 경우 또는 Mirai를 일반 용도인 암호화폐 채굴기로 사용하는 경우).

payload

컴파일된 Bash 스크립트에 '불과'하지만, payload 가 흥미로운 이유는 그 안에 주석과 진행 메시지가 가득하므로 멀웨어 작업자의 사고 과정을 알 수 있기 때문입니다.

주석과 진행 메시지가 루마니아어로 작성되어 있다는 점은 공격자들이 루마니아인이라는 가정을 더욱 강하게 뒷받침합니다(멀웨어의 명령 및 제어 또는 다운로드 도메인을 직역하면 '해커의 아카이브'로 번역됨).

또한 이 스크립트는 알려진 다른 암호화폐 채굴기의 존재 여부를 확인하고, 해당 프로세스를 중단시킵니다. dhpcdksmdx가 이에 속합니다. 이는 공격자가 자신이 활동하는 생태계를 파악하고 있으며, 이들이 암호화폐 채굴 세계에서 단순히 주먹구구식 수법을 사용하는 게 아니란 점을 보여줍니다.

이 스크립트는 경쟁사 및 CPU를 많이 사용하는 다른 프로세스를 모두 중단시킨 다음, 머신에 있는 CPU 코어 수를 확인합니다. CPU 코어 수가 4개 미만이면 History 및 Update 를 설치하고, 이에 대한 cron 작업도 설치합니다. (두 실행 파일은 aliases 페이로드를 다운로드하는 역할을 하며 피해자 머신의 재부팅 시 실행되도록 예약됩니다.) 코어가 4개 이상인 경우, 스크립트가 .diicot도 다운로드하고 실행합니다. 이는 XMRig 암호화폐 채굴기를 다운로드하고 실행하는 컴파일된 Bash 스크립트입니다.

마지막으로, CPU 코어가 8개 이상이면 스크립트가 LAN 스프레더인 retea를 다운로드하고 실행합니다.

retea

LAN 스프레더 모듈은 공격자의 체인에 새로운 기능을 제공합니다. 이는 또 다른 컴파일된 셸 스크립트로, 시스템에 설정된 모든 사용자를 추출하고usrs라는 파일을 생성합니다. 이 파일은 SSH 사전 공격에 사용되며 추출된 사용자 및 하드코딩된 기본 비밀번호 목록을 사용해 채워집니다. 그런 다음, LAN 네트워크에서 네트워크 스캐너를 다운로드하고 실행합니다. 이렇게 하면 열린 SSH 포트가 있는 머신이 탐지되고 아웃풋이 파일에 작성됩니다. 그 다음에는 Network를 다운로드하고 실행하는데, 이는 기능이 더 적은 aliases의 작은 버전입니다. 악성 페이로드를 설치하거나 Discord 웹훅에 보고하는 대신, 유출된 머신의 아웃풋을 파일에 저장합니다. 공격자는 나중에 이 파일을 수거할 수 있습니다.

피해자 살펴보기

공격자와 피해자 구별의 어려움

공격자들은 자가 전파가 가능한 페이로드를 갖고 있으므로, Akamai의 위협 센서에 포착된 소스 IP 중 어떤 게 공격자 인프라이고, 어떤 게 피해자 인프라인지 구별하기 어렵습니다. 이 섹션에서는 공격자의 인프라를 분석하고 실제 피해자를 찾아보겠습니다. 

저희가 탐지한 모든 공격 IP(고유 IP 주소 50개)를 추출하고, 이러한 IP가 관측된 전 세계의 지리적 위치에 해당 IP를 매핑했습니다. 공격 IP 외에도, Akamai의 일부 고객사에서 감염 증거가 발견되었으므로 해당 고객사도 피해자 목록에 포함했습니다. 피해자 및 인프라의 지리적 분포가 그림 7에 나와 있습니다.

공격자의 지리적 위치가 표시된 세계 지도, 각 IP에서 기록된 활동량으로 매핑된 색상, 인시던트 1건에서 최대 약 80건까지 표시. APJ, 동유럽, 북미에서는 인시던트 수가 적은 여러 IP의 배치가 확인됩니다. 서유럽에는 공격의 활동량이 높은 곳이 몇 군데 있습니다. 그림 7: 공격 IP의 지리적 위치가 포함된 세계 지도

대부분의 지역에서는 공격 활동이 거의 나타나지 않지만, 서유럽의 몇몇 지역에서 성행하고 있는 걸 발견했습니다. 해당 지역에서 활동이 급증(그림 8)한 사실을 확인한 저희는 공격자들이 실제로 관리하는 머신은 이곳에 있고나머지는 워머블 모듈에 의해 탈취된 피해자의 머신일 것이라는 가설을 세우게 되었습니다. 워머블 모듈은 별다른 활동을 하지 않는 것처럼 보입니다. 그와 동시에 활성화된 머신도 거의 없는 것으로 관측되기 때문입니다. 이는 당연한 결과입니다. aliases는 무작위 B 클래스에서 cron 작업을 한 번 실행할 때 한 번만 실행되기 때문입니다. 이 cron 작업은 컴퓨터를 재시작할 때 실행되도록 예약되어 있는데, 피해자 머신의 특성(예: 인터넷에 개방된 Linux 서버)에 따라 자주 실행되지 않을 수도 있습니다.

시간의 흐름에 따라 인프라를 동시에 공격하는 서로 다른 IP의 양을 보여주는 그래프. 2022년이 시작되기 전에 대규모 활동(동시 IP 14개)이 급증했으며 나머지 기간 동안 몇 번의 소규모 증가가 발생했습니다. 그림 8: 시간의 흐름에 따라 위협 센서를 동시에 공격하는 IP 수

Akamai의 허니팟에 가장 많이 등록된 IP 주소를 살펴보면, 공격자 인프라라고 가정했을 때 호스트의 명확한 분포를 확인할 수 있습니다(그림 9). 이전 IP 주소는 DigitalOcean에서 호스팅되었습니다. 최근 새롭게 등장한 주소는 네덜란드의 VPS 및 웹 호스팅 공급업체인 Serverion에서 호스팅된 것으로 보입니다(이 업체의 ASN은 실제로 모회사인 부동산 에이전시 DES Capital B.V에 등록되어 있어 처음에는 잠시 혼동했습니다).

공격 날짜

공격 횟수

공격자 IP

호스팅 업체 이름

2023-02-01

14

185.225.74.231

Des Capital B.V.

2022-10-01

72

45.139.105.222

Des Capital B.V.

2022-10-01

62

212.193.30.11

Des Capital B.V.

2022-03-01

22

195.133.40.157

Des Capital B.V.

2021-12-01

43

134.209.95.47

DigitalOcean, LLC (DO-13)

2021-12-01

37

134.209.195.231

DigitalOcean, LLC (DO-13)

2021-12-01

34

104.248.85.104

DigitalOcean, LLC (DO-13)

2021-12-01

27

134.209.198.229

DigitalOcean, LLC (DO-13)

2021-12-01

27

167.71.48.128

DigitalOcean, LLC (DO-13)

2021-12-01

74

188.166.60.8

DigitalOcean, LLC

그림 9: 피해자뿐만 아니라 공격자의 인프라로 추정되는 주요 공격 IP.

저희는 이 블로그 게시물을 공개하기에 앞서, 공격의 영향을 받은 Akamai 고객사에 연락해 공격에 대한 정보와 각각의 공격 IP 주소에 등록된 악용된 이메일을 알려드렸습니다.

모습을 더 철저히 감춘 교묘한 공격

공격자들은 이전 캠페인 이후로 채굴 설정을 변경한 것 같습니다. 과거에는 채굴기가 supportxmr.com 과 직접 연동되도록 설정했지만, 저희가 최근에 분석한 채굴기는 공격자의 관리 범위 내에 있는 IP 주소와 통신을 수행합니다. 저희는 해당 IP 주소가 지불 내역을 추적할 수 없는 프라이빗 풀일까 봐 걱정했지만, 다행히 이러한 우려는 빗나갔습니다. supportxmr 은 여전히 지갑에 대한 채굴 지불을 추적하므로, 해당 서버는 supportxmr에서 호스팅되는 풀에 대한 프록시에 불과할 것으로 추정됩니다. 이는 풀에 직접 연결하지 않음으로써 DNS 차단 및 탐지를 피하는 방법이 될 수도 있습니다.

저희는 캠페인을 조사하는 동안 확인된 XMRig 페이로드에서 서로 다른 지갑 주소 두 개를 추출할 수 있었습니다. 이 지갑 주소는 Bitdefender가 관측한 지갑 주소와 다르지만, 지불 내역에 따르면 과거의 그 시기에도 활동했던 것으로 보입니다. 

2021년 11월 이전에는 지불 금액의 변동 폭이 컸으나(XMR이 최대에 이른 적이 두 번이나 있음), 그 이후에는 지불 빈도와 일관성이 더 높아졌습니다(그림 10). 이는 지불 체계가 변경되었거나 채굴기 작업자가 더 많아졌기 때문일 수 있습니다. 이 시기는 저희가 탐지한 멀웨어 활동의 다른 피크 시기와 일치합니다.

공격자의 지갑으로 전송된 XMR 지불 내역. 2021년 11월 이전에는 지불 금액이 산발적이고 저마다 달랐습니다(거의 0 XMR~1 XMR). 2021년 11월 이후에는 금액(0.1 XMR)과 시기 둘 다 훨씬 더 일관적인 방식으로 지불되었습니다 그림 10: supportxmr에서 추출한 공격자의 지갑에 대한 채굴 지불 내역

전반적으로 보았을 때, 공격자들은 전체 캠페인 기간 동안 10,000달러(USD) 이상의 XMR을 채굴한 것으로 추정되며, 그중 75% 이상이 Mexals가 다시 출현한 이후에 채굴된 코인입니다.. 그러나 실제 채굴 금액은 추정치보다 훨씬 높을 수 있습니다. supportxmr에서 보고한 고유 작업자 수로 판단하면, 저희가 확인한 수치는 XMRig 페이로드 및 설정의 절반에 불과합니다(그림 11).

채굴기 설정에서 추출한 지갑 주소와 연결된 채굴기를 보여주는 supportxmr.com의 스크린샷. 총 8명의(고유한) 작업자가 58 XMR을 채굴했습니다 그림 11: 공격자의 지갑과 연결된 채굴기

요약

공격자들이 사용한 페이로드 사슬은 매우 인상적이며, 이들의 수법이 상당히 정교하다는 걸 알 수 있습니다. 일반적으로 이렇게 긴 페이로드 사슬은 흔하지 않으며, 공격자가 수많은 페이로드를 사용하기로 선택한 데에는 몇 가지 이유가 있을 겁니다.

  • 난독화 - 시스템 내에 움직이는 요소가 많을수록 분석 및 추적이 어렵습니다. 바이너리가 난독화되었다는 사실은 이러한 가설을 더 확고히 뒷받침합니다.

  • 위협 그룹의 배후에 여러 인물이 있습니다. 캠페인의 배후에 있는 공격자에 대한 실제 정보는 알 수 없지만, 같은 스크립트의 여러 샘플에서 눈에 띄는 코드 차이를 발견했습니다. 이러한 차이를 고려하면 서로 다른 사람이 스크립트를 개발했다고 볼 수밖에 없습니다.

  • 이 멀웨어 캠페인은 시간이 지날수록 더 강력해지도록 설계되었습니다. 새로운 기능 및 강화된 난독화 기능이 추가되었을 뿐만 아니라, 향후 사용을 위한 토대로 만들어진 코드에서 중복성이 나타난다는 점은 이러한 사실을 뒷받침하는 증거입니다.

이전 공격보다 더 개선된 기능과 추가 기능
  • UPX 압축 및 UPX 헤더 제거.

  • 자동 업데이트 기능이 페이로드 내부에서 외부 스크립트(History 및 Update로 이동되었습니다.

  • 파일 이름을 은닉하는 기술이 더 교묘해졌습니다(Chrome, Opera - 브라우저 모방)

  • Discord를 통한 추가적인 멀웨어 보고 기능

  • OpenWRT 에 특화된 행동 (향후 더 많이 출현할 가능성이 높음)

  • 퍼블릭 풀 대신 맞춤형 채굴 풀 프록시 사용

보안팀 직원의 아카이브

경계 및 네트워크 보호

이 멀웨어는 자체적으로 배포할 수 있는 새로운 기술이나 정교한 기술은 없습니다. 단순하게 SSH에 대한 사전 공격을 사용하는 방식입니다. 따라서 인터넷에서 SSH에 개방된 머신만 위험에 노출됩니다. 네트워크 경계에서 SSH를 차단하거나, VPN으로 SSH를 옮기면 이러한 공격이 야기하는 위험을 크게 줄일 수 있습니다.

그 외에도, 기본값이 아닌 인증정보나 복잡한 비밀번호를 사용하면 이 멀웨어에 사용된 것과 같은 사전 공격의 위험이 크게 줄어듭니다. 또한 SSH 키는 비밀번호보다 훨씬 더 안전하므로(추측이 어려우며 '암호'는 연결을 통해 전송되지 않음), SSH 키를 인증에 사용하는 것이 좋습니다.

마지막으로, LAN 스프레더 모듈도 고려해야 합니다. 이 모듈은 측면 이동에도 SSH를 사용하기 때문에 네트워크를 세그멘테이션하면 위험을 안전하게 방어할 수 있습니다. 인터넷에 개방된 서버를 DMZ(비무장지대)라고 가정한다면 DMZ에서 들어오는 SSH 트래픽(그리고 RDP, MS-RPC 또는 WinRM처럼 측면 이동에 사용할 수 있는 기타 트래픽)이 나머지 네트워크에 접근하지 못하도록 차단하는 게 당연한 순리일 겁니다. 어떠한 이유로 인해 이러한 서버가 내부 네트워크에 대한 SSH 접속 권한을 가져야 할 경우(예: 서버가 점프박스 역할을 할 경우), 해당 서버를 DMZ 밖으로 이동하고 VPN을 켠 상태로 작업을 진행하는 게 바람직한 방법입니다. 서버를 인터넷에 노출시키지 않고, 공격자가 서버에서 내부로 이동할 수 있는 길만 차단해도 공격 반경 및 전파 경로가 줄어듭니다.

감염 탐지

Akamai는 이러한 악성 캠페인에 감염되었는지 탐지하는 데 도움이 되는 툴이 있는 GitHub 저장소 를 만들었습니다. 이곳에서 Bash 스크립트, Akamai Guardicore Segmentation 고객이 사용할 수 있는 IOC 및 OSQuery 쿼리의 전체 목록을 참조할 수 있습니다. 이 게시물의 마지막 부분에서도 탐지 스크립트와 IOC의 일부 목록 을 확인할 수 있습니다.

이러한 툴 외에도, 이러한 경우에 적용할 수 있는 암호화폐 채굴기를 탐지하는 일반적인 방법(예: 대상 포트를 확인하는 방법을 통해 채굴 풀로 향하는 발신 트래픽 탐지)을 권장합니다. 채굴 풀의 기본 포트는 매우 고유한 경우가 있기 때문에 이러한 포트를 주의 깊게 살펴보면 도움이 될 수 있습니다. 예를 들면 다음과 같습니다.

물론 채굴기는 HTTP 및 HTTPS를 통해 자신의 풀과 통신할 수도 있습니다. 이 경우 탐지가 훨씬 더 어려워집니다. 그래도 이러한 포트는 살펴볼 가치가 있습니다.

탐지 스크립트

탐지 스크립트는 공격 캠페인이 과거에 존재했거나, 현재에 존재하는지 나타낼 수 있는 다양한 IOC를 찾습니다. 이러한 탐지 스크립트는 crontab의 아티팩트, 해당하는 파일 경로, 실행 중인 프로세스, 악성 SSH 키 백도어를 찾습니다. 탐지 스크립트를 실행하려면 검사할 컴퓨터에 이 스크립트를 다운로드하고 실행하기만 하면 됩니다. 시스템 스캔 후 결과가 출력됩니다.

탐지 스크립트 실행을 보여주는 Linux 터미널. 우선 wget을 사용해 github에서 다운로드한 다음, chmod를 사용해 실행 권한을 부여하고 마지막으로 실행합니다. 멀웨어의 지속적인 cron, 바이너리 경로, 해당 SSH 키를 탐지한 것으로 터미널에 출력됩니다. 그림 12: 탐지 스크립트를 실행해 Mexals 아티팩트 찾기
감염 징후

다음은 IOC의 일부 목록입니다. 전체 목록은 GitHub 저장소에서 소개했습니다.

경로
  • /var/tmp/.update-logs/

  • /var/tmp/Documents/

  • /var/tmp/.ladyg0g0/

  • /dev/shm/.x/

  • /dev/shm/.magic/

파일 이름
  • protocols

  • bios.txt

  • Update

  • History

  • aliases

  • payload

  • retea

  • .usrs

IP
  • 107.182.129.219

  • 45.139.105.222

  • 185.225.74.231

  • 212.193.30.11

도메인 및 URI
  • arhivehaceru[.]com

  • discord[.]com/api/webhooks/954295081765072926/Zu7Vu-LpfgRqSmCyFvz3BCkR1Lt7clYOJeayCFzZwtPmZlVn9og_6mPS_BJY-374m5Y3

  • discord[.]com/api/webhooks/1036206037373571082/9bs01KrT-TrcbSAPI_i-adV1Bhn56A4X4fxzCYEw3zMq95H1mFvlKWb6-KYzvEoVfTnS

  • discord[.]com/api/webhooks/1036205058456563722/1_saZM0fE7nLgYG668LmDfNmSvrWpD-6Z8nIXljm0qlm6YyMxAyYuZIu4LhN2gHsgSQy

  • discord[.]com/api/webhooks/965651135102865479/PFdU4u8yZrn0XhzIKShcaxL3_IaBjsstYmFEXlThF2_1XCnwXSAjKos3ptwKYpPyGqvI

  • discord[.]com/api/webhooks/848592916951203860/WeWBGYSVreTlE0aO_6alVN3Qrj6_aRxnaDpq4_6wD04V2aHlMFvgik2Z2h78Dstg9fZY

  • discord[.]com/api/webhooks/1036225255049531422/qyOrT3SxHaOC-9yS2NQiPxlSMYmRFFIpU-rMKzmcDv9pQyP4uaZEiZXDXioUtf0DJLUB



Stiv Kupchik

에 의해 작성

Stiv Kupchik

April 12, 2023

Stiv Kupchik

에 의해 작성

Stiv Kupchik

스티브 쿱치크는 Akamai의 보안 연구원 팀장입니다. OS 내부, 취약점 리서치, 멀웨어 분석을 중심으로 연구 프로젝트를 진행하고 있습니다. 그는 Black Hat, Hexacon, 44CON 등의 콘퍼런스에서 리서치 결과를 발표했습니다. 사이버 보안 전문가일 뿐 아니라 물리학 학사 학위도 보유하고 있습니다.