🌐

シスコのProject CodeGuardで生成AIによるコードセキュリティチェック(+日本語化)

に公開

はじめに

シスコが生成AI向けのルールセットとして、Project CodeGuardというレポジトリを作成していました。

シスコ、AIにセキュアなコードを生成させるためのルールセット「Project CodeGuard」をオープンソースで公開

私自身金融系の業務にも携わっているため、生成AIでセキュリティチェックができたらいいなぁと思っていたので、これは!と思い速攻で使ってみたので、その使用方法+日本語化してみたのでその紹介になります。

インストール方法(Claude Codeの場合)

私は普段claude codeを利用していますが、レポジトリをみるとclaude codeのplugin設定が見つかったので、もしかしてと思ってpluginコマンドでインストールを試したらできました。

claude plugin marketplace add project-codeguard/rules

これでpluginとして追加されるのですが、諸々すべて英語なので、レポジトリの内容をすべて日本語化したバージョンを作成致しました。

sumik5/project-codeguard-ja

インストール方法はほぼ同じで、claude codeであれば以下のコマンドでインストールされます。

claude plugin marketplace add sumik5/project-codeguard-ja

使い方

上記でpluginとして追加されるので、claude codeを起動後以下を実行して下さい。

/codeguard-security:software-security

すると、以下のようにプロジェクトに対してスキルが有有効されたというメッセージがでてきます。

⏺ Project CodeGuard ソフトウェアセキュリティスキル

  このスキルが有効化されました。以下、日本語でセキュリティガイダンスを提供します。

  📋 スキルの概要

  このセキュリティスキルは、Project CodeGuardフレームワークに基づいており、AIコーディングワークフローにセキュアバイデフォルトの実践を組み込みます。

  🎯 主な機能

  1. 常時適用される重要ルール

  以下のルールはすべてのコード操作で必ずチェックされます:

  - 認証情報のハードコーディング禁止 (codeguard-1-hardcoded-credentials)
    - シークレット、パスワード、APIキー、トークンをコード内に直接記述しない
    - 環境変数やシークレット管理サービスを使用
  - 暗号化アルゴリズムの安全性 (codeguard-1-crypto-algorithms)
    - 最新のセキュアな暗号化アルゴリズムのみを使用
    - 非推奨の暗号化方式(MD5、SHA-1等)を避ける
  - デジタル証明書の安全な管理 (codeguard-1-digital-certificates)
    - 証明書の適切な検証と管理
    - 証明書チェーンの検証を実施
  - 安全なC/C++関数の使用 (codeguard-1-safe-c-functions)
    - 安全でない関数(strcpy、gets等)を避ける
    - 安全な代替手段(strncpy、fgets等)を使用

  2. 言語・コンテキスト固有のルール

  実装する機能の言語に応じて、以下のセキュリティドメインのルールが適用されます:

  セキュリティドメイン

  - 入力検証とインジェクション対策 - SQLインジェクション、コマンドインジェクション、XSS等
  - 認証と多要素認証(MFA) - 安全な認証メカニズムの実装
  - 認可とアクセス制御 - 最小権限の原則、RBAC、ABAC
  - セッション管理とCookie - セキュアなセッション処理
  - データストレージ - 暗号化、安全なデータベース設定
  - ファイル処理とアップロード - ファイルアップロードの安全な処理
  - API・Webサービス - REST/GraphQL APIのセキュリティ
  - クライアントサイドWebセキュリティ - CSP、CORS、XSS対策
  - モバイルアプリケーション - モバイル固有のセキュリティ
  - DevOps・CI/CD・コンテナ - パイプラインとコンテナのセキュリティ
  - サプライチェーンセキュリティ - 依存関係の管理
  - IaC(Infrastructure as Code)セキュリティ - Terraform、CloudFormation等
  - クラウドオーケストレーション・Kubernetes - K8sのセキュリティ設定

  🔄 セキュリティレビューワークフロー

  ステップ1: 初期セキュリティチェック

  コード記述前に確認:
  ✓ 認証情報を扱うか? → ハードコーディング禁止ルールを適用
  ✓ 使用言語は? → 言語固有のルールを特定
  ✓ セキュリティドメインは? → 関連ルールファイルを読み込む

  ステップ2: セキュアなコード生成

  コード記述中:
  ✓ セキュアバイデフォルトパターンを適用
  ✓ セキュリティ関連のコメントを追加
  ✓ ベストプラクティスに従った実装

  ステップ3: セキュリティレビュー

  コード記述後:
  ✓ 実装チェックリストに照らしてレビュー
  ✓ ハードコードされた認証情報がないことを確認
  ✓ すべての適用ルールの遵守を検証
  ✓ セキュリティ機能の文書化

  💡 プロアクティブなセキュリティ実践

  脆弱性を避けるだけでなく、積極的にセキュアなパターンを実装:

  - ✅ パラメータ化クエリ: データベースアクセスにプリペアドステートメントを使用
  - ✅ 入力検証: すべてのユーザー入力を検証・サニタイズ
  - ✅ 最小権限の原則: 必要最小限の権限で動作
  - ✅ 最新の暗号化: 業界標準の暗号化ライブラリとアルゴリズムを使用
  - ✅ 多層防御: 複数のセキュリティレイヤーを実装

  📊 言語別適用ルール(抜粋)

  | 言語                           | 主要な適用ドメイン                    |
  |------------------------------|------------------------------|
  | Python/JavaScript/TypeScript | 入力検証、認証、API、セッション管理、ファイル処理   |
  | Java/Kotlin                  | 認証、認可、XML処理、モバイルアプリ          |
  | Go                           | API、認証、ファイル処理、入力検証           |
  | PHP                          | Webセキュリティ、セッション管理、ファイルアップロード |
  | Docker/YAML                  | コンテナ、DevOps、IaC、サプライチェーン     |
  | SQL                          | データストレージ、インジェクション対策          |

  🚀 使用方法

  コードを記述またはレビューする際に、このスキルは自動的に:
  1. 関連するセキュリティルールを特定
  2. セキュアなコードパターンを提案
  3. 潜在的な脆弱性を検出
  4. セキュリティのベストプラクティスをガイド
  5. すべての結果を日本語で提供

  ---
  セキュリティスキルが有効化されました。コードの記述・レビュー時に、自動的にセキュリティチェックが実施されます。具体的なコードレビューや実装支援が必要な場合は、お気
  軽にお申し付けください。

あくまで一気にclaude codeで日本語化したものなので、日本語としておかしいものも多量に混じってる可能性があることだけご注意頂ければと思います。

Github Copilotなど他の生成AIに適用させたい

使ってないのでやりかたは調べてないのですが、以下の部分に使い方が記載されています。

https://github.com/sumik5/project-codeguard-ja/blob/main/docs/getting-started.md

おわり

しかしこういったpluginの使い方あるんだ・・・と勉強になりました。こういう風にどんどんpluginで拡張されていく世界はいいですねー

GitHubで編集を提案

Discussion