블라인드 이글의 GitHub 로더, 끈질긴 운영자 드러내다
Detection stack
- AIDR
- Alert
- ETL
- Query
요약
GitHub 기반 멀웨어 로더에 대한 조사는 Blind Eagle과 관련 있을 가능성이 있는 위협 행위자가 운영하는 정교한 생산 라인을 밝혀냈습니다. 운용자는 GitHub, Bitbucket, AWS S3 등 합법적인 서비스를 악용하여 악성 페이로드와 스테이징 콘텐츠를 호스팅합니다. 이 캠페인은 여러 RAT 계열, 콜롬비아 기관을 겨냥한 피싱 템플릿, 그리고 탐지를 회피하기 위한 상용 크립터를 포함합니다.
조사
조사는 GitHub 커밋 메타데이터에서 발견된 이메일 주소에서 유출된 스틸러 로그로 전환하면서 시작되었습니다. 이는 Ghost 라는 이름의 손상된 작업 스테이션을 노출시켰으며, 여기에는 여러 RAT 빌드 디렉토리, 피싱 템플릿 및 대량 이메일 도구가 포함되어 있습니다. 시스템 분석 결과, 유인물 개발, 맬웨어 준비, 인프라 관리에 이르는 행위자의 엔드 투 엔드 워크플로우가 드러났습니다.
완화
방어자는 메시지 본문에 직접 제공되는 비밀번호로 암호화된 아카이브를 식별하도록 이메일 필터링을 구성해야 합니다. 보안 팀은 특히 wscript.exe or cscript.exe 을 숨겨진 PowerShell 세션으로 실행할 때 수상한 프로세스 관계를 모니터링해야 합니다. 또한, InstallUtil.exe 의 비정상적인 실행을 감지하고 원본 콘텐츠 서비스(예: raw.githubusercontent.com.
)에 대한 아웃바운드 액세스를 제한해야 합니다.
악성 활동이 감지되면 영향을 받은 엔드포인트를 즉시 격리하여 추가적인 횡적 이동이나 데이터 유출을 방지해야 합니다. 응답자는 알려진 C2 도메인 및 악성 파일 해시를 검색해야 하며, 이메일 게이트웨이 로그를 검토하여 유사한 법률 또는 세금 테마의 피싱 유인을 확인해야 하며, 의심스러운 링크와 상호작용한 사용자의 자격 증명을 재설정해야 합니다.
공격 흐름
이 부분은 아직 업데이트 중입니다.
탐지
비정상적인 최고 수준 도메인(TLD) DNS 요청에 의한 의심스러운 명령 및 제어(로그 통해)
서드 파티 서비스/도구를 통한 발생 가능한 데이터 침투/유출/명령 및 제어(프록시 통해)
서드 파티 서비스/도구를 통한 발생 가능한 데이터 침투/유출/명령 및 제어(DNS 통해)
동적 DNS 서비스에 접속된 가능성 (DNS 통해)
탐지: Still Circling: Blind Eagle의 GitHub 로더 내부에 있는 운영자 탐지
탐지: Still Circling: Blind Eagle의 GitHub 로더 내부에 있는 운영자 탐지
DuckDNS에 등록된 도메인 연결 탐지 [네트워크]
프로세스 주입을 위한 InstallUtil 실행 및 스크립트 파일 작성 [Windows 프로세스 생성]
숨겨진 창 및 우회로 Wscript PowerShell 실행 [Windows Powershell]
시뮬레이션 실행
사전 요구 사항: Telemetry & Baseline Pre-flight Check를 통과해야 합니다.
이유: 이 섹션은 탐지 규칙을 트리거하도록 설계된 적대 기술(TTP)의 정확한 실행을 자세히 설명합니다. 명령과 내러티브는 식별된 TTP를 직접 반영해야 하며 탐지 논리가 기대하는 정확한 텔레메트리를 생성해야 합니다. 추상적이거나 관련이 없는 예제는 오진의 원인이 될 것입니다.
-
공격 내러티브 및 명령: 최초 침입 경로를 획득한 적대자는 피싱 첨부파일을 통해 이를 얻었습니다. 지속성을 확보하고 프로세스 주입을 준비하기 위해 공격자는 악성 페이로드를 떨어뜨리기 위해 PowerShell 스크립트를 사용하여
%ProgramData%디렉터리에 방치하여 표준 사용자 프로필 모니터링을 회피합니다. 파일이 드롭된 후 공격자는InstallUtil.exe(정당한 .NET 유틸리티)를 실행하여 악성 DLL을 실행하려고 하며 신뢰할 수 있는 Microsoft 바이너리를 사용하여 어플리케이션 화이트 리스트를 우회하려고 합니다. -
회귀 테스트 스크립트:
# 시뮬레이션 스크립트: InstallUtil 및 ProgramData 파일 쓰기 트리거 $ErrorActionPreference = "Stop" $TargetFile = "$env:ProgramDatamalicious_payload.ps1" $InstallUtilPath = "$env:SystemRootMicrosoft.NETFramework64v4.0.30319InstallUtil.exe" Write-Host "[*] 탐지 유효성 검증 시뮬레이션 시작..." -ForegroundColor Cyan # 1단계: PowerShell을 통해 %ProgramData%에 스크립트 작성 시뮬레이션 (Triggers selection_scriptwriting) Write-Host "[*] 1단계: $TargetFile에 페이로드 떨어뜨리기" -ForegroundColor Yellow "Write-Host 'Malicious Payload Executed'" | Out-File -FilePath $TargetFile -Encoding ascii # 2단계: InstallUtil.exe 실행 시뮬레이션 (Triggers selection_installutil) # 합법적으로 보이는 사용을 시뮬레이션하기 위해 더미 인수를 사용합니다. Write-Host "[*] 2단계: InstallUtil.exe 실행" -ForegroundColor Yellow Start-Process -FilePath $InstallUtilPath -ArgumentList "/U" -Wait Write-Host "[+] 시뮬레이션 완료. SIEM에서 경보를 확인하세요." -ForegroundColor Green -
정리 명령:
# 정리 스크립트 $TargetFile = "$env:ProgramDatamalicious_payload.ps1" if (Test-Path $TargetFile) { Remove-Item $TargetFile -Force Write-Host "[+] $TargetFile 정리 완료" -ForegroundColor Green } else { Write-Host "[-] 대상 파일을 찾을 수 없으므로 정리할 것이 없습니다." -ForegroundColor Red }