GPT-4.1等LLM、安全対策なしで脆弱コード生成

LLMと安全でないコード生成:デフォルトのシナリオ

Backslash Securityの最新の調査では、GPT-4.1のような大規模言語モデル(LLM)が、他の広く使用されているモデルと同様に、デフォルトで安全でないコードを生成する傾向があるという、憂慮すべき傾向が明らかになりました。これは、セキュリティに焦点を当てた具体的な指示やガイドラインがない場合、これらのAIシステムによって生成されたコードは、一般的な脆弱性や悪用に対して脆弱であることが多いことを意味します。しかし、この調査では、追加のセキュリティガイダンスを提供したり、ルールベースのガバナンスを実装したりすることで、生成されたコードのセキュリティを大幅に向上させることができることも示されています。

この問題をさらに調査するため、Backslash Securityは、Agentic Integrated Development Environments(IDE)向けに設計されたルールと拡張機能とともに、Model Context Protocol(MCP)サーバーのローンチを発表しました。これらのツールは、LLMによって生成されたコードで特定されたセキュリティ脆弱性に対処し、開発者がより安全なアプリケーションを作成するための手段を提供することを目的としています。

Backslash Securityは、OpenAIのGPTモデル、AnthropicのClaude、GoogleのGeminiなど、一般的なLLMの7つの異なるバージョンで一連のテストを実施しました。その目的は、さまざまなプロンプト技術がモデルの安全なコードを生成する能力にどのように影響するかを評価することでした。コード出力のセキュリティは、一般的なソフトウェア脆弱性の範囲を表す10個のCommon Weakness Enumeration(CWE)ユースケースに対する回復力に基づいて評価されました。

これらのテストの結果は一貫して、生成されたコードのセキュリティは、より洗練されたプロンプト技術によって向上することを示しました。しかし、全体的なテーマは、テストされたすべてのLLMが、放置すると一般的に安全でないコードを生成することでした。これは、これらのモデルがデフォルト構成ではセキュリティを優先せず、一般的なコーディングの弱点に対処できないことが多いことを示唆しています。

ナイーブなプロンプト:脆弱性のレシピ

セキュリティの考慮事項を明示的に言及していない単純な「ナイーブ」なプロンプトを提示された場合、テストされたすべてのLLMは、少なくとも10個の一般的なCWEのうち4つに対して脆弱な安全でないコードを生成しました。これは、特定のガイダンスなしに動作する場合、これらのモデルに固有のセキュリティ意識の欠如を浮き彫りにしています。

セキュリティ重視のプロンプトの影響

一般的にセキュリティの必要性を指定したプロンプトは、より安全な結果につながり、LLMは明示的に指示された場合、より安全なコードを生成できることを示しています。さらに、Open Web Application Security Project(OWASP)のベストプラクティスに準拠したコードを要求するプロンプトは、さらに良い結果をもたらしました。OWASPは、ソフトウェアのセキュリティを向上させるために活動する非営利団体です。ただし、これらのより洗練されたプロンプトを使用しても、テストされた7つのLLMのうち5つで一部のコード脆弱性が残っており、LLMで安全なコードを一貫して生成することの課題を浮き彫りにしています。

ルールベースのプロンプト:安全なコードへの道

安全なコードを生成するための最も効果的なアプローチは、特定のCWEに対処するためにBackslashによって指定されたルールにバインドされたプロンプトを使用することでした。これらのルールベースのプロンプトは、安全で、テストされたCWEに対して脆弱でないコードをもたらしました。これは、LLMに具体的で的を絞ったガイダンスを提供することが、生成されたコードのセキュリティを確保するために不可欠であることを示唆しています。

LLM間のパフォーマンスの変動

全体として、OpenAIのGPT-4oはすべてのプロンプトで最低のパフォーマンスを示し、「ナイーブ」なプロンプトを使用した場合、10個中わずか1個の安全なコードの結果を達成しました。安全なコードを生成するように促された場合でも、10個中8個の問題に対して脆弱な安全でない出力を生成しました。GPT-4.1はナイーブなプロンプトではそれほどパフォーマンスが向上せず、10個中1.5個でした。

