find-bugs について
現在のブランチ差分からバグ、セキュリティ脆弱性、コード品質の問題を調べるコードレビュースキルです。攻撃面の整理、ファイルごとのセキュリティ確認、指摘内容の検証を段階的に行い、コードは変更せずに報告します。
主な機能
- 01ブランチ差分全体のレビュー
- 02変更ファイルごとの攻撃面の整理
- 03ファイル単位のセキュリティチェック
- 04文脈とテストに基づく指摘の検証
- 05根拠と修正案付きの優先順位報告
活用シーン
- 01マージ前のブランチレビュー
- 02変更コードのセキュリティリスク監査
- 03疑わしいバグの実在確認
- 04対応可能なレビュー結果の作成
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ davila7/ claude-code-templates --skill find-bugsインストール後、Claude Code で/find-bugsを入力して読み込まれたか確認します。
詳細
バグを探す
このブランチの変更を、バグ、セキュリティ脆弱性、コード品質の問題についてレビューします。
フェーズ 1: 入力の完全な収集
- 差分の全体を取得します:
git diff master...HEAD - 出力が切り詰められている場合は、変更されたすべての行を確認できるまで、変更されたファイルを 1 つずつ読み込みます
- 先に進む前に、このブランチで変更されたすべてのファイルを一覧にします
フェーズ 2: 攻撃対象領域のマッピング
変更された各ファイルについて、以下を特定して一覧にします:
- すべてのユーザー入力(リクエストパラメーター、ヘッダー、ボディ、URL の各要素)
- すべてのデータベースクエリ
- すべての認証・認可チェック
- すべてのセッション・状態の操作
- すべての外部呼び出し
- すべての暗号処理
フェーズ 3: セキュリティチェックリスト(すべてのファイルについて、すべての項目を確認)
- インジェクション: SQL、コマンド、テンプレート、ヘッダーインジェクション
- XSS: テンプレートのすべての出力は適切にエスケープされているか?
- 認証: 保護されたすべての操作に認証チェックがあるか?
- 認可/IDOR: 認証だけでなく、アクセス制御が検証されているか?
- CSRF: 状態を変更する操作は保護されているか?
- レースコンディション: 読み取ってから書き込むパターンに TOCTOU はないか?
- セッション: 固定化、有効期限、Secure フラグはどうか?
- 暗号: 安全な乱数、適切なアルゴリズム、ログに秘密情報がないか?
- 情報漏えい: エラーメッセージ、ログ、タイミング攻撃はないか?
- DoS: 無制限の処理、レート制限の欠如、リソースの枯渇はないか?
- ビジネスロジック: エッジケース、状態遷移の違反、数値のオーバーフローはないか?
フェーズ 4: 検証
潜在的な問題のそれぞれについて:
- 変更されたコード内で、すでに別の箇所で対処されていないか確認します
- そのシナリオをカバーする既存のテストを検索します
- 周辺のコンテキストを読み、その問題が実際に存在するかを検証します
フェーズ 5: 結論前の監査
最終化する前に、必ず以下を行ってください:
- レビューしたすべてのファイルを一覧にし、それぞれを完全に読んだことを確認します
- すべてのチェックリスト項目を一覧にし、問題が見つかったか、問題がないことを確認したかを記載します
- 完全には検証できなかった領域があれば、その理由とともに一覧にします
- その後で初めて、最終的な指摘事項を提示します
出力形式
優先順位: セキュリティ脆弱性 > バグ > コード品質
除外: スタイルやフォーマットに関する問題
各問題について:
- ファイル:行 - 簡単な説明
- 重大度: Critical/High/Medium/Low
- 問題: 何が問題なのか
- 根拠: この問題が実在する理由(すでに修正されていない、既存のテストがないなど)
- 修正: 具体的な提案
- 参考資料: 該当する場合は OWASP、RFC、その他の標準
重要な問題が見つからなかった場合はその旨を述べてください。問題を捏造しないでください。
変更は加えず、指摘事項の報告のみを行ってください。どれに対処するかは私が判断します。
コメント
Markdown 対応