Project CodeGuard: AIコーディングエージェントのセキュリティルール

Project CodeGuard: AIコーディングエージェントのセキュリティルール

シスコシステムが生成AIツールを利用したコーディングを行う際に、AIにセキュアなコードを生成させる為のルールセットをオープンソースとして公開しましたので、その有用性と使い方について、簡潔にご紹介します。

Project CodeGuardとは

Project CodeGuardは、シスコ社内で開発されたAIモデル非依存のセキュリティフレームワークで、AIコーディングワークフロー(生成とレビュー)にセキュアバイデフォルトの実践を組み込むことを目的に開発が進められたルールセットです。

現在はオープンソースとして公開され、コアとなるセキュリティルール、主要なコーディングエージェント向けのトランスレータ、ルール準拠性をテストするバリデータ等を提供しています。

なぜProject CodeGuardが必要なのか

AIコーディングエージェントがもたらす課題

AIコーディングエージェントはソフトウェアエンジニアリングを変革していますが、そのスピードがセキュリティ脆弱性を導入する可能性があります。

具体的なリスクを以下にまとめてみます。

具体的なリスク例:

  • 入力検証のスキップ
  • シークレットや認証情報のハードコーディング
  • 弱い暗号化アルゴリズムの使用
  • 安全でない関数への依存
  • 認証・認可チェックの欠落
  • その他のセキュリティベストプラクティスの欠如 GitHub

解決アプローチ

Project CodeGuardは、セキュリティベストプラクティスをAIコーディングエージェントのワークフローに直接組み込むことで、この問題を解決することを目的としています。

Project CodeGuardの主な特徴

Project CodeGuardの特徴をリストでまとめます。

1. 多段階のセキュリティアプローチ

コード生成の前・中・後のすべての段階で使用できます。計画フェーズでAIエージェントをより安全なパターンに誘導し、生成中に脆弱性の導入を防ぎ、生成後の自動レビューにも活用できます。

2. 3つの主要コンポーネント

フレームワークは、セキュリティルールのコレクション、これらのルールを人気のあるAIコーディングエージェント向けの指示に変換するスクリプト、そして検証ツールの3つの主要コンポーネントで構成されています。

3. 業界標準に基づくルール

ルールセットはOWSAP(Open Worldwide Application Security Project)やCWE(Common Weakness Enumeration)などの確立されたセキュリティベストプラクティスとガイダンスに基づいています。

具体的な適用例

具体的な適用例を2つご紹介します。

ひとつめは、”入力検証ルール“です。

コード生成中に安全な入力処理パターンを提案し、安全でない入力処理をリアルタイムでフラグ付けし、最終コードに適切なサニタイゼーションと検証ロジックが存在することを確認することを目的に、Project CodeGuardを利用します。

ふたつめは、”シークレット管理ルール“です。

ハードコードされた認証情報の生成を防ぎ、機密データパターンが検出されたときに開発者に警告し、シークレットが安全な設定管理を使用して適切に外部化されていることを検証する際にProject CodeGuardを適用するのです。

重要な注意点

Project CodeGuardのルールはAIコーディングエージェントをより安全なパターンに導き、デフォルトで一般的な脆弱性を回避させますが、特定の出力が安全であることを保証するものではありません

Project CodeGuardを導入したから、安全だと思い込むのは早計です。

ピアレビューやその他の一般的なセキュリティベストプラクティスを含む標準的な安全なエンジニアリング実践を引き続き適用する必要があることは忘れてはいけません。

Project CodeGuardの使い方

Project CodeGuardの使い方についてもまとめておきましょう。

1. 対応プラットフォーム

初回リリース(v1.0.0)には、GitHub CopilotやWindsurfなどの翻訳スクリプトが含まれています。その他、CursorなどのメジャーなAIコーディングエージェント向けのルール変換機能も提供されています。

2. 基本的な利用方法

Step 1: GitHubリポジトリから取得

  1. GitHubのproject-codeguard/rulesリポジトリにアクセス
  2. Source code(zip)のリンクをクリックし、最新のルールファイルとドキュメントをダウンロード。 実際にDLしてみたところ、145 KBのファイルがDLされました。
  3. ZIPファイルを解凍
  4. プロジェクトへのコピー プロジェクトにコピーし、AIエージェントとIDE固有のルールをリポジトリに配置します。配置は以下を参考にしてください。
your-project/
├── .github/
│   └── copilot-instructions.md  # GitHub Copilot用
├── .cursor/
│   └── rules.md                  # Cursor用
├── .windsurf/
│   └── rules.md                  # Windsurf用
└── src/

Step 2: 使用フェーズに応じた適用

コーディングを開始すると、AIアシスタントが自動的にセキュリティベストプラクティスに従います。

AIがコードを提案する際に、自動的にセキュアなパターンを選択します。脆弱性のあるコードを生成しようとすると警告がでてきます。

計画・設計フェーズ:

  • AIエージェントの計画段階でルールを適用
  • より安全なコーディングパターンへの誘導

コード生成中:

  • リアルタイムで脆弱性のあるコードスニペットをブロック
  • 安全でない構文の検出と警告

生成後:

  • 自動コードレビュー
  • セキュリティ検証の実施

