← 最新の論文
🤖 AI

From Theory to Practice: Code Generation Using LLMs for CAPEC and CWE Frameworks

この論文は、CAPEC と CWE の記述に基づき GPT-4o、Llama、Claude といった大規模言語モデルを用いて脆弱性コードを生成する新たな手法を提案し、3 つのプログラミング言語で 615 件の高品質な脆弱性コードデータセットを構築したことを報告しています。

原著者: Murtuza Shahzad, Joseph Wilson, Ibrahim Al Azher, Hamed Alhoori, Mona Rahimi

公開日 2026-04-06
📖 1 分で読めます☕ さくっと読める

原著者: Murtuza Shahzad, Joseph Wilson, Ibrahim Al Azher, Hamed Alhoori, Mona Rahimi

原論文は CC0 1.0 (http://creativecommons.org/publicdomain/zero/1.0/) のもとパブリックドメインに提供されています。 これは以下の論文のAI生成解説です。著者が執筆または承認したものではありません。技術的な正確性については原論文を参照してください。 免責事項の全文を読む

この論文は、**「サイバーセキュリティの『教科書』に、実際に動く『悪いコード(バグ)のサンプル』を AI に書かせて作ろう!」**という画期的なプロジェクトについて書かれています。

専門用語を避け、日常の比喩を使ってわかりやすく解説しますね。

🕵️‍♂️ 問題:「悪いこと」の説明書はあるけど、実演がない!

まず、サイバーセキュリティの世界には**「CAPEC」「CWE」**という、2 つの大きな辞書(データベース)があります。

  • CAPEC:「ハッカーがどんな手口で攻撃するか」を説明する辞書。
  • CWE:「プログラムにどんな弱点(バグ)があるか」を説明する辞書。

これらは非常に詳しく書かれていますが、「実際にその攻撃がコード(プログラム)でどう書かれているか」のサンプルがほとんどありません。

🍳 料理の例え
これまであったのは、「火傷(やけど)の仕組み」や「包丁で指を切らないための理論」が書かれた分厚いマニュアルだけでした。
しかし、「実際に包丁を誤って指に当ててしまった瞬間の動画」や「失敗した料理のレシピ(悪いコード)が手元になければ、初心者は「ああ、こういうことか!」と直感的に理解できません。

研究者や教育者たちは、「理論はわかるけど、実際のコードを見てみたい!」と困っていたのです。

🤖 解決策:AI 料理人に「失敗作」を作らせる

そこで、この研究チームは**「大規模言語モデル(LLM)」**という、非常に賢い AI(GPT-4o など)に頼りました。

彼らは AI にこう指示しました。

「CAPEC と CWE の辞書を見て、『ハッカーが狙うような、わざとバグのあるコード(失敗作)を、Java、Python、JavaScript という 3 つの言語で作ってほしい。そして、なぜそれが危険なのか解説もつけてね。」

AI は辞書の情報を元に、まるで**「ハッカーの真似をして、わざと危ないプログラムを書く」**というタスクをこなしました。

🏗️ 仕組み:AI に「文脈」を教える工夫

ただ「悪いコードを作って」と言うだけでは、AI は何を基準に作ればいいか迷ってしまいます。そこで、チームは以下の工夫をしました。

  1. 辞書の組み合わせ:CAPEC(攻撃手口)の説明だけでなく、関連する CWE(弱点)の説明も AI に読み込ませました。
  2. 5 つのヒント:もし関連する弱点の説明が少なければ、AI が意味的に近い弱点を 5 つ選び出して、より詳しい文脈を与えました。
    • 🧩 パズルの例え:AI に「このパズル(攻撃手口)を完成させて」と言うとき、ピースが 1 つしかなければ迷います。でも、関連するピースを 5 つも渡せば、AI は「あ、この形ならこうなるんだ!」と正確にパズル(コード)を完成させられます。

📊 結果:AI は本当に上手だった?

チームは生成されたコードを徹底的にチェックしました。

  • 📝 読みやすさ:AI が書いたコードは、人間が読んでも非常にわかりやすく、綺麗に書かれていました(特に Python は高評価)。
  • 🎯 正確さ:専門家のレビューでも、「このコードは、説明されている攻撃手口そのものだ」と 95% 以上が一致しました。
  • 🔄 安定性:同じ指示を 5 回繰り返しても、AI はほぼ同じようなコードを作りました。これは、AI が「偶然」ではなく、**「論理的に」**コードを生成できている証拠です。
  • 🤝 他 AI との比較:GPT-4o だけでなく、Llama や Claude という別の AI でも試しましたが、結果は非常に似ており、信頼性が高いことがわかりました。

🎁 この研究のすごいところ

  1. 615 種類の「悪いコード」のデータベース完成
    これまで存在しなかった、**615 種類の攻撃パターンに対応した「悪いコードのサンプル集」**が完成しました。これは Java、Python、JavaScript の 3 つの言語で書かれています。
  2. 教育と防御の強化
    • 学生や開発者:「あ、こういう書き方をするとハッキングされるんだ!」と、失敗例を見て学ぶことができます。
    • セキュリティツール:このデータを使って、新しいバグ発見 AI を訓練すれば、より賢い防御システムが作れます。
  3. 理論と実践の橋渡し
    「難しい理論書」を「実際に動くコード」に変えることで、セキュリティの壁を低くしました。

🔮 今後の展望

もちろん、完璧ではありません。

  • 「物理的な鍵を壊す」といった、ソフトウェアとは関係ない攻撃に対してもコードが作られてしまったため、そこは人間が選別する必要があります。
  • 今後は C++ や Go などの言語も追加し、さらに実用的なツールと連携させる予定です。

まとめ

この論文は、**「AI に『悪いこと』を教えることで、逆に『良いセキュリティ』を作るための教材を作った」**という研究です。

まるで**「消防士が、あえて火事場をシミュレーションして、消火訓練の教材を作っている」**ようなものです。AI が生成した「失敗作(悪いコード)」を見ることで、私たちはより安全で強いソフトウェアを作れるようになるのです。

自分の分野の論文に埋もれていませんか?

研究キーワードに一致する最新の論文のダイジェストを毎日受け取りましょう——技術要約付き、あなたの言語で。

Digest を試す →