INDEX
AIコーディングツールのリスク
企業における生成AI活用が最も進んでいる分野は、コーディング支援だ。Menlo Venturesの調査によると、生成AIアプリケーションの中でコーディングアシスタントの採用率は51%に達し、サポートチャットボット(31%)や企業内検索(28%)を大きく引き離している。
しかし、普及が加速する一方で、セキュリティ上の脆弱性も次々と明らかになりつつある。Pillar Securityの研究チームは、AIコーディングアシスタントに対する新たな脆弱性「Rules File Backdoor」を発見。この手法では、一見無害な設定ファイルに、目に見えないユニコード文字を埋め込むことで、AIに悪意のあるコードを生成させることが可能だという。
特に深刻なのは、この攻撃がCursorやGitHub Copilotなど、主要なAIコーディングアシスタントで共通して確認された点だ。攻撃者は、正規の設定ファイルに見せかけた悪意のあるルールを共有リポジトリに公開。開発者がそれを取り込むと、以降のコード生成において、AIが密かに脆弱性のあるコードを挿入するようになる。
また、香港大学の研究チームは、GitHubのCopilotとアマゾンのCodeWhispererから、実在する認証情報を抽出することに成功。900のプロンプトを使用した実験では、Copilotから2,702件、CodeWhispererから129件の有効な認証情報が取得され、そのうち約7.4%が実在するものだったという。
AIコーディングアシスタントがもたらすリスクは、こうした悪意のある攻撃だけではない。GitGuardianの2023年の調査によると、Copilotを使用しているリポジトリの6.4%から機密情報の漏洩が確認された。これは、一般的なリポジトリの漏洩率4.6%を40%も上回る数値だ。同社は、AIツールが生成するコードに内在する脆弱性と、開発者がAIに過度に依存する傾向を指摘している。
AI生成コードが原因で、すでに実際の被害も
AIコーディングツールのリスクは、もはや仮説の域を超え、実際の被害として顕在化している。Venture Beatの報道によると、ある米金融サービス企業では、AI生成コードが原因で週1回のシステム障害が発生。開発者がコードレビューを実施していたにもかかわらず、問題を未然に防ぐことができなかったという。
この背景には、複数の要因が存在する。その一つが、複雑なコードベースに対するAIツールの限界だ。コード分析ツールを開発するSonar社のタリク・シャウカットCEOは、同社の顧客のなかには、20億行を超えるコードを分析している企業もあると指摘。このような大規模なコードベースでは、複雑なアーキテクチャや依存関係が存在し、AIツールが適切に対応できないケースが多発していると語る。
また、開発者のAIツールへの過度な依存も被害を拡大させる要因となっている。シャウカットCEOによれば、開発者らはAI生成コードに対して、従来ほどの責任感や厳密さを持って検証を行わない傾向があると述べている。
Lasso Security社の調査では、さらに深刻な事例も報告されている。同社のエンジニアチームは、GitHub Copilotが最新のNode.js 20ではなく、セキュリティ上の脆弱性を含む古いバージョン(Node.js 16)の使用を推奨するケースを発見。古いバージョンでは、Node.js 20で修正された重要な脆弱性、たとえばOpenSSLエンジンの任意ロードやx509証明書に関する脆弱性などが、依然として残存する可能性が指摘されている。
Sonatype社のミッチェル・ジョンソン氏は、AI生成コードに関する4つのリスクを挙げている。第一に、AIが脆弱性のあるコードを含む大規模なオープンソースデータセットで学習されているため、セキュリティ上の欠陥が混入する可能性。第二に、特に経験の浅い開発者がAI生成コードを適切な検証なしに信頼してしまう傾向。第三に、AIがビジネスロジックやセキュリティポリシー、法的要件などを認識できないことによるコンプライアンス上の問題。そして第四に、AI生成コードが監視されることなく拡散してしまうガバナンスの課題だ。
注目されるAI生成コードのリスク管理ソリューション
こうした状況のなか、従来のソースコード分析(SCA)ツールを提供するベンダー各社がAI生成コードに特化した新機能の開発を本格化しており、その開発動向に注目が集まっている。代表格としては、Sonar、Endor Labs、Sonatypeの3社が挙げられる。
Sonarは、AI生成コードに特有のパターンを識別する「AI Code Assurance」機能を開発。この機能には、AI生成コードのタグ付け、詳細な分析、品質ゲートによる検証、そして品質保証バッジの付与という4段階のワークフローが実装されており、開発者がAI生成コードの所有権を持ちつつ、徹底的なコードレビューを行える環境を整備した。
一方、Endor LabsとSonatypeは、モデルの出自(プロベナンス)に焦点を当てたアプローチを採用。特にEndor Labsは、Hugging Faceなどのオープンソースモデルの使用を検知し、運用セキュリティ、所有権、利用状況、更新頻度など10項目のリスク要因を評価する機能を提供している。同社は、商用モデルと比較してオープンソースモデルのセキュリティ品質にばらつきがあることを指摘し、企業が適切なリスク評価に基づいてモデルを選択する重要性を強調している。また、特別な検知と検証なしにAI生成コードを本番環境で使用することは、まさに目隠し状態で飛行するようなものと警鐘を鳴らす。
こうしたツールの導入に際し、専門家は5つの重要なプラクティスを提示している。第一に、コード生成ツールの使用箇所を特定し、適切な検証プロセスを確立すること。第二に、複雑なコードベースに対するAIの限界を認識すること。第三に、AIが作り出す架空の変数名やライブラリなど、特有の問題に注意を払うこと。第四に、開発者がAI生成コードに対する責任を持つこと。そして第五に、AIツールの承認プロセスを効率化し、「シャドーAI」の使用を防ぐこと。
Claudeの開発企業Anthropicのダリオ・アモデイCEOは、今後6カ月以内にアプリケーションコードの90%がAIによって生成されるようになると予測。AIコード分析ツールの導入は、もはや選択肢ではなく必須となりつつあるのが現状なのかもしれない。
文:細谷元(Livit)