AIが作成したコード:人間による監督のための5つの重要なセキュリティチェックポイント

マティアス・マドウ(Matias Madou)(Secure Code Warrior 共同創業者兼CTO)

2025年11月3日

読了時間:4分

セキュリティチェックポイントのため減速を促す標識

出典:Carmen K. Sisson/Cloudybright(Alamy Stock Photo 経由)

オピニオン

AI生成コードに内在するリスクを軽減するためのベストプラクティスはいくつか存在し、その多くは人間とAIの協働の重要性を強調しており、人間の開発者が定期的に(文字通り手を動かして)プロセスに関与することを前提としています。しかし、これらの推奨事項は、開発者が中〜高レベルのセキュリティ能力を備えていることを前提としており、そこが多くの開発者が十分でない領域でもあります。開発者がAIアシスタントやエージェントと効果的に協働できるよう、最新かつ検証済みのセキュリティスキルを身につけさせる責任は組織側にあります。

LLMの反復が増えるほど脆弱性も増加する 

OpenAIのChatGPTが2022年11月に一般公開されて以来、他のAIモデルも次々と登場し、LLMは開発者にとって大きな恩恵となってきました。開発者はすぐにこれらのツールを活用し、負荷の高い開発チームの生産性を大幅に向上させました。しかし、その生産性向上には、社内や公開リポジトリにある不完全なコードで学習したAIモデルといったセキュリティ上の懸念が伴いました。こうしたモデルは脆弱性を生み出し、その脆弱性がソフトウェアエコシステム全体に広がってしまうこともあります。

この問題に対処する1つの方法は、開発プロセスの中でLLMを用いてコードレベルのセキュリティを反復的に改善することでした。LLMに誤りの修正を指示すれば、迅速かつ効果的に修正してくれる、という前提に基づくアプローチです。しかし、いくつかの研究(および当社独自のデータを含む豊富な実世界での経験)により、LLMはこのプロセスの中で生成コードに脆弱性を持ち込む可能性があることが示されています。 

関連記事:OWASP、新たなトップ10リストでサプライチェーンリスクを強調

近道は存在しません。開発者は開発プロセスの主導権を維持し、AIを自律的なツールではなく協働するアシスタントとして捉える必要があります。ツールの設計者は、潜在的な脆弱性を検知し、特定された際にアラートを送信するセキュリティ機能を組み込まなければなりません。そしてCISO(最高情報セキュリティ責任者)をはじめとするビジネス内のセキュリティリーダーは、次の5つのステップを通じて、開発チームが成功するための強固な基盤を提供できます。 

チェックポイント1:セキュリティに精通した開発者によるコードレビューは絶対条件である。

このステップでは、人間の専門知識を第一の防衛線として活用し、自動化では実現できないレベルの品質管理を提供します。ただし、セキュリティリーダーは、開発者のスキル向上をセキュリティプログラムの中心に据えなければなりません。アダプティブラーニング、セキュリティスキルの検証、LLMツール利用状況のトレーサビリティ、データに基づくリスク指標は、いずれも現代のAI強化型セキュリティプログラムの一部であるべきです。

関連記事:「Ransomvibing」がVisual Studio拡張マーケットに蔓延

チェックポイント2:安全なルールセットを適用する。

AIコーディングアシスタントは強力ですが、ガイダンスが必要です。コンテキストに応じたルールファイルは、アシスタントを安全で標準化された出力へと誘導し、非準拠な設定や安全でないコーディングパターンのリスクを低減します。

チェックポイント3:各イテレーションをレビューする。

人間の専門家と自動化ツールの両方を用いて、組織は各ステップでセキュリティを確認すべきです。セキュリティに焦点を当てたプロンプトは、一般的に、セキュアな出力を明示的に指示しないプロンプトよりも安全なコードを生成しますが、それでも脆弱なコードが生成されることは少なくありません

チェックポイント4:AIガバナンスのベストプラクティスを適用する。 

ポリシーの適用を自動化し、AIを活用する開発者の成果物が、重要なリポジトリに取り込まれる前にセキュアコーディング標準を満たしていることを保証します。

チェックポイント5:コードの複雑さを監視する。 

コードの複雑さが増すほど、新たな脆弱性が生じる可能性は高まるため、複雑さが増大している場合には人間のレビュー担当者が注意を払う必要があります。 

これらの推奨事項に共通するのは、人間の専門性の必要性ですが、それは決して自明ではありません。ソフトウェアエンジニアは通常、セキュリティに関するスキル向上の機会がほとんどなく、あったとしてもごくわずかであり、これまではセキュリティチームが後から不具合を追いかけることを前提に、アプリケーションやアップグレード、サービスを素早く作ることに注力してきました。AIツールがDevOpsを加速させる中で、組織はソフトウェア開発ライフサイクル(SDLC)全体を通じてセキュアなコードを維持できるよう、開発者に必要なスキルを身につけさせなければなりません。そのためには、開発者に必要なスキルを提供する継続的なアダプティブラーニングプログラムを導入する必要があります。

関連記事:Sora 2が生み出す“本物そっくり”動画、現実確認が不可欠に

開発者はAIを制御するスキルを備えなければならない

先進的な組織は、米国サイバーセキュリティ・インフラストラクチャセキュリティ庁(CISA)のSecure-by-Designイニシアチブの目標に沿って、SDLCにセキュリティファーストのマインドセットを適用するために開発者と協働しています。これには、開発者のニーズに合わせて設計された、アジャイルで実践的な継続的スキル向上プログラムが含まれます。たとえば、トレーニングは開発者が日々扱うプログラミング言語や業務内容に合わせてカスタマイズされ、忙しい業務スケジュールに合わせて受講できるようになっています。 

さらに望ましいのは、人間とAIコーディングアシスタント双方のセキュリティ能力をベンチマークし、セキュリティリーダーが、開発者のセキュリティ習熟度と、AIツールやエージェントの支援を受けて行われたコミットのセキュリティ精度に関するデータドリブンなインサイトにアクセスできるようにすることです。誰が何を使ったのかをモニタリングしてコードレビューをより適切に管理したり、特定のLLMが特定のタスクや脆弱性クラスで失敗していると分かったときにそれを検証できるようにすることは、有益ではないでしょうか。

効果的なスキル向上プログラムは、開発者がセキュアなコードを作成できるようにするだけでなく、AI生成コードをレビューし、現れた欠陥を特定・修正できるようにすることにもつながります。AIがコードを生成する新たな時代においても、熟練した人間による監督は依然として不可欠です。そしてCISOは、重要な人的リソースにこれらのスキルを身につけさせることを最優先事項としなければなりません。

著者について

Image

Secure Code Warrior 共同創業者兼CTO

マティアス・マドウは、15年以上にわたる実践的なソフトウェアセキュリティ経験を持つ研究者兼開発者です。Fortify Softwareや自身の会社であるSensei Securityなどの企業向けにソリューションを開発してきました。キャリアを通じて、商用製品化につながる複数のアプリケーションセキュリティ研究プロジェクトを主導し、10件以上の特許を保有しています。デスクを離れているときには、高度なアプリケーションセキュリティトレーニングコースの講師を務めるほか、RSA Conference、Black Hat、DEF CON、BSIMM、OWASP AppSec、BruConなど世界各地のカンファレンスで定期的に講演を行っています。

マティアスはゲント大学でコンピュータ工学の博士号を取得しており、アプリケーションの内部動作を隠すプログラム難読化を通じてアプリケーションセキュリティを研究しました。

翻訳元: https://www.darkreading.com/application-security/ai-code-security-checkpoints

ソース: darkreading.com