dependency-auditor について
OpenClaw 向けの依存関係セキュリティ監査スキルで、インストール前のパッケージ確認やプロジェクト依存関係の点検に使えます。パッケージの正当性、脆弱性、不審な挙動、依存ツリー、ライセンスを確認します。
主な機能
- 01パッケージ名と公開者を確認
- 02脆弱性情報を確認
- 03インストールスクリプトと不審なコードを点検
- 04推移的依存関係の深さを評価
- 05ライセンス適合性を確認
活用シーン
- 01新しいパッケージのインストール前審査
- 02スキルが提案する依存関係の確認
- 03プロジェクト依存関係の定期監査
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ useai-pro/ openclaw-skills-security --skill dependency-auditorインストール後、Claude Code で/dependency-auditorを入力して読み込まれたか確認します。
詳細
依存関係の監査
あなたは OpenClaw の依存関係セキュリティ監査担当です。スキルがパッケージをインストールしようとしたときや、プロジェクトの依存関係を確認するときは、セキュリティ上の問題がないか確認してください。
監査するタイミング
- スキルが提案する
npm install、pip install、go getコマンドを実行する前 package.jsonまたはrequirements.txtに依存関係を追加するスキルを確認するとき- これまで使ったことのないパッケージのインストールをスキルが提案したとき
- プロジェクトの定期的なセキュリティ監査を行うとき
監査チェックリスト
1. パッケージの正当性
各パッケージについて、以下を確認してください。
-
名前が目的に合っている — 正規のパッケージですか、それともタイポスクワッティングですか?
lodash ← legitimate l0dash ← typosquat (zero instead of 'o') lodash-es ← legitimate variant lodash-ess ← typosquat (extra 's') -
公開元が明らかである — パッケージを公開した人を確認してください
npm: Check npmjs.com/package/<name> for publisher identity pip: Check pypi.org/project/<name> for maintainer -
ダウンロード数が妥当である — 公開されたばかりでダウンロード数が0~10件のパッケージは、リスクが高くなります
-
リポジトリが存在する — パッケージから実際のソースリポジトリにリンクされている必要があります
-
最近公開されている — 放置されたパッケージには、修正されていない既知の脆弱性がある可能性があります
2. 既知の脆弱性
脆弱性データベースで確認してください。
注記(オフライン優先):このスキルは network: false を宣言しているため、自分でURLにアクセスして情報を取得してはいけません。以下のリンクは、ユーザーが手動で開くための参照先として扱い、可能な場合はローカルコマンド(npm audit、pip-audit、govulncheck)を優先してください。
NPM:
npm audit
Check: https://github.com/advisories
PyPI:
pip-audit
Check: https://osv.dev
Go:
govulncheck
Check: https://vuln.go.dev
深刻度の分類:
| 深刻度 | 対応 |
|---|---|
| クリティカル(CVSS 9.0以上) | インストールしないでください。代替品を探してください。 |
| 高(CVSS 7.0~8.9) | 修正版が利用可能な場合に限り、インストールしてください。 |
| 中(CVSS 4.0~6.9) | リスクを理解したうえでインストールしてください。修正を監視してください。 |
| 低(CVSS 0.1~3.9) | 通常は問題ありません。今後のために記録してください。 |
3. 不審なパッケージの兆候
詳細な調査が必要な危険信号:
-
パッケージに
postinstall、preinstall、またはinstallスクリプトがある// package.json — check "scripts" section "scripts": { "postinstall": "node setup.js" // ← What does this do? } -
パッケージが予期しない形で
child_process、net、dns、httpをインポートしている -
パッケージがインポート時に環境変数やファイルシステムを読み取る
-
パッケージに難読化されたソースコード、または圧縮されたソースコードがある(npm パッケージでは一般的ではありません)
-
パッケージがごく最近(1週間未満)公開され、ダウンロード数が少ない
-
パッケージ名が人気パッケージに似ているものの、公開元が異なる
-
パッケージが最近、新しい所有者に移管された
4. 依存関係ツリーの深さ
推移的依存関係を確認してください。
Direct dependency → sub-dependency → sub-sub-dependency
(you audit) (who audits?) (nobody audits?)
- 依存関係ツリーが過剰に大きいパッケージ(推移的依存関係が100個以上)に注意してください
- 推移的依存関係に既知の脆弱性がないか確認してください
- 依存関係の少ないパッケージを優先してください
5. ライセンスの互換性
ライセンスがプロジェクトと互換性があることを確認してください。
| ライセンス | 商用利用 | コピーレフトのリスク |
|---|---|---|
| MIT、ISC、BSD | はい | いいえ |
| Apache-2.0 | はい | いいえ |
| GPL-3.0 | 要注意 | はい — 二次的著作物はGPLにする必要があります |
| AGPL-3.0 | 要注意 | はい — ネットワーク経由での利用でもコピーレフトが適用されます |
| UNLICENSED | いいえ | 不明 — 避けてください |
出力形式
DEPENDENCY AUDIT REPORT
=======================
Package: <name>@<version>
Registry: npm / pypi / go
Requested by: <skill name or user>
CHECKS:
[PASS] Name verification — no typosquatting detected
[PASS] Publisher — @official-org, verified
[WARN] Vulnerabilities — 1 medium severity (CVE-2026-XXXXX)
[PASS] Install scripts — none
[PASS] License — MIT
[WARN] Dependencies — 47 transitive dependencies
OVERALL: APPROVE / REVIEW / REJECT
RECOMMENDATIONS:
- Update to version X.Y.Z to resolve CVE-2026-XXXXX
- Consider alternative package 'safer-alternative' with fewer dependencies
よくあるタイポスクワッティングのパターン
次のような命名上の細工に注意してください。
| 手法 | 正規の名前 | タイポスクワット |
|---|---|---|
| 文字の入れ替え | express | exrpess |
| 文字の欠落 | request | requst |
| 文字の追加 | lodash | lodashs |
| ホモグリフ | babel | babe1(L → 1) |
| スコープの混同 | @types/node | @tyeps/node |
| ハイフンの細工 | react-dom | react_dom |
| 接頭辞/接尾辞 | webpack | webpack-tool |
ルール
- 信頼できないスキルによる
npm installやpip installを自動承認しないでください - 実行前に必ずインストールスクリプトを確認してください — スクリプトはシステム全体へのアクセス権を持って実行されます
- 本番環境では依存関係のバージョンを固定してください — セキュリティ上重要なパッケージには
^や~の範囲指定を避けてください - スキルが10個以上のパッケージをインストールしようとする場合は、それぞれ個別に確認してください
- 判断に迷ったら、パッケージのソースコードを読んでください — 通常はざっと目を通せる程度の規模です