ある企業が、Python コードの自動生成機能を内部ツールに統合している。生成された Python コードに依存ライブラリの脆弱なバージョンが含まれるリスクを、開発フローの中で自動的に検出するための最も適切なアプローチはどれか。
- A. LLM に対して「セキュリティ上安全なコードのみを生成すること」というシステムプロンプトを追加するだけで十分とする
- B. CI/CD パイプラインに SAST(静的解析)ツールと依存関係スキャナーを組み込み、LLM 生成コードを自動的に検査する
- C. 生成されたコードを全件、毎回手動でセキュリティエンジニアがレビューする
- D. LLM が生成したコードは常に安全であるという前提で、セキュリティレビューを省略する
解答と解説を見る
正解: B
LLM はトレーニングデータに含まれる脆弱なコードパターンを学習・再現することがあるため、システムプロンプトのみによる制御には限界がある。CI/CD への SAST・SCA(ソフトウェアコンポジション分析)統合により、コードコミット時に自動で脆弱性・脆弱な依存バージョンを検出できる。Dは誤り:LLM の出力は安全性を保証しないため、セキュリティレビューの省略は重大なリスクである。Aは誤り:システムプロンプトによる指示は LLM の確率的な出力を完全制御できないため、技術的ガードレールとの組み合わせが必要。Cは誤り:全件手動レビューは開発速度を大きく阻害し、自動化の恩恵を失う。