secure-code-review について
Secure Code Review は、データフロー、アクセス制御、シークレット、状態変更に潜む脆弱性を調べる体系的なコードレビュー用スキルです。重要度や該当箇所、攻撃例、修正案を含む報告を導きます。
主な機能
- 01入口と信頼境界の把握
- 02信頼できないデータの処理先追跡
- 03認可とオブジェクト単位のアクセス監査
- 04シークレットと暗号方式の確認
- 05競合状態と共有状態の点検
活用シーン
- 01コード変更のセキュリティリスクをレビュー
- 02ユーザー入力からクエリやコマンドへの経路を追跡
- 03エンドポイントの認可とテナント分離を確認
- 04修正案を添えた優先度付きの指摘を作成
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ securityskills/ skills --skill secure-code-reviewインストール後、Claude Code で/secure-code-reviewを入力して読み込まれたか確認します。
詳細
セキュアなコードレビュー
行単位ではなく、体系的に脆弱性をレビューします。
1. 全体像を把握する
- このコードは何をするものですか?エントリーポイント、信頼境界、データストア、特権操作を特定します
- テストを読みます。どのような不変条件が明らかになりますか?
- 差分の影響範囲を確認します。認証ロジック、解析、ファイル処理、暗号処理に関係しますか?
2. 信頼できないデータを追跡する
各入力をエントリーポイントからシンクまで追跡します。
| シンクの種類 | 確認事項 |
|---|---|
| SQL/NoSQL | パラメーター化されていること、文字列連結でクエリを構築していないこと、識別子が許可リストで制限されていること |
| コマンド実行 | シェル文字列にユーザーデータが含まれていないこと、argv 配列 API を使用していること、shell=True を使用していないこと |
| HTML/レンダリング | コンテキストに応じた自動エスケープが行われていること、生の HTML/安全でない HTML のフラグが正当化されていること |
| ファイルパス | ベース名/許可リストを使っていること、正規化とプレフィックスの照合を行っていること、インクルードにユーザー指定のパスを使っていないこと |
| デシリアライズ | オブジェクトシリアライザーより型付き形式(JSON)を使っていること、解析後に検証していること |
| リダイレクト | 相対パスのみ、または許可リストの対象に限定されていること |
| eval/動的コード | 正当な理由があり、入力を受け取らないこと、または拒否されること |
3. 認証とアクセス制御を監査する
- すべてのエンドポイントでサーバー側の認可を行い、ロールをコントローラーだけでなくリソースでも確認します
- オブジェクトレベルのチェック(IDOR):クエリで呼び出し元のテナント ID/ユーザー ID による絞り込みを行っていますか?
- セッション管理:ローテーション、無効化、安全な Cookie フラグを確認します
- パスワードリセットのフロー:トークンのエントロピー、有効期限、使い捨て、アカウントの列挙防止を確認します
4. シークレットと設定を監査する
- ハードコードされた認証情報/キー/API トークンがないこと、ログやエラーメッセージにシークレットが含まれないこと
- 暗号処理:承認されたアルゴリズム、ライブラリのプリミティブ(独自実装ではないこと)、適切なモード、CSPRNG による乱数生成を確認します
5. 競合状態と状態管理
- ファイルチェック時の TOCTOU、クォータ/クレジットのチェック後に使用する処理
- 変更可能な共有状態での並行処理、複数ステップの書き込みにおけるトランザクションの不足
報告方法
重要度、具体的なコードパス、悪用の概要、推奨する修正方法を添えて報告します。「必ず修正」と「後で強化」を区別します。
コメント
Markdown 対応