0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AI/LLMの脆弱性診断について その1 概要

Posted at

いくつか明確にしておきたい点があります。

この講座を最初に作り始めたのは2024年で、その時点では異なる「OWASP Top 10(LLMセキュリティの分類)」が使われていました。当時のOWASP Top 10は、LMSのスライドの下部で確認できます。

ですが、2025年に入ってカテゴリの更新がありました。OWASPとは、脆弱性に関するランキングのようなもので、年によってカテゴリの統合・変更・削除が行われます。

それに合わせて、私の講座もいくつかの点でアップデートしました。

新旧カテゴリの対応と注意点

1.プロンプトインジェクション(LM1)
 ほぼ変わっていません。2023〜2024年の内容と同様です。

2.機密情報の漏洩(LM6 → LM2)
 脅威レベルが上がっただけで、内容は変わっていません。動画ではまだ「LM6」と表示されますが、実際は「LM2」として扱われます。

3.サプライチェーンの脆弱性(LM5 → LM3)
 重要性が上がりましたが、内容は同じです。

4.データ・モデルの汚染(LM3 → LM4)
 位置が下がりましたが、モデル汚染に加え「データ汚染」も含まれるようになりました。

5.不適切な出力処理(旧称:不安全な出力処理、LM2 → LM5)
 名称が変わっただけで、中身はそのままです。

6.過剰なエージェンシー(LM8 → LM6)
 以前の「安全でないプラグイン設計」も統合されました。

7.システムプロンプト漏洩(新カテゴリ、LM7)
 以前から扱っていた内容ですが、独立したカテゴリとして昇格しました。

8.ベクトル・埋め込みの弱点(新カテゴリ)
 以前はLM6(機密情報漏洩)などに含まれていた内容です。

9.誤情報(ミスインフォメーション)(新名称)
 以前の「過剰な依存」などを含みます。個人的には「誤分類」などと呼んだほうが正確だと思いますが、OWASPは「ミスインフォメーション」としています。

10.無制限のリソース消費(旧:サービス拒否攻撃)
 APIの過剰利用なども含まれるようになりました。「モデルの窃盗」カテゴリは削除され、ここに統合されています。

補足情報
動画の内容自体には変更はありません。表示されている「LM番号」と実際の番号が違う場合もありますが、内容は同一です。

PDFスライドでは正しい2025年版のカテゴリで整理してあります。

新しくOWASPの導入章を追加しました。

各章は「脅威 → 例 → 対策」という流れで構成されています。

このアップデートが皆さんの疑問を解消し、講座をより深く理解する助けになれば幸いです。YouTubeチャンネル「Martin Volk」でも定期的に情報を発信していますので、ぜひフォローしてください。

////////////////////////////////////////
AIと大規模言語モデルとは?
では、AIとは何か、言語モデルとは何かについて説明します。

AIの定義は、機械が人間の知能を模倣することを可能にする人工知能です。学習、推論、問題解決などのタスクを実行します。これは新しい概念ではありません。90年代にはすでにチェスコンピュータなどがありました。したがって、人工知能は何十年も前から軍事技術にも使われてきました。しかし、ChatGPTの登場によって、より広く一般に知られるようになりました。

大規模言語モデル(LLM):言語モデルは、人間の言語を理解し、解釈し、生成するAIの一種です。これは生成AIシステムとも呼ばれます。人間の言語のように、テキストを作成したり、質問に答えたり、物語を作成したりすることができます。非常に興味深い技術であり、このクラスを受講しているということは、おそらくChatGPTとその能力、そしてそれがどのように進化しているかを見たことがあるでしょう。そして、これらの技術モデルが進化するにつれて、それを取り巻くセキュリティ上の脅威も進化します。

大規模言語モデルとは?
では、LLMとは何でしょうか?LLMは、膨大な量のデータ、つまり膨大な量のテキストデータで訓練された高度な言語モデルです。そして、信じられないほど人間らしい方法でテキストを理解し、生成します。しかし、それは人間ではありません。基本的には予測が行われているだけです。オートコンプリートのようなものです。その仕組みやアルゴリズムの詳細には深く立ち入りませんが、一種の予測モデルだと考えてください。

主な特徴は、文脈を理解する能力、多様なテキストを生成する能力、幅広いトピックから学習する能力です。これは特に、モデルがインターネットに出て知識を広げる際に興味深い点です。例えば、ChatGPTがウェブブラウジング機能を持つ以前は、非常に自己完結的でした。しかし、今は実際に出かけて、フライトをチェックしたり、ウェブを調査したり、その情報を消費したりすることができます。非常に強力です。

