AI Robustness Evaluation System
See the codeStop wondering if your AI is secure. Know for certain.
ARES automates LLM red-teaming so you can test your models against real attacks before deployment. Plug in your attacks, evaluators, and guardrails. Test across models. Get unified reports.
Install ARES, run this quickstart example, and view results in chat format:
ares evaluate example_configs/quickstart.yaml -l
ares show-chat -f results/keyword_evaluation.json --open
┌───────────────────────────────────────────────────────────────────────────┐
│ ARES Evaluation Flow │
└───────────────────────────────────────────────────────────────────────────┘
📋 Define Goals 🎯 Select Strategy 📊 Evaluate Results
│ │ │
▼ ▼ ▼
┌──────────────┐ ┌───────────────┐ ┌─────────────────┐
│ What to test │ ───────> │ How to attack │ ───────> │ How to measure │
└──────────────┘ └───────────────┘ └─────────────────┘
• PII leakage • Prompt injection • Keyword match
• Data exfiltration • Crescendo • LLM judges
• Harmful content • GCG, TAP, etc. • Custom evals
• Custom goals • Your attack • Guardrails
What is ARES? An orchestration framework that lets you plug in your own attacks, evaluators, and guardrails to test LLMs - whether you're benchmarking a new attack method for research or testing your model's security before deployment.
Why ARES?
Three core components you can customize:
Choose your learning path based on your experience level:
| Experience Level | I want to... | Start Here |
|---|---|---|
| 🟢 Beginner | Try it visually (no coding) | GUI Interface |
| 🟢 Beginner | Run my first security test | Quickstart |
| 🟢 Beginner | See real-world examples | Real-World Examples |
| 🟡 Intermediate | Test with multiple attack methods | Using Built-in Plugins |
| 🟡 Intermediate | Test OWASP vulnerabilities | OWASP Security Testing |
| 🔴 Advanced | Create custom attacks/evaluators | ADVANCED.md |
| 🔴 Advanced | Fine-tune configuration | ADVANCED.md |
Quick Decision Tree:
Full Documentation: ibm.github.io/ares
The ARES programming model provides a flexible framework for orchestrating robustness evaluations:

