ゴギッター、GitShellPad、GoShellを用いたAPT攻撃がインド政府を標的に | パート1
Detection stack
- AIDR
- Alert
- ETL
- Query
概要
Zscaler ThreatLabz は、インドの政府機関を標的とするパキスタン関連のAPTグループによって実行される Gopher Strike と Sheet Attack の2つのキャンペーンを発見しました。この活動では、GOGITTER、GITSHELLPAD、GOSHELL などの Golang ベースのツールを導入してペイロードを準備し、プライベートな GitHub リポジトリを C2 として使用し、最終的に Cobalt Strike ビーコンを展開します。最初のアクセスは、マルウェアを含む ISO ファイルをダウンロードするように被害者を誘導するスピアフィッシングPDFを通じて行われます。オペレーターは、環境チェック、ファイルパディング、スケジュールされたタスクの永続化を含む、複数の回避方法を重ねています。
調査
分析によれば、GOGITTER は windows_api.vbs スクリプトの存在を確認し、存在しない場合はそれを作成し、50 分ごとに実行するようにスケジュールされたタスクを登録します。GITSHELLPAD は GitHub REST API を使用してコマンドの取得とデータの流出を行い、GOSHELL は選択されたホスト名でのみステージされた Cobalt Strike ビーコンを条件付きで読み込みます。ツールはハードコーディングされたURLとユーザーエージェント文字列を埋め込んで、分析自動化やサンドボックス化を妨げます。キャンペーンは、Adobe_update.zip などのサポートペイロードをホストするためにプライベートな GitHub リポジトリも使用します。
緩和策
信頼されていない/署名されていない Golang バイナリの実行をブロックし、スケジュールされたタスクの作成に対する厳格な許可リストとレビューを強制します。既知の悪意のあるドメインや GitHub を C2 として使用する GitHub リソースへのアウトバウンドトラフィックを監視し、開発者以外のエンドポイントからの異常な GitHub API 使用を含みます。PDF 添付ファイルの難読化をスキャンし、ISO ダウンロードにリダイレクトするリンクをブロックして、メールセキュリティを強化します。エンドポイントの検出は、windows_api.vbs の作成と 50 分間隔に一致する定期タスクの実行パターンで警告を発するべきです。
対応策
IOC が検出された場合、エンドポイントを隔離し、スケジュールされたタスクを停止および削除し、関連する悪意のあるアーティファクトを削除します。GitHub ベースの C2 アクティビティを法医学的にレビューし、コマンド実行ログを保存し、可能であれば流出またはアップロードされたコンテンツを削除します。影響を受けたアカウントの資格情報をリセットし、横移動を調査し、抽出されたインジケータで検出を更新して環境全体に関連する活動を特定します。
攻撃フロー
検出
可能なIPルックアップドメイン通信試行(via dns)
表示
不審なプロセスがコマンドラインでURLを使用(via cmdline)
表示
疑わしいCURL使用(via cmdline)
表示
システム列挙の可能性(via cmdline)
表示
アカウントまたはグループ列挙の可能性(via cmdline)
表示
アーカイブから抽出された疑わしいファイル(via file_event)
表示
システムネットワーク構成の発見の可能性(via cmdline)
表示
IOC(HashSha1)による検出:GOGITTER、GITSHELLPAD、および GOSHELL を使用した政府標的 APT 攻撃 | パート1
表示
IOC(HashMd5)による検出:GOGITTER、GITSHELLPAD、および GOSHELL を使用した政府標的 APT 攻撃 | パート1
表示
IOC(HashSha256)による検出:GOGITTER、GITSHELLPAD、および GOSHELL を使用した政府標的 APT 攻撃 | パート1
表示
GITSHELLPAD バックドアおよびクリーンアップコマンドの検出 [Windows プロセス作成]
表示
GOGITTER ダウンローダーおよび C2 通信の検出 [Windows ネットワーク接続]
表示
シミュレーション実行
前提条件:テレメトリー & ベースライン事前チェックが合格している必要があります。
理由:このセクションでは、検出ルールをトリガーするために設計された敵対者の手法(TTP)の正確な実行を詳述します。コマンドおよび物語は、特定されたTTPsを直接反映し、検出ロジックが期待する正確なテレメトリーを生成することを目的としています。抽象的または無関係な例は誤診につながります。
-
攻撃の物語とコマンド:
APTグループは、GITSHELLPADバックドア(edgehost.exe)を侵害された Windows ホストに展開します。予想されるシステムの挙動と 混ざり合うために、攻撃者はバックドアを Windows コマンドシェル(cmd /c)経由で起動します。そのペイロードを完了した後(例: 追加モジュールのダウンロード)、バックドアはtaskkill /F /PID <PID>を使用して自分のプロセスのクリーンアップを行います。これらの操作はいずれもプロセス作成イベントを生成し、バイナリ名と必要なコマンドラインサブストリングを含み、Sigmaルールを満たします。 -
回帰テストスクリプト:
# ------------------------------------------------- # GITSHELLPAD バックドアの実行とクリーンアップのシミュレーション # ------------------------------------------------- # 1. プレースホルダー edgehost.exe(任意の無害な実行ファイル)をドロップします $src = "$env:SystemRootSystem32notepad.exe" $dst = "$env:TEMPedgehost.exe" Copy-Item -Path $src -Destination $dst -Force # 2. cmd /c を通して edgehost.exe を起動します(cmd_cmd パターンに一致) $proc = Start-Process -FilePath "cmd.exe" -ArgumentList "/c `"$dst`"" -PassThru # 3. プロセスが生きていることを確認するために数秒待ちます Start-Sleep -Seconds 5 # 4. クリーンアップ:taskkill を使用して edgehost.exe プロセスを終了します(taskkill_cmd パターンに一致) $pid = $proc.Id cmd /c "taskkill /F /PID $pid" # 5. ドロップされたファイルを削除します Remove-Item -Path $dst -Force -
クリーンアップコマンド:
# 任意の生き残りの edgehost.exe インスタンスを終了する Get-Process -Name "edgehost" -ErrorAction SilentlyContinue | Stop-Process -Force # 一時バイナリがまだ存在する場合、削除 $tempPath = "$env:TEMPedgehost.exe" if (Test-Path $tempPath) { Remove-Item $tempPath -Force }