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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
StepJack — コンピューター操作AIエージェントを多段階の間接プロンプトインジェクションに対して評価するためのベンチマークフレームワーク。自動的な敵対的目標分解とAWSサンドボックス化されたテスト環境を備えています。 | Kitploit
ツール/GitHubGitHub/borealisai/stepjack
動的分析 (サンドボックス)セキュリティ仮想化レッドチーミングAIセキュリティ敵対的攻撃
GitHubborealisai/stepjack

StepJack

コンピューター操作AIエージェントを多段階の間接プロンプトインジェクションに対して評価するためのベンチマークフレームワーク。自動的な敵対的目標分解とAWSサンドボックス化されたテスト環境を備えています。

リポジトリを見る
213ヶ月前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

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

StepJack: マルチステップ間接プロンプトインジェクションに対するコンピューター利用エージェントの安全性のベンチマーク

セットアップ

1. Python環境のセットアップ

まず、すべての依存関係をインストールし、Python 3.10で実行していることを確認します。

root@kitploit:~
conda create -n stepjack python=3.10
conda activate stepjack

pip install -r requirements.txt

2. サンドボックス環境のセットアップ

RedTeamCUAが提供するAWS環境を使用します。

AWS

  1. NETWORK_INTERFACE_MAPを設定します:

    お使いのAWSインスタンスに基づいて、aws_config.pyのNETWORK_INTERFACE_MAPを設定します。

  2. セキュリティグループを設定します:

    ホストしているインスタンスへの正当なアクセスを許可しつつ、不正なアクセス試行をブロックするセキュリティグループを設定することが重要です。これは、AMIがデフォルトでは基本的なパスワード認証のみを使用しており、比較的侵害されやすいため、非常に重要です。

    ローカルマシンはHTTP/TCP接続を介してAWS上でホストされているサービスにアクセスします。したがって、WebArenaまたはTheAgentCompanyのいずれかが使用する以下のポートへのアクセスを明示的に許可する必要があります: 8092、6379、9999、5000、9222、8091、2999、3000。

    さらに、インジェクションシナリオをシミュレートするためにSSHを使用して基盤となるデータベースを直接変更します。そのため、セキュリティグループの設定でローカルIPアドレスからのSSHアクセスも許可する必要があります。

  3. aws configureを使用してAWS認証情報を設定します。以下の入力を求められます:

    • AWS Access Key ID
    • AWS Secret Access Key
    • デフォルトのリージョン名 (オプション、Enterキーを押してください)

実験

scripts/run_gpt54_2step.shは、StepJack上でGPT-5.4 CUAを実行する例を示しています。

  1. 環境変数の設定

    CUA APIキー

    root@kitploit:~
    # For GPT 
    unset OPENAI_BASE_URL
    export OPENAI_API_KEY="sk-proj-XXXX"
    
    # For Kimi
    export KIMI_API_KEY='sk-XXXX'
    
    # For Qwen
    export OPENAI_BASE_URL="https://dashscope-us.aliyuncs.com/compatible-mode/v1"
    export OPENAI_API_KEY="sk-XXXX"
    
    # For Claude
    export ANTHROPIC_API_KEY='sk-XXXX'
    

    AWS認証情報

    root@kitploit:~
    export AWS_REGION='XX'
    export AWS_ACCESS_KEY='XX'
    export AWS_SECRET_KEY='XX'
    
  2. 実験の実行

    root@kitploit:~
    # For GPT
    python run_gpt54_multienv.py \
       --observation_type screenshot \
       --agent_type GPT54Agent \
       --headless \
       --model gpt-5.4-mini-2026-03-17 \
       --result_dir ./results_gpt54 \
       --test_all_meta_path "./dataset/{subset}/{platform_instruction}/test_{k}_step.json" \
       --test_config_base_dir "./dataset/{subset}/{platform_instruction}"  \
       --max_steps {15*k} \
       --sleep_after_execution 4 \
       --provider_name aws \
       --num_envs 12 \
       --aws_ami {reddit | agentcompany}
    
    # For Kimi
    python run_kimi_multienv.py \
       --observation_type screenshot \
       --agent_type KimiAgent \
       --headless \
       --model Kimi-K2.5 \
       --result_dir ./results_kimi \
       --test_all_meta_path "./dataset/{subset}/{platform_instruction}/test_{k}_step.json" \
       --test_config_base_dir "./dataset/{subset}/{platform_instruction}"  \
       --max_steps {15*k} \
       --sleep_after_execution 4 \
       --provider_name aws \
       --num_envs 12 \
       --aws_ami {reddit | agentcompany}
    
    # For Qwen
    python run_qwen35vl_multienv.py \
       --observation_type screenshot \
       --agent_type Qwen35VLAgent \
       --headless \
       --model qwen3.5-plus-2026-02-15 \
       --coord relative \
       --enable_thinking \
       --result_dir ./results_qwen \
       --test_all_meta_path "./dataset/{subset}/{platform_instruction}/test_{k}_step.json" \
       --test_config_base_dir "./dataset/{subset}/{platform_instruction}"  \
       --max_steps {15*k} \
       --sleep_after_execution 4 \
       --provider_name aws \
       --num_envs 12 \
       --aws_ami {reddit | agentcompany}
    
    # For Claude
    python run_claude_multienv.py \
       --observation_type screenshot \
       --action_space pyautogui \
       --agent_type AnthropicAgent \
       --api_provider anthropic \
       --headless \
       --model {claude-sonnet-4-6 | claude-haiku-4-5} \
       --result_dir ./results_claude \
       --test_all_meta_path "./dataset/{subset}/{platform_instruction}/test_{k}_step.json" \
       --test_config_base_dir "./dataset/{subset}/{platform_instruction}"  \
       --max_steps {15*k} \
       --sleep_after_execution 4 \
       --provider_name aws \
       --num_envs 12 \
       --aws_ami {reddit | agentcompany}
    

