AIが生成するコードの45%にセキュリティ上の欠陥がある理由(そしてその対策)

Yunhao Jiao
AIが生成するコードの45%にセキュリティ上の欠陥がある理由(そしてその対策)カバー

Veracodeの「2025 GenAI Code Security Report」によると、AIが生成するコードの45%にセキュリティ上の欠陥が含まれています。AIが書くコードのほぼ半数に脆弱性が存在するということです。

この統計は、素人的なプロンプト操作によるものではありません。セキュリティを意識したプロンプト戦略を用いてエンタープライズグレードのAIコーディングツールを使用するプロの開発者が含まれています。BaxBenchで最高パフォーマンスを記録したモデルでさえ、セキュリティ特化のプロンプトを使用しても、安全なコードを生成できたのは約66%にとどまりました。

セキュリティコミュニティは、特定の脆弱性パターンを数値化しています。AIのコードはXSSを導入する可能性が2.74倍、安全でない直接オブジェクト参照を生成する可能性が1.91倍、不適切なパスワード処理を実装する可能性が1.88倍高いとされています。

これらは理論上のリスクではありません。Aikido Securityの調査では、開発者の69%が自分たちのシステムでAIが持ち込んだ脆弱性を発見したと回答しています。5人に1人は、事業に実質的な影響を与えたインシデントを報告しています。

AIが安全でないコードを生成する理由

AIコーディングツールは、公開コードリポジトリを学習データとしています。公開リポジトリには膨大な量の安全でないコードが含まれています。モデルはそのパターン—安全でないものも含めて—を学習し、再現します。

具体的なパターン:

  • 学習データに入力バリデーションが含まれないことが多いため、入力バリデーションが省略されがちである
  • モデルが対象システムの権限モデルを理解していないため、認可チェックが不完全になる
  • 学習データにハードコードされたシークレットが含まれているため、シークレットがハードコードされることがある
  • 学習データが内部情報を漏洩しているため、エラーメッセージが過度に詳細になる

対策:すべてのPRに対する自動セキュリティテスト

プロンプトの工夫だけで安全なコードを実現することはできません。セキュリティ特化のプロンプトを使用しても66%という上限があることがその証拠です。対策はテスト—特に、すべてのコード変更に対して実行される自動セキュリティテスト—です。

TestSpriteは、すべての実行においてセキュリティテストを含みます:IDORチェック、認証バリデーション、入力サニタイズ、XSS検出、認可境界テスト。脆弱性はマージ前のPRの段階で検出されます。

すべての欠陥が本番環境に到達する前に検出されれば、45%という欠陥率も対処可能になります。自動セキュリティテストは、AIスピードの開発を安全にするガードレールです。

TestSpriteを無料で試す →