トップ›応用編›第19章
応用編第19章

識者が挙げた「3つのリスク」を検証する

読む目安:約40分識者の主張を分解し、一次資料と数字で確かめる手順

応用編の最後は、検証の練習です。2026年10月、ある識者がSNSで、LLMによるコード生成のリスクとして3つの点を挙げ、広く読まれました。この章では、その3点を公開されている研究と国際基準に当てはめ、「もっともな点」と「言い過ぎ、または根拠の弱い点」を分けます。扱うのは主張の内容だけで、発言者が誰かは問いません。目的は、識者の主張であれ、ニュースの見出しであれ、自分で分解して確かめる手順を身につけることです。経理の証憑突合と、やることは同じです。

この章の学習目標

  • 投稿が挙げた3つのリスク(学習データの汚染、内部パラメータの書き換え、出力経路のハッキング)を、OWASP LLM Top 10、NIST SP 800-218A、MITRE ATLASの項目に対応づけられるようになる
  • それぞれについて、公開された研究と数字を根拠に「もっともな点」と「言い過ぎの点」を分けて説明できるようになる
  • 「主張を分解し、検証可能性を分け、一次資料に当たり、数字の範囲を確かめ、結論を出す」という手順を、他の主張にも適用できるようになる

投稿の要旨と、検証の手順

投稿が挙げた3つのリスク

投稿の文言そのものは引用せず、この教材で整理した要旨を使います。LLMにコードを書かせることのリスクとして、次の3点が挙げられていました。

  1. 学習データの汚染。インターネット上のコードには脆弱なものが多く、それを学習したモデルは脆弱なコードを出す。意図的な汚染もありうる。
  2. 内部パラメータの書き換え。モデルの中身(重み)が改ざんされても、LLMは帰納的なシステムなので検知が難しい。演繹的な知識による介入が必要になる。
  3. 出力がユーザーに届くまでの経路のハッキング。AI企業の内部、ネットワーク、利用者の実行環境のどこでも、出力がすり替えられうる。

あわせて、「Pythonのコードは特に脆弱」「LLM自身のコードの9割以上はLLMが書いている」という趣旨の一般化も含まれていました。これらも検証の対象にします。

検証の手順:証憑突合と同じ

請求書を承認するとき、金額、日付、相手先、品目を一つずつ証憑と突き合わせます。主張の検証も同じで、5つの手順を踏みます。

  1. 主張を分解する。一つの投稿に、複数の主張が混ざっています。一文ずつに分けます。
  2. 検証可能性を分ける。「事実の記述」「予測」「提案」「価値判断」のどれかを見ます。検証できるのは事実の記述だけで、提案や価値判断は「賛成か反対か」の話です。
  3. 一次資料に当たる。研究論文、基準の原典、公式発表。解説記事や引用ツイートは、一次資料への道しるべとして使います。
  4. 数字の範囲を確かめる。母集団、時点、条件。第1章で「91%」に対してやったことです。
  5. 結論を出す。「妥当」「部分的に妥当」「言い過ぎ」「根拠不明(検証不能)」のどれかに置きます。

① 学習データの汚染

対応する枠組み

OWASP Top 10 for LLM Applications 2025 の LLM04 Data and Model Poisoning(学習データとモデルの汚染)がそのものです。攻撃者の手口を整理した MITRE ATLAS(AIシステムを狙う攻撃の戦術と手法の公開知識ベース)には、AML.T0020 Poison Training Data という手法として登録されています。この論点は、国際基準に名前と番号つきで載っています。

もっともな点

汚染は現実の研究課題です。2025年10月、AnthropicがUK AI Security InstituteとAlan Turing Instituteと共同で発表した研究では、6億から130億パラメータのモデルに対し、わずか250件の悪意ある文書を学習データに混ぜるだけで、特定の合図で無意味な文を出す「裏口」を仕込めました。必要な文書数はモデルの大きさにほぼ依存しませんでした。さらにAnthropicの2024年1月の「Sleeper Agents」研究は、「年が2024年と書かれていたら脆弱なコードを書く」裏口を持つモデルを試作し、通常の安全性訓練では裏口が消えず、むしろ合図を隠すことを学ぶ場合があることを示しました。「学習の段階でコードの安全性が損なわれうる」という指摘には根拠があります。

言い過ぎ、または根拠の弱い点

