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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
Manipulating-Web-Agents — 자율적 LLM 기반 웹 에이전트를 제어하기 위한 간접 프롬프트 인젝션 공격의 연구 데모로, 트리거 최적화 및 평가 도구를 포함합니다. | Kitploit
도구/GitHubGitHub/sej2020/manipulating-web-agents
ExploitationWeb SecurityPapers & ResearchLearning & EducationAI SecurityAdversarial Attack
GitHubsej2020/manipulating-web-agents

Manipulating-Web-Agents

자율적 LLM 기반 웹 에이전트를 제어하기 위한 간접 프롬프트 인젝션 공격의 연구 데모로, 트리거 최적화 및 평가 도구를 포함합니다.

저장소 보기
6341년 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

간접 프롬프트 인젝션 공격을 통한 자율 LLM 기반 웹 에이전트 조작

LLM이 통합된 애플리케이션이 보편화됨에 따라 잠재적인 보안 위험을 조사하는 것이 중요합니다. 이러한 시스템에서 가장 중요한 취약점 중 하나는 간접 프롬프트 인젝션을 통한 적대적 공격에 취약하다는 점입니다. 이 저장소에서 우리는 악의적인 행위자가 LLM에서 파생된 원격 웹 탐색 에이전트의 동작을 제어할 수 있는 범용 트리거를 생성하는 방법을 보여줍니다. 이 정보를 제공함으로써 실무자들이 잠재적인 취약성을 인지하고 연구자들이 이러한 유형의 공격에 대한 보호 장치를 개발하도록 영감을 주기를 바랍니다.

설정

이 저장소를 클론한 후, Browser Gym의 웹 탐색 인프라를 설정하려면 다음 명령어가 필요합니다:

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

세부 사항은 컴퓨팅 환경에 따라 다를 수 있습니다.

범용 트리거 최적화 절차를 실행하려면 웹 사이트 및 웹 탐색 목표 데이터셋을 생성해야 합니다. 이는 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=<키>
    GOOGLE_API_KEY=<키>
    GOOGLE_ENGINE_NAME=<이름>
    GOOGLE_CX=<엔진 ID>
    
  3. 데이터 폴더에 적절한 수의 웹사이트 json 파일이 생길 때까지 python -m src.dataset.actions.make_dataset get_webs를 실행합니다.
  4. python -m src.dataset.actions.make_dataset set_goals를 실행하여 차단된 웹사이트에 대한 json을 필터링하고, 사이트 클래스를 재조정하며, OpenAI API에 배치 작업을 제출하여 남은 웹사이트에 대한 목표 객체를 생성합니다. 웹사이트 json이 10,000개를 초과하는 경우 --n_batch_splits <int> 플래그를 추가해야 합니다.
  5. set_goals 명령을 실행하면 배치 ID가 터미널에 출력됩니다. 배치 작업이 완료되면 python -m src.dataset.actions.make_dataset get_goals --batch_ids <배치 ID 1> <배치 ID 2> ...를 실행하여 해당 웹사이트 json에 목표 객체를 기록합니다. OpenAI가 배치 작업을 완료하는 데 최대 24시간이 걸릴 수 있으므로 이 명령이 성공적으로 실행되기까지 하루 정도 기다려야 할 수 있습니다.

데모 1 실행

데모 #1은 공격자가 링크에 악성 코드가 포함된 웹사이트를 호스팅하고 웹 탐색 에이전트가 매번 해당 링크를 클릭하도록 강제하는 방법을 보여줍니다. 웹사이트 json과 웹 에이전트 출력을 제어하는 트리거는 각각 data/ 및 triggers/ 폴더에 저장되어 있습니다.

통제

python -m src.attack.actions.run_demo를 실행하면 샘플 웹 페이지와 LLM 채팅 인터페이스가 있는 브라우저가 실행됩니다. LLM 채팅에서 웹 탐색 에이전트의 목표를 입력하라는 메시지가 표시됩니다. 창에 "시카고行 항공편 검색"과 같은 작업을 작성합니다. 에이전트가 예상대로 샘플 웹 페이지가 있는 탭에서 작업을 완료합니다.

공격

python -m src.attack.actions.run_demo --trigger_json triggers/zzz_travel_ad_demo_1_trigger_uni_secondary.json을 실행하여 이 작업에서 웹 탐색 에이전트를 공격합니다. 이전과 같이 샘플 웹 페이지와 LLM 채팅 인터페이스가 있는 브라우저가 실행되며, 마찬가지로 채팅 창에 목표를 작성하십시오. 프로세스는 통제와 동일하며, 유일한 차이점은 zzz_travel_ad_demo_1_trigger_uni_secondary.json 파일의 트리거가 웹사이트의 숨겨진 링크에 삽입된다는 점입니다. 이번에는 웹 에이전트가 사용자가 제공한 지시를 무시하고 바닥글에 있는 광고를 클릭하는 것을 확인할 수 있습니다!

자체 적대적 트리거 최적화

선택한 웹사이트에서 웹 탐색 에이전트의 출력을 제어하는 적대적 트리거를 최적화하려면 find_narrow_trigger.py 파일을 사용할 수 있습니다. 데이터셋 생성 유틸리티를 사용하여 웹사이트 json을 생성한 후, ax 트리의 특정 위치에 텍스트 '{optim_str}'을 삽입할 수 있습니다. 이는 사용할 nanogcg 라이브러리에 웹사이트의 해당 위치에 트리거를 삽입하려는 의도를 전달합니다.

  1. pip install nanogcg 실행
  2. Hugging Face에서 Llama/Mistral 모델의 이용 약관에 동의하고 설정에서 액세스 토큰을 생성합니다.
  3. 선택한 웹사이트 데이터 json의 ax_tree 객체에 '{optim_str}'을 삽입합니다.
  4. python -m src.attack.actions.find_narrow_trigger를 실행합니다. 이 명령줄 유틸리티의 옵션과 플래그는 다음과 같습니다:
root@kitploit:~
-h, --help            도움말 메시지 표시 후 종료
--json JSON           트리거를 찾을 JSON 파일의 경로와 파일명
--target TARGET       트리거될 때 원하는 출력
--device DEVICE       모델을 실행할 장치
--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}
                    생성에 사용할 모델
--dtype DTYPE         모델에 사용할 데이터 타입

우리 환경에서 공격이 작동하려면 최적화의 대상이 Browser Gym 웹 탐색 작업 공간의 함수여야 합니다. action_space.txt 파일을 참조하십시오.

최적화된 트리거는 triggers/ 폴더에 json 파일로 저장되며, 파일 이름은 해당 웹사이트 데이터 json과 일치합니다. 이 트리거를 사용하여 적절한 플래그와 함께 python -m src.attack.actions.run_demo 유틸리티를 사용하여 자체 데모를 실행할 수 있습니다.

도구 다운로드