SOC Prime Bias: Medium

30 Jun 2026 06:44 UTC

Windows 위협에서의 COM 사용 소개

Author Photo
SOC Prime Team linkedin icon 팔로우
Windows 위협에서의 COM 사용 소개
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

요약

이 연구는 맬웨어가 Windows 구성 요소 개체 모델 (COM)을 남용하여 횡적 이동, 지속성, 방어 회피와 같은 악의적 행동을 어떻게 지원하는지 조사합니다. 다양한 프로그래밍 언어가 Windows 서비스를 상호 작용할 수 있도록 하는 COM의 역할과 위협 행위자가 COM 인터페이스를 통해 간접적인 vtable 호출로 기능을 숨기는 방법을 설명합니다. 이 글에는 Qakbot, Gh0stRAT, Attor, WarmCookie와 같은 맬웨어 패밀리에 대한 기술적 사례 연구가 포함되어 이러한 방법을 실제로 보여줍니다.

조사

조사는 불투명한 GUID와 vtable 오프셋을 의미 있는 Windows 클래스 및 메서드 호출로 변환하기 위해 COM이 많이 사용된 바이너리를 리버스 엔지니어링 하는 데 초점을 맞춥니다. 연구자들은 OleView.NET 및 ComView와 같은 도구를 사용하여 레지스트리 등록 및 인터페이스 정의를 검사했습니다. 사례 연구는 COM 활성화 API를 분석하는 것이 맬웨어 샘플의 실제 목적과 동작을 드러낼 수 있음을 보여주었습니다.

완화

이 기사는 특정 강화 조치보다는 분석 및 탐지에 더욱 중점을 두고 있습니다. 그러나 비정상적인 COM 활성화 동작을 모니터링하고 CLSID 및 IID와 연결된 레지스트리 항목을 감사하는 것이 가시성을 개선할 수 있다고 제안합니다. BITS 및 작업 스케줄러와 같은 COM 노출 서비스를 강하게 이해하는 것도 효과적인 모니터링과 위협 사냥에 중요합니다.

대응

의심스러운 COM 활동이 식별되면, 대응자는 COM 활성화를 시작하는 프로세스를 분석하고 어떤 CLSID 및 IID가 호출되고 있는지 확인해야 합니다. 부모 프로세스를 추적하고 관련된 예약 작업이나 BITS 작업을 찾는 것도 중요합니다. 동적 계측 및 COM 중심의 로깅 도구는 악의적 API 활동의 전체 체인을 재구성하는 데 도움이 될 수 있습니다.

"flowchart TD step_initial_access["초기 접근: Qakbot이 로더로서 피싱 이메일을 통해 배포됨."] step_c2_ingress["C2 및 도구 이행: Attor가 신뢰할 수 있는 페이로드 전송을 위해 BITS (IBackgroundCopyJob)를 사용함."] step_persistence["지속성: Gh0stRAT 및 WarmCookie가 예약 작업을 생성하기 위해 작업 스케줄러 COM 인터페이스 (ITaskService)를 사용함."] rules_for_persistence("<b>규칙 이름</b>: COM 개체를 통한 예약 작업 가능성 (cmdline 기반)<br/><b>규칙 ID</b>: 75015b1f-6813-4288-aa82-b92bb31d8473") step_lateral_movement["횡적 이동 및 원격 실행: 네트워크를 통한 원격 객체 활성화를 위한 DCOM의 사용."] step_initial_access –>|leads_to| step_c2_ingress step_c2_ingress –>|leads_to| step_persistence step_persistence –>|leads_to| step_lateral_movement step_persistence -.->|detected_by| rules_for_persistence "

공격 흐름

시뮬레이션 실행

필수 조건: Telemetry & Baseline Pre-flight Check가 통과해야 함.

이유: 이 섹션은 탐지 규칙을 유발하기 위해 설계된 적대자의 기법 (TTP)의 정확한 실행을 자세히 설명합니다. 명령어와 내러티브는 식별된 TTP를 직접 반영하고 탐지 논리에 의해 예상되는 정확한 원격 측정을 생성하는 것을 목표로 해야 합니다. 추상적이거나 관련 없는 예시는 오진을 초래할 수 있습니다.

  • 공격 내러티브 및 명령어: 적대자는 횡적 이동 또는 원격 서비스 조작을 수행할 의도가 있습니다. 일반적인 도구 패턴을 찾는 단순 시그니처 기반 탐지를 피하기 위해, 그들은 특수 유틸리티 (여기서는 example.exe)로 시뮬레이션 되어 있으며, COM/DCOM 보안 초기화를 유발하는 특정 인수를 전달합니다. CoCreateInstanceEx and CoInitializeSecurity 를 명령줄 인수로 전달하여, 공격자는 원격 상호작용을 촉진하기 위해 외부 프로세스 COM 인터페이스의 보안 컨텍스트를 구성하려고 시도하고 있습니다.

  • 회귀 테스트 스크립트:

    # 주의: 이 스크립트는 규칙 논리에 따라 System32에 'example.exe'가 존재한다고 가정합니다.
    # 이는 placeholder이기 때문에, 우리는 테스트를 위해 실행 파일을 시뮬레이션으로 더미 파일을 생성할 것입니다.
    
    $targetPath = "C:WindowsSystem32example.exe"
    
    # 시뮬레이션 목적을 위해 더미 실행 파일을 생성합니다
    if (-not (Test-Path $targetPath)) {
        Write-Host "시뮬레이션을 위한 더미 실행 파일 생성 중..."
        New-Item -Path $targetPath -ItemType File -Force
    }
    
    # 의심스러운 명령줄의 실행을 시뮬레이트합니다
    # 이 명령어는 탐지 규칙의 CommandLine 선택을 유도하기 위해 설계되었습니다
    Start-Process -FilePath $targetPath -ArgumentList "--action CoCreateInstanceEx --setup CoInitializeSecurity" -Wait
  • 정리 명령어:

    # 시뮬레이션을 위해 생성된 더미 실행 파일 제거
    Remove-Item -Path "C:WindowsSystem32example.exe" -Force