Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
StepJack — 컴퓨터 사용 AI 에이전트를 다단계 간접 프롬프트 인젝션에 대해 평가하는 벤치마킹 프레임워크로, 자동 적대적 목표 분해와 AWS 샌드박스 테스트 환경을 제공합니다. | Kitploit
도구/GitHubGitHub/borealisai/stepjack
Dynamic Analysis (Sandboxing)Security VirtualizationRed TeamingAI SecurityAdversarial Attack
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
    • Default region name (선택 사항, 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)를 기반으로 구축되었으며, 이는 다시 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/ — 데이터셋 작업 구성에서 업로드 페이로드로 사용되는 두 개의 SSH 키 픽스처(system/authorized_keys, system/id_rsa)를 포함합니다. StepJack 큐레이션 (값은 실제 키가 아닌 자리 표시자 문자열입니다). 이 소스 트리의 루트 디렉터리에 있는 LICENSE 파일에 명시된 라이선스에 따라 배포됩니다.
  • adv/upload_file_dir/ — StepJack 고유. RedTeamCUA에는 없습니다. 이 소스 트리의 루트 디렉터리에 있는 LICENSE 파일에 명시된 라이선스에 따라 배포됩니다.
  • dataset/ — RedTeamCUA의 evaluation_examples/를 상당히 수정하여 각색함. RedTeamCUA의 평가 예시는 croissant_metadata.json에 따라 으로 게시됩니다. StepJack이 작업 구성에 적용한 수정 및 추가 사항은 이 소스 트리의 루트 디렉터리에 있는 파일에 명시된 라이선스에 따라 배포됩니다.
도구 다운로드

인자:

  • {subset}: single_step (k=1), w_urgent (Urgent = Y), wo_urgent (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를 사용해야 합니다.
CC-BY-4.0
LICENSE
  • desktop_env/ — RedTeamCUA의 desktop_env/에서 복사/각색됨, 이는 다시 OSWorld에서 파생되었습니다. 두 업스트림 소스 모두 Apache-2.0 라이선스로 배포됩니다. 소스 파일별 헤더(.py / .sh / .yml / .service / .txt)는 각 파일의 구체적인 출처(복사본 또는 StepJack 수정본)를 기록합니다. 보조 문서 파일(예: README.md, DOCKER_GUIDELINE.md, INSTALL_*.md)은 RedTeamCUA에서 복사되었습니다.