LLMを使う上で考えるべきセキュリティ

# LLMに関連したセキュリティ
ChatGPTやGeminiなどテキスト生成AIが登場してから少し時間が経った今、「そろそろアプリを作りたい！」「高度なシステムを組み込みたい！」と言った声も出てくる頃ではないでしょうか。

今回の投稿ではLLMアプリを作る上で気になってくる"LLMセキュリティ"についてサーベイ論文の解説をしてみたいと思います。攻撃者に悪用されないために何を気をつけるべき観点もまとめていきたいと思います。

## A survey on large language model (LLM) security and privacy: The Good, The Bad, and The Ugly (2024/06)
本論文では281の関連論文をレビューし、LLMのセキュリティに関する適用例を以下の3つに分類しました：

- 良い使い方：コードセキュリティやデータプライバシーを含むセキュリティ向上への貢献。LLMは安全なコーディング、テストケース生成、脆弱性検出など、コードライフサイクル全般に活用されています。
- 悪い使い方：LLMを利用した攻撃的な応用例。ハードウェア、OS、ソフトウェア、ネットワーク、ユーザーを標的とした攻撃が含まれます。特にユーザーを狙った攻撃は、人間のような推論能力を持つLLMの特性を利用しています。
- 脆弱性のある使い方：LLMが持つ脆弱性と防御策。脆弱性はAIモデル固有（例：データポイズニング、バックドア攻撃）と非AIモデル固有（例：リモートコード実行、プロンプトインジェクション）の2つに分類されます。

### 良い使い方
このセクションではセキュリティ向上に向けたLLMの応用アイデアテーマをまとめます。
#### 1. コードセキュリティ

| トピック名                 | 概要                                                                                       | 主な研究例                                                                                             | 重要なポイント                                   |
|---------------------------|------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------|-----------------------------------------------|
| **セキュアコーディング**       | LLMを使ったセキュアなコード生成・プログラミング支援。                                                       | - **SVEN**: 連続プロンプトでセキュリティを向上（成功率59.1%→92.3%）<br>- **SALLM**: セキュリティ特化型データセットによる評価。<br>- ChatGPTのハードウェア設計での応用。 | セキュリティリスクを抑えたコード生成の支援。                          |
| **セキュリティテスト生成**      | セキュリティテストケースの自動生成により、脆弱性や攻撃のリスクを評価。                                                     | - **TitanFuzz**: 深層学習ライブラリ向けにテスト生成（未知のバグ41件検出）。<br>- **Fuzz4All**: カバレッジ36.8%向上。<br>- **WhiteFox**: コンパイラ最適化テストで既存手法を80件上回る。 | テスト自動化により、効果的な脆弱性検出を実現。                      |
| **脆弱なコード検出**         | LLMを利用して脆弱性検出を行い、従来ツールと比較して高精度な検出が可能。                                                     | - **GPT-4**: 従来の静的コード解析ツールを上回る検出能力。<br>- **LATTE**: 静的バイナリ解析で37件の新たなバグを発見。<br>- **VulLibGen**: 脆弱なライブラリの識別。 | 精度向上の可能性があるが、誤検知の課題あり。                        |
| **マルウェア検出**           | マルウェア解析において、LLMの文脈理解能力を活用して効率的な検出を支援。                                                    | - **Apiiro**: コードをベクトル化し効率的にマルウェアを特定。<br>- **Henrik Plate**: GPT-3.5を用いた解析。         | 人間のレビューを補完するが、完全代替には限界がある。                |
| **脆弱/バグ修正**           | コードのバグやセキュリティ脆弱性の修正を自動化。                                                                  | - **ChatRepair**: コスト削減しつつ162件のバグを修正（1件あたり$0.42）。<br>- **InferFix**: 静的解析とモデルを組み合わせた修正。<br>- ChatGPTのバグ修正性能が競争力を発揮。 | 修正コストの削減や精度向上に寄与。                              |

#### 2.データセキュリティとプライバシーにおけるLLMの応用

| トピック名                 | 概要                                                                                      | 主な研究例                                                                                              | 重要なポイント                                  |
|---------------------------|-----------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------|----------------------------------------------|
| **データ整合性（Integrity: I）** | データがライフサイクルを通じて変更や破損されずに保持されることを保証。主にランサムウェアや異常検出に焦点。                          | - **Wang Fang**: LLMを用いたランサムウェア対策を理論的に提案。<br>- **HuntGPT**: ネットワーク異常検出のための侵入検知システム。<br>- **LogGPT**: ファイルシステムログの異常検出。 | ランサムウェア攻撃の分析や異常検出におけるLLMの活用。                |
| **データ機密性（Confidentiality: C）** | データを不正アクセスや漏洩から保護すること。LLMはデータの匿名化や暗号化を支援。                                            | - **Arpita et al.**: テキスト内の識別情報を一般的なマーカーに置き換える手法を提案。<br>- **Hyeokdong et al.**: ChatGPTで暗号アルゴリズムを実装。 | データ匿名化や暗号化の支援により、個人情報を保護。                   |
| **データ信頼性（Reliability: R）** | データの正確性やエラーのない状態を保証。特にフィッシング検出やスパム識別に有用。                                              | - **Takashi et al.**: GPT-4でフィッシングサイトを高精度で検出。<br>- **Fredrik et al.**: フィッシングメールの悪意を検出。<br>- **IPSDM**: フィッシング・スパムメール分類モデル。 | フィッシング攻撃やスパムメールの精度高い検出に貢献。               |
| **データ追跡性（Traceability: T）** | データの出所や移動、変化を追跡し記録する能力。フォレンジック調査やウォーターマーキング技術に応用。                                    | - **Scanlon et al.**: ChatGPTでOSアーティファクトを分析し攻撃パターンを検出。<br>- **WASA**: モデル出力にウォーターマークを埋め込み著作権を保護。<br>- **SWEET**: プログラミング言語のトークンにウォーターマークを実装。 | フォレンジック調査や知的財産保護におけるLLMの新しい応用。          |


