KNOWLEDGE — ノウハウ記事

AI生成コードのセキュリティ検収
──発注者が今すぐ確認すべき5つのリスクポイントと承認ゲート【2026年版】

外注先からシステムが納品され、動作確認も問題なかった。しかし3か月後、本番環境でセキュリティインシデントが発生する──。このパターンが2026年に入って急増しています。
AIコーディングツールの普及により、開発スピードは劇的に上がりました。一方で、品質・セキュリティの検証体制は追いついていません。発注者側には「動いた=安全」という誤解が残り、ベンダー側には「AIが生成したから問題ないはず」という油断が生まれています。
本記事では、AI生成コードに潜むセキュリティリスクの実態と、発注者として「受け取る前に確認すべき5つのポイント」「承認ゲートの設計方法」を、専門知識がなくても実行できる形で解説します。

「動いた」の先にあるセキュリティの空白

受け入れテストを通過し、本番リリースまでこぎつけた。その時点で発注者の関心は次のフェーズへ移ります。ところが、セキュリティ上の欠陥は「リリースの瞬間」ではなく「その後の運用」で顕在化します。

ここで重要な逆説があります。「動いている」ことは「安全である」ことを何ひとつ証明しません。むしろ、AI生成コードは短期間で「きれいに動く」状態に到達できるぶん、検証されないまま本番に出やすいという構造的な問題を抱えています。

発注者にできることは、技術を学ぶことではありません。「何を確認するか」を決め、「いつ確認するか」を契約と工程に組み込むことです。この2つは専門知識がなくても設計できます。

AI生成コードのセキュリティ問題──人間が書いたコードとの差

コードレビューAIツールを提供するCodeRabbitの調査(2026年)によれば、AIが生成したプルリクエストには人間が作成したプルリクエストの約1.7倍の問題が含まれており、そのうちセキュリティ関連の問題は約3倍に上るとされています。エラーハンドリングの不備は約2倍、可読性・保守性の低下も顕著です。

なぜAIがコードを書くとセキュリティリスクが高まるのか。主な理由は3つあります。

  • 学習データの偏り──AIは公開リポジトリ上のコードを学習していますが、その中には脆弱なコードも含まれます。AIはパターンを学習するため、脆弱なコードパターンを「正しいコード」として再生産してしまうことがあります。
  • 文脈の欠如──AIは指示された機能の実装には優れていますが、「この入力値がどこから来て、どのように扱われるべきか」という文脈理解は不完全です。その結果、SQLインジェクションやXSSといった古典的な脆弱性が見落とされやすくなります。
  • 速度優先のコード生成──vibe codingに代表されるAIコーディングは「速く動かす」ことを優先する傾向があります。入力値のバリデーション、認証・認可の正しい実装、エラーハンドリングは後回しにされやすい領域です。

発注者が気づきにくい理由──「見えない負債」の正体

問題をより深刻にしているのは、セキュリティの脆弱性は「動作確認」では発見できないという点です。

通常の受け入れテスト(UAT)は「要件通りに動くか」を確認するものです。ログインできるか、データが保存されるか、正しい画面が表示されるか──これらはすべて機能面の確認であり、セキュリティ上の穴は検出されません。

さらに、AI生成コードは一見すると「整ったコード」に見えます。変数名は適切で、コメントも多く、ロジックの流れは読みやすい。しかしその裏に、認証トークンの不適切な管理や、外部入力のサニタイズ漏れが隠れていることがあります。

発注者が「ちゃんとしたコードに見える」と安心してしまう構造──これが2026年の最大のリスクです。検収の設計全体については 生成AI開発の検収で失敗しない方法──発注者のための納品物チェックリストと承認ゲート設計 で解説しています。

発注者がチェックすべき5つのリスクポイント

経営者・発注担当者が、専門的な知識なしに確認できる「問い」の形で5点を整理します。ベンダーがこの問いに具体的に答えられるかどうか自体が、体制の成熟度を測る指標になります。

リスク①:認証・認可の実装