自動分解パイプラインと新しい敵対的ゴールの追加

自動分解パイプラインのコードはauto_decomp/にあります。

  1. cd auto_decomp を実行します。分解したい新しい敵対的ゴールをadv_goals.pyに追加します。
  2. 各 k \in \{2, 3\} に対して python iterative_refinement.py -k {k} を実行します。出力: ステージ1の結果を含む ir/goal_*_k{k}_N20_K3_all.json。
  3. python selected_examples/select_examples.py を実行します。出力: ステージ1から上位10件の例を選択した selected_examples/selected_examples.json。
  4. ステージ2では、CUA検証用のjsonテスト例を作成します。その後、最終的な分解結果を選択するために要したステップ数を記録します。

謝辞

StepJackはRedTeamCUA (Liao et al., 2025; arXiv:2505.21936) を基盤としており、RedTeamCUA自体はOSWorld (XLANG NLP Lab, 2024) から派生しています。両方の上流ソースはApache-2.0ライセンスの下で提供されています。

一部のStepJackデータディレクトリには、バイナリまたは非ソースのフィクスチャが含まれているため、ファイルごとのヘッダーがありません。それらの由来は帰属のためにここに記録されています:

  • adv/TheAgentCompany_OwnCloud/file_to_upload/ — RedTeamCUAからコピー (adv/TheAgentCompany_OwnCloud/file_to_upload/) され、元々はApache-2.0ライセンスの下で提供されています。
  • adv/upload_file/ — データセットのタスク設定によってアップロードペイロードとして使用される2つのSSHキーフィクスチャ (system/authorized_keys、system/id_rsa) が含まれています。StepJackが厳選したものです (値はプレースホルダー文字列であり、実際のキーではありません)。このソースツリーのルートディレクトリにあるLICENSEファイルに記載されたライセンスの下で公開されています。
  • adv/upload_file_dir/ — StepJackオリジナルです。RedTeamCUAには存在しません。このソースツリーのルートディレクトリにあるLICENSEファイルに記載されたライセンスの下で公開されています。
  • dataset/ — RedTeamCUAのevaluation_examples/から大幅な変更を加えて翻案されたものです。RedTeamCUAの評価用サンプルは、に従い、の下で公開されています。StepJackのタスク設定への変更および追加は、このソースツリーのルートディレクトリにあるファイルに記載されたライセンスの下で公開されています。
ツールをダウンロード

引数について:

  • {subset}: single_step (k=1)、w_urgent (緊急 = Y)、wo_urgent (緊急 = N) のいずれかを指定できます。
  • {platform_instruction}: forum、forum_follow、owncloud、owncloud_follow のいずれかを指定できます。これらは2つのプラットフォームと2つのユーザー指示タイプに対応します。
  • {k}, {15*k}: ステップ数で、$k \in {1,2,3}$ です。有効な (subset, k) の組み合わせ: single_step は k=1 のみ; w_urgent と wo_urgent は k \in \{2,3\} のみ。
  • {reddit | agentcompany}: 起動するAWS AMIです。forum プラットフォームでは reddit、owncloud プラットフォームでは agentcompany を指定してください。
croissant_metadata.json
CC-BY-4.0
LICENSE
  • desktop_env/ — RedTeamCUAのdesktop_env/からコピー/翻案されたもので、RedTeamCUA自体はOSWorldから派生しています。両方の上流ソースはApache-2.0ライセンスの下で提供されています。ソースファイルごとのヘッダー (.py / .sh / .yml / .service / .txt) には、各ファイルの具体的な由来 (コピーまたはStepJackによる変更) が記録されています。付属のドキュメントファイル (例: README.md、DOCKER_GUIDELINE.md、INSTALL_*.md) はRedTeamCUAからコピーされたものです。