Stack Overflowは10月7日(米国時間)、「Context is king for secure, AI-generated code - Stack Overflow」において、エンタープライズ向けソフトウェア開発におけるAI生成コードの現状と対策を伝えた。
これはStack Overflow Podcastのホストを務めるRyan Donovan氏と、Endor Labsの最高技術責任者(CTO: Chief Technical Officer)兼共同創設者を務めるDimitri Stiliadis氏の対談内容を伝えたもの。AI生成コードがセキュリティ対策に与える影響、脆弱性管理における人間の重要性、そしてAI利用組織におけるセキュリティと業務効率のバランスについて議論している。
AIにはリスクがある、それでも活用すべき存在だ
AIはその急速な進化により、単なるコード補完からアプリ全体を生成する段階に移行している。Dimitri Stiliadis氏は過去にアセンブラーからコンパイラーに移行したように、コンパイラーから生成AIに移行するのは時間の問題だと指摘している。
ただし、この生成AIツールには汎用型AIツールと制約型AIツールの2種類があり、それぞれの特徴を理解して利用する必要があると述べている。汎用型AIツールには自由度の高さがある一方で最新の脆弱性知識を欠くというデメリットがあり、制約型AIツールには安全性を担保しやすいメリットがある一方で既存のフレームワークに押し込める柔軟性の乏しさがある。
また、AIは良質なコードと不完全なコードの双方を学習しているため、生成物の品質が保証されない点も問題になる。同氏はこの点に関してAI生成コードの投稿に関する議論を紹介。AI生成コードか否かをメンテナーに明示することを求めた事例を挙げ、明示せずに人間のレビューを欠けば危険性が増す可能性を強調している。
同氏はこのようにAIの危険性を伝えているが、同時に活用すべきだとも述べている。AIは不具合を生成することもあるが、優秀なエンジニアであればAIと協力して修正することは可能で、不具合を残すのはエンジニアの能力不足に原因があるとしている。また、近い将来AIに適切なフィードバックを与えるスマートツールが登場すれば、AI自身の反復処理によって安全なコードを生成可能になると今後の展望を伝えている。
コンテキスト管理とミドルウェアの導入でリスクを低減
対談ではAIを安全かつ効果的に活用する際の注意点として適切なコンテキスト管理を挙げている。単純なルールを与えるだけでは誤検知が多発するため、抽象構文木などを用いてコードを構造化し、AIに必要な情報を渡す仕組みを提案。アルゴリズムとAIを組み合わせるハイブリッドな方式が現実的であると説明している。
AIのセキュリティと効率のバランスについては、適切なツールを採用することの重要性を指摘。すべてをAIに任せるのではなく、計算であれば電卓といったように適材適所をAI利用においても意識すべきとしている。また、AI生成コードは時として悪用できない脆弱性を生み出すが、セキュリティ部門はこの全修正を求める。修正の必要はないとする開発者との間で対立することになるが、この解決にミドルウェアの導入を提案している。
具体的にはセキュリティを企画・設計段階で組み込む「シフトレフト」に加え、基盤やアーキテクチャーに組み込む「シフトダウン」が有効とされる。ミドルウェアで入力検証や認証を一括管理することができれば、開発者が個別に対応するケースが減少し、長期的にセキュリティと効率の両面を向上させることができる。
対談ではこの他にもAI生成コードのリスクと他人のコード流用との間に差異がないこと、AIエージェントが使用するツール開発における重要な視点などを伝えている。万能ではない現代のAIは、適切な設計と組織的な仕組みの上で補助的に活用されるべき存在と言える。
