dependency-audit について
dependency-audit は、プロジェクトの依存関係について、脆弱性、古いパッケージ、ライセンス準拠を調べるスキルです。依存リスクを評価する開発者向けに、重要度順の結果と修正コマンドをまとめます。
主な機能
- 01パッケージマネージャーと監査コマンドの特定
- 02依存関係の脆弱性スキャン
- 03古い依存関係の検出
- 04ライセンス準拠と重複依存の確認
- 05重要度順のレポート作成
- 06実行可能な修正コマンドの提示
活用シーン
- 01プロジェクト依存関係の CVE 確認
- 02古い依存関係とセキュリティ更新の特定
- 03プロジェクトのライセンスリスク評価
- 04監査結果に対する修正手順の作成
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ wu529778790/ shenzjd-skills --skill dependency-auditインストール後、Claude Code で/dependency-auditを入力して読み込まれたか確認します。
同梱ファイルREADME.mdtemplates/audit-report.md
詳細
依存関係の監査
プロジェクトの依存関係をスキャンし、セキュリティの脆弱性、古くなったパッケージ、ライセンスのコンプライアンス上の問題を検出します。
概要
プロジェクトの依存関係を包括的に監査します。CVE 脆弱性のスキャン、古くなった依存関係の検出、ライセンスのコンプライアンスチェック、重複する依存関係の分析を行います。深刻度順に並べたセキュリティレポートと、実行可能な修正コマンドを出力します。
使用する場合
- ユーザーが依存関係のセキュリティを確認したい場合
- ユーザーが CVE、脆弱性、または監査について言及した場合
- ユーザーが古くなった依存関係を知りたい場合
- ユーザーが「依存関係を監査」/「依存関係を確認」と言った場合
- ユーザーが
/dependency-auditを入力した場合
使用しない場合:
- ユーザーがバージョンの更新だけを望んでいる場合
- ユーザーがコードレベルのセキュリティレビューを望んでいる場合
- ユーザーが実行時の依存関係を分析したい場合
- ユーザーが詳細なライセンス分析を望んでいる場合
- ユーザーが Docker イメージをスキャンしたい場合
基本的な手順
ステップ 1:パッケージマネージャーの検出
| 検出ファイル | パッケージマネージャー | 監査コマンド |
|---|---|---|
package-lock.json | npm | npm audit |
yarn.lock | yarn | yarn audit |
pnpm-lock.yaml | pnpm | pnpm audit |
go.sum | Go | govulncheck ./... |
requirements.txt / Pipfile.lock | Python | pip-audit |
Cargo.lock | Rust | cargo audit |
ステップ 2:脆弱性スキャン
# 工具可用性检查(所有步骤共用)
check_tool() {
command -v "$1" >/dev/null 2>&1 || { echo "⚠️ $1 未安装,跳过 $2 审计"; return 1; }
}
主要なコマンド(パッケージマネージャーごとに実行し、ツールがない場合は自動的にスキップします):
⚠️ 脆弱性が見つかった場合、
npm auditは終了コードに 0 以外を返します。成功判定にif npm audit ...; thenを使わず、--jsonの出力を直接解析してください。
| パッケージマネージャー | 監査コマンド |
|---|---|
| npm | npm audit --json | jq '.metadata.vulnerabilities.total' → 脆弱性の件数と深刻度を解析します(終了コードに依存しないでください) |
| Go | govulncheck ./... → golang.org/x/vuln/cmd/govulncheck@latest をインストール |
| Python | pip-audit → インストール:pip install pip-audit |
出力:脆弱性の合計数と、深刻度(critical/high/medium/low)別に分類した CVE の一覧。
ステップ 3:古くなった依存関係の検出
主要なコマンド(パッケージマネージャーごとに実行し、ツールがない場合は自動的にスキップします):
| パッケージマネージャー | 検出コマンド |
|---|---|
| npm | npx npm-check-updates --format table |
| Go | go list -m -u all | grep "\[" |
| Python | pip list --outdated |
集計内容:古くなった依存関係の数、major/minor/patch アップグレードの内訳、セキュリティ関連の更新の有無。
ステップ 4:ライセンスのコンプライアンスチェック
主要なコマンド(パッケージマネージャーごとに実行します):
| パッケージマネージャー | 検出コマンド |
|---|---|
| npm | npx license-checker --json → ライセンスタイプ別に数を集計 |
| Go | go-licenses csv ./... → インストール:go install github.com/google/go-licenses@latest |
重点的に確認する項目:GPL/AGPL などのコピーレフトライセンス、不明なライセンス/独自ライセンス、ライセンスの互換性。
ステップ 5:レポートの生成
templates/audit-report.md テンプレートを使用して、以下を出力します。
- セキュリティの概要 — 脆弱性の数と深刻度別の内訳
- 重大な脆弱性 — 直ちに修正が必要な CVE
- 古くなった依存関係 — アップグレードの難易度順
- ライセンスのコンプライアンス — リスクのあるライセンスの一覧
- 修正コマンド — 各問題に実行可能なコマンドを記載
クイックリファレンス
/dependency-audit # 完整审计
/dependency-audit --security # 只检查安全漏洞
/dependency-audit --licenses # 只检查 license
/dependency-audit --fix # 自动修复可安全升级的依赖
| パラメーター | 説明 | デフォルト値 |
|---|---|---|
--security | セキュリティ脆弱性のみをチェック | false |
--licenses | ライセンスのコンプライアンスのみをチェック | false |
--fix | 自動修正 | false |
よくある間違い
| 間違い | 正しい方法 | 理由 |
|---|---|---|
| high/critical だけを見る | medium にも注意する | 多くの攻撃チェーンは medium から発展します |
| すべての依存関係を無条件にアップグレードする | 1 つずつアップグレードしてテストする | major アップグレードでは破壊的変更が発生する可能性があります |
| 推移的な依存関係を確認しない | 依存関係ツリー全体を分析する | 脆弱性は間接的な依存関係でよく発生します |
| ライセンスのコンプライアンスを無視する | 定期的にライセンスを確認する | GPL には感染性のリスクがあります |
| 監査後に lock ファイルを更新しない | lock ファイルを再生成する | 修正が確実に反映されるようにします |
| 非推奨の依存関係を無視する | 非推奨の警告を確認する | 非推奨パッケージにはセキュリティリスクがある可能性があります |