コンテンツにスキップ

AI生成コードのセキュリティ確保

Aikidoで AI開発ワークフローを強化する

Claudeのような AIコーディングエージェントは、コードの記述とコミットを自律的に行うことで開発を高速化します。しかしその一方で、新たなリスクも生まれます。シークレットの漏えい、偽パッケージのインストール、IDEのフィードバックの見落とし、十分なセキュリティチェックを経ないままのコード出荷などが起こり得ます。

Aikidoによる支援

  • プレコミット制御: コードがリポジトリに入る前にミスを検出します。
  • コード生成時: エージェントのワークフローに密着したセキュリティチェックを実施します。
  • マージ前チェック: リスクのある変更がmainブランチに到達する前に止めます。

チームがClaudeを使っていても他のAIツールを使っていても、Aikidoはワークフロー全体にガードレールを追加します。

  • マルウェアを指すハルシネーション(幻覚)によるパッケージ名
  • 誤ってコミットされたシークレットやトークン
  • エージェントがIDEの外部で動作するために見逃されるセキュリティ検出結果
  • コード生成からマージまでの間にセキュリティチェックが存在しないこと

Safe Chain: 悪意のあるパッケージやハルシネーションによるパッケージをブロックする

Section titled “Safe Chain: 悪意のあるパッケージやハルシネーションによるパッケージをブロックする”

Safe Chainは、インストール前に信頼できるレジストリに対してパッケージを検証します。偽物やハルシネーションによるパッケージ名が環境に到達する前にブロックします。また、難読化されたコード、データの持ち出し、インストールスクリプト、クリプトマイナーといった悪意ある挙動がないか、ネストされた依存関係もスキャンします。公開から24時間未満の新しいパッケージバージョンはデフォルトでブロックされ、Safe Chainはビルドが止まらないよう、直近の安全な旧バージョンにフォールバックします。

Secrets Pre-Commit Hook: シークレットのコミットを防止する

Section titled “Secrets Pre-Commit Hook: シークレットのコミットを防止する”

Aikido Secrets Pre-Commit Hookは、ステージングされた変更をスキャンし、シークレット、パスワード、APIキーを含むコミットをブロックします。開発者が書いた変更とエージェントが生成した変更の両方に対応します。コードが端末から出る前にローカルで実行されるため、Gitの履歴、CIログ、プルリクエストへの偶発的な露出のリスクを低減します。IDEプラグインを利用しているチームは、Aikido Expansion Packs(現在はVS Codeおよび関連IDEで利用可能)からも直接インストールできます。

Aikido MCP: コード生成中にコードをスキャンする

Section titled “Aikido MCP: コード生成中にコードをスキャンする”

AI Coding Assistants (MCP)のセットアップにより、Aikidoをエージェント環境に直接接続できます。コードが書かれている最中にシークレットスキャンとSASTを実行し、コミット前の問題修正を支援します。Automatically handle MCP rules in IDEと組み合わせると、Aikidoは生成・追加・変更されたコードに対してスキャン・修正・再スキャンのループを自動で実施できます。これにより、後からのスキャンを待つことなく、セキュリティチェックをAIワークフローの内側に保つことができます。

Aikido AI in IDEとExpansion Packs: 検出結果を可視化し続ける

Section titled “Aikido AI in IDEとExpansion Packs: 検出結果を可視化し続ける”

Aikido AI in IDEは、コードの記述中も検出結果と修正を可視化し続けます。AI AutoTriageを使って重要な問題を優先付けし、AI AutoFixを使って差分プレビューと自動再スキャン付きのレビュー可能な修正を生成できます。より迅速に展開したい場合は、Aikido Expansion Packsを使って、プレコミットフック、Safe Chain、MCPといった関連ツールをIDEから直接インストールできます。これにより、開発者とエージェントのワークフロー全体を一箇所にまとめられます。

PR Gating: マージ前のチェックを強制する

Section titled “PR Gating: マージ前のチェックを強制する”

PR Gatingは、エージェントが生成した変更がmainブランチに到達する前の最終的な制御ポイントです。SCA、IaC、Secrets、SAST、マルウェア、ライセンスリスク、コード品質にわたって、ブランチの差分から新しい問題をスキャンします。また、そのブランチがどの既存の問題を解決したかも表示します。重大度のしきい値の設定、実行するスキャンの選択、ドラフトプルリクエストをチェック対象にするかどうかの決定が可能です。これにより、それ以前の対策がスキップまたはバイパスされた場合でも、強力な最後の砦として機能します。

  1. パッケージインストール時にSafe Chainを有効化する
  2. Aikido Secrets Pre-Commit Hookをインストールする
  3. AI Coding Assistants (MCP)をエージェント環境に接続する
  4. 最終チェックとしてPR Gatingを有効なままにしておく