Key Components:
redteamer.target(), redteamer.goal(), redteamer.strategy(), redteamer.evaluate())🟢 Complexity: Beginner | No coding required
Not a command-line person? No problem. Test AI security with drag-and-drop simplicity - perfect for security teams who want quick results without writing code.
Clone the repository:
git clone https://github.com/IBM/ares.git
cd ares
Install ARES:
pip install .
Launch the GUI:
ares gui
You'll see this interface:
The interface has 5 tabs on the left:
1. Upload Configuration
2. Install Required Plugins
3. Run Tests & View Results
4. Visualize Attack Conversations (Optional)
ARES can visualize attacks as chat-style conversations with evaluation scores, making it easier to assess multi-turn attacks and understand how jailbreaks evolve.
Just click Show Chat View from Reports tab.
💡 Pro Tip: The GUI is great for exploration, but the CLI gives you more control and is better for automation. Once you're comfortable, try the CLI Installation below.
🟢 Complexity: Beginner
You'll need Python 3.11+ and either:
curl -LsSf https://astral.sh/uv/install.sh | shSet up a virtual environment first so your install stays clean and isolated:
# prepare a virtual environment
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
# install ares
curl https://raw.githubusercontent.com/IBM/ares/refs/heads/main/install.sh | bash
This will create the example_configs/ and assets/ directories in your current directory with the files you need. Then run the quickstart and open the chat-style results:
ares evaluate example_configs/quickstart.yaml -l
ares show-chat -f results/keyword_evaluation.json --open
Or try the minimal example:
ares evaluate example_configs/minimal.yaml -l
⚠️ Important: Using a virtual environment is highly recommended.
💡 Note: See Understanding ARES_HOME for details on path resolution.
📦 Note: More examples and assets can be loaded from the ARES repository.
For interactive development and customization:
Using pip:
# 1. Clone the repository
git clone https://github.com/IBM/ares.git
cd ares
# 2. Create and activate virtual environment
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
# 3. Install ARES with dev dependencies
pip install ".[dev]"
# 4. Run examples
ares evaluate example_configs/quickstart.yaml -l
ares show-chat -f results/keyword_evaluation.json --open
Using uv (faster):
# 1. Clone the repository
git clone https://github.com/IBM/ares.git
cd ares
# 2. Sync dependencies with dev extras (creates venv automatically)
uv sync --extra dev
# 3. Activate virtual environment
source .venv/bin/activate # On Windows: .venv\Scripts\activate
# 4. Run examples
ares evaluate example_configs/quickstart.yaml -l
ares show-chat -f results/keyword_evaluation.json --open
What's next? Run your first test.
🟢 Complexity: Beginner | Your first security test
Let's catch a vulnerability before your users do. This quickstart tests a model against harmful behavior prompts - one of the most common security assessments.
ares evaluate example_configs/quickstart.yaml -l -n 10
Flags explained: -l limits number of goals to run (default 5), -n 10 specifies exactly 10 goals to test
This uses our ready-to-go configuration that shows you all the components explicitly. View the config to see how it's structured.
Create a file called my-first-test.yaml:
# my-first-test.yaml
target:
huggingface:
model_config:
pretrained_model_name_or_path: Qwen/Qwen2-0.5B-Instruct
tokenizer_config:
pretrained_model_name_or_path: Qwen/Qwen2-0.5B-Instruct
red-teaming:
prompts: assets/safety_behaviors_text_subset.csv # Test harmful behavior prompts
Then run the test:
ares evaluate my-first-test.yaml -l -n 10
Flags explained: -l limits number of goals to run (default 5), -n 10 specifies exactly 10 goals to test
What just happened?
Your saved results in the results folder will have:
💡 Pro Tip: The quickstart uses defaults for simplicity. Check
example_configs/quickstart.yamlto see the full explicit configuration with all components (strategy, evaluation, goals) clearly defined.
example_configs/quickstart.yaml to understand all componentsexample_configs/ directory🎯 What's Next? You've run your first test. Now see how real teams can use ARES to catch vulnerabilities before deployment → Real-World Examples
🟢 Complexity: Beginner | See ARES in action
Learn from real security testing scenarios. These examples show how teams can use ARES to catch vulnerabilities before deployment.
Scenario: Test if your customer service chatbot leaks PII using multiple attack vectors.
What you test: Direct requests, crescendo and encoding attacks
What you learn: Which attacks extract PII, types of information leaked, target robustness
📋 See full configuration & results
Scenario: Measure how well Granite Guardian protects your model against various attacks.
What you test: Human Jailbreaks, encoding and crescendo attacks
What you learn: Which attacks the guardrail blocks, bypass techniques, effectiveness rates
📋 See full configuration & results
Scenario: Compare your novel attack against established methods for publication.
What you test: Your attack vs. 4 baselines with multiple evaluators
What you learn: Success rate comparisons, statistical significance, reproducible results
📋 See full configuration & results
📓 Try these interactive examples:
- Red Teaming with ARES - Complete walkthrough
- Granite Guardian Testing - Guardrail effectiveness
- Multi-Agent Coalition Attacks - Advanced attack scenarios
🎯 What's Next? You've seen examples. Now discover how to combine multiple attack methods to find vulnerabilities others miss → Using Built-in Plugins
🟡 Complexity: Intermediate | Understanding ARES capabilities
Now that you've seen ARES in action, here's everything you can do with it.
🎯 What's Next? Ready to test with multiple attack methods simultaneously? → Using Built-in Plugins
🟡 Complexity: Intermediate | Testing with multiple attack methods
One config. 15+ attack methods. Find the weakest link. This section shows you how to combine multiple plugins for comprehensive security testing.
Before diving into examples, here's what each plugin type does:
There are two ways to install plugins. The names of the available plugins are all under: ares/plugins.
ares-human-jailbreak:ares install-plugin ares-human-jailbreak
ares-litellmcd plugins/ares-litellm
and then run
pip install .
to install the relevant plugin.
requires ares-human-jailbreak plugin
install via: ares install-plugin ares-human-jailbreak
Start simple - test one attack method against your model:
Compare strategies - test multiple attacks simultaneously:
Choose based on your testing goal:
| Your Goal | Recommended Plugins | Why |
|---|---|---|
| Test jailbreak resistance | human_jailbreak, crescendo | Known effective jailbreaks + multi-turn attacks |
| Test data leakage | direct_requests + inject_base64 + keyword | Direct extraction attempts with and without encoding + pattern detection |
| Test encoding bypasses | encoding (base64, ROT13, etc.) | Common obfuscation techniques |
| Benchmark novel attack | Create custom plugin | Compare against baselines |
| Test guardrail effectiveness | Any strategy + your guardrail | See what gets through |
Core Strategies (Built-in):
direct_requests - Simple harmful promptsmulti_turn - Multi-turn conversation attacks (implement your, but make it compatible to ARES pipeline)Plugin Attack Strategies:
ares-echo-chamber - Multi-turn attackares-gcg - Greedy Coordinate Gradient attacksares-tap - Tree of Attacks with Pruningares-human-jailbreak - Known jailbreak prompts from researchares-autodan - Automated jailbreak generationares-garak - Garak vulnerability scanner integrationares-pyrit - PyRIT attack framework integrationares-dynamic-llm - LLM-generated adaptive attacksCore Evaluators (Built-in):
keyword - Pattern matching for harmful contentllm_eval - LLM-as-judge scoringhuggingface_eval - HuggingFace model-based evaluationPlugin Evaluators:
ares-cyberseceval - Security-specific evaluations & goalsares-intrinsics - Intrinsic evaluationCore Connectors (Built-in):
huggingface - Local HuggingFace modelswatsonx - IBM WatsonX modelsrestful - Generic REST API connectorPlugin Connectors:
ares-litellm - Universal LLM proxy (OpenAI, Anthropic, etc.)ares-granite-io - IBM Granite models via Ollamaares-vllm-connector - vLLM inference serverares-watsonx-orchestrate - WatsonX Orchestrate agentsares-lora-adapter-connector - LoRA adapter supportares-mcp-connector - Model Context Protocol connectorares-icarus-connector - Icarus platform integrationGoal Plugins:
ares-cyberseceval - CyberSecEval security test goalsares-deepteam - Deep team-based goals generation🎯 What's Next? Test against industry-standard vulnerabilities that matter to stakeholders → OWASP Security Testing
🟡 Complexity: Intermediate | Industry-standard vulnerability testing
Is your AI vulnerable to the top 10 security risks? ARES maps directly to the OWASP Top 10 for LLM Applications, making it easy to test for industry-recognized vulnerabilities.
The OWASP Top 10 represents the most critical security risks for LLM applications, identified by security experts worldwide. Testing against these vulnerabilities helps you:
⚠️ Real Impact: Companies have found critical vulnerabilities (PII leakage, prompt injection) in production systems using OWASP testing. Don't wait for users to find them first.
Test your model against a specific OWASP vulnerability. Each intent must be tested separately:
# owasp-llm-01-test.yaml
target:
huggingface:
model_config:
pretrained_model_name_or_path: Qwen/Qwen2-0.5B-Instruct
tokenizer_config:
pretrained_model_name_or_path: Qwen/Qwen2-0.5B-Instruct
red-teaming:
intent: owasp-llm-01:2025 # Prompt Injection
prompts: assets/safety_behaviors_text_subset.csv
To test multiple OWASP categories: Run separate tests for each intent (owasp-llm-01:2025, owasp-llm-02:2025, etc.)
Start with these high-impact vulnerabilities:
LLM01: Prompt Injection - Can attackers override your system instructions?
owasp-llm-01:2025LLM02: Sensitive Information Disclosure - Does your model leak secrets?
owasp-llm-02:2025LLM09: Misinformation - Can attackers make your model hallucinate?
owasp-llm-09:2025| Code | Title | What It Tests | ARES Intent | Status | Example |
|---|---|---|---|---|---|
| LLM01 | Prompt Injection | Can prompts override intended behavior or security policies? | owasp-llm-01:2025 | ✅ Supported | Notebook |
| LLM02 | Sensitive Information Disclosure | Does the system leak secrets (API keys, PII) through responses? | owasp-llm-02:2025 | ✅ Supported | Contact us |
| LLM03 | Supply Chain | Are dependencies and model artifacts validated for integrity? | owasp-llm-03:2025 | ⚠️ Not supported | - |
| LLM04 | Data and Model Poisoning | Can external inputs corrupt training data or retrieval (RAG)? | owasp-llm-04:2025 | ✅ Supported | WIP |
| LLM05 | Improper Output Handling | Are outputs unsafe (injected prompts, broken deps, malformed code)? | owasp-llm-05:2025 | ✅ Supported | WIP |
| LLM06 | Excessive Agency | Can the agent use tools beyond intended scope or be hijacked? | owasp-llm-06:2025 | ✅ Supported | WIP |
| LLM07 | System Prompt Leakage | Are system-level instructions or sensitive context exposed? | owasp-llm-07:2025 | ✅ Supported | WIP |
| LLM08 | Vector and Embedding Weaknesses | Is sensitive data leaked via embeddings or retrieval vectors? | owasp-llm-08:2025 | ⚠️ See LLM02 | - |
| LLM09 | Misinformation | Is the model resilient against hallucinations or malicious content? | owasp-llm-09:2025 | ✅ Supported | Notebook |
| LLM10 | Unbounded Consumption | Does the agent prevent resource exhaustion (DoS attacks)? | owasp-llm-10:2025 | ✅ Supported | WIP |
🎯 What's Next? Ready to extend ARES with your own tools? Explore advanced customization → ADVANCED.md
Ready to extend ARES? Check out our Advanced Guide for:
Quick links:
We welcome contributions! Here's how to get started:
📣 Try ARES and share your feedback! We're constantly improving based on user input.
The example_configs/ directory contains ready-to-use configurations:
minimal.yaml, strategies.yaml, evaluators.yamlowasp/ directoryplugins/ directory with 15+ plugin configscustom/ directory with advanced use casesInteractive tutorials in the notebooks/ directory:
ARES is built on cutting-edge research:
ARES has been brought to you by IBM Research. We believe in open, transparent, and secure AI development.
License: Apache 2.0
Citation:
@software{ares2025,
title={ARES: AI Robustness Evaluation System},
author={Liubov Nedoshivina and
Kieran Fraser and
Mark Purcell and
Ambrish Rawat and
Giulio Zizzo and
Muhammad Zaid Hameed and
Stefano Braghin and
Anisa Halimi and
Cristian Morasso and
Ibrahim Malik and
Naoise Holohan and
Giandomenico Cornacchia},
organization={IBM Research},
year={2025},
url={https://github.com/IBM/ares}
}
59 followers · starred Dec 2025
Python
80.6%
Jupyter Notebook
18.5%
AI Robustness Evaluation System
See the codeStop wondering if your AI is secure. Know for certain.
ARES automates LLM red-teaming so you can test your models against real attacks before deployment. Plug in your attacks, evaluators, and guardrails. Test across models. Get unified reports.
Install ARES, run this quickstart example, and view results in chat format:
ares evaluate example_configs/quickstart.yaml -l
ares show-chat -f results/keyword_evaluation.json --open
┌───────────────────────────────────────────────────────────────────────────┐
│ ARES Evaluation Flow │
└───────────────────────────────────────────────────────────────────────────┘
📋 Define Goals 🎯 Select Strategy 📊 Evaluate Results
│ │ │
▼ ▼ ▼
┌──────────────┐ ┌───────────────┐ ┌─────────────────┐
│ What to test │ ───────> │ How to attack │ ───────> │ How to measure │
└──────────────┘ └───────────────┘ └─────────────────┘
• PII leakage • Prompt injection • Keyword match
• Data exfiltration • Crescendo • LLM judges
• Harmful content • GCG, TAP, etc. • Custom evals
• Custom goals • Your attack • Guardrails
What is ARES? An orchestration framework that lets you plug in your own attacks, evaluators, and guardrails to test LLMs - whether you're benchmarking a new attack method for research or testing your model's security before deployment.
Why ARES?
Three core components you can customize:
Choose your learning path based on your experience level:
| Experience Level | I want to... | Start Here |
|---|---|---|
| 🟢 Beginner | Try it visually (no coding) | GUI Interface |
| 🟢 Beginner | Run my first security test | Quickstart |
| 🟢 Beginner | See real-world examples | Real-World Examples |
| 🟡 Intermediate | Test with multiple attack methods | Using Built-in Plugins |
| 🟡 Intermediate | Test OWASP vulnerabilities | OWASP Security Testing |
| 🔴 Advanced | Create custom attacks/evaluators | ADVANCED.md |
| 🔴 Advanced | Fine-tune configuration | ADVANCED.md |
Quick Decision Tree:
Full Documentation: ibm.github.io/ares
The ARES programming model provides a flexible framework for orchestrating robustness evaluations:

Key Components:
redteamer.target(), redteamer.goal(), redteamer.strategy(), redteamer.evaluate())🟢 Complexity: Beginner | No coding required
Not a command-line person? No problem. Test AI security with drag-and-drop simplicity - perfect for security teams who want quick results without writing code.
Clone the repository:
git clone https://github.com/IBM/ares.git
cd ares
Install ARES:
pip install .
Launch the GUI:
ares gui
You'll see this interface:
The interface has 5 tabs on the left:
1. Upload Configuration
2. Install Required Plugins
3. Run Tests & View Results
4. Visualize Attack Conversations (Optional)
ARES can visualize attacks as chat-style conversations with evaluation scores, making it easier to assess multi-turn attacks and understand how jailbreaks evolve.
Just click Show Chat View from Reports tab.
💡 Pro Tip: The GUI is great for exploration, but the CLI gives you more control and is better for automation. Once you're comfortable, try the CLI Installation below.
🟢 Complexity: Beginner
You'll need Python 3.11+ and either:
curl -LsSf https://astral.sh/uv/install.sh | shSet up a virtual environment first so your install stays clean and isolated:
# prepare a virtual environment
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
# install ares
curl https://raw.githubusercontent.com/IBM/ares/refs/heads/main/install.sh | bash
This will create the example_configs/ and assets/ directories in your current directory with the files you need. Then run the quickstart and open the chat-style results:
ares evaluate example_configs/quickstart.yaml -l
ares show-chat -f results/keyword_evaluation.json --open
Or try the minimal example:
ares evaluate example_configs/minimal.yaml -l
⚠️ Important: Using a virtual environment is highly recommended.
💡 Note: See Understanding ARES_HOME for details on path resolution.
📦 Note: More examples and assets can be loaded from the ARES repository.
For interactive development and customization:
Using pip:
# 1. Clone the repository
git clone https://github.com/IBM/ares.git
cd ares
# 2. Create and activate virtual environment
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
# 3. Install ARES with dev dependencies
pip install ".[dev]"
# 4. Run examples
ares evaluate example_configs/quickstart.yaml -l
ares show-chat -f results/keyword_evaluation.json --open
Using uv (faster):
# 1. Clone the repository
git clone https://github.com/IBM/ares.git
cd ares
# 2. Sync dependencies with dev extras (creates venv automatically)
uv sync --extra dev
# 3. Activate virtual environment
source .venv/bin/activate # On Windows: .venv\Scripts\activate
# 4. Run examples
ares evaluate example_configs/quickstart.yaml -l
ares show-chat -f results/keyword_evaluation.json --open
What's next? Run your first test.
🟢 Complexity: Beginner | Your first security test
Let's catch a vulnerability before your users do. This quickstart tests a model against harmful behavior prompts - one of the most common security assessments.
ares evaluate example_configs/quickstart.yaml -l -n 10
Flags explained: -l limits number of goals to run (default 5), -n 10 specifies exactly 10 goals to test
This uses our ready-to-go configuration that shows you all the components explicitly. View the config to see how it's structured.
Create a file called my-first-test.yaml:
# my-first-test.yaml
target:
huggingface:
model_config:
pretrained_model_name_or_path: Qwen/Qwen2-0.5B-Instruct
tokenizer_config:
pretrained_model_name_or_path: Qwen/Qwen2-0.5B-Instruct
red-teaming:
prompts: assets/safety_behaviors_text_subset.csv # Test harmful behavior prompts
Then run the test:
ares evaluate my-first-test.yaml -l -n 10
Flags explained: -l limits number of goals to run (default 5), -n 10 specifies exactly 10 goals to test
What just happened?
Your saved results in the results folder will have:
💡 Pro Tip: The quickstart uses defaults for simplicity. Check
example_configs/quickstart.yamlto see the full explicit configuration with all components (strategy, evaluation, goals) clearly defined.
example_configs/quickstart.yaml to understand all componentsexample_configs/ directory🎯 What's Next? You've run your first test. Now see how real teams can use ARES to catch vulnerabilities before deployment → Real-World Examples
🟢 Complexity: Beginner | See ARES in action
Learn from real security testing scenarios. These examples show how teams can use ARES to catch vulnerabilities before deployment.
Scenario: Test if your customer service chatbot leaks PII using multiple attack vectors.
What you test: Direct requests, crescendo and encoding attacks
What you learn: Which attacks extract PII, types of information leaked, target robustness
📋 See full configuration & results
Scenario: Measure how well Granite Guardian protects your model against various attacks.
What you test: Human Jailbreaks, encoding and crescendo attacks
What you learn: Which attacks the guardrail blocks, bypass techniques, effectiveness rates
📋 See full configuration & results
Scenario: Compare your novel attack against established methods for publication.
What you test: Your attack vs. 4 baselines with multiple evaluators
What you learn: Success rate comparisons, statistical significance, reproducible results
📋 See full configuration & results
📓 Try these interactive examples:
- Red Teaming with ARES - Complete walkthrough
- Granite Guardian Testing - Guardrail effectiveness
- Multi-Agent Coalition Attacks - Advanced attack scenarios
🎯 What's Next? You've seen examples. Now discover how to combine multiple attack methods to find vulnerabilities others miss → Using Built-in Plugins
🟡 Complexity: Intermediate | Understanding ARES capabilities
Now that you've seen ARES in action, here's everything you can do with it.
🎯 What's Next? Ready to test with multiple attack methods simultaneously? → Using Built-in Plugins
🟡 Complexity: Intermediate | Testing with multiple attack methods
One config. 15+ attack methods. Find the weakest link. This section shows you how to combine multiple plugins for comprehensive security testing.
Before diving into examples, here's what each plugin type does:
There are two ways to install plugins. The names of the available plugins are all under: ares/plugins.
ares-human-jailbreak:ares install-plugin ares-human-jailbreak
ares-litellmcd plugins/ares-litellm
and then run
pip install .
to install the relevant plugin.
requires ares-human-jailbreak plugin
install via: ares install-plugin ares-human-jailbreak
Start simple - test one attack method against your model:
Compare strategies - test multiple attacks simultaneously:
Choose based on your testing goal:
| Your Goal | Recommended Plugins | Why |
|---|---|---|
| Test jailbreak resistance | human_jailbreak, crescendo | Known effective jailbreaks + multi-turn attacks |
| Test data leakage | direct_requests + inject_base64 + keyword | Direct extraction attempts with and without encoding + pattern detection |
| Test encoding bypasses | encoding (base64, ROT13, etc.) | Common obfuscation techniques |
| Benchmark novel attack | Create custom plugin | Compare against baselines |
| Test guardrail effectiveness | Any strategy + your guardrail | See what gets through |
Core Strategies (Built-in):
direct_requests - Simple harmful promptsmulti_turn - Multi-turn conversation attacks (implement your, but make it compatible to ARES pipeline)Plugin Attack Strategies:
ares-echo-chamber - Multi-turn attackares-gcg - Greedy Coordinate Gradient attacksares-tap - Tree of Attacks with Pruningares-human-jailbreak - Known jailbreak prompts from researchares-autodan - Automated jailbreak generationares-garak - Garak vulnerability scanner integrationares-pyrit - PyRIT attack framework integrationares-dynamic-llm - LLM-generated adaptive attacksCore Evaluators (Built-in):
keyword - Pattern matching for harmful contentllm_eval - LLM-as-judge scoringhuggingface_eval - HuggingFace model-based evaluationPlugin Evaluators:
ares-cyberseceval - Security-specific evaluations & goalsares-intrinsics - Intrinsic evaluationCore Connectors (Built-in):
huggingface - Local HuggingFace modelswatsonx - IBM WatsonX modelsrestful - Generic REST API connectorPlugin Connectors:
ares-litellm - Universal LLM proxy (OpenAI, Anthropic, etc.)ares-granite-io - IBM Granite models via Ollamaares-vllm-connector - vLLM inference serverares-watsonx-orchestrate - WatsonX Orchestrate agentsares-lora-adapter-connector - LoRA adapter supportares-mcp-connector - Model Context Protocol connectorares-icarus-connector - Icarus platform integrationGoal Plugins:
ares-cyberseceval - CyberSecEval security test goalsares-deepteam - Deep team-based goals generation🎯 What's Next? Test against industry-standard vulnerabilities that matter to stakeholders → OWASP Security Testing
🟡 Complexity: Intermediate | Industry-standard vulnerability testing
Is your AI vulnerable to the top 10 security risks? ARES maps directly to the OWASP Top 10 for LLM Applications, making it easy to test for industry-recognized vulnerabilities.
The OWASP Top 10 represents the most critical security risks for LLM applications, identified by security experts worldwide. Testing against these vulnerabilities helps you:
⚠️ Real Impact: Companies have found critical vulnerabilities (PII leakage, prompt injection) in production systems using OWASP testing. Don't wait for users to find them first.
Test your model against a specific OWASP vulnerability. Each intent must be tested separately:
# owasp-llm-01-test.yaml
target:
huggingface:
model_config:
pretrained_model_name_or_path: Qwen/Qwen2-0.5B-Instruct
tokenizer_config:
pretrained_model_name_or_path: Qwen/Qwen2-0.5B-Instruct
red-teaming:
intent: owasp-llm-01:2025 # Prompt Injection
prompts: assets/safety_behaviors_text_subset.csv
To test multiple OWASP categories: Run separate tests for each intent (owasp-llm-01:2025, owasp-llm-02:2025, etc.)
Start with these high-impact vulnerabilities:
LLM01: Prompt Injection - Can attackers override your system instructions?
owasp-llm-01:2025LLM02: Sensitive Information Disclosure - Does your model leak secrets?
owasp-llm-02:2025LLM09: Misinformation - Can attackers make your model hallucinate?
owasp-llm-09:2025| Code | Title | What It Tests | ARES Intent | Status | Example |
|---|---|---|---|---|---|
| LLM01 | Prompt Injection | Can prompts override intended behavior or security policies? | owasp-llm-01:2025 | ✅ Supported | Notebook |
| LLM02 | Sensitive Information Disclosure | Does the system leak secrets (API keys, PII) through responses? | owasp-llm-02:2025 | ✅ Supported | Contact us |
| LLM03 | Supply Chain | Are dependencies and model artifacts validated for integrity? | owasp-llm-03:2025 | ⚠️ Not supported | - |
| LLM04 | Data and Model Poisoning | Can external inputs corrupt training data or retrieval (RAG)? | owasp-llm-04:2025 | ✅ Supported | WIP |
| LLM05 | Improper Output Handling | Are outputs unsafe (injected prompts, broken deps, malformed code)? | owasp-llm-05:2025 | ✅ Supported | WIP |
| LLM06 | Excessive Agency | Can the agent use tools beyond intended scope or be hijacked? | owasp-llm-06:2025 | ✅ Supported | WIP |
| LLM07 | System Prompt Leakage | Are system-level instructions or sensitive context exposed? | owasp-llm-07:2025 | ✅ Supported | WIP |
| LLM08 | Vector and Embedding Weaknesses | Is sensitive data leaked via embeddings or retrieval vectors? | owasp-llm-08:2025 | ⚠️ See LLM02 | - |
| LLM09 | Misinformation | Is the model resilient against hallucinations or malicious content? | owasp-llm-09:2025 | ✅ Supported | Notebook |
| LLM10 | Unbounded Consumption | Does the agent prevent resource exhaustion (DoS attacks)? | owasp-llm-10:2025 | ✅ Supported | WIP |
🎯 What's Next? Ready to extend ARES with your own tools? Explore advanced customization → ADVANCED.md
Ready to extend ARES? Check out our Advanced Guide for:
Quick links:
We welcome contributions! Here's how to get started:
📣 Try ARES and share your feedback! We're constantly improving based on user input.
The example_configs/ directory contains ready-to-use configurations:
minimal.yaml, strategies.yaml, evaluators.yamlowasp/ directoryplugins/ directory with 15+ plugin configscustom/ directory with advanced use casesInteractive tutorials in the notebooks/ directory:
ARES is built on cutting-edge research:
ARES has been brought to you by IBM Research. We believe in open, transparent, and secure AI development.
License: Apache 2.0
Citation:
@software{ares2025,
title={ARES: AI Robustness Evaluation System},
author={Liubov Nedoshivina and
Kieran Fraser and
Mark Purcell and
Ambrish Rawat and
Giulio Zizzo and
Muhammad Zaid Hameed and
Stefano Braghin and
Anisa Halimi and
Cristian Morasso and
Ibrahim Malik and
Naoise Holohan and
Giandomenico Cornacchia},
organization={IBM Research},
year={2025},
url={https://github.com/IBM/ares}
}
59 followers · starred Dec 2025
Python
80.6%
Jupyter Notebook
18.5%