AI生成コードの5つの安全原則
動くコード=安全ではない AIコーディング爆速化でセキュリティ崩壊を防ぐ鉄則5選
AIコーディングエージェントを使えばコード生成は効率化できるものの、生成されたコードは必ずしも安全とは限らない。IBMは、AI支援開発におけるセキュリティ対策として5つの原則を解説する。
生成AIを使えば、コードやテスト、AIエージェント、ワークフローを短時間で生成できる。一方、従来の人手による開発を前提としたセキュリティ対策をそのまま適用すると、AIによる開発速度に追い付けない可能性がある。
IBMのディスティングイッシュトエンジニア、ジェフ・クルム氏は、設計や開発の初期段階に前倒ししてセキュリティを確保する「シフトレフト」の考え方を基に、AI支援開発で押さえるべき5つのセキュリティ原則を解説した。同氏によると、AI時代のシフトレフトでは、単にセキュリティツールを早い工程で実行するだけでは不十分だ。何を、いつ、どのように検証し、AIが生成した成果物への信頼性をどう確保するかまで設計する必要がある。
原則1.AIが生成したコードをそのまま信頼しない
AIが生成したコードには厄介な特徴がある。一見すると正しく動作しているように見えることだ。
コンパイルに成功し、テストを通過したとしても、それだけで安全とは限らない。例えば、AIが顧客情報をデータベースから取得するサービスを生成し、期待通りに動作していたとしても、そのサービスが顧客データ全体にアクセスできる設計になっていれば、過剰な権限を持つ可能性がある。
クルム氏は、AIが生成したコードについて、生成されたこと自体ではなく「結果を信頼できるかどうか」を確認することが重要だと述べる。
クルム氏によると、確認すべきなのは「コードが期待通りの結果を返すか」だけではない。過剰な権限が付与されていないか、機密情報が外部へ流出する可能性はないか、認証に失敗した場合に安全な状態へ移行できるかといった点も検証する必要がある。
クルム氏は、技術的に正常に動いているように見えても、それが安全なシステムであることを意味するわけではないと指摘する。実際の利用環境でも期待した処理をし、かつ安全に振る舞うかどうかまで確認する必要があるという。
原則2.セキュリティ確認を開発の最後に回さない
従来、セキュリティレビューを開発工程の終盤に実施する組織もあった。例えば、実装やテストを終え、コードの変更内容をバージョン管理システムに記録した後でセキュリティレビューを実施する、といった進め方だ。しかしクルム氏によると、AIが数秒でコードを生成する環境では、開発の最後にまとめてセキュリティ確認を実施する方法がボトルネックになりやすい。
クルム氏は、従来のようにセキュリティレビューを開発の最後のチェック項目として扱う方法は、AI支援開発ではさらに機能しにくくなると説明する。問題を早い段階で発見するほど、修正に必要なコストも抑えやすいためだ。
そこで重要になるのが「シフトレフト」だ。セキュリティ確認を開発工程の前段階へ移し、コードを作成している途中から継続して検証する。
具体的には、静的コード解析、ペネトレーションテスト、コードに埋め込まれたシークレットの検出、ポリシーやコンプライアンスの確認などだ。これらをコード生成後にまとめて実施するのではなく、開発プロセスそのものに組み込むことが重要だとクルム氏は強調する。
AIによってコード生成を高速化するのであれば、それに合わせてセキュリティ検証も開発フローの中で実施できる体制が必要になる。
原則3.生成コードだけでなく「依存先」も調べる
AIが生成するのはソースコードだけではない。新しいパッケージやライブラリ、外部サービス、システム連携などを利用するコードを生成する場合もある。
開発者がAIの生成したソースコードだけをレビューすると、その裏側で追加された依存関係を見落とす可能性がある。クルム氏は、AIはコードと同時にさまざまな依存関係も持ち込むと指摘する。新しい依存関係は機能を増やす一方で、それぞれが新たなリスクにもなり得る。
そのため、AIが追加した依存関係についても、生成コードと同じ水準で確認する必要がある。
クルム氏は、確認項目としてパッケージの信頼性、既知の脆弱(ぜいじゃく)性、ライセンス、ソースの完全性、組織内の標準への適合状況などを挙げる。AI支援開発では、依存関係の検証も安全なコード生成の一部として扱う必要があるという。
AIコーディングツールを全社展開する場合、情シスやセキュリティ担当者は「どのAIツールを利用できるか」だけでなく、AIが生成コード内でどの外部ライブラリやサービスを利用してよいのかというルールも検討する必要がある。
原則4.コードではなく「要求が正しいか」も確認する
セキュリティに関する問題は、プログラムの書き方だけに起因しているわけではない。そもそもの要求や前提が間違っている場合もある。
例えば「誰がデータにアクセスできるのか」「どの操作まで許可するのか」「どの情報を保護する必要があるのか」といった条件が曖昧なままAIにコードを生成させれば、技術的には正しくても、企業のセキュリティポリシーに反するシステムができる可能性がある。
クルム氏は、深刻なセキュリティ問題の中には、コーディングの品質ではなく「誤った前提」によって生じるものもあると指摘する。例えば財務データを正しく処理するワークフローをAIが生成しても、本来は閲覧できない利用者にデータを公開する設計なら、安全とは言えない。
この場合、問題はコードの実装方法というより、AIに何を実現させようとしたのかという「意図」にある。クルム氏は、AIが高度なコードを高速に生成できるようになるほど、開発者には生成結果を検証する責任が増すと説明する。確認対象はコード品質だけではなく、AIが「正しい問題を、正しい方法で解決したかどうか」にまで広がるという。
原則5.リリース後も継続して検証する
セキュリティ確認はリリース時に終わるものではない。
AI支援開発ではコードや構成の変更が継続的に発生する。そのためセキュリティ検証も、「開発→テスト→デプロイ→監視→改善」という一連の工程で継続して実施する必要がある。
クルム氏は、AI支援開発が継続的に変化を生み出す以上、セキュリティ検証も継続的に実施しなければならないと強調する。リリース後も含め、開発ライフサイクル全体で安全性を確保する必要があるという。
具体的には、脆弱性の検出、依存関係の監視とパッチ適用、ポリシーの検証と適用、変更内容の確認などが対象になる。
クルム氏は、一度セキュリティチェックに合格したかどうかではなく、その後も安全な状態を維持できているかが重要だと説明する。ソフトウェアが変化し続ける以上、セキュリティもそれに合わせて変化する「継続的な活動」にする必要があるという。
AIエージェント時代は「コード単体」の確認では足りない
この問題は、AIエージェントの活用が進むほど複雑になる。
AIエージェントは複数のサービスやコードリポジトリ、開発パイプライン、設定をまたぎ、複数工程の処理を実行する。その場合、個々のファイルだけをレビューしても、システム全体の安全性を把握できない可能性がある。
クルム氏は、AIがよりエージェント的に動作するようになれば、個々のファイルを見るだけでは十分ではなく、ワークフロー全体を理解する必要があると指摘する。セキュリティ上の難しい問題は、単一の関数の中ではなく、複数のシステムを接続した結果として生じる場合があるためだ。
その対策としてクルム氏は、AIエージェントが何を実行してよいのかを定めるガードレール、実行主体を追跡するためのID、操作可能な範囲を制限するアクセス制御、監視、人による確認を挙げる。
適切な監督や制御がなければ、AIエージェントは生産性を高める手段ではなく、リスクを増幅させる存在になり得るとクルム氏は警告する。
生成AIによって開発できるコードの量が増えれば、機能だけでなくシステムの複雑性も増す。そこでクルム氏は、セキュリティ対策をリリース直前の確認作業や、コンプライアンス対応のための形式的なチェックとして位置付けるのではなく、日常の開発ワークフローに継続的な検証として組み込む必要があると説明する。
クルム氏の説明からは、情報システム部門や開発部門に求められるのは、AI生成コードを最後にまとめてレビューする体制ではないことが分かる。AIがコードを生成する速度に合わせて、要求定義や設計の段階からリリース後まで、安全性を継続的に確認できる仕組みを開発プロセスそのものに組み込むことだ。
本稿は、IBM Technologyが2026年9月14日に公開したHow Developers Secure AI-Generated Code:5 Security Best Practicesを基に作成しました。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
新着ホワイトペーパー PR
-
製品資料
[NTTPCコミュニケーションズ株式会社] 「回線速度不足」だけが原因ではない? Web会議の遅延を解決する方法とは -
製品資料
[東京エレクトロン デバイス株式会社] 工場の可用性向上に重要な「7つの領域」と対策 OTセキュリティ強化の基礎知識 -
製品資料
[リコージャパン株式会社] 問い合わせ対応で本来の業務が進まない、総務や情シスの負担をどう減らす? -
製品資料
[リコージャパン株式会社] 自社データから高精度な回答を生成、簡単に生成AIチャットボットを構築する方法 -
技術文書・技術解説
[アトラシアン株式会社] IT運用や従業員サポートは生成AIでどう変わる? 使い方や導入の流れは?
こんなメディアも見られています
TechTargetジャパンに関連する情報をお探しであれば、こちらのメディアもお役に立てるかもしれません。
ベンダーコンテンツ PR
From Informa TechTarget
SpecialPR
アクセスランキング
-
1
全社標準Copilotに絶望? MS Copilotで問い合わせ6割減できた企業は何が違った
-
2
生成AIで開発工数を圧縮 「工数150分の1」を叩き出した実例
-
3
「Copilot」はなぜ放置される? “議事録要約止まり”を脱する処方箋
-
4
高額GPUが遊んでいるのはなぜ? AIインフラを襲う根深い「データ待ち」問題
-
5
「AI活用を前提とした業務PCへの移行」に関するアンケート
-
6
無課金から要課金まで AIの基本や応用がマスターできる“学習コース”9選
-
7
「データストレージの活用方法」に関するアンケート
-
8
1日200件の電話対応から解放 ベルクが電話代行ではなくIVRを選んだ3つの理由
-
9
脱VMwareの前提が崩れる BroadcomのVDDK公開停止で確認すべき点
-
10
OpenAIが叫ぶ法規制の裏で 情シスが今すぐ固めるべきAI防衛策
ホワイトペーパーランキング PR
-
1
5回聞くだけじゃ足りない? トヨタ式「なぜなぜ分析」の正しい実践方法
-
2
JR西日本ITソリューションズが「監視業務の属人化」を解消した方法とは?
-
3
生成AIで文書活用を進めるには? 効率化と安全性をどう両立する
-
4
Windows PCとMacの選択制で生産性向上 LINEヤフーが実践する運用管理方法とは
-
5
インシデント対応工数を約3割削減、東京ガスの事例に学ぶ監視体制刷新のコツ
-
6
国税庁の次世代基幹システム「KSK2」稼働開始に向けて、対応すべき変更点とは?
-
7
「スクラム」と「カンバン」の違いとは? アジャイル型開発手法を徹底比較
-
8
AI時代に成功するための「ナレッジマネジメント」ベストプラクティス
-
9
「オンプレミス回帰」せざるを得ない“合理的な理由”
-
10
Microsoft 365を安全に運用 うっかりミスやサイバー攻撃に備えるデータ保護術
TechTargetジャパン SNS
インフォメーション
注目情報をチェック
TechTargetジャパンをフォロー