### 悪い使い方

以下は、セクション5「セキュリティとプライバシーに対するネガティブな影響」を表形式でまとめたものです。

| トピック名                 | 概要                                                                                 | 主な研究例                                                                                           | 重要なポイント                              |
|---------------------------|--------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------|------------------------------------------|
| **ハードウェアレベル攻撃**   | ハードウェアに関連する情報の分析を通じた攻撃（例: サイドチャネル攻撃）。物理的デバイスへの直接アクセスは不可。        | - **Yaman [115]**: AESや深層学習アクセラレータにおけるサイドチャネル情報の解析にLLMを利用。                 | サイドチャネル情報解析の有効性をLLMで確認。                |
| **OSレベル攻撃**           | OS情報を分析し、脆弱性を特定して攻撃戦略を提案する。LLMによる特権昇格や攻撃ツールの評価が進む。                        | - **Andreas et al. [119]**: SSH接続された仮想マシンの脆弱性分析と攻撃実行を自動化。<br>- **Linux特権昇格ツール**: LLMを用いてベンチマークを評価。 | OS情報解析に基づく攻撃提案の可能性を示す。               |
| **ソフトウェアレベル攻撃**    | 悪意のある開発者がLLMを利用してマルウェアを生成するケースが増加。例としてランサムウェアやワームの生成が挙げられる。         | - **Mika et al. [124]**: ChatGPTを使った検出回避型マルウェア生成。<br>- **Marcus Botacin [127]**: LLMで複数のマルウェアバリアントを生成。 | LLMがマルウェア生成の効率を大幅に向上させる可能性。       |
| **ネットワークレベル攻撃**    | フィッシングやCAPTCHA破りなど、ネットワーク攻撃を実行。個別化されたフィッシングメールが高い成功率を示す。              | - **Fredrik et al. [91]**: GPT-4で生成されたフィッシングメールの成功率が高いことを確認。<br>- **Julian Hazell [131]**: ChatGPTで英国議会メンバー600人にフィッシング攻撃。 | フィッシングメールの質と成功率がLLMで大幅に向上。         |
| **ユーザーレベル攻撃**        | LLMの生成能力を悪用した虚偽情報の作成、社会工学的手法、科学的不正行為、詐欺の促進が懸念される。                      | - **虚偽情報**: LLM生成の虚偽情報は検出が困難で、社会的影響が大きい [135–137]。<br>- **社会工学**: 個人情報の推測や心理的操作を実施 [146–148]。<br>- **科学的不正**: ChatGPT生成の論文を検出するDEMASQを提案 [163,164]。<br>- **詐欺**: FraudGPTやWormGPTがダークウェブで販売され、詐欺メールの生成や攻撃計画を支援。 | LLMの特性が詐欺や社会工学攻撃を大幅に支援するリスク。     |

### 脆弱性に関する使い方


