Skip to main content

BrowserGym extensions for DoomArena

Project description

BrowserGym+ AgentLab Threat Models

This repository contains tools and scripts for defining and testing threat models in the BrowserGym + AgentLab agentic framework. It allows researchers and developers to evaluate the security posture of LLM-powered web agents against various attack vectors such as security warning popups and malicious banner attacks.

Overview

The framework provides a structured way to:

  • Simulate various attack scenarios against web agents
  • Measure attack success rate (ASR), task success rate (TSR), and attack stealth rate
  • Evaluate different LLM models' robustness against these attacks
  • Generate comprehensive reports of attack effectiveness

This toolkit specifically focuses on testing agents in the BrowserGym setting.

Installation

  1. Run pip install -e doomarena/browsergym from the root repo or do pip install doomarena-browsergym for the latest release
  2. Run your instance of webarena and set an environment variable DOOMARENA_WEBARENA_BASE_URL="http://XXXX.com"
  3. Run the tests pytest doomarena/browsergym/tests (to exclude webarena use -m 'non local' flag)

Usage

You can run any of the following experiment scripts to test different attack scenarios:

  • run_banner_attack_webarena_reddit_notext.py - Test banner attacks without text
  • run_banner_with_alt_text_attack_webarena_reddit.py - Test banner attacks with alt text
  • run_popup_attack_webarena_reddit.py - Test security warning popup attacks
  • run_bgym_experiment.py - Run a general BrowserGym experiment with customizable parameters

For example:

python -m scripts.browsergym.scripts.run_bgym_experiment

Experiment Configuration Parameters

When running experiments, you can customize various parameters to configure how the tests are executed. Here's an explanation of the key parameters that can be set:

# Example usage:
run_bgym_experiment(
    base_url="http://webarena2.eastus.cloudapp.azure.com",
    bgym_experiments=bgym_experiments,
    relaunch=False,
    n_jobs=0,  # set to 1 for headless, more for parallel headless with "ray"
    max_steps=15,  # lower for faster testing, use 15 for full task
    skip_reset_and_massage=True,
)
  • base_url: The URL of the BrowserGym server where the experiments will run.

  • bgym_experiments: A list of experiment configurations defining which benchmarks, tasks, agents, and attacks to run.

  • relaunch: When set to True, forces rerunning of experiments even if results already exist but were aborted. Default is False to avoid duplicate runs.

  • n_jobs: Controls parallelization of experiment execution:

    • 0: Runs with visible browser UI (non-headless mode); useful for demo/debugging
    • 1: Runs in headless mode (no UI) with a single process
    • >1: Runs in parallel headless mode using Ray with the specified number of workers
  • max_steps: Maximum number of steps each agent is allowed to take per task. Lower values (5-10) are useful for quick testing, while higher values (30) are recommended for full task completion evaluation.

  • skip_reset_and_massage: When set to True, skips environment reset to speed up debugging. This should always be set to False when making experiments.

Results

Experiment results are stored in the results/browsergym directory, organized by the datetime when they were created. Each results directory contains:

  • Detailed information about benchmarks, attacks, and tasks
  • CSV files with metrics including:
    • Attack Success Rate (ASR)
    • Task Success Rate (TSR)
    • Attack Stealth Rate
    • Input/output token usage
    • Step counts
    • Agent model information

You can drill down into individual tasks using standard BrowserGym tools to further analyze agent behavior during the attacks.

Attack Types

The framework currently supports several attack types:

  1. Security Warning Popup Attacks - Simulates malicious popups that attempt to deceive agents
  2. Banner Attacks - Tests agents against misleading banner elements
  3. SVG Attacks - Evaluates agent behavior with potentially malicious SVG elements

Project Structure

├── README.md
├── __init__.py
├── attack_gateway.py
├── attack_scripts.py
├── attacked_browser_env_args.py
├── bgym_requirements.txt
├── init_scripts.py
├── scripts
│   ├── __init__.py
│   ├── bgym_analysis.py
│   ├── run_banner_attack_webarena_reddit_notext.py
│   ├── run_banner_with_alt_text_attack_webarena_reddit.py
│   ├── run_bgym_experiment.py
│   ├── run_parallel_bgym_experiment.py
│   ├── run_popup_attack_webarena_reddit.py
│   ├── sweep_bgym.py
│   └── test_task.py
└── webarena_subsets.py

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

doomarena_browsergym-0.0.2.tar.gz (43.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

doomarena_browsergym-0.0.2-py3-none-any.whl (46.7 kB view details)

Uploaded Python 3

File details

Details for the file doomarena_browsergym-0.0.2.tar.gz.

File metadata

  • Download URL: doomarena_browsergym-0.0.2.tar.gz
  • Upload date:
  • Size: 43.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.10

File hashes

Hashes for doomarena_browsergym-0.0.2.tar.gz
Algorithm Hash digest
SHA256 b944569e7deb7282d1106ab9985f2b651fa7a4b38dc8035d615d2cf6ba8a9905
MD5 cdcb5efc9ffd952cd5496f87e38afef2
BLAKE2b-256 763985b49ccf64add50170d50265407a6cec2810ae967f71f12be557963969d1

See more details on using hashes here.

File details

Details for the file doomarena_browsergym-0.0.2-py3-none-any.whl.

File metadata

File hashes

Hashes for doomarena_browsergym-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 180af6282f3ae9f7d14b3f79d95bbafe71c751349b1bc9d7d52f5da96f2c4c35
MD5 033e9cf7650d9f6ecb05de9fed089d26
BLAKE2b-256 18127b6cd4153c26e63a921f6c6406d4a00e3e3fd94863c9e4029d3e6f027b02

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page