Skip to main content

LLMソースに対応し、Snyk CodeがAI開発を保護

blog feature ai blue

2024年6月25日

0 分で読めます

AI時代の幕開けとともに、ソフトウェア開発におけるAI活用の第一波として、コーディングアシスタントが登場しました。そして今、広く利用できるようになったLLMを活用し、AI搭載ソフトウェアを開発する組織が増えるという、次の段階を迎えています。OpenAIやGeminiなどのLLMプラットフォームの普及に伴い、その利用に関連するセキュリティリスクも高まっています。

生成AI技術はまだ新しいため、LLMが生成したデータを利用することによる深刻なセキュリティ上の影響は、過小評価されがちです。こうしたデータの利用は、プロンプトインジェクションによるソースコードの脆弱性などの問題につながる可能性があります。

AIで拡張されたアプリケーションをSnykが保護

SnykはAIの安全で簡単な導入を支援することを目指しています。このたび、Snyk Codeがソースコード内でのLLMライブラリの使用を保護できるようになりました。脆弱性スキャン機能を拡張し、OpenAI、HuggingFace、Anthropic、Googleなど、サポート対象のLLMライブラリから取り込まれたコードのデータフローをSnyk Codeが追跡できるようにしました。これにより、発生しうるセキュリティ上の問題を検出し、ユーザーに通知します。

これは何を意味するのでしょうか?

つまり、サポート対象のすべての言語について、ソースライブラリを更新し、LLMソースを追加しました。Snyk Codeを支えるAIエンジンであるDeepCode AIは、最先端のtaintルールに基づき、機械学習を使ってソース、サニタイザー、シンクを検出します。これにより、次のようなデータを特定してユーザーに警告します。

  • LLMソース/ライブラリから流れたデータが、機密性の高い関数やデータストアに到達した、またはサニタイズされていない場合。

  • LLMソース/ライブラリを通過するデータが、機密性の高い関数やデータストアに到達する、またはサニタイズされていない場合。

簡単に言うと、開発者がサポート対象のLLMライブラリをコードベースで使用すると、Snyk Codeはtaint解析を実行し、信頼できないデータ(上記のカテゴリーに該当するデータ)を検出します。そして、そのソースに対するtaint issueを生成し、ユーザーに報告します。なお、プロンプトが「ハードコード」されているか、ユーザーから提供されたものかを問わず、LLMライブラリから返されるデータはすべてソースとして扱われます。そのため、まだ正式にサポートされていないLLMフレームワークやライブラリを含むプロジェクトでSnyk Codeを使用している場合でも、潜在的な問題の通知を受け取ることができます。

Snyk DeepCode AI detects vulnerable LLM used as prompt source that introduction an SQL injection

Snyk Codeが、プロンプトのソースとして使われ、SQLインジェクションを引き起こした脆弱なLLMソースを検出し、フラグを付けた例。

Snyk DeepCode AI detects XSS vulnerability introduced from OpenAI API as LLM prompt injection

Snyk Codeが、OpenAIのAPIから取り込まれたLLMインジェクションによるXSS脆弱性を検出し、フラグを付けた例。

今後の取り組み

AIを活用したソフトウェア開発は急速に広がり、絶えず進化しています。そのため、当社のセキュリティアナリストはこの分野の調査を継続しており、新たな知見をブログで随時公開しています。Snyk Codeの対応範囲を大幅に拡大したことは、AIを安全で信頼できるものにするというSnykの取り組みを明確に示しています。AIが生成したコードと人間が作成したファーストパーティコードの両方を保護するだけでなく、Snyk CodeはソースコードレベルでサードパーティのLLMコードに起因する問題からも組織を守ります。これにより、開発者は安心してアプリケーションにAI機能を組み込めます。

Snyk Codeをすでにご利用ですか?

セキュリティ問題を見つけるだけではありません。実績豊富なSnyk Agent Fixなら、IDE内でワンクリックで脆弱性を自動修正できます。GPT-4より20%高い精度を実現します。Snyk Previewの設定で「Snyk Code Fix Suggestions」をオンにして、ぜひお試しください!