第一に、いま観測されているAI製コードの脆弱性を、主に学習データの汚染で説明する根拠は見当たりません。論文で最大の原因だった「暗黙のセキュリティ規則の欠落」(658件、55.5%)は「指示されなかった規則を補えない」問題で、「本番運用に耐えるものを」と一言添えるだけで再発率が25.7%から11.0%に下がりました。論文も原因を汚染には求めていません。ただし、頼み方で結果が変わることと、学習データが影響していることは両立します。この研究は汚染の有無を調べたものではないので、「汚染の影響はない」と言い切ることもできません。言えるのは、「汚染を持ち出さなくても説明できる現象が大半で、しかも有効な対策(頼み方と確認)は汚染の有無にかかわらず同じ」ということです。Veracodeの報告でも、100以上のモデルで45%という割合が新しいモデルでもほぼ横ばいで、特定のデータが汚染されたというより、モデル全般が「言われなければ守らない」性質を持つと読むほうが自然です。

第二に、「Python固有」は数字に合いません。Veracodeの言語別の結果では、Javaが70%超で最悪、Python、C#、JavaScriptは38〜45%で横並びです。問題は全言語共通です。

第三に、Anthropicの250件の研究自体が、示した裏口は「無意味な文を出す」狭く低リスクなもので、より大きなモデルやコードに穴を仕込むような振る舞いで成り立つかは不明、攻撃者が実際に学習データへ文書を入れるには現実的な困難がある、と限界を明記しています。「できうる」と「起きている」は別です。

② 内部パラメータの書き換え

対応する枠組み

モデルの重み(学習の結果として得られた数値の集まり)の改ざんは、LLM03 Supply Chain の問題です。MITRE ATLASでは AML.T0010 AI Supply Chain Compromise の下位手法「Model」(AML.T0010.003)と、AML.T0018 Manipulate AI Model に当たります。NISTは2024年7月に SP 800-218A を公開し、安全なソフトウェア開発の枠組み(SSDF)を生成AIモデルの開発向けに拡張しました。学習データとモデルの完全性は、そこで扱われる主題です。

もっともな点

「帰納的なシステムなので、改ざんを検知しにくい」という指摘は、研究上の論点として存在します。LLMの振る舞いは重みを眺めても読み取れず、入力を与えて初めて分かります。Sleeper Agents の結果は、裏口を持つモデルが通常の検査(安全性訓練)をすり抜けうることを示しており、「中身を見ても分からない」という懸念を裏づけています。

言い過ぎ、または根拠の弱い点

第一に、重みの改ざんには既存の対策があります。公開モデルの配布では、ファイルのハッシュ(内容の指紋)と署名で、受け取ったものが作者の出したものと同一かを確かめます。2025年4月には、Google、OpenSSF、NVIDIA、HiddenLayerの協力で、Sigstoreを使ってモデルに署名し検証する model-signing の1.0版が公開され、Hugging FaceやKaggleのような配布サイトでの検証を想定して設計されています。「中身の振る舞い」は検知しにくくても、「配布途中で差し替えられていないか」は検知できます。第16章の部品の話と同じ構造です。

第二に、商用APIのモデルを外部から書き換える経路は、通常ありません。API経由で使うモデルの重みは提供者の設備の中にあり、利用者も攻撃者も直接は触れません。残るのは提供者内部での改ざんや侵害で、これはAIに限らないクラウド事業者への信頼の問題として、監査や認証の枠組みで扱われてきたものです。ゼロではありませんが、「LLM特有の新しい穴」ではありません。

第三に、「演繹的な知識による介入が必要」は提案であって、検証できる事実ではありません。この教材では「検証不能(提案)」に置きます。

③ 出力が届くまでの経路のハッキング

AI企業の内部、ネットワーク、利用者の実行環境。この3つの経路は、AIに限らないソフトウェア全般の問題です。ネットワーク上のすり替えは、通信の暗号化(TLS、第12章で見たHTTPSの中身)で防ぐのが標準です。配布物のすり替えは署名で、部品の汚染はサプライチェーンの枠組み(第16章、第24章)で、それぞれ長く扱われてきました。

読者に最も関係があるのは3つ目の「利用者の実行環境」です。開発エージェントは、生成したコードをあなたの手元で実行します。第17章の間接プロンプトインジェクションと、権限を最小にする原則(LLM06)がここに直結します。指摘は妥当です。ただしAI固有の問題ではないので、既存の対策がそのまま当てはまります。

結論

2つの一般化について

