SOC Prime Bias: Critical

02 2월 2026 14:44

UAC-0001 (APT28) CVE-2026-21509를 사용하는 공격

Author Photo
Ruslan Mikhalov SOC Prime에서 위협 연구 책임자 linkedin icon 팔로우
UAC-0001 (APT28) CVE-2026-21509를 사용하는 공격
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

요약

APT28 (UAC-0001로 추적됨)는 새로 공개된 Microsoft Office 취약점 CVE-2026-21509을 이용하여 우크라이나 정부 대상과 유럽 전역의 조직을 공격하기 위해 악성 페이로드를 전달하고 있습니다. 침투는 무기화된 DOC로 시작하여 추가 구성 요소를 가져오기 위해 WebDAV 요청을 강제하고, DLL 기반 로더를 실행하여 Covenant 프레임워크를 시작하는 COM 하이재킹을 설정합니다. 이 활동은 합법적인 Filen 클라우드 스토리지를 네트워크 인프라의 일부로 활용합니다. 이 캠페인은 2026년 1월 말에 관찰되었습니다.

조사

악성 DOC 파일 분석 결과, Office에서 열면 WebDAV 연결이 시작되어 EhStoreShell.dll이라는 DLL과 PNG 셸코드 이미지를 다운로드하는 것을 확인했습니다. DLL은 CLSID COM 등록 하이재킹을 통해 지속성을 유지하며, 탐색기.exe를 실행하도록 하는 OneDriveHealth라는 예약 작업이 생성됩니다. 로더는 그런 다음 Covenant를 시작하고, 운영자 제어는 Filen을 기반으로 한 엔드포인트를 통해 이루어집니다.

완화

CVE-2026-21509를 해결하는 Microsoft의 Office 업데이트를 지체 없이 적용하십시오. 가능하면 Office 내에서 WebDAV 사용을 비활성화하거나 엄격히 제한하십시오. 악성 CLSID 레지스트리 등록을 제거하고 OneDriveHealth 예약 작업을 삭제하십시오. Filen 도메인과 관련 IP에 대한 출력 접근을 차단하고, DLL 및 PNG 아티팩트 생성 여부를 모니터링하십시오.

대응

EhStoreShell.dll, SplashScreen.png 생성 및 하이재킹된 CLSID 레지스트리 경로 아래의 변경 사항을 주의 깊게 관찰하십시오. OneDriveHealth와 일치하는 예약 작업 생성 여부를 탐지하고 조사하십시오. Office 프로세스 활동과 Filen 도메인으로의 외부 연결을 연관 지어 문서를 격리하고, 영향을 받은 시스템에 대한 전체 호스트 포렌식을 수행하십시오.

