dependency-auditor について
dependency-auditor は、依存関係の変更後やデプロイ前に使う開発者向けスキルです。脆弱性、古いパッケージや悪意あるパッケージ、ライセンス上の問題を確認し、重要度別に修正案を示します。
主な機能
- 01既知の CVE とセキュリティ更新の確認
- 02悪意あるパッケージや非推奨パッケージの検出
- 03ライセンス互換性の確認
- 04複数言語のパッケージマネージャーに対応
- 05重要度の分類と修正案の提示
活用シーン
- 01依存関係ファイルの変更後の監査
- 02デプロイ前の高リスク依存関係の確認
- 03商用プロジェクトのライセンス互換性の確認
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ ovachiever/ droid-tings --skill dependency-auditorインストール後、Claude Code で/dependency-auditorを入力して読み込まれたか確認します。
同梱ファイルREADME.md
詳細
依存関係監査スキル
依存関係の脆弱性を自動でチェックします。
有効になるタイミング
- ✅ package.json が変更されたとき
- ✅ requirements.txt が変更されたとき
- ✅ Gemfile または pom.xml が変更されたとき
- ✅ ユーザーが依存関係や脆弱性に言及したとき
- ✅ デプロイ前
- ✅ yarn.lock または package-lock.json が変更されたとき
チェック内容
依存関係の脆弱性
- パッケージに既知の CVE がないか
- セキュリティ修正が提供されている古い依存関係がないか
- 悪意のあるパッケージがないか
- ライセンスの互換性に問題がないか
- 非推奨のパッケージがないか
対応するパッケージマネージャー
- Node.js:npm、yarn、pnpm
- Python:pip、pipenv、poetry
- Ruby:bundler
- Java:Maven、Gradle
- Go:go modules
- PHP:composer
アラートの例
NPM の脆弱性
# You run: npm install lodash
# I automatically audit:
🚨 HIGH: Prototype Pollution in lodash
📍 Package: [email protected]
📦 Vulnerable versions: < 4.17.21
🔧 Fix: npm update lodash
📖 CVE-2020-8203
https://nvd.nist.gov/vuln/detail/CVE-2020-8203
Recommendation: Update to [email protected] or higher
Python の脆弱性
# You modify requirements.txt: django==2.2.0
# I alert:
🚨 CRITICAL: Multiple vulnerabilities in Django 2.2.0
📍 Package: [email protected]
📦 Vulnerable versions: < 2.2.28
🔧 Fix: Update requirements.txt to Django==2.2.28
📖 CVEs: CVE-2021-33203, CVE-2021-33571
Affected: SQL injection, XSS vulnerabilities
Recommendation: Update immediately to [email protected]+
複数の脆弱性
# After npm install:
🚨 Dependency audit found 8 vulnerabilities:
- 3 CRITICAL
- 2 HIGH
- 2 MEDIUM
- 1 LOW
Critical issues:
1. [email protected] - SSRF vulnerability
Fix: npm install axios@latest
2. [email protected] - Prototype pollution
Fix: npm install ajv@^8.0.0
3. [email protected] - Information disclosure
Fix: npm install node-fetch@^2.6.7
Run 'npm audit fix' to automatically fix 6/8 issues
自動アクション
依存関係の変更時
1. Detect package manager (npm, pip, etc.)
2. Run security audit command
3. Parse vulnerability results
4. Categorize by severity
5. Suggest fixes
6. Flag breaking changes
監査コマンド
# Node.js
npm audit
npm audit --json # Structured output
# Python
pip-audit
safety check
# Ruby
bundle audit
# Java (Maven)
mvn dependency-check:check
重大度の分類
重大 🚨
- リモートコード実行
- SQL インジェクション
- 認証の回避
- 公開環境から悪用可能
高 ⚠️
- クロスサイトスクリプティング
- サービス拒否
- 情報漏えい
- 攻撃対象領域が広い
中 📋
- 影響が限定的な脆弱性
- 特定の条件が必要
- 悪用が困難
低 💡
- 軽微なセキュリティ改善
- ベストプラクティスへの違反
- リスクがごくわずか
修正方法
自動更新
# Safe automatic fixes
npm audit fix
# May include breaking changes
npm audit fix --force
手動更新
# Check what will change
npm outdated
# Update specific package
npm update lodash
# Major version update
npm install lodash@latest
代替パッケージ
Vulnerable: [email protected] (deprecated)
Alternative: axios or node-fetch
Migration guide: [link]
CI/CD との統合
デプロイをブロックする
# .github/workflows/security.yml
- name: Dependency audit
run: |
npm audit --audit-level=high
# Fails if HIGH or CRITICAL found
定期監査
# Weekly dependency check
on:
schedule:
- cron: '0 0 * * 0'
jobs:
audit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- run: npm audit
サンドボックスとの互換性
サンドボックスなしで動作: ✅ はい サンドボックスありで動作: ⚙️ npm/pip レジストリへのアクセスが必要です
サンドボックス設定:
{
"network": {
"allowedDomains": [
"registry.npmjs.org",
"pypi.org",
"rubygems.org",
"repo.maven.apache.org"
]
}
}
ライセンスのチェック
ライセンスの互換性もチェックします:
⚠️ License issue: GPL-3.0 package in commercial project
📦 Package: [email protected]
📖 GPL-3.0 requires source code disclosure
🔧 Consider: Find MIT/Apache-2.0 alternative
ベストプラクティス
- 定期的に監査する:毎週、または依存関係を変更するたびに実行します
- 頻繁に更新する:依存関係を最新の状態に保ちます
- 互換性を損なう変更を確認する:メジャーアップデートの前にテストします
- バージョンを固定する:本番環境では正確なバージョンを指定します
- ロックファイルを監査する:ロックファイルをコミットして監査します
関連ツール
- security-auditor スキル:コードの脆弱性検出
- @architect サブエージェント:依存関係の戦略
- /review コマンド:デプロイ前のセキュリティチェック
コメント
Markdown 対応