mcpField
E
extension-analyze

extension-analyze

github.com/quangplセキュリティ64221 回インストール7 週間前に更新
リポジトリ

extension-analyze について

既存の Chrome 拡張機能を確認する、開発者向けのセキュリティ・コンプライアンス監査スキルです。フレームワークの検出から設定・コードの確認、依存関係の監査、重要度別の報告までを案内します。

主な機能

  1. 01拡張機能のフレームワークとルートの検出
  2. 02マニフェスト権限と CSP の確認
  3. 03危険なコードパターンのスキャン
  4. 04依存関係の脆弱性監査
  5. 05重要度別の検出事項整理

活用シーン

  1. 01拡張機能の権限と CSP の確認
  2. 02XSS の可能性やハードコードされた秘密情報の検出
  3. 03リリース前の監査結果の整理

インストール

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

$npx skills add https://github.com/quangpl/browser-extension-skills --skill extension-analyze

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

同梱ファイル

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

references/
best-practices-checklist.md
common-vulnerabilities.md
cws-compliance-checklist.md
security-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 件の問題

  1. ページ由来データを使った innerHTML(XSS) — 高
  2. 送信元のオリジン確認を行わない onMessage — 高
  3. 不要な <all_urls> ホスト権限 — 中
  4. CSP の unsafe-inline または unsafe-eval — 中/重大
  5. ソースにハードコードされた API キー — 重大
  6. eval() または new Function() の使用 — 重大
  7. 機密データを保存する chrome.storage.sync — 中
  8. HTTPS ではなく HTTP のエンドポイント — 高
  9. リモートスクリプトの読み込み(MV3 違反)— 重大
  10. 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、アクセシビリティ、CWS
  • references/common-vulnerabilities.md — grep と修正方法を含む脆弱性パターン
  • references/cws-compliance-checklist.md — Chrome ウェブストアのポリシー準拠チェックリスト
  • Chrome の権限一覧
  • Chrome 拡張機能のドキュメント

関連スキル

  • extension-manifest — manifest.json の生成/検証
  • extension-create — 新しい拡張機能のひな形を作成
  • extension-publish — ストアへの申請チェックリスト

コメント