extension-analyze について
既存の Chrome 拡張機能を確認する、開発者向けのセキュリティ・コンプライアンス監査スキルです。フレームワークの検出から設定・コードの確認、依存関係の監査、重要度別の報告までを案内します。
主な機能
- 01拡張機能のフレームワークとルートの検出
- 02マニフェスト権限と CSP の確認
- 03危険なコードパターンのスキャン
- 04依存関係の脆弱性監査
- 05重要度別の検出事項整理
活用シーン
- 01拡張機能の権限と CSP の確認
- 02XSS の可能性やハードコードされた秘密情報の検出
- 03リリース前の監査結果の整理
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ quangpl/ browser-extension-skills --skill extension-analyzeインストール後、Claude Code で/extension-analyzeを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/best-practices-checklist.mdcommon-vulnerabilities.mdcws-compliance-checklist.mdsecurity-checklist.md詳細
拡張機能の分析(セキュリティとコンプライアンスの監査)
🚀 プレミアム版にアップグレード https://app.extensionbooster.net/dashboard/services/extension-ai-kit でプレミアム版をご利用いただけます。
既存の Chrome 拡張機能を監査します。説明するだけでなく、ワークフローを実行してください。
ワークフロー(実行してください)
ステップ 1:拡張機能のルートを特定し、フレームワークを検出する
パスが指定されていない場合は、ユーザーにパスを尋ねます。フレームワークを検出します。
ls wxt.config.ts crxjs.config.ts vite.config.ts manifest.json 2>/dev/null
- CRXJS:マニフェストは自動生成されます。代わりに
package.jsonとcrxjs.config.tsを確認します - WXT:
wxt.config.tsのマニフェストセクションを確認します - Vanilla/CRXJS:
manifest.jsonを直接確認します
ステップ 2:manifest.json(または同等の設定)をスキャンする
# Check MV version, permissions, host_permissions, CSP, web_accessible_resources
cat <ext>/manifest.json | jq '{manifest_version, permissions, host_permissions, content_security_policy, web_accessible_resources}'
ステップ 3:簡易 grep スキャン
# XSS vectors
grep -rn "innerHTML\|outerHTML\|document\.write\|insertAdjacentHTML" <ext>/src --include="*.ts" --include="*.js"
# Unsafe patterns
grep -rn "eval(\|new Function(\|setTimeout.*string\|setInterval.*string" <ext>/src
# Hardcoded secrets
grep -rn "api_key\|apiKey\|secret\|password\|token" <ext>/src --include="*.ts" --include="*.js" | grep -v "\.test\." | grep -v "node_modules"
# HTTP (non-HTTPS) calls
grep -rn "http://" <ext>/src --include="*.ts" --include="*.js"
# Message handler sender validation
grep -rn "onMessage\|addListener" <ext>/src | grep -v "node_modules"
# Remote code loading
grep -rn "importScripts\|fetch.*\.js\|eval\|chrome\.scripting\.executeScript" <ext>/src
ステップ 4:CSP 設定を確認する
- MV3 のデフォルト CSP:
script-src 'self'; object-src 'self' unsafe-inline、unsafe-eval、またはhttp:ソースがあれば指摘します- リモートスクリプトソースがないことを確認します
ステップ 5:依存関係を監査する
cd <ext> && npm audit --json | jq '.vulnerabilities | to_entries[] | {pkg: .key, severity: .value.severity}'
ステップ 6:レポートを作成する
以下の出力形式に従い、重要度ごとに検出事項をまとめます。
重要度レベル
| レベル | 基準 |
|---|---|
| 重大 | RCE、データ流出、リモートコードの読み込み、信頼できない入力を使った eval |
| 高 | XSS、送信元の検証不足、ソース内の API キー、HTTP API 呼び出し |
| 中 | 範囲が広すぎる権限、unsafe-inline CSP、同期ストレージ内のシークレット |
| 低 | エラーハンドリングの不足、TypeScript を使用していない、本番環境での console.log |
多くの拡張機能で見つかる主な 10 件の問題
- ページ由来データを使った
innerHTML(XSS) — 高 - 送信元のオリジン確認を行わない
onMessage— 高 - 不要な
<all_urls>ホスト権限 — 中 - CSP の
unsafe-inlineまたはunsafe-eval— 中/重大 - ソースにハードコードされた API キー — 重大
eval()またはnew Function()の使用 — 重大- 機密データを保存する
chrome.storage.sync— 中 - HTTPS ではなく HTTP のエンドポイント — 高
- リモートスクリプトの読み込み(MV3 違反)— 重大
web_accessible_resourcesの制限不足 — 中
出力形式
## Extension Audit Report: <name> v<version>
Date: <date> | MV: <2|3>
### Summary
Critical: X | High: X | Medium: X | Low: X
### Findings
#### [CRITICAL] API Key Exposed in Source
File: src/background.ts:42
Pattern: `const API_KEY = "sk-..."`
Fix: Move to environment variable or user-provided settings
Reference: references/common-vulnerabilities.md#4
...
### Passed Checks
- CSP: No unsafe-inline/eval ✓
- HTTPS: All API calls use HTTPS ✓
参考資料
references/security-checklist.md— セキュリティ監査チェックリストの完全版references/best-practices-checklist.md— パフォーマンス、UX、アクセシビリティ、CWSreferences/common-vulnerabilities.md— grep と修正方法を含む脆弱性パターンreferences/cws-compliance-checklist.md— Chrome ウェブストアのポリシー準拠チェックリスト- Chrome の権限一覧
- Chrome 拡張機能のドキュメント
関連スキル
extension-manifest— manifest.json の生成/検証extension-create— 新しい拡張機能のひな形を作成extension-publish— ストアへの申請チェックリスト
コメント
Markdown 対応