Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
Manipulating-Web-Agents — 自律型LLMベースのWebエージェントを制御する間接プロンプトインジェクション攻撃の研究デモンストレーション。トリガー最適化と評価のためのツールを備えています。 | Kitploit
ツール/GitHubGitHub/sej2020/manipulating-web-agents
エクスプロイトウェブセキュリティ論文と研究学習と教育AIセキュリティ敵対的攻撃
GitHubsej2020/manipulating-web-agents

Manipulating-Web-Agents

自律型LLMベースのWebエージェントを制御する間接プロンプトインジェクション攻撃の研究デモンストレーション。トリガー最適化と評価のためのツールを備えています。

リポジトリを見る
631年前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

間接的プロンプトインジェクション攻撃による自律型LLMベースのWebエージェントの操作

LLM統合アプリケーションが普及するにつれ、潜在的なセキュリティリスクの調査は極めて重要です。これらのシステムにおける最も重大な脆弱性の1つは、間接的プロンプトインジェクションによる敵対的攻撃を受けやすいことです。このリポジトリでは、悪意のある攻撃者が、LLMから派生したリモートのWebナビゲーションエージェントの動作を制御できるユニバーサルトリガーを生成する方法を示します。この情報を公開することで、実務者が自身の潜在的な脆弱性を認識し、研究者がこの種の攻撃に対する防御策を開発するきっかけとなることを願っています。

セットアップ

このリポジトリをクローンした後、Browser Gym からWebナビゲーションインフラストラクチャをセットアップするには、以下のコマンドが必要です。

root@kitploit:~
conda create -n browser-gym
conda init
conda activate browser-gym
pip install browsergym-core
playwright install chromium
pip install transformers

詳細はコンピューティング環境によって異なる場合があります。

ユニバーサルトリガー最適化手順を実行したい場合は、WebサイトとWebナビゲーション目標のデータセットを生成する必要があります。これは、src/actions/mask_dataset.py ファイルで提供されるコマンドで実行できます。また、いくつかのAPIキーを作成し、安全な環境に保管する必要があります。

  1. pip install python-dotenv を実行し、次に touch .env を実行します。
  2. ファイルにOpenAI APIキーと、Google Programmable Search Engineの情報を保存します。この リンク の最初のセクションの指示に従って、検索エンジンをセットアップしてください。'.env' ファイルの構文は次のとおりです。
    root@kitploit:~
    OPENAI_API_KEY=<key>
    GOOGLE_API_KEY=<key>
    GOOGLE_ENGINE_NAME=<name>
    GOOGLE_CX=<engine ID>
    
  3. データフォルダ内に適切な数のWebサイトJSONファイルができるまで、python -m src.dataset.actions.make_dataset get_webs を実行します。
  4. python -m src.dataset.actions.make_dataset set_goals を実行して、ブロックされたWebサイトのJSONをフィルタリングし、サイトクラスのバランスを取り直し、残りのWebサイトの目標オブジェクトを生成するためにOpenAI APIにバッチジョブを送信します。WebサイトのJSONが10kを超える場合は、--n_batch_splits <int> フラグを追加してください。
  5. set_goals コマンドを実行すると、バッチIDがターミナルに出力されます。バッチジョブが完了している場合は、python -m src.dataset.actions.make_dataset get_goals --batch_ids <batch ID 1> <batch ID 2> ... を実行して、対応するWebサイトのJSONに目標オブジェクトを書き込みます。OpenAIのバッチジョブは完了に24時間かかる場合があるため、このコマンドが成功するまでに1日待つ必要があるかもしれません。

デモ1の実行

デモ1は、攻撃者がリンクにマルウェアを埋め込んだWebサイトをホストし、Webナビゲーションエージェントに毎回そのリンクをクリックさせる方法を示しています。WebサイトのJSONと、Webエージェントの出力を制御するトリガーは、それぞれ data/ フォルダと triggers/ フォルダに保存されています。

コントロール

python -m src.attack.actions.run_demo を実行すると、サンプルWebページとLLMチャットインターフェースを備えたブラウザが起動します。LLMチャットは、Webナビゲーションエージェントの目標を入力するよう求めます。ウィンドウに「シカゴ行きのフライトを検索して」のようなタスクを入力してください。エージェントは、期待どおりサンプルWebページが表示されたタブでタスクを完了します。

攻撃

python -m src.attack.actions.run_demo --trigger_json triggers/zzz_travel_ad_demo_1_trigger_uni_secondary.json を実行して、このタスクでWebナビゲーションエージェントを攻撃します。先ほどと同様に、サンプルWebページとLLMチャットインターフェースを備えたブラウザが起動するので、チャットウィンドウに何か目標を入力してください。プロセスはコントロールと同じですが、唯一の違いは、zzz_travel_ad_demo_1_trigger_uni_secondary.json ファイルのトリガーがWebサイトの隠しリンクに挿入されることです。今回は、Webエージェントがあなたが入力した指示を無視して、フッターの広告をクリックするはずです。

独自の敵対的トリガーの最適化

任意のWebサイト上でWebナビゲーションエージェントの出力を制御する敵対的トリガーを最適化するには、find_narrow_trigger.py ファイルを使用できます。データセット作成ユーティリティを使用してWebサイトのJSONを生成したら、ax ツリー内のどこかに '{optim_str}' というテキストを挿入します。これにより、使用する nanogcg ライブラリに、その場所にトリガーを挿入したいことを伝えます。

  1. pip install nanogcg を実行します
  2. Hugging Face 上の Llama/Mistral モデルの利用規約に同意し、設定でアクセストークンを作成します。
  3. 任意のWebサイトデータJSONの ax_tree オブジェクトに '{optim_str}' を挿入します。
  4. python -m src.attack.actions.find_narrow_trigger を実行します。このコマンドラインユーティリティのオプションとフラグは次のとおりです。
root@kitploit:~
-h, --help            show this help message and exit
--json JSON           File and path for the JSON file to find a trigger for.
--target TARGET       The desired output when triggered.
--device DEVICE       Device to run the model on.
--trigger_length TRIGGER_LENGTH
--include_target, --no-include_target
--loss_fn {cw,mm,ce}
--search_width SEARCH_WIDTH
--top_k TOP_K
--model {mistral-7B,mistral-24B,llama2,llama3}
                    The model to use for generation.
--dtype DTYPE         Data type to use for the model.

私たちの環境で攻撃を機能させるには、最適化のターゲットが Browser Gym のWebナビゲーションアクションスペース内の関数である必要があります。action_space.txt ファイルを参照してください。

最適化されたトリガーは、対応するWebサイトデータJSONと同じファイル名で、triggers/ フォルダ内のJSONファイルに保存されます。適切なフラグを指定して python -m src.attack.actions.run_demo ユーティリティを使用すると、このトリガーを使って独自のデモを実行できます。

ツールをダウンロード