RUSTGate: A Drone-Swarm Lure Points to Potential Defence-Sector Targeting
Detection stack
- AIDR
- Alert
- ETL
- Query
요약
새롭게 식별된 Rust 기반 원격 접근 트로이 목마(RAT)인 RUSTGate는 드론-스웜 연구 테마를 소셜 엔지니어링 유인책으로 사용합니다. 이 악성코드는 악성 LNK 파일, 배치 다운로드 프로그램 및 예약된 작업을 포함한 다중 단계 감염 체인을 따르며 최종 임플란트를 배포합니다. 활성화되면 RUSTGate는 암호화된 HTTP C2 통신을 통해 광범위한 파일 탈취 및 정보 유출에 초점을 맞춥니다.
조사
조사는 전체 감염 체인을 노출한 Hunt.io를 통해 발견된 준비 서버에 집중되었습니다. 연구자들은 합성 요청을 사용하여 C2 프로토콜과 상호 작용하였으며 메시지 난독화를 위해 AES-256-GCM을 사용하고 Python Flask 기반 백엔드를 식별했습니다. 분석에서는 또한 RUSTGate의 파일 중심 탈취 로직 및 자동화된 데이터 수집 루틴이 드러났습니다.
완화
수비자들은 rundll32.exe 를 사용하여 명령 쉘을 실행하는 의심스러운 LNK 파일을 감시하는 데 우선순위를 두어야 합니다. Temp 디렉토리에 대한 다운로드에 대한 엄격한 통제와 비인가 예약 작업 생성을 모니터링하는 것도 중요합니다. 비표준 포트를 통해 이상한 IP 주소로의 아웃바운드 HTTP 트래픽을 감지하는 것 또한 C2 활동을 더욱 방해할 수 있습니다.
대응
RUSTGate 활동이 감지되면 대응팀은 즉시 영향을 받은 호스트를 격리하고 upload_state.json 파일을 보존하여 어떤 데이터가 손상되었는지를 파악해야 합니다. 식별된 C2 IP에 대한 전체 패킷 캡처를 수집하여 역으로 복호화해야 합니다. 또한 시스템은 NetworkDiagnostics 예약 작업과 C:WindowsTemp.
에 있는 잔여 파일을 점검해야 합니다.
우리는 이 부분을 계속 업데이트하고 있습니다.
탐지
더블 확장자 의심 LNK 파일 (cmdline을 통해)
의심스러운 CURL 사용 (cmdline을 통해)
의심스러운 파일 다운로드 직접 IP (프록시를 통해)
IOC(해시Sha256)로 탐지: RUSTGate: 드론-스웜 유인이 잠재적인 방어 부문 타겟을 나타냄
IOC(소스IP)로 탐지: RUSTGate: 드론-스웜 유인이 잠재적인 방어 부문 타겟을 나타냄
IOC(목적지IP)로 탐지: RUSTGate: 드론-스웜 유인이 잠재적인 방어 부문 타겟을 나타냄
RUSTGate 명령 제어 통신 탐지 [Windows 네트워크 연결]
RUSTGate 임플란트 활동 탐지 [Windows 파일 이벤트]
Rundll32, Cmd, Curl 및 PowerShell을 통한 RUSTGate 명령 실행 탐지 [Windows 프로세스 생성]
시뮬레이션 실행
-
공격 서사 및 명령: 적대자는 Windows 워크스테이션에 발판을 성공적으로 마련했습니다. 제어를 유지하고 추가 명령을 받기 위해 RUSTGate 악성코드는 C2(Command-and-Control) 서버와 “하트비트” 또는 “체크인”을 수행해야 합니다. 악성코드는 하드코딩된 IP
5.252.177.210에서 포트8090를 통해 연결하도록 되어 있습니다. 표준 웹 브라우징 트래픽과 구분하기 위해 특정 URI 경로, 예를 들어/register와 같은 경로를 요청에 추가합니다. 이 시뮬레이션은 PowerShell을 사용하여 이 정확한 네트워크 핸드셰이크를 모방하여 SOC의 탐지 논리가 이 특정 C2 패턴에 반응하는지 검증합니다. -
회귀 테스트 스크립트:
# RUSTGate C2 체크인 시뮬레이션 스크립트 # 이 스크립트는 RUSTGate의 네트워크 서명을 모방하여 탐지를 검증합니다. $TargetIP = "5.252.177.210" $TargetPort = "8090" $TargetURI = "/register" $Url = "http://$($TargetIP):$($TargetPort)$($TargetURI)" Write-Host "[*] $Url로 RUSTGate C2 통신을 시뮬레이션 중입니다." -ForegroundColor Cyan try { # 특정 URI 및 포트를 생성하기 위해 Invoke-WebRequest 사용 $Response = Invoke-WebRequest -Uri $Url -Method Get -ErrorAction SilentlyContinue Write-Host "[+] 요청이 성공적으로 전송되었습니다 (IP가 비활성 상태인 경우 예상된 연결 오류)." -ForegroundColor Green } catch { Write-Host "[!] 요청이 완료되었습니다 (존재하지 않는 C2 엔드포인트에 대해 예상됨)." -ForegroundColor Yellow } -
정리 명령:
# 이 시뮬레이션에 의해 생성된 지속적인 아티팩트가 없습니다. # 단순히 프로세스 종료를 확인합니다. Write-Host "[*] 시뮬레이션 완료. 정리 필요 없음." -ForegroundColor White