graph TB %% Class definitions classDef action fill:#99ccff classDef file fill:#ffcc99 classDef process fill:#ccffcc classDef tool fill:#cccccc %% Nodes action_phishing[“<b>행동</b> – <b>T1566.001 스피어피싱 첨부파일</b><br/>APT28은 우크라이나 정부 통신으로 위장한 악성 DOC 파일(예: BULLETEN_H.doc)을 전송했다.”] class action_phishing action file_doc[“<b>파일</b> – 악성 DOC<br/>CVE-2026-21509 익스플로잇을 포함한 BULLETEN_H.doc”] class file_doc file action_exploit_client[“<b>행동</b> – <b>T1203 클라이언트 실행을 위한 취약점 악용</b><br/>DOC를 열면 Microsoft Office의 CVE-2026-21509가 악용되어 코드 실행이 이루어졌다.”] class action_exploit_client action action_download_payload[“<b>행동</b> – <b>T1210 원격 서비스 악용</b><br/>WebDAV 요청을 통해 공격자 제어 서버에서 추가 페이로드가 다운로드되었다.”] class action_download_payload action file_dll[“<b>파일</b> – 악성 DLL<br/>EhStoreShell.dll”] class file_dll file file_png[“<b>파일</b> – 쉘코드가 포함된 이미지<br/>SplashScreen.png”] class file_png file file_xml[“<b>파일</b> – XML 작업 정의<br/>office.xml”] class file_xml file action_com_hijack[“<b>행동</b> – <b>T1546.015 COM 하이재킹</b><br/>레지스트리 CLSID {D9144DCD-E998-4ECA-AB6A-DCD83CCBA16D}가 EhStoreShell.dll로 재지정되어 페이로드가 로드되었다.”] class action_com_hijack action action_scheduled_task[“<b>행동</b> – <b>T1546.009 예약 작업을 통한 AppCert DLL</b><br/>악성 DLL 실행 및 explorer.exe 재시작을 위해 예약 작업 \”OneDriveHealth\”(XML)가 생성되었다.”] class action_scheduled_task action action_process_injection[“<b>행동</b> – <b>T1055.001 프로세스 인젝션(DLL)</b><br/>EhStoreShell.dll이 SplashScreen.png의 쉘코드를 explorer.exe에 주입했다.”] class action_process_injection action process_explorer[“<b>프로세스</b> – explorer.exe”] class process_explorer process action_verclsid_proxy[“<b>행동</b> – <b>T1218.012 시스템 바이너리 프록시 실행</b><br/>수정된 CLSID로 인해 Windows가 Verclsid 바이너리를 통해 악성 DLL을 로드했다.”] class action_verclsid_proxy action action_c2_webservice[“<b>행동</b> – <b>T1102.001 / T1102.002 웹 서비스 C2</b><br/>COVENANT C2 트래픽은 dead drop 및 양방향 통신을 위해 합법적인 Filen 클라우드 도메인(*.filen.io)에 호스팅되었다.”] class action_c2_webservice action %% Connections action_phishing –>|전달| file_doc file_doc –>|트리거| action_exploit_client action_exploit_client –>|유도| action_download_payload action_download_payload –>|다운로드| file_dll action_download_payload –>|다운로드| file_png action_download_payload –>|다운로드| file_xml action_download_payload –>|활성화| action_com_hijack action_com_hijack –>|로드| file_dll action_com_hijack –>|생성| action_scheduled_task action_scheduled_task –>|실행| file_dll action_scheduled_task –>|재시작| process_explorer action_process_injection –>|주입| process_explorer file_dll –>|사용| action_process_injection file_png –>|쉘코드 제공| action_process_injection action_verclsid_proxy –>|호출| file_dll action_c2_webservice –>|통신| file_xml

공격 흐름

탐지

의심스러운 Taskkill 실행 (cmdline 활용)

SOC Prime 팀
2026년 2월 2일

Schtasks가 의심스러운 디렉터리 / 바이너리 / 스크립트를 가리킴 (cmdline 활용)

SOC Prime 팀
2026년 2월 2일

탐색기 COM 하이재킹 가능성 (registry_event 활용)

SOC Prime 팀
2026년 2월 2일

Search / Search-MS URI 프로토콜 핸들러 남용 가능성 (cmdline 활용)

SOC Prime 팀
2026년 2월 2일

의심스러운 예약 작업 생성, 실행, 삭제 동작 (process_creation 활용)

SOC Prime 팀
2026년 2월 2일

서드 파티 서비스 / 도구를 통해 데이터 침입 / 유출 / C2 가능성 (proxy 활용)

SOC Prime 팀
2026년 2월 2일

서드 파티 서비스 / 도구를 통해 데이터 침입 / 유출 / C2 가능성 (dns 활용)

SOC Prime 팀
2026년 2월 2일

LOLBAS Regsvr32 (cmdline 활용)

SOC Prime 팀
2026년 2월 2일

IOCs (DestinationIP) 탐지: CERT-UA 발표: UAC-0001 (APT28) CVE-2026-21509 사용 공격

SOC Prime AI 규칙
2026년 2월 2일

IOCs (HashSha256) 탐지: CERT-UA 발표: UAC-0001 (APT28) CVE-2026-21509 사용 공격

SOC Prime AI 규칙
2026년 2월 2일

IOCs (HashSha1) 탐지: CERT-UA 발표: UAC-0001 (APT28) CVE-2026-21509 사용 공격

SOC Prime AI 규칙
2026년 2월 2일

IOCs (HashMd5) 탐지: CERT-UA 발표: UAC-0001 (APT28) CVE-2026-21509 사용 공격

SOC Prime AI 규칙
2026년 2월 2일