LLMの学習プロセス
LLMは、大量のテキストデータセットから例を使って訓練され、パターン、文法、そして世界に関する情報を学習します。これを訓練プロセスと呼びます。これは非常に時間とコストのかかるタスクであり、多くのリソースを必要とします。Hugging Faceなどで基本的なモデルを比較的簡単に訓練することもできますが、Metaが発表したYama 3モデルのようなものを作成するには、多くの開発努力、資金、そして時間が必要です。

基本的に、機械学習技術はアルゴリズムと統計的手法を使用して、時間の経過とともに理解を向上させます。そして、教師あり学習と教師なし学習があります。より良い出力を得るためには、モデルを効果的に訓練する必要があります。これが実際に起こっていることです。

LLMの応用
LLMは多種多様なアプリケーションで利用されています。私たちは本当に新しい時代の幕開けにいると言えるでしょう。これらのLLMが何ができるのか、そしてどのような可能性を秘めているのかという点で。私たちがすでに目にしているのは、例えばチャットボットです。顧客サービスのチャットボットを考えてみてください。顧客の問い合わせに対応するものです。

あるいは文章作成アシスタントです。手紙やビジネス文書、法的契約書など、何か素敵な文章を書きたい場合に非常にうまく作成してくれます。コンテンツ作成では、Dall-Eや画像生成モデルなどで見たことがあるでしょう。これらはグラフィックや実写のような画像など、あらゆる種類のコンテンツを作成できます。また、言語の翻訳などもできます。

したがって、LLMは多くのタスク(文章作成、顧客サポートなど)を自動化し、コミュニケーションを強化することで、業界を変革しています。ご存じのように多くの職を奪う一方で、特にセキュリティや開発者の分野では多くの職を生み出しています。そして、監視が必要です。勝手に動き回って何でもこなすだけでは良くありません。そういった種類の脆弱性については後ほど説明します。

LLMの未来
LLM技術には計り知れない可能性があります。LLMの理解が深まり、よりパーソナライズされたインタラクションなどが可能になるでしょう。すでにアプリストアでどのようなAIアプリが利用可能か見ることができます。

例えば、私が妻にプレゼントしたものは、もう販売されていませんが、「ハイミラ(Hi Mira)」というものです。これは美容鏡のようなもので、AI技術が組み込まれており、肌を分析してメイクなどを推奨してくれます。しかし、目を開けば、LLMが今やどこにでも存在していることがわかります。企業はこれらのモデルをできる限りあらゆる場所に展開しようと急いでいます。

しかし、それには課題が伴います。技術的な課題です。そして、これがこのコースで主に話すことです。セキュリティ脆弱性や、偏見、プライバシー侵害、コンプライアンス違反、自律性、過剰な自律性などの問題です。また、倫理的な側面も含まれます。これらはすべてOWASP Top 10に組み込まれているため、これらにも触れます。

AI開発サイクル
企業がAIシステムを開発することを決定する際のプロセスについて説明します。

まず、常に問題の特定です。この特定のAIモデルで何をしたいのか?その目的は何なのか?例えば、私がレストラン経営者で、テーブルを予約してくれるAIアシスタントが欲しいとします。つまり、レストランのテーブルを予約する、ということです。その問題をできるだけ正確に定義する必要があります。人を雇う代わりに、チャットボットに予約をさせてほしい、というようなことです。

次に、データの収集が必要です。問題に関連するデータを収集し、準備します。AIやLLMが私の問題を理解することを期待するだけではいけません。情報を与える必要があります。レストランに関する情報、キャンセルがあった場合にテーブルを再割り当てする方法など、少なくともPDFドキュメントのような「ハウツー」が必要です。ビジネスに関するあらゆることをLLMに認識させる必要があります。そうすれば、関連する意思決定を行うことができます。

そして、モデル設計の選択です。問題の要件に最も適したAIモデルを選択します。例えば、多くの事前訓練済みモデルや標準モデルが利用可能で、ほとんどのケースで十分に機能します。例えば、Hugging Faceに行けば、テキスト生成、画像分析、ビデオ、オーディオの処理など、ニーズに基づいて任意の事前訓練済みモデルをダウンロードできます。

そして、そのモデルをさらに訓練して、ビジネスに適合させることができます。例を挙げましょう。私の友人に歯医者がいて、彼のノートパソコンにカスタムモデルを作成しました。彼は歯のX線画像をアップロードできます。彼は、患者データなのでオンラインでやりたくないと言っていました。だから、ローカルに限定したいと。私がセットアップを手伝い、モデルは歯科医療向けに訓練されていなかったにもかかわらず、非常にうまく機能しました。そして、彼は私の助けを借りて、モデルのファインチューニングも始めました。これにより、より正確になり、より良いアドバイスや決定ができるようになりました。もちろん、最終的な決定は歯医者である彼にありますが、彼はこれを、あちこち検索したり、多数の情報を参照したりするのではなく、ツールとしてLLMを大いに活用しています。

