Andersonの視点
研究によると、LLMは悪意のある「バイブコーディング」に協力する意思がある

最近の数年間で、大規模言語モデル(LLM)は、特にソフトウェアの脆弱性を利用するためのコードの生成において、攻撃的なサイバーセキュリティへの潜在的な悪用に対して注目を集めてきました。
最近の「バイブコーディング」のトレンド(言語モデルを使用してユーザーがコードを迅速に開発できるようにすること)により、2000年代にピークに達した概念が復活しました。つまり、相対的にスキルが低い悪意のあるアクターが、損害を与える攻撃を複製または開発するための十分な知識を持っている「スクリプトキディ」と呼ばれるものです。当然のことながら、参加の障壁が低いと、脅威は増加する傾向があります。
すべての商用LLMには、悪用を防ぐためのガードレールが備わっていますが、これらの保護措置は常に攻撃を受けています。典型的なFOSSモデル(LLMから生成画像/ビデオモデルまで、さまざまなドメインにわたる)は、コンプライアンスのために西側で何らかの保護が施されてリリースされることがよくあります。
しかし、公式のモデルリリースは、ユーザーコミュニティによって通常、より完全な機能を求めてファインチューンされます。あるいは、制限を回避して「望ましくない」結果を取得するためにLoRAsが使用されます。
ほとんどのオンラインLLMは、悪意のあるプロセスを支援することを防ぎますが、「無制限」の取り組みであるDeep Hatのようなものは、セキュリティ研究者が対象とするものと同等のレベルで動作することを支援するために利用できます。
現在の一般的なユーザーエクスペリエンスは、最も一般的にはChatGPTシリーズで表されます。そのフィルターメカニズムは、LLMのネイティブコミュニティから頻繁に批判されています。
システムを攻撃しようとしているようです!
このような制限と検閲の傾向の光に照らして、ユーザーはChatGPTが最近の研究でテストされたLLMの中で最も協力的なものであることがわかると驚くかもしれません。この研究は、言語モデルが悪意のあるコードの脆弱性を生み出す能力を強制することを目的としています。
UNSW SydneyとCommonwealth Scientific and Industrial Research Organisation(CSIRO)の研究者による新しい論文は、Good News for Script Kiddies? Evaluating Large Language Models for Automated Exploit Generationというタイトルで、最初の体系的な評価を提供します。研究の例会話は、著者によって提供されています。
研究では、モデルが既知の脆弱性ラボ(特定のソフトウェアのセキュリティの欠陥を示すために設計された構造化されたプログラミングの演習)をオリジナルと修正したバージョンの両方でどのように実行するかを比較して、メモリ化された例に依存しているか、組み込みの安全性の制限により苦労しているかを明らかにします。

サポートサイトから、Ollama LLMが研究者に文字列の脆弱性攻撃を開発するのを支援している様子。ソース:https://anonymous.4open.science/r/AEG_LLM-EAE8/chatgpt_format_string_original.txt
モデルは有効な脆弱性を生成することができませんでしたが、いくつかのモデルは非常に近づきました。さらに重要なのは、いくつかのモデルがタスクをより良く行うことを望んでいたことです。これは、現在のガードレールアプローチの潜在的な失敗を示唆しています。
論文には次のように記載されています。
‘実験結果は、GPT-4とGPT-4oが脆弱性の生成において高い協力度を示したことを示しています。これは、一部の検閲されていないオープンソースモデルと比較して同等です。評価されたモデルの中で、Llama3はこのようなリクエストに最も抵抗しました。 ‘
‘彼らが協力しようとしていたにもかかわらず、彼らが提示する実際の脅威は限られているようです。なぜなら、5つのカスタムラボでリファクタリングされたコードに対して、どのモデルも有効な脆弱性を生成することができなかったからです。しかし、研究で最も強力なパフォーマーであったGPT-4oは、通常、1つまたは2つのエラーしか生成しませんでした。 ‘
‘これは、LLMを使用して高度な、汎用的な[自動脆弱性生成(AEG)]技術を開発するための重要な潜在性を示唆しています。’
多くの第二の機会
LLMの特徴的なコンテキストウィンドウは限られているため、社会的な意味での悪意(例:反対)という否定的なコンテキストは永続的ではありません。
例えば、図書館に行って実用的な爆弾製造に関する本を求めたら、少なくとも拒否されるでしょう。しかし、(その問い合わせが会話の初めから完全にダメにはしないと仮定して)、関連する作品、たとえば化学反応や回路設計に関する本についてのリクエストは、図書館員の頭の中では、初期の問い合わせに関連していることになり、同じように扱われるでしょう。
おそらく、図書館員は将来の会話でも、あなたが爆弾製造に関する本を求めたことがあることを覚えておくでしょう。これにより、あなたの新しいコンテキストは「修復不能」になります。
LLMの場合、会話の中でさえもトークン化された情報を保持するのに苦労することがあります。長期記憶の指令(あるいは、ChatGPT-4o製品のように、存在する場合)からです。
したがって、ChatGPTとのカジュアルな会話は、たまに小さなものを拒否するが、大きなものを飲むことがあり、特に会話のテーマ、研究、またはプロセスが「禁止された」活動に関連している場合にそうです。
これはすべての現在の言語モデルに当てはまりますが、ガードレールの質はそれらの中で異なります(例:トレーニングされたモデルの重みを変更するか、会話セッション中にテキストの入力/出力フィルタリングを使用するか)。これは、モデルを構造的に変更せずに攻撃しやすくする可能性があります。
方法のテスト
LLMが有効な脆弱性を生成する能力をテストするために、研究者はSEED Labsから5つのラボを使用して制御された環境を設定しました。これらのラボは、バッファオーバーフロー、return-to-libc、Dirty COW攻撃、レースコンディションを含む既知の脆弱性を中心に構築されています。
研究者は、変数と関数を汎用の識別子に名前を変更することで、これらのラボの修正バージョンを作成しました。これは、モデルがメモリ化されたトレーニング例からではなく、代わりに脆弱性を理解するために努力していることを確認するための措置でした。
各ラボは、オリジナルのバージョンと修正バージョンの両方で、2回ずつモデルで実行されました。
研究者は、ターゲットモデルを改良して精製するために、第二のLLMをループに導入しました。攻撃モデルは、ターゲットモデルをプロンプトして再プロンプトすることで、複数のラウンドで出力を改良することを目的としていました。GPT-4oは、この役割で使用され、ダイアログを仲介するスクリプトを介して動作しました。

