Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

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

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

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
WebMirage — 비전-언어 웹 에이전트에 대한 적대적 이미지 공격: 시각적 그라운딩부터 브라우저 실행까지 | Kitploit
도구/GitHubGitHub/moontea0416/webmirage
Code AnalysisWeb SecurityPenetration TestingMachine LearningPapers & ResearchRed TeamingAI SecurityAdversarial Attack
GitHubmoontea0416/webmirage

WebMirage

비전-언어 웹 에이전트에 대한 적대적 이미지 공격: 시각적 그라운딩부터 브라우저 실행까지

저장소 보기
1142일 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

WebMirage

적대적 이미지가 웹 에이전트를 시각적 그라운딩에서 브라우저 실행으로 탈취한다

Wanjing Han, Levi Taiji Li, Mu Zhang, Yue Jiang, Guanhong Tao — University of Utah

WebMirage는 시각 기반 웹 에이전트를 위한 레드팀 프레임워크입니다. 공격자가 제어하는 웹페이지 이미지(예: 제품 썸네일이나 프로필 사진)에 국소화된 적대적 교란을 삽입하여, 다양한 웹페이지 렌더링 환경에서 에이전트가 공격자의 요소를 선택하고 해당 브라우저 동작을 실행하도록 만듭니다. 이 공격은 모델 추론 단계에만 국한되지 않고, 시각적 그라운딩부터 브라우저 실행까지 엔드투엔드로 설계됩니다.

이를 가능하게 하는 두 가지 구성 요소는 다음과 같습니다:

  • 역할-슬롯 추상화와 웹페이지 재구성 — 다양한 동반 요소 집합과 슬롯 위치로 페이지를 재구성하여 공격자 요소와 그 동반 요소들 간의 경쟁을 모델링함으로써, 교란이 보지 못한 렌더링에도 일반화되도록 합니다.
  • 실행 정렬 감독 — 에이전트의 후처리 코드에 대한 CodeQL 데이터플로우 분석을 통해 실제로 실행되는 동작을 결정하는 출력 토큰을 식별하고, 해당 토큰에만 최적화를 감독합니다.

이 프레임워크는 여섯 개의 VLM 백본(LLaVA, MiniCPM-o, Phi-3 Vision 등)에 걸쳐 SeeAct 및 VisualWebArena 에이전트를 대상으로 평가됩니다. 전체 평가는 논문을 참조하십시오.


저장소 구조

.
├── src/            # 교란 최적화, 백본별 하위 디렉터리
│   ├── LLaVA/
│   ├── MiniCPM-o/
│   └── Phi-3-vision/
├── scripts/        # 학습 / 평가 실행 스크립트, 백본별 하위 디렉터리
├── dataflow/       # 에이전트 데이터플로우 분석용 CodeQL 쿼리 팩 (DataflowAnalysis.ql)
├── data/           # 재구성된 학습 / 테스트 스크린샷 및 대화 템플릿
└── test/           # 빠른 검증을 위한 사전 생성된 클린 및 교란 샘플

사전 요구 사항

이 프레임워크를 사용하기 전에 기본 모델을 수동으로 설정해야 합니다.

백본들은 서로 충돌하는 라이브러리 요구 사항을 가지므로, 각각 자체 환경과 로컬에 다운로드한 가중치가 필요합니다.

1. MiniCPM-o

  • 저장소: OpenBMB/MiniCPM-o
  • 설정: 저장소를 클론하고 전용 환경(예: conda create -n minicpm)을 생성한 후 의존성을 설치합니다.
  • 가중치: 공식 가중치를 로컬에 다운로드하고 경로를 기록합니다.

2. LLaVA

  • 저장소: haotian-liu/LLaVA
  • 설정: 저장소를 클론하고 전용 환경(예: conda create -n llava)을 생성합니다.
  • 가중치: LLaVA-v1.5/v1.6 가중치를 로컬에 다운로드하고 경로를 기록합니다.

3. Phi-3 Vision

  • 저장소: microsoft/Phi-3-vision-128k-instruct
  • 설정: 전용 환경에 호환되는 transformers 버전을 설치합니다.
  • 가중치: Phi-3-vision-128k-instruct 가중치를 로컬에 다운로드합니다.

빠른 검증 (Phi-3 Vision)

최소 테스트는 클린 스크린샷과 교란된 스크린샷 모두에 대해 추론을 실행하고 에이전트의 선택을 나란히 비교합니다.

참고: 이 테스트는 Phi-3 Vision이 필요합니다(사전 요구 사항 §3 참조). 제공된 교란 이미지는 Phi-3에 맞게 최적화되었습니다. 다른 백본의 테스트 데이터는 scripts/의 학습 스크립트로 생성할 수 있습니다.

테스트 데이터

사전 생성된 테스트 케이스는 test/에 있습니다:

