pentest-supply-chain について
依存関係、CI/CD パイプライン、ビルド成果物のサプライチェーンリスクを調べるセキュリティテスト用スキルです。許可を得た監査手順と、関連するスキャン・分析ツールを扱います。
主な機能
- 01依存関係とパッケージのリスク確認
- 02公開レジストリでの依存関係混同チェック
- 03CI/CD パイプラインのセキュリティレビュー
- 04成果物とロックファイルの完全性確認
- 05インストールフックと偽装パッケージの分析
- 06SBOM 生成と CVE の対応付け
活用シーン
- 01リリース前の依存関係監査
- 02CI/CD ワークフローのインジェクションやシークレット露出の確認
- 03パッケージやコンテナ成果物の完全性確認
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ jd-opensource/ joysafeter --skill pentest-supply-chainインストール後、Claude Code で/pentest-supply-chainを入力して読み込まれたか確認します。
同梱ファイルreferences/tools.mdreferences/workflows.md
詳細
ペンテストサプライチェーン
目的
サプライチェーン攻撃(SolarWinds、Log4Shell、xz-utils)は、最も急速に増加している脅威カテゴリーです。Shannon は「脆弱なサードパーティーライブラリ」を明示的に対象外としています。MITRE ATT&CK T1195 は、既存のどのスキルでもカバーされていません。
前提条件
認可要件
- サプライチェーンテストの範囲を定めた書面による認可
- 依存関係および CI/CD の分析に必要なリポジトリアクセス
- レジストリの把握 — 使用中のプライベートレジストリを確認します
- パイプラインのレビューに必要なビルドシステムへのアクセス(ホワイトボックステストの場合)
環境設定
- 依存関係の脆弱性スキャン用の Snyk CLI
- エコシステム固有のチェック用の npm audit / pip-audit
- コンテナーおよびファイルシステムのスキャン用の Trivy
- 依存関係のリスク分析用の socket.dev
基本ワークフロー
- 依存関係の監査:package.json/requirements.txt/go.mod を分析し、既知の脆弱なバージョン、メンテナンスされていないパッケージ、不審な依存関係を特定します。
- 依存関係の混同:内部パッケージ名を公開レジストリ(npm、PyPI)で取得できるか確認します。名前空間のスクワッティングをテストします。
- CI/CD パイプラインのセキュリティ:GitHub Actions/GitLab CI をレビューし、PR のタイトルやブランチ名を介したインジェクション、ログ内のシークレット、固定されていないアクションのバージョン、ランナーからの脱出を確認します。
- ビルドアーティファクトの完全性:コンテナーやパッケージの署名を検証し、未署名のアーティファクトを確認して、イメージタグが変更可能かテストします。
- ロックファイルの完全性:ロックファイルへのインジェクション(解決済み URL の改ざん)を検出し、ロックファイルとマニフェストの整合性を検証します。
- インストールスクリプトの悪用:任意のコードを実行するインストールフックを持つパッケージを特定し、タイポスクワッティングの候補をテストします。
- SBOM の生成:ソフトウェア部品表を生成し、CVE との相関付けによって推移的な依存関係のリスクをマッピングします。
ツールカテゴリー
| カテゴリー | ツール | 目的 |
|---|---|---|
| 依存関係スキャン | Snyk, npm audit, pip-audit | 既知の CVE の検出 |
| コンテナースキャン | Trivy, Grype | イメージの脆弱性分析 |
| 依存関係のリスク | socket.dev, Semgrep | 挙動リスクの分析 |
| CI/CD レビュー | カスタムスクリプト, actionlint | パイプラインのセキュリティ監査 |
| SBOM | syft, cyclonedx-cli | 部品表の生成 |
参考資料
references/tools.md- ツールの関数シグネチャとパラメーターreferences/workflows.md- 攻撃パターンの定義とテストベクター
コメント
Markdown 対応