コンテンツに移動
セキュリティ & アイデンティティ

Gemini 1.5 Pro と脆弱性検出に関する実験

2024年8月23日
Souvik Mukherjee

Customer Engineer, AI/ML specialist

※この投稿は米国時間 2024 年 8 月 13 日に、Google Cloud blog に投稿されたものの抄訳です。

ソフトウェアの脆弱性にパッチを適用しないと、深刻な結果を招く可能性があります。Google Cloud は開発者に、安全性を重視した設計のセキュア バイ デフォルトなコードの開発に重点を置くことにより、直面するリスクを軽減してほしいと考えています。安全な開発には時間がかかるものですが、生成 AI を責任ある方法で使用することにより、この時間を短縮できます。

Google ではこれまで、生成 AI ツールがコードのセキュリティ確保にどのように役立つかを調べてきました。これにより、さらに安全で堅牢なソフトウェア アプリケーションへの道を切り拓くことができるからです。最近 Google は、WannaCry マルウェアの逆コンパイルされたコードを単一パスでリバース エンジニアリングして分析し、わずか 34 でキルスイッチを特定したケースのデモを行いました。強力なマルチモーダル AI モデルである Google Gemini 1.5 Pro を使用すると、コードの脆弱性の検出と修復に関わるタスクを根本から変え、ソフトウェアの脆弱性スキャンおよび修復エンジンを構築することができます。

Gemini 1.5 Pro はコード分析能力に優れていますが、このアプローチはまだ実験段階である点に注意が必要です。Google では、このテクノロジーが脆弱性検出にどのような可能性をもたらすかを探り、堅牢なセキュリティ ツールとみなされるまで開発と検証の取り組みを継続することが重要だと考えています。

品質管理が確立され、CI / CD ワークフローに統合されている成熟したセキュリティ ソリューションが広く入手可能で、本番環境にはそれらのソリューションが推奨されます。本日は、セキュリティにおける生成 AI の可能性を強調することを目的とした実験について詳しく説明します。このソリューションを、確立された実績のあるセキュリティ対策の代替として推奨しているわけではない点に注意してください。

Gemini 1.5 Pro によるコード脆弱性スキャンの調査

Gemini 1.5 Pro を使用してコード脆弱性スキャンへの潜在的なアプローチの可能性について探る中で可能なこととして、最大 200 万トークンの広範なコンテキスト ウィンドウを活用し、Google Cloud Storage バケットに保存されている大量のコードファイルを分析できます(最新の CI / CD パイプラインでは、このコードは通常リポジトリに存在します)。

コンテキスト ウィンドウが大きくなると、モデルにより多くの情報を取り込めるため、より一貫性、関連性、有用性の高い出力が得られます。その結果、大規模なコードベースを効率的にスキャンし、1 回の呼び出しで複数のファイルを分析できるようになり、コード内の複雑な関係やパターンをより深く理解できるようになります。

この実験的なアプローチは、大規模なコードベースを効率的にスキャンして、1 回の呼び出しで複数のファイルを分析し、コードの複雑な関係とパターンを掘り下げて調査することを目的としています。このモデルを使ったコードの詳細な分析により、表面的な欠陥のみならず、包括的な脆弱性の検出が可能になります。

このアプローチを使用することで、複数のプログラミング言語で記述されたコードに対応できます。加えて、調査結果と推奨事項を JSON または CSV レポートとして生成でき、これを仮説的に使用して、確立されたベンチマークやポリシー チェックと比較することができます。

詳しい説明: 技術的なアプローチ

ここまでの説明は、何を構築しようとしているのかを理解していただくために重要なものでした。では、実際の構築に移りましょう。Google では、すぐに取りかかれるように合理化されたプロセスを開発しました。

まず、指定された Google Cloud StorageGCS)バケットから Python ファイルを抽出し、分析を容易にするために単一の文字列に統合します。次に、エンジンは生成モデル用の Vertex AI Python SDK を使用して Gemini 1.5 Pro とやり取りし、脆弱性を明らかにして特定の出力形式を生成するための正確なプロンプトを提示します。

ワンショット推論と入念なプロンプト エンジニアリングを組み合わせることにより、Gemini 1.5 Pro はコード構造を分析して潜在的な脆弱性を特定し、コンテキストに応じた有用な修正を提案することができます。これらの調査結果は、関連するコード スニペットとともにモデルの応答から抽出されて Pandas DataFrame に体系的に整理されます。最終的に CSV および JSON レポートへの変換が行われ、さらなる分析が可能になります。

注意すべき点として、推奨される修正は自動的に適用されるわけではありません。

この実験の範囲は、問題を特定し、コンテキストに応じた有用な修正を提示することに限定されています。修復を自動化したり、調査結果をレビュー ワークフローに組み込んだりする機能は、より成熟したツールの範疇であり、この実験では考慮されていません。

完全なノートブックをご覧いただけます。

実験から得られたインサイトと次のステップ

ここで詳しく説明したアプローチは、AI を活用したコード分析によって、特定のシナリオでコードのセキュリティが向上する可能性を示しています。こうしたシナリオには、たとえば、開発時やオープンソースの依存関係を統合する前に実施されるコードベースの評価などが考えられます。

ここで重要なのは、この実験的なエンジンにはデータの匿名化手法が一切含まれていないため、データ保護の目的で利用すべきではないという点です。機密コードデータを扱う際は、関連するデータ保護ポリシーと規制に準拠していることを確認するために、法律およびセキュリティの専門家に相談することを強くおすすめします。AI のリスク管理ガイダンスについて詳しくは、こちらをご覧ください。

このブログ投稿で説明している実験は、コードスキャンと脆弱性検出を変革する Gemini 1.5 Pro の可能性を示しています。コード分析機能を活用することで、開発者は将来、ソフトウェアのセキュリティを強化し、より堅牢で復元力の高いアプリケーションを構築できるようになります。

ただし、繰り返し強調しておきたい重要な点として、これは実験的なデモであり、Gemini 1.5 Pro を使用してプロダクション レディな脆弱性スキャン エンジンを構築する際の推奨事項ではありません。この投稿全体で説明した制限とリスクに対処するには、さらに研究開発が必要です。

これらの実験の詳細なガイダンスと分析については、Google Cloud CISO Phil Venables による、AI がセキュリティ成果の向上にどのように役立つかについての最近のニュースレターをお読みください。

-カスタマー エンジニア兼 AI / ML スペシャリストSouvik Mukherjee

 

投稿先