mcpField
C
code-security

code-security

github.com/semgrepセキュリティ3332.6k 回インストール13 週間前に更新
リポジトリ

code-security について

コードの作成とレビュー向けのセキュリティガイドスキルです。15以上の言語、OWASP Top 10、インフラセキュリティ、28のルールカテゴリを扱い、言語とコードの用途に応じた確認を促します。

主な機能

  1. 0115以上の言語に対応
  2. 0228カテゴリのセキュリティルール
  3. 03言語とコードの用途に応じたルール選択
  4. 04脆弱なコードと安全なコードの例

活用シーン

  1. 01コード作成時の脆弱性確認
  2. 02コードレビューでの問題特定
  3. 03Terraform、Kubernetes、Docker設定の確認

インストール

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

$npx skills add https://github.com/semgrep/skills --skill code-security

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

同梱ファイル

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

AGENTS.md
metadata.json
README.md
rules/
_sections.md
_template.md
authentication-jwt.md
best-practice.md
code-injection.md
command-injection.md
correctness.md
csrf.md
docker.md
github-actions.md
insecure-crypto.md
insecure-deserialization.md
insecure-transport.md
kubernetes.md
maintainability.md
memory-safety.md
path-traversal.md
performance.md
prototype-pollution.md
race-condition.md
regex-dos.md
secrets.md
sql-injection.md
ssrf.md
terraform-aws.md
terraform-azure.md
terraform-gcp.md

詳細

コードセキュリティガイドライン

15 以上の言語で安全なコードを書くための包括的なセキュリティルールです。OWASP Top 10、インフラストラクチャのセキュリティ、コーディングのベストプラクティスを含む、28 のルールカテゴリーを網羅しています。

このスキルの使い方

プロアクティブモード — コードの作成やレビュー時に、使用されている言語やパターンに基づいて、関連する脆弱性を自動的に確認します。ユーザーからセキュリティについて質問されるのを待つ必要はありません。

リアクティブモード — ユーザーからセキュリティについて質問された場合は、以下のカテゴリーから該当するルールファイルを探し、詳細な脆弱なコード例と安全なコード例を確認します。

ワークフロー
  1. 言語とコードの処理内容を特定します(入力を処理するか?DB を照会するか?ファイルを読み込むか?)
  2. 以下の関連ルールを確認します — まずは影響度が Critical と High のものに重点を置きます
  3. rules/ から該当するルールファイルを読み、その言語の詳しいコード例を確認します
  4. 安全なパターンを適用するか、レビューの場合は脆弱なパターンを指摘します

言語別の優先ルール

以下の言語でコードを書く場合は、まずこれらのルールを確認してください。

言語優先して確認するルール
PythonSQL インジェクション、コマンドインジェクション、パストラバーサル、コードインジェクション、SSRF、安全でない暗号化
JavaScript/TypeScriptXSS、プロトタイプ汚染、コードインジェクション、安全でない通信、CSRF
JavaSQL インジェクション、XXE、安全でないデシリアライゼーション、安全でない暗号化、SSRF
GoSQL インジェクション、コマンドインジェクション、パストラバーサル、安全でない通信
C/C++メモリー安全性、安全でない関数、コマンドインジェクション、パストラバーサル
RubySQL インジェクション、コマンドインジェクション、コードインジェクション、安全でないデシリアライゼーション
PHPSQL インジェクション、XSS、コマンドインジェクション、コードインジェクション、パストラバーサル
HCL/YAMLTerraform(AWS/Azure/GCP)、Kubernetes、Docker、GitHub Actions

カテゴリー

重大な影響
  • SQL インジェクション(rules/sql-injection.md)- パラメーター化クエリを使用し、ユーザー入力を決して連結しないでください
  • コマンドインジェクション(rules/command-injection.md)- ユーザー入力を含むシェルコマンドは避け、安全な API を使用してください
  • XSS(rules/xss.md)- 出力をエスケープし、フレームワークの保護機能を使用してください
  • XXE(rules/xxe.md)- XML パーサーの外部エンティティを無効にしてください
  • パストラバーサル(rules/path-traversal.md)- ファイルパスを検証し、サニタイズしてください
  • 安全でないデシリアライゼーション(rules/insecure-deserialization.md)- 信頼できないデータをデシリアライズしないでください
  • コードインジェクション(rules/code-injection.md)- ユーザー入力に eval() を決して使用しないでください
  • ハードコードされたシークレット(rules/secrets.md)- 環境変数またはシークレットマネージャーを使用してください
  • メモリー安全性(rules/memory-safety.md)- バッファーオーバーフローや解放後使用(C/C++)を防いでください
高い影響
  • 安全でない暗号化(rules/insecure-crypto.md)- SHA-256 以上、AES-256 を使用し、MD5/SHA1/DES は避けてください
  • 安全でない通信(rules/insecure-transport.md)- HTTPS を使用し、証明書を検証してください
  • SSRF(rules/ssrf.md)- URL を検証し、許可リストを使用してください
  • JWT の問題(rules/authentication-jwt.md)- 必ず署名を検証してください
  • CSRF(rules/csrf.md)- 状態を変更するリクエストには CSRF トークンを使用してください
  • プロトタイプ汚染(rules/prototype-pollution.md)- JavaScript のオブジェクトキーを検証してください
インフラストラクチャ
  • Terraform AWS/Azure/GCP(rules/terraform-aws.md、rules/terraform-azure.md、rules/terraform-gcp.md)- 暗号化、最小権限、パブリックアクセスの禁止
  • Kubernetes(rules/kubernetes.md)- 特権コンテナーを使用せず、root 以外のユーザーで実行してください
  • Docker(rules/docker.md)- root で実行せず、イメージのバージョンを固定してください
  • GitHub Actions(rules/github-actions.md)- スクリプトインジェクションを避け、アクションのバージョンを固定してください
影響度:中/低
  • 正規表現 DoS(rules/regex-dos.md)- 致命的なバックトラッキングを回避します
  • 競合状態(rules/race-condition.md)- 適切に同期します
  • 正確性(rules/correctness.md)- よくあるロジックのバグを回避します
  • ベストプラクティス(rules/best-practice.md)- 一般的なセキュアコーディングのパターン

CWE/OWASP への参照を含む完全なインデックスは、rules/_sections.md を参照してください。

クイックリファレンス

脆弱性主な予防策
SQL インジェクションパラメーター化クエリ
XSS出力のエンコード
コマンドインジェクションシェルを避け、API を使用
パストラバーサルパスを検証
SSRFURL 許可リスト
シークレット環境変数
暗号化SHA-256、AES-256

コメント