「ログイン済みユーザーだけがアクセスできる画面・データの判定ロジックは何か」をベンダーに説明させます。AI生成の認証コードには、特定の条件下で認証をバイパスできる実装が紛れ込むケースがあります。

確認すべき質問:「認証と認可の違いを説明できるか。それぞれのテストをどう実施したか」

リスク②:外部入力のバリデーション

ユーザーが入力する値(フォーム、URLパラメータ、API経由のデータ)を、サーバー側でどのように検証・無害化しているか。フロントエンドのみのバリデーションは、攻撃者にとって無意味です。

確認すべき質問:「サーバーサイドのバリデーションはどのレイヤーで実施しているか」

リスク③:エラーハンドリングと情報漏洩

エラーが発生したとき、どのような情報がユーザー(攻撃者)に表示されるか。スタックトレースやデータベースの構造が表示されると、攻撃の手がかりを与えてしまいます。

確認すべき質問:「本番環境のエラー画面を実際に見せてほしい」

リスク④:依存ライブラリの脆弱性

AI生成コードは、古いバージョンのライブラリや既知の脆弱性を持つパッケージを引き込みやすい傾向があります。開発速度が上がるほど、この「無意識のリスク取り込み」が増えます。

確認すべき質問:「使用ライブラリの脆弱性スキャン(SCA)はどのツールで実施したか。最終スキャン日はいつか」

リスク⑤:シークレット情報の管理

APIキー、データベースの接続情報、認証トークンがコード内にハードコードされていないか。AIはしばしば「動くけれどセキュアではない」実装を生成します。

確認すべき質問:「秘密情報をコードリポジトリにコミットしていないことを、どのように確認しているか(シークレットスキャンの実施確認)」

承認ゲートの設計──3段階でセキュリティを担保する

発注者が受動的に「確認する」だけでは不十分です。契約・開発プロセスの中に「ゲート」を設けることで、セキュリティリスクを構造的に排除できます。

Gate 1:仕様確定前(要件定義段階)

セキュリティ要件を機能要件と同じレベルで仕様書に明記します。「ログインはJWT認証とし、有効期限は24時間」「全APIエンドポイントにレート制限を設ける」といった具体的な記述が必要です。曖昧な仕様は、AIにとっても人間にとっても「やらなくていい」の言い訳になります。

Gate 2:中間納品時(機能実装完了後)

コード納品の中間段階で、SAST(静的解析)ツールによるスキャン結果をベンダーに提出させます。この時点でのセキュリティ問題は修正コストが低く済みます。「動いてから直す」は取り返しがつかない場合があります。

Gate 3:最終検収時(本番リリース前)

DAST(動的解析)による侵入テストの実施、または第三者セキュリティ審査の結果を受領します。簡易的なものでも外部の目を入れることが重要です。

この3ゲートは「コスト」ではなく「保険」として捉えるべきです。データ漏洩インシデントの対応費用は1件あたり数百万〜数千万円規模になりうる一方、ゲート設計に必要なのは工程の組み替えと数十万円規模の検証費用です。比較すれば、その合理性は明らかです。

HITL5 CODEによるセキュリティ統治──「仕組み」で守る

ここまで解説した確認ポイントとゲート設計は、手作業では維持が難しいものです。特に複数のベンダーと並行開発を進める場合、担当者のスキルや注意力に依存した管理は機能しません。

当社が提唱するAI-HITL5 Frameworkでは、HITL5 CODEとして5つの層──ARCHITECTURE / TEST / CI-CD / CODE REVIEW / GOVERNANCE──を設け、各層でAI(自動化)・HUMAN(人間判断)・GATE(承認)の3構造を置いています。
AI-HITL5 Framework / ディレクトリジャパン株式会社 提唱 / 2026

セキュリティ統治はこの枠組みの中で次のように機能します。

  • ARCHITECTURE層:セキュリティ設計の承認(GATE)
  • TEST層:SAST/DAST・ペネトレーションテストの自動化(AI)+結果判定(HUMAN)
  • CI-CD層:セキュリティスキャンをパイプラインに組み込み、スコアが閾値を下回ったらデプロイ自動停止(GATE)
  • CODE REVIEW層:AIコードレビューツールによるセキュリティ問題の事前検出(AI)+人間レビュアーの確認(HUMAN)
  • GOVERNANCE層:定期的なセキュリティ監査と経営層への報告(GATE)

