Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
WebMirage — Attaques par images adversariales sur les agents web vision-langage, de l'ancrage visuel à l'exécution dans le navigateur | Kitploit
Outils/GitHubGitHub/moontea0416/webmirage
Analyse de CodeSécurité WebTests d'IntrusionApprentissage AutomatiqueArticles et RechercheRed TeamingSécurité de l'IAAttaque Adversariale
GitHubmoontea0416/webmirage

WebMirage

Attaques par images adversariales sur les agents web vision-langage, de l'ancrage visuel à l'exécution dans le navigateur

Voir le dépôt
114il y a 2 joursPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

WebMirage

Des images adverses détournent les agents web, de l'ancrage visuel à l'exécution dans le navigateur

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

WebMirage est un framework de red-teaming pour les agents web fondés sur la vision. Il élabore des perturbations adverses localisées sur des images de pages web contrôlées par l'attaquant (par exemple, une vignette de produit ou une photo de profil) qui amènent l'agent à sélectionner l'élément de l'attaquant et à exécuter l'action de navigateur correspondante, à travers différents rendus de la page web. L'attaque est formulée de bout en bout, de l'ancrage visuel à l'exécution dans le navigateur, plutôt qu'au seul niveau de l'inférence du modèle.

Deux composants rendent cela possible :

  • Abstraction rôle-emplacement et recomposition de page web — modélise la compétition entre l'élément de l'attaquant et ses voisins en recomposant les pages avec différents ensembles de voisins et positions d'emplacement, afin que la perturbation se généralise à des rendus inédits.
  • Supervision alignée sur l'exécution — une analyse de flux de données CodeQL du code de post-traitement de l'agent identifie quels tokens de sortie déterminent réellement l'action exécutée, et l'optimisation est supervisée uniquement sur ces tokens.

Le framework est évalué face aux agents SeeAct et VisualWebArena sur six backbones VLM (LLaVA, MiniCPM-o, Phi-3 Vision, et d'autres). Voir l'article pour l'évaluation complète.


Organisation du dépôt

.
├── 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

Prérequis

Les modèles de base doivent être configurés manuellement avant d'utiliser ce framework.

Comme les backbones ont des exigences de bibliothèques incompatibles, chacun nécessite son propre environnement et des poids téléchargés localement.

1. MiniCPM-o

  • Dépôt : OpenBMB/MiniCPM-o
  • Installation : Clonez le dépôt, créez un environnement dédié (par exemple, conda create -n minicpm) et installez les dépendances.
  • Poids : Téléchargez les poids officiels localement et notez le chemin.

2. LLaVA

  • Dépôt : haotian-liu/LLaVA
  • Installation : Clonez le dépôt et créez un environnement dédié (par exemple, conda create -n llava).
  • Poids : Téléchargez les poids LLaVA-v1.5/v1.6 localement et notez le chemin.

3. Phi-3 Vision

  • Dépôt : microsoft/Phi-3-vision-128k-instruct
  • Installation : Installez la version compatible de transformers dans un environnement dédié.
  • Poids : Téléchargez les poids Phi-3-vision-128k-instruct localement.

Vérification rapide (Phi-3 Vision)

Un test minimal exécute l'inférence sur des captures d'écran propres et perturbées, puis compare côte à côte les sélections de l'agent.

Remarque : Ce test nécessite Phi-3 Vision (voir Prérequis §3). Les images perturbées fournies ont été optimisées pour Phi-3 ; les données de test pour les autres backbones peuvent être générées avec les scripts d'entraînement dans scripts/.

Données de test

Les cas de test pré-générés se trouvent dans 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

Les cas fix_slot testent la variation des voisins (position de la cible fixe, éléments environnants variables) ; les cas multi_slot testent simultanément la variation des voisins et le décalage de position.

Exécution du test

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

Sortie attendue

Le script affiche un tableau comparatif montrant, pour chaque cas de test, l'élément sélectionné avec une entrée propre par rapport à une entrée perturbée. Sur des captures d'écran propres, l'agent devrait sélectionner le candidat le plus correspondant ; sur des captures d'écran perturbées, il devrait systématiquement sélectionner le candidat contrôlé par l'attaquant.


Optimisation d'une perturbation (exemple LLaVA)

Avec un environnement Conda dédié pour chaque backbone en place, le flux de travail ci-dessous utilise LLaVA comme exemple.

1. Cloner LLaVA

Les scripts font référence au code officiel de LLaVA depuis votre répertoire personnel (~/) :

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

2. Configurer le script d'entraînement

Ouvrez scripts/LLaVA/train_with_mask.sh et définissez chaque chemin (poids du modèle, données d'entraînement, template de conversation, masque, répertoire de sortie) pour qu'ils correspondent à votre configuration locale.

3. Exécuter

bash scripts/LLaVA/train_with_mask.sh

Format des données

Les données d'entraînement se trouvent sous data/<scenario>/, avec des captures d'écran recomposées et un fichier de conversation train_samples.json. Le placeholder de token d'image dans le fichier de conversation doit correspondre au backbone cible :

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

Évaluation de l'agent de bout en bout

L'évaluation de bout en bout nécessite les frameworks d'agents cibles.

SeeAct

  • Dépôt : OSU-NLP-Group/SeeAct
  • Installation : Clonez le dépôt et suivez les instructions d'installation officielles.
  • Utilisation : L'évaluation utilise le protocole de remplacement d'actifs côté client décrit dans l'article. Voir scripts/seeact/.

VisualWebArena

  • Dépôt : web-arena-x/visualwebarena
  • Installation : Suivez les instructions officielles pour configurer le bac à sable, y compris le déploiement du site marchand OneStopShop.
  • Utilisation : Voir scripts/visualwebarena/ pour les scripts d'évaluation avec les modes d'observation Accessibility Tree et Set-of-Mark.

Analyse de flux de données

dataflow/DataflowAnalysis.ql est la requête CodeQL utilisée pour tracer quels tokens de sortie du modèle alimentent l'action de navigateur exécutée dans le code de post-traitement d'un agent. Exécutez-la sur le code source de l'agent cible avec la CodeQL CLI en utilisant la définition de pack dans dataflow/codeql-pack.yml.


Éthique

Télécharger l’outil