test/
├── clean_fix_slot/         # 클린 스크린샷, 고정된 슬롯 위치의 타깃
├── clean_multi_slot/       # 클린 스크린샷, 여러 슬롯 위치에 걸친 타깃
├── perturbed_fix_slot/     # 교란된 스크린샷 (ε=16/255), 고정된 슬롯의 타깃
├── perturbed_multi_slot/   # 교란된 스크린샷 (ε=16/255), 여러 슬롯에 걸친 타깃
├── conv.json               # 대화 데이터 (시스템 프롬프트, 사용자 쿼리, 그라운딩 프롬프트)
└── verify.py               # 클린 vs. 교란에 대해 추론을 실행하고 결과를 비교

fix_slot 케이스는 동반 요소 변화(타깃 위치 고정, 주변 요소 변화)를 테스트하고, multi_slot 케이스는 동반 요소 변화와 위치 이동을 동시에 테스트합니다.

테스트 실행

conda activate phi3vision

# Fixed slot position
python test/verify.py \
    --model-path /path/to/Phi-3-vision-128k-instruct \
    --conv-path test/conv.json \
    --clean-image test/clean_fix_slot/sample_0.png \
    --perturbed-image test/perturbed_fix_slot/sample_0.png

# Varying slot positions
python test/verify.py \
    --model-path /path/to/Phi-3-vision-128k-instruct \
    --conv-path test/conv.json \
    --clean-image test/clean_multi_slot/sample_0.png \
    --perturbed-image test/perturbed_multi_slot/sample_0.png

예상 출력

스크립트는 각 테스트 케이스에 대해 클린 입력과 교란 입력에서 선택된 요소를 보여주는 비교 표를 출력합니다. 클린 스크린샷에서는 에이전트가 가장 잘 일치하는 후보를 선택해야 하며, 교란된 스크린샷에서는 일관되게 공격자가 제어하는 후보를 선택해야 합니다.


교란 최적화 (LLaVA 예제)

각 백본에 대한 전용 Conda 환경이 준비된 상태에서, 아래 워크플로는 LLaVA를 예로 사용합니다.

1. LLaVA 클론

스크립트는 홈 디렉터리(~/)의 공식 LLaVA 코드를 참조합니다:

cd ~
git clone https://github.com/haotian-liu/LLaVA.git

2. 학습 스크립트 구성

scripts/LLaVA/train_with_mask.sh를 열고 각 경로(모델 가중치, 학습 데이터, 대화 템플릿, 마스크, 출력 디렉터리)를 로컬 설정에 맞게 지정합니다.

3. 실행

bash scripts/LLaVA/train_with_mask.sh

데이터 형식

학습 데이터는 data/<scenario>/ 아래에 있으며, 재구성된 스크린샷과 train_samples.json 대화 파일이 포함됩니다. 대화 파일의 이미지 토큰 플레이스홀더는 대상 백본과 일치해야 합니다:

BackbonePlaceholder
MiniCPM-o(<image>./</image>)\n
LLaVA<image>\n
Phi-3<|image_1|>\n

엔드투엔드 에이전트 평가

엔드투엔드 평가에는 대상 에이전트 프레임워크가 필요합니다.

SeeAct

  • 저장소: OSU-NLP-Group/SeeAct
  • 설정: 저장소를 클론하고 공식 설치 지침을 따릅니다.
  • 사용법: 평가는 논문에 설명된 클라이언트 측 자산 교체 프로토콜을 사용합니다. scripts/seeact/를 참조하십시오.

VisualWebArena

  • 저장소: web-arena-x/visualwebarena
  • 설정: OneStopShop 쇼핑 사이트 배포를 포함하여 공식 지침에 따라 샌드박스를 설정합니다.
  • 사용법: Accessibility Tree 및 Set-of-Mark 관찰 모드를 모두 지원하는 평가 스크립트는 scripts/visualwebarena/를 참조하십시오.

데이터플로우 분석

dataflow/DataflowAnalysis.ql은 에이전트의 후처리 코드에서 어떤 모델 출력 토큰이 실행되는 브라우저 동작으로 흘러가는지 추적하는 데 사용되는 CodeQL 쿼리입니다. dataflow/codeql-pack.yml의 팩 정의를 사용하여 CodeQL CLI로 대상 에이전트의 소스에 대해 실행하십시오.


윤리

논문의 모든 공개 웹사이트 실험은 클라이언트 측 자산 교체를 사용합니다: 적대적 이미지는 에이전트의 로컬 브라우저 뷰에서만 대체되며, 어떠한 콘텐츠도 제3자 사이트에 업로드되거나 수정되지 않습니다. 이 프레임워크는 방어적 연구 목적으로만 사용하십시오.

인용

@article{han2026webmirage,
  title   = {Adversarial Images Hijack Web Agents from Visual Grounding to Browser Execution},
  author  = {Han, Wanjing and Li, Levi Taiji and Zhang, Mu and Jiang, Yue and Tao, Guanhong},
  journal = {arXiv preprint arXiv:XXXX.XXXXX},
  year    = {2026}
}

라이선스

MIT. LICENSE를 참조하십시오.

도구 다운로드