mcpField
S
supply-chain-advisory

supply-chain-advisory

github.com/atholaセキュリティ34381 回インストール1 日前に更新
リポジトリ

supply-chain-advisory について

supply-chain-advisory は、Python プロジェクトの依存関係におけるサプライチェーン攻撃の検知、防止、対応を支援するスキルです。既知の不正バージョン一覧と、ロックファイルやアーティファクトの確認手順を提供します。

主な機能

  1. 01既知の不正バージョンの確認
  2. 02ロックファイルと仮想環境のスキャン
  3. 03uv.lock のハッシュ整合性確認
  4. 04バージョン除外の追加手順
  5. 05不審なアーティファクトの確認

活用シーン

  1. 01サプライチェーン勧告後の依存関係確認
  2. 02新規または既存プロジェクトの依存監査
  3. 03依存関係の侵害が疑われる事案の調査

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/athola/claude-night-market --skill supply-chain-advisory

インストール後、Claude Code で/supply-chain-advisoryを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

known-bad-versions.json
modules/
incident-response.md
scanning-patterns.md

詳細

概要

サプライチェーン攻撃は、上流の依存関係を侵害することで、従来のコードレビューを回避します。このスキルでは、Python エコシステムで侵害されたパッケージを検出、防止し、対応するためのパターンを提供します。

使用する場面

  • サプライチェーンに関する勧告が公開された後
  • 新規または既存のプロジェクトの依存関係を監査するとき
  • 侵害が疑われるインシデントに対応するとき
  • SessionStart フックをプロジェクトに追加するとき

使用しない場面

  • 依存関係のサプライチェーンとは無関係な一般的な CVE トリアージ
  • アプリケーションレベルの脆弱性スキャン(SAST ツールを使用してください)
  • ライセンスコンプライアンス監査(別の懸念事項です)

既知の悪意あるバージョンのブロックリスト

ブロックリストは ${CLAUDE_SKILL_DIR}/known-bad-versions.json にあります。 次の用途で使用されます。

  1. SessionStart フック:侵害されたバージョンが検出された場合、セッションごとに警告します
  2. make supply-chain-scan:CI/ローカルスキャンのターゲットです
  3. このスキル:手動監査のガイダンスです
ブロックリストの形式
{
  "package_name": [{
    "versions": ["x.y.z"],
    "date": "YYYY-MM-DD",
    "description": "What the attack did",
    "indicators": ["files or patterns to search for"],
    "source": "advisory URL",
    "severity": "critical|high|medium"
  }]
}
新しいエントリーの追加
  1. ${CLAUDE_SKILL_DIR}/known-bad-versions.json にエントリーを追加します
  2. 影響を受ける pyproject.toml ファイルにバージョン除外(!=x.y.z)を追加します
  3. docs/dependency-audit.md の Supply Chain Incidents に記録します
  4. make supply-chain-scan を実行して、検出が機能することを確認します

クイックスキャンコマンド

マシン上のすべてのロックファイルで既知の悪意あるバージョンを確認する
# Scan uv.lock files for a specific compromised version
grep -r "package_name.*version" --include="uv.lock" /path/to/projects

# Search for malicious artifacts
find /path/to/projects -name "suspicious_file.pth" 2>/dev/null

# Check installed versions in virtualenvs
find /path/to/projects -path "*/.venv/lib/*/PACKAGE*/METADATA" \
  -exec grep "^Version:" {} +
ロックファイルのハッシュ整合性を検証する

uv.lock には、すべてのパッケージの SHA256 ハッシュが含まれています。同じバージョンのままパッケージが異なる内容で再公開された場合、uv sync はハッシュ不一致で失敗します。これは最も強力な自動防御策です。

防御レイヤー

レイヤーツール検出対象
ロックファイルのハッシュuv.lock SHA256改ざんされた再公開バージョン
バージョン除外pyproject.toml !=新規解決時の既知の悪意あるバージョン
SessionStart フックsanctum hook侵害された依存関係をセッションごとに警告
CI スキャンOSV、SafetyCVE データベースおよび勧告との照合
アーティファクトスキャンmake supply-chain-scan悪意のあるファイル(.pth、スクリプト)

制限事項

  • ゼロデイのサプライチェーン攻撃には事前の勧告がありません。攻撃期間中の自動防御策はロックファイルのハッシュのみです
  • Safety/CVE データベースは、実際の侵害の情報反映に遅れがあります
  • OSV はより広範囲をカバーしますが、依然として事後対応型です

完了条件

  • ${CLAUDE_SKILL_DIR}/known-bad-versions.json を対象範囲内のすべてのロックファイルと照合し、一致があればパッケージ名、悪意のあるバージョン、重大度、勧告 URL を報告している
  • 新しい既知の悪意あるエントリーを追加した場合、影響を受ける pyproject.toml にバージョン除外(!=x.y.z)を追加し、エントリーを docs/dependency-audit.md に記録し、検出が機能することを確認するために make supply-chain-scan を実行している
  • uv.lock の SHA256 ハッシュ整合性を検証している。ハッシュ不一致による uv sync の失敗が、一般的なインストールエラーではなく、明示的なサプライチェーン警告として表示される
  • セッションを続行する前に、アーティファクトスキャンで仮想環境のパス内にある悪意のあるファイルのパターン(.pth ファイル、予期しないスクリプト)を確認している

コメント