mcpField
S
security-review-process

security-review-process

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

security-review-process について

security-review-processは、コード変更時のセキュリティリスクを監査し、対策を検証するコーディングスキルです。入力処理、インジェクション、シークレットとログ、依存関係の脆弱性を扱います。

主な機能

  1. 01信頼できない入力を監査し許可リスト化
  2. 02SQLとシェルのインジェクションを確認
  3. 03コードやログへのシークレット混入を防止
  4. 04bundle-auditで依存関係をスキャン
  5. 05問題を提示して対策を検証

活用シーン

  1. 01APIやWebhookの入力処理をレビュー
  2. 02データベースやコマンド実行経路を確認
  3. 03ログや設定からのシークレット漏えいを点検
  4. 04変更確定前に依存関係の脆弱性を評価

インストール

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

$npx skills add https://github.com/igmarin/ruby-core-skills --skill security-review-process

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

詳細

セキュリティレビューのプロセス

この手順の前に、実行契約を適用してください。

セキュリティゲートとクイックリファレンス

領域ゲート
入力検証信頼できないペイロードは、処理の前に許可リストフィルターを通過する必要があります
シークレットシークレットをコミットまたはログに記録してはなりません
インジェクションSQL への直接的な補間(#{id})は禁止されています
依存関係変更を確定する前に bundle-audit を実行してください

プロセスの手順

ステップ 1:入力検証の監査
  • すべてのエントリーポイント(コントローラー、API エンドポイント、Webhook、コンソールランナー)を特定します。
  • すべてのパラメーターが明示的に許可リストに含まれ、必要に応じて型変換されていることを確認します。
  • JSON ペイロード内の指示のようなキー(例:prompt、instructions)が破棄または無害化されることを確認します。
ステップ 2:インジェクションの確認
  • すべてのデータベース操作を監査します:
    • 文字列補間(#{})によって生の SQL 文字列が構築されていないことを確認します。
    • データベースクライアントのクエリパラメーター化機能が使用されていることを確認します。
  • ファイルおよびコマンドの実行を監査します:
    • バッククォート、system()、または exec() による動的なシェルコマンドは避けてください。必要な場合は、引数を個別の配列要素として渡します。
ステップ 3:シークレットとログの確認
  • 設定は環境変数(ENV['SECRET'])または安全な設定ボールトから読み込み、生のリテラル値は使用しないでください。
  • 機密データ(パスワード、トークン、個人識別情報)がログ出力からフィルタリングまたはマスキングされていることを確認します。
ステップ 4:依存関係と CVE の確認
  • プロジェクトの依存関係をスキャンします:
    bundle exec bundle-audit check --update
    
  • 脆弱性が報告された場合は、安全なバージョンへのアップグレードを計画します。

チェックポイントのパターン

ユーザーと認識を合わせます:

  1. セキュリティ脆弱性の評価: 懸念事項を脅威ベクトル(例:SQL インジェクション、シークレットの漏えい)ごとに分類して提示します。
  2. 緩和策の検証: 修正後、パラメーター化クエリまたはフィルターによってエクスプロイトのベクトルがどのように阻止されるかを示します。

コードによる防御の例

1. SQL インジェクションの防止

脆弱な例:

db.execute("SELECT * FROM users WHERE name = '#{params[:name]}'")

安全な例:

db.execute("SELECT * FROM users WHERE name = ?", params[:name])
2. シェルインジェクションの防止

脆弱な例:

system("rm -rf #{params[:path]}")

安全な例:

system("rm", "-rf", params[:path])

統合

コンテキスト次のスキル
標準的なコードレビューreview-process
一般的な TDD のサイクルtdd-process

コメント