IOCs (Emails) 탐지: CERT-UA 발표: UAC-0001 (APT28) CVE-2026-21509 사용 공격

SOC Prime AI 규칙
2026년 2월 2일

IOCs (SourceIP) 탐지: CERT-UA 발표: UAC-0001 (APT28) CVE-2026-21509 사용 공격

SOC Prime AI 규칙
2026년 2월 2일

COM 하이재킹 탐지의 레지스트리 수정 [Windows 레지스트리 이벤트]

SOC Prime AI 규칙
2026년 2월 2일

APT28 사이버 공격 관련 악성 네트워크 연결 [Windows 네트워크 연결]

SOC Prime AI 규칙
2026년 2월 2일

확장 저장소 쉘 확장으로 가장한 의심스러운 파일 생성 [Windows 파일 이벤트]

SOC Prime AI 규칙
2026년 2월 2일

시뮬레이션 실행

필수 조건: 텔레메트리 및 기준선 검사 사전 비행 확인이 완료되어야 합니다.

근거: 이 섹션은 탐지 규칙을 트리거하기 위해 설계된 적군 기술(TTP) 실행을 자세히 설명합니다. 명령어와 설명은 반드시 식별된 TTP를 직접 반영하고, 탐지 논리에 의해 기대되는 정확한 텔레메트리를 생성해야 합니다. 추상적이거나 관련 없는 예시는 잘못된 진단을 초래할 것입니다.

  • 공격 내러티브 & 명령어:
    적군은 피해자 기기에서 거점을 확보하고 지속성과 은밀한 코드 실행을 달성하고자 합니다. 이들은 거의 사용되지 않는 CLSID를 선택합니다. {D9144DCD-E998-4ECA-AB6A-DCD83CCBA16D} 이는 합법적인 소프트웨어에 의해 참조될 가능성이 낮습니다. PowerShell(T1218.010)을 사용하여 악성 DLL 경로를 InProcServer32 서브 키에 기록하고, 필요에 따라 ThreadingModel 값을 "Both" 로 설정하여 COM 로딩 요구를 만족시킵니다. 등록이 완료되면, 이 COM 객체를 인스턴스화하려는 어떤 합법적인 애플리케이션도 공격자가 제어하는 DLL을 로드하게 되며, 이는 이후 rundll32.exe (T1218.009)을 호출하여 공격자의 C2 인프라(T1584.001)에 연결하는 페이로드를 실행할 수 있습니다.

  • 회귀 테스트 스크립트:

    # -------------------------------
    # COM 하이재킹 시뮬레이션 (T1546.015)
    # -------------------------------
    $clsid = '{D9144DCD-E998-4ECA-AB6A-DCD83CCBA16D}'
    $regPath = "HKLM:SoftwareClassesCLSID$clsidInProcServer32"
    
    # 키가 존재하는지 확인
    New-Item -Path $regPath -Force | Out-Null
    
    # 기본 값을 악성 DLL 경로로 설정 (DLL이 디스크에 이미 있다고 가정)
    $maliciousDll = "C:Tempevil.dll"
    Set-ItemProperty -Path $regPath -Name '(Default)' -Value $maliciousDll
    
    # 선택 사항: ThreadingModel을 Both로 설정 (일부 COM 객체는 이를 요구함)
    Set-ItemProperty -Path $regPath -Name 'ThreadingModel' -Value 'Both'
    
    Write-Host "[+] CLSID $clsid에 대한 레지스트리 하이재킹이 $maliciousDll를 가리키도록 생성되었습니다."
  • 정리 명령어:

    # -------------------------------
    # COM 하이재킹 시뮬레이션 정리
    # -------------------------------
    $clsid = '{D9144DCD-E998-4ECA-AB6A-DCD83CCBA16D}'
    $regPath = "HKLM:SoftwareClassesCLSID$clsid"
    
    # 전체 CLSID 키 트리 제거
    if (Test-Path $regPath) {
        Remove-Item -Path $regPath -Recurse -Force
        Write-Host "[+] 레지스트리에서 하이재킹된 CLSID $clsid을 제거했습니다."
    } else {
        Write-Host "[*] CLSID $clsid이 존재하지 않음; 정리할 것이 없습니다."
    }