重要なのは、発注者側にこの「ゲートを設けた仕組み」があることで、ベンダーの行動が変わる点です。「どうせチェックされない」から「ゲートで止まる」へ──この変化が品質の底上げに直結します。

リリース後の継続的な品質統治については vibe codingのデグレを防ぐ品質統治──AI生成コードの継続的ガバナンスと経営層の3ゲート もあわせて参照ください。

まとめ──速さと安全は仕組みで両立できる

AI生成コードは速く動きます。しかしセキュリティは「後から確認する」ものではなく、「最初から設計する」ものです。

発注者として今すぐできることは3つあります。

  1. 5つのリスクポイントをベンダーへの質問リストにする(認証・認可、バリデーション、エラーハンドリング、依存ライブラリ、シークレット管理)
  2. 3段階の承認ゲートを次の発注仕様書に盛り込む(仕様確定前・中間納品時・最終検収時)
  3. 「動いた」を「安全に動いた」に言い換える社内文化を作る

スピードを活かしながら安全を担保する──それは「使うな」ではなく「どう使うか」の設計の問題です。

「止める・承認する・残す」を、実物で確かめる

14日無償トライアル。実プロジェクトにHITL5 CODEの承認ゲートを適用し、AIが書いたコードをどこで止め、何を人間が承認し、どんな証跡が残るかを体験いただけます。

14日無償トライアルを申し込む まずは無料相談する

よくある質問(FAQ)

Q1. AI生成コードのセキュリティ審査は、どれくらいのコストがかかりますか?

SASTツールによる自動スキャンは既存のCI/CDパイプラインへの組み込みで対応可能なケースが多くあります。外部ペネトレーションテストは小規模なシステムで数十万円〜が目安です。インシデント後の対応費用と比較すれば、初期投資は小さいといえます。

Q2. ベンダーに「セキュリティスキャンの結果を出してほしい」と言いにくい雰囲気があります。どうすればいいですか?

発注仕様書の段階で「検収条件にセキュリティスキャン結果の提出を含む」と明記することをお勧めします。後から要求するより、最初から契約条件にすることでベンダーも対応コストを見込んだ見積もりを出します。

Q3. 社内に技術者がいない場合、セキュリティ審査は外注できますか?

第三者セキュリティ診断サービスを利用できます。また AIコーディング×オフショアの品質統治ガイド のような規格に準拠したベンダーを選ぶことで、ゲート設計を外注先自体に任せることもできます。

Q4. vibe codingで作られたコードは特にリスクが高いのですか?

vibe coding自体が悪いわけではありませんが、「速く動かすこと」を優先する傾向があるため、セキュリティ上の考慮が後回しになりやすいのは事実です。適切なゲートとレビュー体制があれば速度と安全を両立できます。

Q5. 既にリリース済みのシステムにAI生成コードが含まれているか確認できますか?

SCAツール(Software Composition Analysis)で使用ライブラリの脆弱性を確認できます。また、SASTツールで既知の脆弱性パターンをスキャンすることも可能です。まず「使用しているライブラリの一覧と最終更新日」をベンダーに要求することが最初のステップです。

AI活用 無料診断CONTACT

毎月3社限定!AI活用 30分 無料診断

「AI推進室を作ったが成果が出ない」「PoCは成功したが本番化できない」
「AI人材の採用が間に合わない」「ドキュメントのないレガシーをどう刷新すべきか」
―― そんな経営者の課題を、ディレクトリジャパンのAIディレクターが30分で診断・整理します。

【こんな経営者におすすめ】

  • AI推進室を作ったが、「何が変わったか」を答えづらい
  • パイロットは成功したが、本番化の判断ができずに止まっている
  • 「AI内製化 vs 外注」の二択で議論が膠着している
  • ドキュメントなき基幹システムを、AIの力で再活用したい