SOC Prime Bias: 심각

04 Nov 2025 06:05 UTC

SesameOp 백도어 탐지: Microsoft, 사이버 공격에서 OpenAI 보조기 API를 악용하는 새로운 멀웨어 발견

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon 팔로우
SesameOp 백도어 탐지: Microsoft, 사이버 공격에서 OpenAI 보조기 API를 악용하는 새로운 멀웨어 발견
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

SesameOp 악성코드 공격

Microsoft 연구원들은 은밀한 명령 및 제어 채널로 OpenAI Assistants API를 사용하는 SesameOp라는 새로운 백도어를 발견했습니다. 이 악성코드는 AppDomainManager 인젝션을 사용하여 .NET 프로세스에 주입되는 악의적인 Netapi64.dll 로더를 통해 전달됩니다. 구성은 DLL의 리소스에 저장되며, OpenAI 엔드포인트와 통신하여 명령을 수신하고 결과를 유출합니다. 이 위협은 Windows 호스트에서의 장기적인 스파이 활동을 위해 설계되었습니다.

조사

조사 결과, Eazfuscator.NET으로 난독화된 로더 DLL(Netapi64.dll)이 마커 파일과 뮤텍스를 생성한 후, OpenAIAgent.Netapi64라는 백도어 컴포넌트를 디코딩 및 실행하는 것을 확인했습니다. 백도어는 OpenAI API 키, 사전 키, 선택적 프록시를 포함하는 파이프 구분 구성파일을 구문 분석합니다. 이것은 명령이나 페이로드를 인코딩하는 벡터 스토어, 어시스턴트 및 메시지를 가져오기 위해 OpenAI Assistants API와 상호 작용하며, 이는 JScript 엔진을 통해 복호화되고 압축 해제되어 실행됩니다.

완화

Microsoft는 방화벽과 프록시 설정을 강화하고, Defender에서 변조 방지와 실시간 보호를 활성화하며, 잠재적으로 원치 않는 응용 프로그램에 대해서 차단 모드를 사용할 것을 권장합니다. api.openai.com으로의 아웃바운드 트래픽을 모니터링하고 특정 뮤텍스 및 임시 파일 생성을 탐지하면 활동을 감지하는 데 도움이 될 수 있습니다. 블록 모드와 자동 수정 작업을 수행하는 EDR을 배포하는 것도 권장됩니다.

대응

탐지 후, 감염된 호스트를 격리하고 악성 프로세스를 종료하며 Netapi64.dll과 관련된 임시 파일을 삭제하고 타협된 OpenAI API 키를 해제합니다. 추가적인 지속성 메커니즘을 위한 전체 포렌식 검토를 수행하고 모든 권한 있는 자격 증명을 변경하십시오. 식별된 뮤텍스, 파일 경로 및 OpenAI Assistants API로의 아웃바운드 연결을 탐지하기 위해 탐지 규칙을 업데이트하십시오.

공격 흐름

SesameOp 백도어 페이로드

시뮬레이션 실행

사전 요구 사항: Telemetry 및 Baseline 프리플라이트 체크가 통과되어야 합니다.

  • 공격 내러티브 및 명령:

    공격자는 감염된 Windows 호스트에 SesameOp 백도어를 배포했습니다. C2를 확립하기 위해 SesameOp는 HTTPS POST를 https://api.openai.com/v1/assistants 에 암호화된 명령 데이터를 전송합니다. 백도어가 svchost.exe (신뢰할 수 있는 시스템 프로세스로 보이는) 아래에서 실행되며 기본 시스템 프록시를 사용하기 때문에 추가적인 프로세스나 사용자 컨텍스트는 보이지 않으며, 단일 문자열 일치만이 유일한 지표입니다.

    1. 백도어 프로세스를 생성 (실제 악성코드를 피하기 위해 여기서는 PowerShell로 시뮬레이트 됩니다).
    2. 악성페이로드 전송 OpenAI Assistants 엔드포인트로.
    3. 연결 유지 단시간 동안 유지하여 보이는 NetworkConnect 이벤트를 생성합니다.
  • 회귀 테스트 스크립트:

    # Simulated SesameOp C2 communication – reproducible for testing
    $payload = @{
        "model" = "gpt-4"
        "messages" = @(
            @{ "role" = "system"; "content" = "You are a backdoor controller." },
            @{ "role" = "user";  "content" = "list processes" }
        )
    } | ConvertTo-Json -Depth 4