そして、それは4番目のポイントである訓練につながります。データをモデルに投入し、問題を解決する方法を教えます。例えば、歯医者のボットに戻ると、歯にXYZが見られた場合、それは根管の問題である可能性がある、というように説明する必要があります。私は歯科の専門家ではないので、特定の分野における主題専門家のあらゆる専門知識が必要です。これは非常に重要です。

次のステップは評価です。モデルをテストし、どの程度うまく機能するかを確認します。X線をアップロードして、関連情報が得られるのか、それとも完全にでたらめなのかを確認します。繰り返しになりますが、ここでは対象を理解している人が訓練プロセスに必要です。そうでなければ、私は歯科のX線画像を読めないので、そのような決定を下すことはできません。

そして、満足できたら、実世界でのアプリケーションに展開できます。もし商用化したいのであれば、実世界でのアプリケーションはアプリやウェブアプリケーション、モバイルアプリケーションなどになるでしょう。

そして、監視と維持も重要です。人生のすべてと同様に、物事は変化し続けています。新しい方法が明らかにされます。それが歯科であろうと、サイバーセキュリティであろうと、常に進化しています。したがって、AIシステムも常に監視し、維持する必要があります。

トークン化
次に、トークン化について少し話しましょう。トークン化とは、テキストをより小さな単位、つまりトークンに変換するプロセスです。例えば「Hello world」というテキストを取ると、それは実際にトークンに変換され、コンピュータやAIがこれを理解できるようになります。トークンは、単語、文字、あるいはサブワードにもなりえます。これがトークン化プロセスと呼ばれるものです。

これに興味がある方は、強くお勧めしますが、ChatGPTをWebプロキシ(Burpなど)を通して実行し、リクエストを見てください。このトークン化が実際にどのように行われているかがわかります。

前処理とは、テキストがクリーンアップされ、標準化されることを意味します。例えば、小文字化したり、句読点を削除したりします。これにより、トークン化がより効果的になります。なぜなら、特殊文字などが入ると、情報の処理に問題が生じる可能性があるからです。これが通常、前処理を行う理由であり、これによりトークン化がはるかに効率的になります。

テキストの分解:AIは、定義済みのルールや学習されたパターンに基づいて、テキストをトークンに分割します。パターンを学習し、「ここでXYZをやる必要がある」と言うことも可能です。例えば、スペース、句読点、または特定のアルゴリズムを使用して言語のサブワード単位を識別することによって分割します。これは単に皆さんの理解のためです。Webプロキシなどを使って実際の要求を見れば、これらのステップはどの言語モデルと通信しても非常に簡単に見ることができます。

トークンの数値化と学習
次に、これらのトークンは数値に変換されます。結局のところ、これがコンピュータが理解するものです。各トークンには一意の番号が割り当てられます。これは、AIモデルが実際に処理する数値表現です。結局のところ、それは情報技術のすべてと同様に、最終的にはバイナリ、つまりゼロと1になります。

しかし、これは彼らが実際にテキスト、つまり入力テキストや人間の入力テキストを扱うプロセスです。

訓練と理解:AIはこれらの数値を使ってパターンを学習します。時間が経てば、特定のパターンを認識できるようになります。これはスペイン語、これは英語、これはドイツ語、これは特別な文法など、といった具合です。そして、その知識を使って処理能力をさらに向上させます。

新しいテキストを処理する際、学習した情報を使ってテキストを理解したり生成したりします。これは一種の予測アルゴリズムです。「家は...」というように。そして、もし訓練データに「家は住む場所である」とか「家は緑色である」といった入力があるとします。そして、そのフレーズを何度も何度も繰り返し訓練アルゴリズムに与えると、最終的に「家は緑色である」というフレーズを見たときに、緑色で自動補完されることを予測するでしょう。次に何が来るかを予測しているだけです。

これは興味深いことです。ChatGPTでさえ、正確に予測できないという問題があります。しかし、実際の脆弱性に到達したときに、これについて詳しく説明します。

まとめと次章への案内
さて、これはAI、LLMシステムの概要、非常に高レベルな概要です。これ以上詳しく説明するつもりはありません。なぜなら、私たちは本当に侵入テスト、バグバウンティ、そしてセキュリティの側面のためにここにいるからです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?