| トピック名                       | 概要                                                                                     | 主な研究例                                                                                             | 重要なポイント                                  |
|--------------------------------|----------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------|----------------------------------------------|
| **敵対的攻撃（Adversarial Attacks）** | LLMのトレーニングデータや出力を意図的に操作し、誤動作や不正な挙動を引き起こす攻撃。                                                | - **データポイズニング**: 少数の悪意あるデータ（例: 100件）でモデルの挙動を歪める [168]。<br>- **バックドア攻撃**: トリガーメカニズムを使い特定の入力で不正挙動を発動 [180]。 | トレーニングデータの操作がセキュリティリスクを増大させる。          |
| **推論攻撃（Inference Attacks）**    | モデルやデータから機密情報を推測する攻撃。属性推論やメンバーシップ推論が含まれる。                                                  | - **属性推論**: LLMが個人の情報（例: 住所、収入、性別）を高精度で推測 [146]。<br>- **メンバーシップ推論**: データがトレーニングセットに含まれるか判定 [199]。       | モデルが過剰な情報を漏洩するリスクが顕在化。                    |
| **抽出攻撃（Extraction Attacks）**   | モデルやトレーニングデータから特定の情報やリソースを抽出する攻撃。                                                               | - **モデル窃盗**: モデルの再現 [209]。<br>- **トレーニングデータ抽出**: トレーニングデータを特定のクエリで再現可能 [204–206]。         | モデルの機密性が攻撃で損なわれる可能性。                      |
| **バイアスと不公平（Bias and Unfairness）** | LLMのバイアスや差別的な挙動が、社会的・倫理的な課題を引き起こす。                                                                | - **性別・少数派の偏り**: 性的・民族的バイアス [210–213]。<br>- **政治的影響**: 政府検閲基準によるバイアス [216]。<br>- **コードのバイアス**: LLM生成コードにおける偏り [220]。 | バイアスの影響が多方面で問題視され、信頼性に影響を与える。      |
| **命令チューニング攻撃（Instruction Tuning Attacks）** | チューニングされたLLMを操作し、安全機能をバイパスする攻撃。ジェイルブレイキングやプロンプトインジェクションが含まれる。                 | - **ジェイルブレイキング**: 安全な応答を回避する手法（例: MASTERKEY）[227]。<br>- **プロンプトインジェクション**: 外部リソースを活用した攻撃 [241]。<br>- **DoS攻撃**: スポンジ攻撃でリソース消耗 [248]。 | LLMの安全性とリソース管理に深刻なリスクをもたらす。            |
| **リモートコード実行（Remote Code Execution: RCE）** | Webサービスやアプリケーションの脆弱性を狙い、任意のコードをリモートで実行する攻撃。LLM統合サービスが標的となる場合がある。           | - **Tong et al. [250]**: 6つのフレームワークで13の脆弱性を特定（12件がRCE）。<br>- アプリ51件中17件でRCEが可能。 | LLM統合サービスの基盤が脆弱だと環境が危険にさらされるリスク。        |
| **サイドチャネル（Side Channel）**   | システムレベルのコンポーネントを悪用して情報を抽出する攻撃。プライバシー侵害やメンバーシップ推論攻撃を助長。                          | - **Edoardo et al. [251]**: データフィルタリングや出力モニタリングを利用してプライバシーを侵害。              | サイドチャネルが差分プライバシーの保証を損なう可能性を示す。           |
| **サプライチェーン脆弱性（Supply Chain Vulnerabilities）** | LLMのライフサイクルにおいて、脆弱なコンポーネントやサービス（例: プラグインやサードパーティデータセット）から生じるリスク。             | - **Umar et al. [253]**: プラグインやLLMプラットフォームの脆弱性を特定するフレームワークを設計。<br>- OAuth関連の脆弱性が個人情報へのアクセスを許す可能性 [134, 252]。 | サードパーティのプラグインがLLMのセキュリティを低下させる危険性。      |

LLMの防御策について

| トピック名                          | 概要                                                                                     | 主な研究例                                                                                              | 重要なポイント                                |
|-----------------------------------|----------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------|--------------------------------------------|
| **モデルアーキテクチャでの防御**         | モデルの構造と外部モジュール（知識グラフや認知アーキテクチャ）を活用し、LLMの安全性と頑健性を向上させる。                           | - **Li et al. [254]**: 大規模モデルの微分プライバシー性能を向上。<br>- **Romero et al. [261]**: 認知アーキテクチャの統合でLLMの頑健性を改善。 | 大規模モデルが攻撃耐性とプライバシー保護で優位性を示す。             |
| **トレーニング段階での防御**            | トレーニングデータのクリーンアップとロバストな最適化方法で、LLMの安全性を向上させる。                                               | - **Corpora Cleaning**: データの言語識別、脱毒化、バイアス除去など [269–287]。<br>- **Optimization Methods**: 敵対的トレーニングや安全性アライメント [288–302]。 | データ品質向上と安全性重視のトレーニングで、倫理的なLLMを実現。       |
| **推論段階での防御**                  | 実運用時に入力や出力を監視・調整し、不適切な動作を防ぐ。具体的には、入力の前処理、異常検出、出力後処理を実施。                         | - **Instruction Processing (前処理)**: 入力トークンのマスキングや再構成で攻撃を防止 [224, 308]。<br>- **Malicious Detection (処理中)**: 中間結果の分析で悪意ある指示を特定 [303–313]。<br>- **Generation Processing (後処理)**: 出力の毒性を評価し修正 [315–318]。 | 実運用での安全性確保が重要。特に前処理で攻撃を未然に防ぐ役割が大きい。 |

### まとめ
LLMは、サイバーセキュリティ教育や政策立案における新たなツールとして活用が進んでいます。特に教育分野では、CTFや脆弱性解決演習で実践的な学習を支援し、政策分野ではプライバシー保護や法規制の見直しを促しています。また、ML特化型タスクへの応用や人間作業の代替が期待され、攻撃と防御の調整やLLM固有の課題解決が重要な研究方向として浮上。これらの進展により、LLMはセキュリティとプライバシー分野の革新を加速させる一方、新たな法的課題への対応も求められています。