| name | investigate-attack |
| description | ソフトウェアサプライチェーン攻撃の事例を調査し、memo/ に保存する。攻撃手順・発想・信頼チェーンの破綻箇所を詳細に分析する。 |
| argument-hint | [攻撃対象のパッケージ名やツール名] |
| disable-model-invocation | true |
| allowed-tools | Read, Write, Edit, Glob, Grep, Bash, WebSearch, Agent |
サプライチェーン攻撃 調査スキル
$ARGUMENTS に関するソフトウェアサプライチェーン攻撃を調査し、結果を memo/ に保存する。
調査手順
Step 1: Web 調査
以下の2種類の検索を並行で行い、概要を把握する:
- 英語:
"$ARGUMENTS supply chain attack"
- 日本語:
"$ARGUMENTS サプライチェーン攻撃"
Step 2: 深掘り調査
Step 1 の結果をもとに、以下の6つの観点それぞれについて追加の Web 検索を行い、技術的詳細を収集する:
- 初期侵入: メンテナーのアカウントはどうやって乗っ取られたか(フィッシング、トークン窃取、CI/CD経由、MFA回避など)
- アカウント掌握後の行動: 改竄までの具体的な時系列と手順、事前準備の有無
- 悪意あるコードの仕込み方: ペイロードの注入構造、難読化手法、OS判定、配置先、自動実行メカニズム
- ステルス性の工夫: 検知を遅らせるために何がされたか、実際にどう発覚したか
- マルウェアの機能: C2通信、認証情報窃取、横展開、永続化の具体的手法
- 信頼チェーンのどこが壊れたか: アカウント認証、パッケージ署名、依存管理、自動実行、CI/CDのどの部分が弱点だったか
一次情報(セキュリティベンダーのブログ: Elastic Security Labs, Huntress, Snyk, Wiz, Socket, ReversingLabs, SANS 等)を優先する。
Step 3: memo/ に保存
調査結果を memo/case_$ARGUMENTS.md($ARGUMENTS は小文字・アンダースコア区切りに正規化)に保存する。
出力フォーマット
以下の構造に従うこと。他の事例との比較セクションは設けない(各メモは独立させる)。
# [パッケージ名] サプライチェーン攻撃 ([日付])
## 概要
[事件の要約。パッケージの規模、攻撃者、被害の概要を含む]
- 影響バージョン:
- 安全なバージョン:
## 攻撃の全体像
[攻撃フロー全体を示すテキスト図]
## 攻撃手順の詳細
### Phase 0: 初期侵入
[アカウント/環境はどう侵害されたか]
### Phase 1〜N: [各段階]
[時系列に沿った具体的手順。テーブルやコードブロックを活用]
## 攻撃者の発想・工夫のまとめ
[番号付きリストで、攻撃者が意図的に行った工夫を列挙]
## 信頼チェーン(Trust Chain)の破綻箇所
[テーブル形式: 壊れた鎖 | 詳細 | 根本原因]
## 防御策の方向性
[番号付きリストで、この事例から導かれる防御策]
## 情報源
[マークダウンリンクのリスト]
注意事項
- 調査は徹底的に行う。概要だけで終わらせず、技術的詳細(難読化手法、C2プロトコル、ペイロードの配置先など)まで掘り下げる
- 一次情報源(セキュリティベンダーのブログ、GitHub Issue)を優先する
- 他の事例との比較は書かない(メモは独立させる)
- 推測と事実を区別する。未確定の情報は「未確定」と明記する