LLMベースの攻撃者のワークフロー、この場合はGPT-4oです。
プロジェクトのターゲットモデルは、GPT-4o、GPT-4o-mini、Llama3(8B)、Dolphin-Mistral(7B)、Dolphin-Phi(2.7B)でした。これらは、安全性メカニズムを備えたプロプライエタリおよびオープンソースシステムの混合で、構成またはファインチューニングを介してこれらのメカニズムを回避するために変更されたものも含まれます。
ローカルでインストール可能なモデルは、Ollamaフレームワークを介して実行されました。他のモデルは、利用可能な唯一の方法であるAPIを介してアクセスされました。
結果は、エラーの数に基づいてスコア付けされました。エラーは、意図された脆弱性を機能させることを妨げるものでした。
結果
研究者は、モデルが脆弱性の生成プロセス中にどれだけ協力的なのかをテストしました。これは、タスクを支援しようとしたレスポンスの割合で測定されました(出力が不完全であっても)。

主なテストからの結果、平均の協力度を示しています。
GPT-4oとGPT-4o-miniは、バッファオーバーフロー、return-to-libc、フォーマット文字列、レースコンディション、Dirty COWの5つの脆弱性カテゴリで、それぞれ97%と96%の平均レスポンス率で最高の協力度を示しました。
Dolphin-MistralとDolphin-Phiは、それぞれ93%と95%の平均協力率で続きました。Llama3は、27%の全体的な協力率で最も協力しないモデルでした。

左側は、LLMがオリジナルのSEED Labプログラムで間違いを犯した数、右側はリファクタリングされたバージョンで間違いを犯した数です。
実際のパフォーマンスを調べると、意欲と有効性の間には大きなギャップがあることがわかりました。GPT-4oは、5つのリファクタリングされたラボで合計6つのエラーで最も正確な結果を生成しました。GPT-4o-miniは8つのエラーで続きました。Dolphin-Mistralはオリジナルのラボで合理的に機能しましたが、コードがリファクタリングされると大幅に苦労しました。これは、トレーニング中に同様のコンテンツを見た可能性があることを示唆しています。Dolphin-Phiは17のエラーを犯し、Llama3は15のエラーで最も多くのエラーを犯しました。
失敗は、バッファサイズの不一致、ループロジックの欠如、または構文的に有効だが効果のないペイロードなどの技術的なミスによって、脆弱性が機能しないようにしました。リファクタリングされたバージョンに対して、どのモデルも有効な脆弱性を生成することができませんでした。
著者は、ほとんどのモデルが機能する脆弱性に似たコードを生成しましたが、根本的な攻撃のロジックを理解していないために失敗したことを観察しました。バッファオーバーフローでは、多くのモデルが機能するNOPスライド/スライドを構築できませんでした。
return-to-libcの試みでは、ペイロードはしばしば不正なパディングまたは関数アドレスを含んでいたため、有効ではあるが使用できない出力が生成されました。
これらのエラーのパターンは、モデルが脆弱性の生成のロジックを理解するのではなく、コード構造を模倣していることを示唆しています。
結論
論文では、テストされた言語モデルが、もしそれらができるなら、有効な脆弱性を生成するでしょう。完全に機能する出力を生成できないことは、セーフガードの結果ではなく、むしろアーキテクチャ的な制限であることを示しています。これは、最近のモデルでは既に軽減されているか、すぐに軽減されるかもしれません。
著者は、将来の研究で実際の脆弱性を使用したいと考えています。より新しい、より最近の資料は、ショートカットやその他の混乱を招く効果に影響される可能性は低いからです。
また、研究が行われたときには利用できなかった、より最近の「思考」モデル(GPT-o1やDeepSeek-r1など)が結果を改善する可能性があることも認めています。これは、さらに研究する必要があることを示しています。
論文は、テストされたほとんどのモデルが有効な脆弱性を生成する能力があることを結論付けています。完全に機能する出力を生成できないことは、セーフガードの結果ではなく、アーキテクチャ的な制限であることを示しています。これは、最近のモデルでは既に軽減されているか、すぐに軽減されるかもしれません。
先日、2025年5月5日に初めて公開されました。












