ブラインドイーグルの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サービスが連絡された可能性(DNS経由)
IOC(ソースIP)を検出: Blind EagleのGitHubローダーの内部操作を巡って
IOC(宛先IP)を検出: Blind EagleのGitHubローダーの内部操作を巡って
DuckDNS登録ドメイン接続の検出 [ネットワーク]
InstallUtilの実行とプロセスインジェクションのためのスクリプトファイルの書き込み [Windowsプロセス作成]
隠しウィンドウとバイパスによるPowerShellの実行 [Windows Powershell]
シミュレーションの実行
前提条件: テレメトリーおよびベースラインのプレフライトチェックの合格が必要です。
理論: このセクションでは、検出ルールを引き起こすために設計された敵の技術(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%へのスクリプト書き込みをシミュレート(selection_scriptwritingをトリガー) Write-Host "[*] ステップ1: ペイロードを$TargetFileにドロップ" -ForegroundColor Yellow "Write-Host 'Malicious Payload Executed'" | Out-File -FilePath $TargetFile -Encoding ascii # ステップ2: InstallUtil.exeの実行をシミュレート(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 }