Step 3: トランスレータの活用 人気のあるコーディングエージェント向けのトランスレータ(変換ツール)を使用して、ルールを各プラットフォーム用に自動変換します。

Step 4: バリデータでの検証 バリデータを使用してルールへの準拠性をテストします。

3. カスタマイズと貢献

コミュニティは以下の方法で貢献できます。

  • 新しいルールの提出(特定の言語、フレームワーク、脆弱性クラスのカバレッジ拡大)
  • トランスレータの構築(お気に入りのAIコーディングツール向けの統合作成)
  • フィードバックの共有(問題報告、改善提案、新機能の提案)

4. 今後のロードマップ

ロードマップには、より広範な言語カバレッジ、より多くのプラットフォーム統合、自動ルール検証が含まれています。

将来のバージョンでは、新しいプラットフォーム向けにルールを自動変換し、プロジェクトのコンテキストと技術スタックに基づいてルールを提案し、エージェント間の一貫性を維持し、手動設定を削減し、使用パターンに基づいてルールを改善するフィードバックループが提供されるかもしれません。

ライセンス

使用するにあたって、ラインセスについても確認しておきましょう。

セキュリティルールとドキュメントはCreative Commons Attribution 4.0 International(CC BY 4.0)でライセンスされており、ソースコードとツール(src/ディレクトリ)はApache License 2.0でライセンスされています。

Project CodeGuardは、AIコーディングツールの生産性を維持しながら、セキュリティを開発プロセス全体に統合する実践的なアプローチを提供します。

Creative Commons Attribution 4.0 International (CC BY 4.0)が示すルールをまとめておきます。

  • 自由に使用
  • 共有
  • 改変可能 商用利用も可能
  • 帰属表示が必要

Apache License 2.0は以下の通りです。

  • オープンソースで自由に使用可能
  • 特許権の明示的な許諾
  • 企業での使用にも適した条件

Project CodeGuardは、AIコーディングの時代におけるセキュリティを「後付け」から「組み込み」へと変革する画期的なフレームワークです。開発速度を犠牲にすることなく、セキュアなコードを生成できる環境を実現してくれるフレームワークですので、興味のある方は是非一度使ってみてください。

APPSWINGBYは、最先端の技術の活用と、お客様のビジネスに最適な形で実装する専門知識を有しています。システム刷新(モダナイゼーション)やシステムリプレース、新規サービスの設計・開発、既存システムの改修(リファクタリング、リアーキテクチャ)、DevOps環境の構築、ハイブリッドクラウド環境の構築、技術サポートなど提供しています。

貴社のレガシーシステムの刷新についてご相談されたい方は、お問い合わせフォームからお気軽にご連絡ください。AI開発とSIの専門家が、貴社の課題解決をサポートいたします。

システム開発にお困りではありませんか?

この記事を書いた人
株式会社APPSWINGBY
株式会社APPSWINGBY マーケティング

APPSWINGBY(アップスイングバイ)は、アプリケーション開発事業を通して、お客様のビジネスの加速に貢献することを目指すITソリューションを提供する会社です。

ご支援業種

情報・通信、医療、製造、金融(銀行・証券・保険・決済)、メディア、流通・EC・運輸 など多数

株式会社APPSWINGBY
株式会社APPSWINGBY マーケティング

APPSWINGBY(アップスイングバイ)は、アプリケーション開発事業を通して、お客様のビジネスの加速に貢献することを目指すITソリューションを提供する会社です。

ご支援業種

情報・通信、医療、製造、金融(銀行・証券・保険・決済)、メディア、流通・EC・運輸 など多数

監修
APPSWINGBY CTO川嶋秀一
株式会社APPSWINGBY  CTO 川嶋秀一

動画系スタートアップや東証プライム上場企業のR&D部門を経て、2019年5月より株式会社APPSWINGBY 取締役兼CTO。
Webシステム開発からアプリ開発、AI導入、リアーキテクチャ、リファクタリングプロジェクトまで幅広く携わる。
C, C++, C#, JavaScript, TypeScript, Go, Python, PHP, Java などに精通し、Vue.js, React, Angular, Flutterを活用した開発経験を持つ。
特にGoのシンプルさと高パフォーマンスを好み、マイクロサービス開発やリファクタリングに強みを持つ。
「レガシーと最新技術の橋渡し」をテーマに、エンジニアリングを通じて事業の成長を支えることに情熱を注いでいる。

APPSWINGBY CTO川嶋秀一
株式会社APPSWINGBY  CTO 川嶋秀一

動画系スタートアップや東証プライム上場企業のR&D部門を経て、2019年5月より株式会社APPSWINGBY 取締役兼CTO。
Webシステム開発からアプリ開発、AI導入、リアーキテクチャ、リファクタリングプロジェクトまで幅広く携わる。
C, C++, C#, JavaScript, TypeScript, Go, Python, PHP, Java などに精通し、Vue.js, React, Angular, Flutterを活用した開発経験を持つ。
特にGoのシンプルさと高パフォーマンスを好み、マイクロサービス開発やリファクタリングに強みを持つ。
「レガシーと最新技術の橋渡し」をテーマに、エンジニアリングを通じて事業の成長を支えることに情熱を注いでいる。