AI生成コードの約半分に脆弱性 自動化の暴走を食い止める「DevSecOps」実践術:「Claude」も陥る矛盾
AIツールによるコード生成が普及する中、生成されたコードのほぼ半数に脆弱性が潜む事実が明らかになった。AI特有の新たな脅威に対し、開発とセキュリティ対策を一体化する「DevSecOps」による防衛策を紹介する。
生成AIの進化によって、開発者の役割は自らコードを書くことから、AIツールが生成したコードをレビューする作業へとシフトしつつある。しかし、そのようなコードの安全性には大きな課題が残されている。
EGセキュアソリューションズで取締役CTO(最高技術責任者)を務める徳丸浩氏は、開発現場に潜むリスクを指摘する。セキュリティベンダーVeracodeは2025年10月、100種類以上の大規模言語モデル(LLM)を対象として、「Java」「JavaScript」「C#」「Python」の4言語を用いたコード生成調査を実施した。その結果、全タスクの45%において、SQLインジェクションやクロスサイトスクリプティング(XSS)といった致命的な脆弱(ぜいじゃく)性がコードに混入していた。テストを通過して正常に動くコードが、必ずしも安全なコードとは限らないのが現状だ。
目視のレビューや従来のテスト手法だけでは限界が見えつつある中、企業はAIツールが生成するコードの安全性をどう確保すればよいのか。AI時代における開発特有のサイバー攻撃の手法と、開発の初期段階から自動でセキュリティを実装する仕組みを解説する。
推論能力が向上するほどセキュリティが低下する?
併せて読みたいお薦め記事
AI生成コードのリスクと対策
AIツールが生成したコードの品質を確保するために、自動テストは広く普及している。しかし、一般的な自動テストは機能面の確認にとどまるため、これを通過したからといって安全だとは言えない。
従来の開発では、レビューと修正を繰り返すことで品質が向上するという常識があった。しかし、AIツールのフィードバックループにおいてはこの常識が逆転する。機能的な要件を満たすために修正を重ねると、AIツールが効率化を優先し、暗黙のうちにセキュリティ制約を解除してしまうためだ。結果として、修正を反復するほど逆に脆弱性が蓄積される「品質劣化」の現象が起きている。
AIモデルの進化そのものにもリスクが潜んでいる。コード分析ツールベンダーSonarSourceの調査によると、AnthropicのLLM「Claude Opus 4.6」は、前バージョンの「Claude Opus 4.5」に比べて、AIモデルの抽象的な推論能力を測定するベンチマーク「ARC-AGI-2」のスコアが31.2ポイント向上し、推論能力が飛躍的に高まった。しかし全体の脆弱性密度は55.0%増加し、特に重大なバグは336.0%、本来エンドユーザーがアクセスすることを想定していないファイルやフォルダに不正アクセスする「パストラバーサル」のリスクに至っては278.0%も急増するなど、セキュリティ品質の著しい悪化が確認された。AIモデルの推論能力が向上するほどセキュリティ品質が悪化する「インテリジェンスパラドックス」が生じているのだ。
生成AI特有の新たなサプライチェーンリスクとして「パッケージハルシネーション」が挙げられる。これは、AIモデルがコード生成時に実在しない架空のパッケージ名を提案してしまう現象だ。攻撃者はAIツールがコードに組み込みがちな架空のパッケージ名を予測し、同名のマルウェアを事前に公開しておく。開発者がAIツールの提案をうのみにしてそのパッケージをインストールすれば、システムにマルウェアが感染する仕組みだ。
CI/CDから始めるDevSecOpsの実践
これらの脅威に対抗するには、開発ライフサイクル全体でセキュリティを確保する「DevSecOps」の実践が不可欠だ。徳丸氏は、手動のコードレビューだけでは追い付かない現状を踏まえ、CI/CD(継続的インテグレーション/継続的デリバリー)パイプラインへの自動脆弱性診断の組み込みを推奨する。
具体的には、以下の仕組みを組み合わせるとよい。
- プログラム作成段階でソースコードを解析するSAST(静的アプリケーションセキュリティテスト)
- アプリケーションが使用するライブラリやフレームワークの脆弱性を把握するSCA(ソフトウェアコンポジション解析)
- コンテナイメージに対する脆弱性を抽出するコンテナスキャン
これらのツールを機能させることで、パッケージハルシネーションのリスクも低減可能だ。機能検討や設計の段階から脅威を分析する「シフトレフト」のアプローチも欠かせない。上流工程でセキュリティ課題に対処することで、運用開始後の大幅な手戻りや運用負荷を削減できる。
CI/CDパイプライン自体を狙う攻撃への対策
開発プロセスの自動化が進む一方で、CI/CDパイプライン自体がサイバー攻撃の標的になる事件も発生している。
2026年2月末から3月にかけて、自動化攻撃キャンペーン「hackerbot-claw」が、オープンソースの脆弱性スキャナー「Trivy」などのリポジトリを攻撃した。攻撃者はまず、外部からのコード変更要求(プルリクエスト)を装って標的システムに接触した。その際、CI/CDツール「GitHub Actions」に備わる強い権限「pull_request_target」を悪用するプルリクエストを作成し、特権アクセストークン(PAT)の窃取に成功している。
その後、攻撃者は流出したPATを用いて正規のリポジトリ名を変更した上で、偽の空リポジトリを公開するという不正行為に及んだ。加えてスクリプトを実行し、過去のリリースを一斉に削除した。最終的にソースコード自体の改ざんは免れたものの、開発・デプロイ用のツール群が攻撃者に完全に制圧されるという深刻な被害をもたらした。
徳丸氏によれば、CI/CDパイプラインを保護するためには、pull_request_targetのような強い権限の乱用を避けることが重要だ。「GitHub」から「Amazon Web Services」(AWS)などのクラウドサービスにデプロイする際、有効期間が長いアクセスキーを使用することはアンチパターンだと警告する。代わりに、通信のたびに一時的で安全な証明書を発行してシステム間を連携させる「OpenID Connect」(OIDC)を利用し、短期間かつ必要最小限の権限のみを付与する設計がベストプラクティスになる。
AIツールがコードを自動生成する時代において、開発者の役割は根底から変化している。コードの記述をAIツールに委ねる分、システム全体の安全性を俯瞰(ふかん)し、CI/CDパイプラインのセキュアな設計や自動診断の結果を適切にレビューする能力が、エンジニアにはより一層求められるだろう。
本稿は、アイティメディアが2026年3月23〜24日に開催した「@IT Architect Live 2026 winter」における、24日のセッション「AIが書くコードは安全か? ―生成AI開発時代のDevSecOps実践―」を基に作成しました。
AIバブルで終わらせない 開発生産性を支える組織設計と安全性確保の手法を学ぶ
アイティメディアでは、6月10日〜6月11日にオンラインイベント「@IT Architect Live」を開催いたします。開発生産性向上をテーマに、成果を泡のように消滅させないための組織設計や安全性を開発サイクルに組み込むための実践などを分かりやすく解説します。視聴条件を満たした方全員にAmazonギフトカード500円分を進呈します。
Copyright © ITmedia, Inc. All Rights Reserved.
本記事は制作段階でChatGPT等の生成系AIサービスを利用していますが、文責は編集部に帰属します。