「Python固有」は、①で見たとおりVeracodeの言語別の数字と合いません。「LLM自身のコードの9割以上はLLMが書いている」の根拠として考えられるのは、2026年6月の報道でAnthropicが「2026年5月時点で、自社の本番コードベースに取り込まれたコードの80%超はClaudeが書いた」と明らかにした件です。ただしこれは一社の製品コードの数字で、業界全体の数字でも、「モデルそのもの」をLLMが作ったという意味でもありません。一社の80%超を「LLM全般の9割以上」に広げるのは、母集団の取り違えです。

判定の一覧

主張対応する枠組み判定一言で
① 学習データの汚染OWASP LLM04、ATLAS AML.T0020部分的に妥当研究上は実在。ただし現在の脆弱性の主因ではなく、Python固有でもない
② 内部パラメータの書き換えOWASP LLM03、ATLAS AML.T0010.003/T0018、NIST SP 800-218A部分的に妥当検知の難しさは論点として実在。配布の検証には署名という既存対策があり、商用APIに外部からの書き換え経路は通常ない
③ 出力経路のハッキングTLS、署名、サプライチェーン(第16章、第24章)妥当だがAI固有ではないソフトウェア全般の既存分野。実行環境の権限最小化が読者に直結
「Python固有」Veracode 2025(言語別)根拠が弱いJava 70%超が最悪、Pythonは38〜45%で他言語と横並び
「LLM自身の9割以上はLLMが書いた」Anthropic一社の報道(80%超)根拠が弱い一社の製品コードの数字で、業界全体でもモデル自体でもない

3点とも、AIセキュリティで実際に議論されている論点で、無視してよいものではありません。同時に、どれも特別に新しいものとは言えず、OWASP LLM Top 10、NIST SP 800-218A、MITRE ATLASという国際基準に、名前と番号つきで整理済みです。「未知の脅威」として受け取るより、「整理済みの論点のどれに当たるか」を引けるようになることが、この教材の目標です。そして、あなたのアプリの穴のほとんどは、学習データの汚染よりも、第4章の「言われなければ守らない」から来ています。守り方も、そちらにあります。

補足:投稿を批判するために検証するのではない 検証の結果が「部分的に妥当」でも、投稿が注意を促した価値は残ります。この章で身につけてほしいのは賛否の判断より、「どの部分がどの資料で確かめられ、どの部分が確かめられないか」を分ける習慣です。監査で「指摘事項」と「意見」を分けるのと同じです。

演習:別の主張を同じ手順で検証する

所要時間:約25分
  1. 第1章のニュースの見出し「バイブコーディングで作った公開中のWebアプリ、9割に脆弱性」を、「事実の記述」として一文に分解します。
  2. 一次資料(論文v4)で、母集団(Claude Code/Lovable製、GitHub公開、稼働中984件から無作為200件)、時点、条件(専門家2名が悪用可能と確認したもの)を書き出します。
  3. 比較対象(Veracode:人が作ったアプリでも80%に欠陥)を並べ、見出しの印象と数字の範囲とのずれを一文で書きます。
  4. 「妥当」「部分的に妥当」「言い過ぎ」「根拠不明」のどれかに置き、理由を3行で書きます。
  5. 余裕があれば、最近見かけたAIセキュリティの別の主張を1つ選び、同じ5手順を点検ノートに書きます。一次資料が見つからなければ、それ自体が結論(根拠不明)です。
注意:確かめるのは資料であって、他人のシステムではない 「本当に汚染されているか」「本当にすり替えられるか」を、公開されているモデルやサービスに対して自分で試すことはしないでください。検証は、論文、基準の原典、公式発表に対して行います。自分の手で確かめてよいのは、自分が作り、自分が管理するアプリだけです。

まとめ

  • 3つのリスクはいずれも整理済みの論点。①学習データの汚染はOWASP LLM04とATLAS AML.T0020、②重みの改ざんはLLM03、ATLAS AML.T0010.003/T0018、NIST SP 800-218A、③経路のハッキングはTLS・署名・サプライチェーンという既存分野に当たる。
  • 汚染と裏口は研究上実在する(Anthropicの250件の研究、Sleeper Agents)。しかし現在のAI製コードの脆弱性の主因は「暗黙の規則の欠落」(55.5%)で、頼み方で半減する。「Python固有」はVeracodeの言語別の数字(Java 70%超、Python 38〜45%)と合わず、「LLMの9割以上」は一社の80%超を業界全体に広げた取り違え。
  • 検証の手順は、主張を分解し、検証可能性を分け、一次資料に当たり、数字の範囲(母集団、時点、条件)を確かめ、結論を出す。証憑突合と同じ。賛否ではなく、「どこまで確かめられるか」を分ける。

出典