SOC Prime Bias: 심각

04 11월 2025 09:05

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

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon Follow
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로의 아웃바운드 연결을 탐지하기 위해 탐지 규칙을 업데이트하십시오.

graph TB %% 클래스 정의 classDef action fill:#99ccff classDef process fill:#ffcc99 classDef tool fill:#cccccc classDef malware fill:#ff9999 classDef operator fill:#ff9900 %% 노드 action_initial_loader[“<b>행동</b> – 초기 로더 배포<br/><b>기법</b>: T1546.010 AppInit DLLs, T1546.009 AppCert DLLs, T1546.007 Netsh Helper DLL”] class action_initial_loader action process_dll_loaded[“<b>프로세스</b> – DLL 로드됨 (Netapi64.dll)”] class process_dll_loaded process action_hijack_flow[“<b>행동</b> – 실행 흐름 하이재킹: AppDomainManager<br/><b>기법</b>: T1574.014 (지속성 및 권한 상승을 위한 실행 흐름 수정)”] class action_hijack_flow action action_inject_code[“<b>행동</b> – 악성 .NET 코드 주입<br/><b>기법</b>: T1027 (난독화된 파일 또는 정보)”] class action_inject_code action malware_backdoor[“<b>악성코드</b> – 난독화된 백도어 (OpenAIAgent.Netapi64)<br/>난독화: Eazfuscator.NET, XOR, Base64, GZIP”] class malware_backdoor malware tool_mavinject[“<b>도구</b> – Mavinject<br/><b>기법</b>: T1218.013 (시스템 바이너리 프록시 실행)”] class tool_mavinject tool action_js_injection[“<b>행동</b> – JScriptEngine(Eval.JScriptEvaluate)를 통한 입력 주입”] class action_js_injection action action_execute_payloads[“<b>행동</b> – 공격자 페이로드 실행”] class action_execute_payloads action action_archive_data[“<b>행동</b> – 수집된 데이터 아카이브 (AES/GZIP)<br/><b>기법</b>: T1560.003 (수집 데이터 아카이브)”] class action_archive_data action action_send_results[“<b>행동</b> – OpenAI Assistants API를 통해 결과 전송<br/><b>기법</b>: T1071.001 (웹 프로토콜 HTTPS), T1102.002 (웹 서비스), T1001.003 (데이터 난독화 – 프로토콜 가장)”] class action_send_results action action_cleanup[“<b>행동</b> – 아티팩트 정리<br/><b>기법</b>: T1070.004 (파일 삭제), T1027.005 (도구에서 지표 제거)”] class action_cleanup action %% 엣지 action_initial_loader u002du002d>|로드| process_dll_loaded process_dll_loaded u002du002d>|하이재킹| action_hijack_flow action_hijack_flow u002du002d>|주입| action_inject_code action_inject_code u002du002d>|생성| malware_backdoor malware_backdoor u002du002d>|사용| tool_mavinject tool_mavinject u002du002d>|주입 대상| action_js_injection action_js_injection u002du002d>|실행| action_execute_payloads action_execute_payloads u002du002d>|아카이브| action_archive_data action_archive_data u002du002d>|유출| action_send_results action_send_results u002du002d>|정리| action_cleanup

공격 흐름

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