対照的に、Claude 3.7 Sonnetは、テストされたGenAIツールの中で最高のパフォーマーとして登場しました。ナイーブなプロンプトを使用して10個中6個、セキュリティ重視のプロンプトを使用すると完璧な10個中10個を獲得しました。これは、一部のLLMが、明示的な指示がない場合でも、セキュリティの考慮事項を処理するのに適していることを示唆しています。

安全なVibeコーディングのためのBackslash Securityのソリューション

LLMプロンプトテストで明らかになった問題に対処するため、Backslash Securityは、安全なバイブコーディングを可能にするように設計されたいくつかの新機能を導入しています。バイブコーディングとは、LLMのようなAIツールを使用してコードを生成する手法を指します。

Backslash AIルールとポリシー

Backslash AIルールとポリシーは、CWEカバレッジを確実にするためにプロンプトに挿入できる機械可読なルールを提供します。これらのルールは、一般的なコードエディターであるCursorのようなツールで使用できます。さらに、AIポリシーは、Backslashプラットフォームを通じてIDEでアクティブなAIルールを制御し、組織がセキュリティ設定をカスタマイズできるようにします。

Backslash IDE拡張機能

Backslash IDE拡張機能は、開発者の既存のワークフローに直接統合され、人間とAIの両方によって書かれたコードに関するBackslashセキュリティレビューを受信できるようにします。この統合は、開発プロセス全体でセキュリティの考慮事項が確実に考慮されるようにするために不可欠です。

Backslash Model Context Protocol(MCP)サーバー

Backslash Model Context Protocol(MCP)サーバーは、MCP標準に準拠するコンテキスト対応APIです。BackslashをAIツールに接続し、安全なコーディング、スキャン、および修正を可能にします。MCP標準は、AIツールが通信して情報を共有するための共通フレームワークを提供し、安全なAI搭載アプリケーションの開発を促進します。

AIが生成したコードの課題への対処

Backslash Securityの共同創設者兼CTOであるYossi Pikは、AIが生成したコードがセキュリティチームにもたらす課題を強調しています。彼は、「AIが生成したコード(またはバイブコーディング)は、セキュリティチームにとって悪夢のように感じられる可能性があります。それは新しいコードの洪水を生み出し、幻覚やプロンプト感度のようなLLMのリスクをもたらします」と述べています。幻覚とは、LLMが不正確またはナンセンスな情報を生成するインスタンスを指し、プロンプト感度とは、入力プロンプトの微妙なバリエーションに基づいてLLMが異なる出力を生成する傾向を指します。

しかし、Pikは、適切な制御を使用すれば、AIはAppSecチームにとって貴重なツールになり得るとも考えています。彼は、「組織が定義したルールや、目的に合わせて構築されたセキュリティプラットフォームに接続されたコンテキスト対応のMCPサーバーのような適切な制御を使用すると、AIは実際にはAppSecチームに最初からより多くの制御を与えることができます」と主張しています。Backslash Securityは、動的なポリシーベースのルール、コンテキストに敏感なMCPサーバー、およびIDE拡張機能を通じてこれらの制御を提供することを目指しており、これらはすべて新しいコーディング時代向けに設計されています。

安全でないAIが生成したコードの影響

Backslash Securityの調査からの調査結果は、ソフトウェア開発業界に大きな影響を与えます。AI搭載のコード生成ツールがますます普及するにつれて、適切なセキュリティ対策なしにこれらのツールに依存することに関連するリスクを理解することが重要です。

サイバー攻撃に対する脆弱性の増加

安全でないAIが生成したコードは、サイバー犯罪者が悪用できる新しい脆弱性を生み出す可能性があります。これらの脆弱性は、データ侵害、システム侵害、およびその他のセキュリティインシデントにつながる可能性があります。

脆弱性の特定と修正の難しさ

AIが生成したコードの量が多いため、脆弱性の特定と修正が困難になる可能性があります。セキュリティチームは、コード生成の急速なペースに追いつくのに苦労し、セキュリティ問題のバックログにつながる可能性があります。

開発者のセキュリティ意識の欠如

多くの開発者は、AIが生成したコードに関連するセキュリティリスクを十分に認識していない可能性があります。この意識の欠如は、開発者が誤ってアプリケーションに脆弱性を導入する可能性があることを意味します。

