Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

ЛентыКонтактыКонфиденциальность© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
WebMirage — Состязательные атаки с использованием изображений на визуально-языковых веб-агентов: от визуальной привязки до выполнения в браузере | Kitploit
Инструменты/GitHubGitHub/moontea0416/webmirage
Анализ КодаВеб-безопасностьТестирование на ПроникновениеМашинное ОбучениеСтатьи и ИсследованияRed TeamingБезопасность ИИСостязательная Атака
GitHubmoontea0416/webmirage

WebMirage

Состязательные атаки с использованием изображений на визуально-языковых веб-агентов: от визуальной привязки до выполнения в браузере

Репозиторий
1142 дней назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

WebMirage

Состязательные изображения перехватывают управление веб-агентами — от визуальной привязки до выполнения в браузере

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

WebMirage — это фреймворк для red-teaming веб-агентов, опирающихся на визуальную привязку. Он создаёт локализованные состязательные возмущения на изображениях веб-страницы, контролируемых атакующим (например, миниатюра товара или фотография профиля), которые заставляют агента выбрать элемент атакующего и выполнить соответствующее действие в браузере — при различных вариантах отрисовки веб-страницы. Атака формулируется сквозным образом — от визуальной привязки до выполнения в браузере, — а не только на этапе вывода модели.

Работу обеспечивают два компонента:

  • Абстракция ролей-слотов и рекомпозиция веб-страницы — моделирует конкуренцию между элементом атакующего и его соседями путём рекомпозиции страниц с различными наборами соседних элементов и позициями слотов, благодаря чему возмущение обобщается на невиданные ранее варианты отрисовки.
  • Обучение с учителем, выровненное по выполнению — анализ потоков данных CodeQL в коде постобработки агента определяет, какие выходные токены фактически определяют выполняемое действие, и оптимизация ведётся с учителем только по этим токенам.

Фреймворк оценивается на агентах SeeAct и VisualWebArena с шестью базовыми моделями VLM (LLaVA, MiniCPM-o, Phi-3 Vision и другими). Полная оценка приведена в статье.


Структура репозитория

.
├── src/            # Perturbation optimization, one subdirectory per backbone
│   ├── LLaVA/
│   ├── MiniCPM-o/
│   └── Phi-3-vision/
├── scripts/        # Training / evaluation launch scripts, one subdirectory per backbone
├── dataflow/       # CodeQL query pack for agent dataflow analysis (DataflowAnalysis.ql)
├── data/           # Recomposed training / test screenshots and conversation templates
└── test/           # Pre-generated clean and perturbed samples for quick verification

Предварительные требования

Базовые модели должны быть настроены вручную перед использованием этого фреймворка.

Поскольку у базовых моделей конфликтующие требования к библиотекам, каждой из них требуется собственное окружение и локально загруженные веса.

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 screenshots, target in a fixed slot position
├── clean_multi_slot/       # Clean screenshots, target across multiple slot positions
├── perturbed_fix_slot/     # Perturbed screenshots (ε=16/255), target in a fixed slot
├── perturbed_multi_slot/   # Perturbed screenshots (ε=16/255), target across multiple slots
├── conv.json               # Conversation data (system prompt, user query, grounding prompt)
└── verify.py               # Runs inference on clean vs. perturbed and compares results

Случаи 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. Плейсхолдер токена изображения в файле диалога должен соответствовать целевой базовой модели:

Базовая модельПлейсхолдер
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.
  • Использование: См. scripts/visualwebarena/ для скриптов оценки с режимами наблюдения Accessibility Tree и Set-of-Mark.

Анализ потоков данных

dataflow/DataflowAnalysis.ql — это запрос CodeQL, используемый для отслеживания того, какие токены вывода модели попадают в выполняемое действие браузера в коде постобработки агента. Запустите его для исходного кода целевого агента с помощью CodeQL CLI, используя определение пакета в dataflow/codeql-pack.yml.


Этика

Все эксперименты на публичных веб-сайтах в статье используют клиентскую подмену ресурсов: состязательные изображения подставляются только в локальном представлении браузера агента, и никакой контент не загружается и не изменяется на каком-либо стороннем сайте. Пожалуйста, используйте этот фреймворк только для защитных исследований.

Цитирование

Скачать инструмент