APT15 사이버 첩보: 캠페인 및 TTP 분석
Detection stack
- AIDR
- Alert
- ETL
- Query
요약
APT15는 2010년부터 활동 중인 중국 국가 후원 사이버 스파이 그룹으로, 주로 정부 기관, 외교 미션 및 군사 조직을 표적으로 삼습니다. 해당 그룹은 스피어 피싱, 공개 애플리케이션 악용 및 맞춤형 백도어를 통해 초기 접근을 획득하고 장기적인 거점을 유지합니다. 그들의 도구는 스테가노그래피, 마스커레이딩, 레지스트리 조작 및 HTTP 헤더 또는 DNS 트래픽에 내장된 암호화된 C2 채널을 포함합니다. 이 캠페인은 Graphican과 ORB3 릴레이 네트워크와 같은 새로운 도구로 진화하고 있습니다.
조사
조사는 여러 악성코드 패밀리(BS2005, TidePool, MirageFox, Graphican 등)와 초기 접근, 실행, 지속성, 권한 상승, 방어 회피, 인증 정보 접근, 탐색, 수집, 탈취 및 명령 및 제어에 걸친 포괄적인 ATT&CK 기법 세트를 매핑했습니다. 분석가들은 사건 데이터에서 도메인, 파일 경로, 레지스트리 키 및 명령어 라인을 포함한 구체적인 지표를 추출했습니다. 그룹의 인프라는 다음과 같은 도메인을 활용합니다. goback.stranged.net and finance.globaleducat.com C2 작업을 위해.
완화
권장 방어 조치는 이메일 첨부 파일의 철저한 스캔, Microsoft Exchange, SharePoint 및 VPN 장비의 즉각적인 패치, 그리고 의심스러운 레지스트리 수정, 비정상적인 예약 작업 및 rundll32 또는 COM 기반 페이로드 실행의 모니터링을 포함합니다. 네트워크 모니터링은 알려진 C2 패턴과 일치하는 비정상적인 HTTP 쿠키 활동 및 DNS TXT 쿼리에 중점을 두어야 합니다. 애플리케이션 화이트리스트 및 행동 분석은 이름이 변경된 압축기 및 스테가노그래피 기반 PNG 페이로드 사용을 차단하는 데 도움이 될 수 있습니다.
응답
APT15 활동이 감지되면, 영향을 받은 호스트를 격리하고 휘발성 데이터를 캡처하며 관련 IOC 아티팩트를 모두 수집하고 식별된 C2 도메인 및 IP 주소를 차단하십시오. 지속적인 바로 가기, 예약 작업 및 레지스트리 변경을 찾기 위한 전체 포렌식 분석을 수행한 후, 악성 구성 요소를 제거하고 손상된 자격 증명을 재설정하십시오. 영향을 받은 사용자에게 알리고 관찰된 명령어 라인, 파일 경로 및 인프라 지표를 포함하도록 탐지 규칙을 업데이트하십시오.
“graph TB %% Class definitions classDef technique fill:#99ccff classDef operator fill:#ff9900 %% Node definitions node_initial[“<b>기법</b> – <b>T1566.001 스피어피싱 첨부</b><br/><b>설명</b>: 초기 접근을 얻기 위해 악성 첨부파일을 포함한 타겟 이메일을 보냅니다.”] class node_initial technique node_valid[“<b>기법</b> – <b>T1078 유효한 계정</b><br/><b>설명</b>: 손상된 합법적인 자격 증명을 사용하여 시스템에 접근합니다.”] class node_valid technique node_exploit[“<b>기법</b> – <b>T1190 공용 애플리케이션 익스플로잇</b><br/><b>설명</b>: 인터넷으로 노출된 서비스의 취약점을 이용하여 접근합니다.”] class node_exploit technique node_cmd[“<b>기법</b> – <b>T1059.003 윈도우 명령 셸</b><br/><b>설명</b>: cmd.exe를 통해 명령을 실행하여 악성 코드를 실행합니다.”] class node_cmd technique node_shortcut[“<b>기법</b> – <b>T1547.009 바로가기 수정</b><br/><b>설명</b>: 지속성을 위해 LNK 바로가기를 생성하거나 수정합니다.”] class node_shortcut technique node_task[“<b>기법</b> – <b>T1053 예약 작업</b><br/><b>설명</b>: 정해진 시간에 페이로드를 실행하기 위해 예약 작업을 사용합니다.”] class node_task technique node_active[“<b>기법</b> – <b>T1547.014 활성 설정</b><br/><b>설명</b>: 지속성을 위해 활성 설정 레지스트리 키를 활용합니다.”] class node_active technique node_token[“<b>기법</b> – <b>T1134.003 접근 토큰 조작</b><br/><b>설명</b>: 접근 토큰을 변경하여 상위 권한을 획득합니다.”] class node_token technique node_steg[“<b>기법</b> – <b>T1027.003 스테가노그래피</b><br/><b>설명</b>: 탐지를 피하기 위해 다른 파일 내부에 데이터를 숨깁니다.”] class node_steg technique node_masq[“<b>기법</b> – <b>T1036 위장</b><br/><b>설명</b>: 탐지를 피하기 위해 파일을 이름 변경하거나 합법적인 것처럼 위장합니다.”] class node_masq technique node_icon[“<b>기법</b> – <b>T1027.012 LNK 아이콘 스머글링</b><br/><b>설명</b>: LNK 아이콘 리소스에 악성 코드를 내장합니다.”] class node_icon technique node_proxy[“<b>기법</b> – <b>T1218 시스템 바이너리 프록시 실행</b><br/><b>설명</b>: 신뢰할 수 있는 시스템 바이너리를 악용하여 악성 코드를 실행합니다.”] class node_proxy technique node_guard[“<b>기법</b> – <b>T1480.001 실행 가드레일</b><br/><b>설명</b>: 실행 전 환경 조건을 검증합니다.”] class node_guard technique node_sandbox[“<b>기법</b> – <b>T1497 샌드박스 회피</b><br/><b>설명</b>: 분석용 샌드박스 환경을 탐지하고 회피합니다.”] class node_sandbox technique node_keylog[“<b>기법</b> – <b>T1056.001 키로깅</b><br/><b>설명</b>: 자격 증명을 얻기 위해 키입력을 캡처합니다.”] class node_keylog technique node_dump[“<b>기법</b> – <b>T1003 운영체제 자격 증명 덤프</b><br/><b>설명</b>: 운영체제에서 비밀번호 해시를 추출합니다.”] class node_dump technique node_sysinfo[“<b>기법</b> – <b>T1082 시스템 정보 발견</b><br/><b>설명</b>: 운영체제, 하드웨어, 소프트웨어 세부 정보를 수집합니다.”] class node_sysinfo technique node_inet[“<b>기법</b> – <b>T1016.001 인터넷 연결 발견</b><br/><b>설명</b>: 활성 네트워크 연결 및 IP 주소를 식별합니다.”] class node_inet technique node_stage[“<b>기법</b> – <b>T1074.001 데이터 스테이지</b><br/><b>설명</b>: 탈출 전 데이터를 로컬에 축적합니다.”] class node_stage technique node_archive[“<b>기법</b> – <b>T1560.001 유틸리티를 통한 아카이브</b><br/><b>설명</b>: ZIP과 같은 유틸리티를 사용하여 데이터를 압축합니다.”] class node_archive technique node_email[“<b>기법</b> – <b>T1114.002 원격 이메일 수집</b><br/><b>설명</b>: 이메일 계정을 통해 메시지를 수집합니다.”] class node_email technique node_http[“<b>기법</b> – <b>T1071.001 웹 프로토콜 HTTP</b><br/><b>설명</b>: 명령 및 제어 통신에 HTTP를 사용합니다.”] class node_http technique node_obfusc[“<b>기법</b> – <b>T1001 데이터 난독화</b><br/><b>설명</b>: 데이터의 내용을 숨기기 위해 인코딩 또는 암호화합니다.”] class node_obfusc technique node_dead[“<b>기법</b> – <b>T1102.001 데드 드롭 레졸버</b><br/><b>설명</b>: 숨겨진 위치에서 명령 또는 데이터를 가져옵니다.”] class node_dead technique node_encrypt[“<b>기법</b> – <b>T1573.001 암호화된 채널</b><br/><b>설명</b>: 통신을 은폐하기 위해 C2 트래픽을 암호화합니다.”] class node_encrypt technique node_exfil[“<b>기법</b> – <b>T1048.003 암호화되지 않은 비 C2 프로토콜을 통한 탈출</b><br/><b>설명</b>: C2와 연관되지 않은 프로토콜을 사용하여 암호화 없이 데이터를 전송합니다.”] class node_exfil technique %% Connections node_initial u002du002d>|leads_to| node_valid node_initial u002du002d>|leads_to| node_exploit node_valid u002du002d>|leads_to| node_cmd node_cmd u002du002d>|enables| node_shortcut node_cmd u002du002d>|enables| node_task node_cmd u002du002d>|enables| node_active node_cmd u002du002d>|enables| node_token node_cmd u002du002d>|enables| node_steg node_cmd u002du002d>|enables| node_masq node_cmd u002du002d>|enables| node_icon node_cmd u002du002d>|enables| node_proxy node_cmd u002du002d>|enables| node_guard node_cmd u002du002d>|enables| node_sandbox node_cmd u002du002d>|enables| node_keylog node_cmd u002du002d>|enables| node_dump node_cmd u002du002d>|enables| node_sysinfo node_cmd u002du002d>|enables| node_inet node_sysinfo u002du002d>|feeds| node_stage node_inet u002du002d>|feeds| node_stage node_stage u002du002d>|includes| node_archive node_stage u002du002d>|includes| node_email node_archive u002du002d>|used_by| node_http node_email u002du002d>|used_by| node_http node_http u002du002d>|uses| node_obfusc node_http u002du002d>|uses| node_dead node_http u002du002d>|uses| node_encrypt node_http u002du002d>|exfiltrates_via| node_exfil “
공격 흐름
탐지
명령 및 스크립팅 인터프리터를 통한 아카이브 소프트웨어 실행 (via process_creation)
보기
의심스러운 Powershell 문자열 (via powershell)
보기
의심스러운 Powershell 문자열 (via cmdline)
보기
자동 시작 위치에서의 의심스러운 바이너리 / 스크립트 (via file_event)
보기
문서 수집을 위한 XCOPY 실행 가능성 (via cmdline)
보기
Run 키에 추가된 의심스러운 파일 확장 [ASEPs] (via registry_event)
보기
IOCs (Emails) 탐지: APT15 사이버 스파이: 캠페인 및 TTP 분석
보기
APT15 명령 실행 및 지속 기법 탐지 [Windows 프로세스 생성]
보기
특정 HTTP 헤더를 통한 APT15 C2 통신 탐지 [Windows 네트워크 연결]
보기
시뮬레이션 실행
전제 조건: Telemetry & Baseline Pre‑flight Check가 통과되어야 합니다.
공격 내러티브 & 명령어:
- 준비: 적은 이미 사용자 계정을 손상시키고 엔드포인트에 상륙했습니다.
- 데이터 준비 (T1059.003): 정확한
xcopy과거 APT15 활동에서 관찰된 구문을 사용하여 공격자는 피해자의 데스크톱 파일을 숨겨진 WMI 임시 폴더로 복사하며, 시스템 활동에 자연스럽게 어우러지도록 타임스탬프를 유지합니다 (/D:09-29-2021). - 페이로드 실행 (T1218.002): 그 후 공격자는
rundll32.exe단명 경로 (C:DOCUME~1ALLUSE~1IEHelpermshtml.dll)를 사용하여 지속성을 키고자 악성 자바스크립트를 실행합니다. - 결과물: 두 명령은 모두 Sigma 규칙의
selection1andselection2와 각각 일치하는 구별되는 프로세스 생성 이벤트를 발생시키며 경고를 트리거합니다.
회귀 테스트 스크립트:
# -------------------------------------------------
# APT15 시뮬레이션 스크립트 – Sigma 규칙을 트리거
# -------------------------------------------------
# 1. 준비 디렉토리 및 더미 파일 생성
$src = "C:usersREDACTEDDesktop"
$dst = "C:windowstempwmi"
New-Item -Path $src -ItemType Directory -Force | Out-Null
New-Item -Path $dst -ItemType Directory -Force | Out-Null
Set-Content -Path "$srcsecret.txt" -Value "sensitive data" -Encoding UTF8
# 2. APT15에서 사용한 정확한 xcopy 명령어 실행
$xcopyCmd = "xcopy /D:09-29-2021 /S/Y/C c:usersREDACTEDDesktop c:windowstempwmi"
Invoke-Expression $xcopyCmd
# 3. 악성 DLL 배포 (합법적인 DLL 복제로 시뮬레이션)
$malDllSrc = "$env:SystemRootSystem32mshtml.dll"
$malDllDst = "C:DOCUME~1ALLUSE~1IEHelpermshtml.dll"
New-Item -Path (Split-Path $malDllDst) -ItemType Directory -Force | Out-Null
Copy-Item -Path $malDllSrc -Destination $malDllDst -Force
# 4. APT15 인수 패턴으로 rundll32 실행
$rundllCmd = "rundll32.exe C:DOCUME~1ALLUSE~1IEHelpermshtml.dll, IEHelper"
Invoke-Expression $rundllCmd
# -------------------------------------------------
# 시뮬레이션 종료
# -------------------------------------------------
정리 명령어:
# 준비 파일 및 디렉토리 제거
Remove-Item -Path "C:usersREDACTEDDesktopsecret.txt" -Force -ErrorAction SilentlyContinue
Remove-Item -Path "C:windowstempwmi" -Recurse -Force -ErrorAction SilentlyContinue
# 가짜 IEHelper 폴더 및 DLL 제거
Remove-Item -Path "C:DOCUME~1ALLUSE~1IEHelper" -Recurse -Force -ErrorAction SilentlyContinue
# 선택 사항: Sysmon 중지 (테스트에만 필요할 경우)
# & "$env:ProgramFilesSysinternalsSysmon.exe" -u