法規制コンプライアンスの課題

AIが生成したコードに依存する組織は、法規制コンプライアンスの課題に直面する可能性があります。多くの規制では、組織が機密データを保護するために適切なセキュリティ対策を実装する必要があります。安全でないAIが生成したコードは、これらの要件を満たすことを困難にする可能性があります。

安全なAI搭載コード生成のためのベストプラクティス

安全でないAIが生成したコードに関連するリスクを軽減するために、組織は次のベストプラクティスを採用する必要があります。

開発者にセキュリティトレーニングを提供する

開発者は、AIが生成したコードに関連するセキュリティリスクに関するトレーニングを受ける必要があります。このトレーニングでは、一般的なCWE、安全なコーディングプラクティス、およびセキュリティツールの使用方法などのトピックを取り上げる必要があります。

セキュリティポリシーと手順を実装する

組織は、AIが生成したコードの使用に対処するセキュリティポリシーと手順を実装する必要があります。これらのポリシーでは、許容されるユースケース、セキュリティ要件、およびAIが生成したコードをレビューおよび承認するプロセスを定義する必要があります。

セキュリティツールを使用してAIが生成したコードをスキャンする

組織は、セキュリティツールを使用して、AIが生成したコードの脆弱性をスキャンする必要があります。これらのツールは、一般的なCWEやその他のセキュリティ問題を特定するのに役立ちます。

安全な開発ライフサイクル(SDLC)を実装する

組織は、開発プロセス全体でセキュリティの考慮事項を組み込んだ安全な開発ライフサイクル(SDLC)を実装する必要があります。これには、AIが生成したコードのセキュリティレビューの実施、侵入テストの実行、およびセキュリティ監視の実装が含まれます。

バグ報奨金プログラムを確立する

組織は、セキュリティ研究者がAIが生成したコードの脆弱性を見つけて報告することを奨励するために、バグ報奨金プログラムを確立する必要があります。これは、内部セキュリティチームが見逃した可能性のある脆弱性を特定するのに役立ちます。

最新のセキュリティ脅威について常に情報を入手する

組織は、AIが生成したコードに影響を与える最新のセキュリティ脅威と脆弱性について常に情報を入手する必要があります。これは、潜在的なセキュリティ問題をプロアクティブに対処するのに役立ちます。

セキュリティエキスパートと協力する

組織は、セキュリティエキスパートと協力して、AIが生成したコードのセキュリティを評価し、リスクを軽減するための戦略を策定する必要があります。

安全なAI搭載コード生成の未来

AI搭載のコード生成ツールが進化し続けるにつれて、セキュリティを優先することが重要です。上記のベストプラクティスを実装することで、組織は安全でないコードに関連するリスクを軽減しながら、AI搭載のコード生成のメリットを活用できます。

AIセキュリティの進歩

継続的な研究開発の取り組みは、AIシステムのセキュリティを向上させることに重点を置いています。これらの取り組みには、敵対的な攻撃を検出して防止するための新しい技術の開発、AIモデルの堅牢性の向上、およびより安全なAIアーキテクチャの作成が含まれます。

AI開発へのセキュリティの統合

セキュリティは、AI開発プロセスにますます統合されています。これには、AIモデルの設計へのセキュリティの考慮事項の組み込み、安全なコーディングプラクティスの使用、および開発ライフサイクル全体でのセキュリティテストの実施が含まれます。

AIとセキュリティのエキスパート間の連携

AIシステムのセキュリティを確保するには、AIとセキュリティのエキスパート間の連携が不可欠です。この連携は、潜在的なセキュリティリスクを特定し、効果的な軽減戦略を策定するのに役立ちます。

AIセキュリティリスクの認識の向上

AIセキュリティリスクの認識の向上は、新しいセキュリティツールと技術の開発を推進しています。これには、敵対的な攻撃を検出するためのツール、AIモデルのセキュリティを分析するためのツール、およびAIシステムの不審なアクティビティを監視するためのツールが含まれます。

AIが生成したコードに関連するセキュリティの課題に対処することで、組織はAI搭載の開発の可能性を最大限に引き出し、システムとデータをサイバー攻撃から保護できます。