juandavidrodriguezar commited on
Commit
eaae571
·
verified ·
1 Parent(s): c0170cf

Upload folder using huggingface_hub

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. .gitignore +46 -0
  2. Dockerfile +13 -0
  3. PROJECT_CONTEXT.md +99 -0
  4. README.md +202 -10
  5. configs/active_corpus_smoke_40.yaml +29 -0
  6. configs/agentdojo_tool_10.yaml +30 -0
  7. configs/agentdojo_tool_10_mitigated.yaml +36 -0
  8. configs/agentdojo_tool_10_mock.yaml +30 -0
  9. configs/agentdojo_tool_10_mock_mitigated.yaml +36 -0
  10. configs/baseline.yaml +23 -0
  11. configs/benign_control_25.yaml +24 -0
  12. configs/benign_control_25_gpt_oss_120b.yaml +24 -0
  13. configs/benign_control_25_gpt_oss_120b_mitigated.yaml +30 -0
  14. configs/benign_control_25_gpt_oss_20b.yaml +24 -0
  15. configs/benign_control_25_gpt_oss_20b_mitigated.yaml +30 -0
  16. configs/benign_control_25_groq_compound.yaml +24 -0
  17. configs/benign_control_25_groq_compound_mitigated.yaml +30 -0
  18. configs/benign_control_25_llama4scout.yaml +24 -0
  19. configs/benign_control_25_llama4scout_mitigated.yaml +30 -0
  20. configs/benign_control_25_llama70b.yaml +24 -0
  21. configs/benign_control_25_llama70b_mitigated.yaml +30 -0
  22. configs/benign_control_25_mitigated.yaml +30 -0
  23. configs/benign_control_25_qwen32b.yaml +24 -0
  24. configs/benign_control_25_qwen32b_mitigated.yaml +30 -0
  25. configs/groq_20.yaml +23 -0
  26. configs/groq_smoke.yaml +23 -0
  27. configs/hackaprompt_adaptive_1_mitigated.yaml +37 -0
  28. configs/hackaprompt_direct_10.yaml +31 -0
  29. configs/hackaprompt_direct_10_mitigated.yaml +37 -0
  30. configs/hackaprompt_direct_10_mock.yaml +31 -0
  31. configs/hackaprompt_direct_10_mock_mitigated.yaml +37 -0
  32. configs/hackaprompt_leakage_20.yaml +31 -0
  33. configs/hackaprompt_new_families_75.yaml +29 -0
  34. configs/hackaprompt_new_families_75_gpt_oss_120b.yaml +29 -0
  35. configs/hackaprompt_new_families_75_gpt_oss_120b_mitigated.yaml +35 -0
  36. configs/hackaprompt_new_families_75_gpt_oss_20b.yaml +29 -0
  37. configs/hackaprompt_new_families_75_gpt_oss_20b_mitigated.yaml +35 -0
  38. configs/hackaprompt_new_families_75_groq_compound.yaml +29 -0
  39. configs/hackaprompt_new_families_75_groq_compound_mitigated.yaml +35 -0
  40. configs/hackaprompt_new_families_75_llama4scout.yaml +29 -0
  41. configs/hackaprompt_new_families_75_llama4scout_mitigated.yaml +35 -0
  42. configs/hackaprompt_new_families_75_llama70b.yaml +29 -0
  43. configs/hackaprompt_new_families_75_llama70b_mitigated.yaml +35 -0
  44. configs/hackaprompt_new_families_75_mitigated.yaml +35 -0
  45. configs/hackaprompt_new_families_75_qwen32b.yaml +29 -0
  46. configs/hackaprompt_new_families_75_qwen32b_mitigated.yaml +35 -0
  47. configs/hackaprompt_override_25.yaml +33 -0
  48. configs/hackaprompt_override_25_gpt_oss_120b.yaml +28 -0
  49. configs/hackaprompt_override_25_gpt_oss_120b_mitigated.yaml +34 -0
  50. configs/hackaprompt_override_25_gpt_oss_20b.yaml +28 -0
.gitignore ADDED
@@ -0,0 +1,46 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Python
2
+ __pycache__/
3
+ *.py[cod]
4
+ *.so
5
+ .venv/
6
+ .venv312/
7
+ *.egg-info/
8
+
9
+ # Tooling
10
+ .pytest_cache/
11
+ .mypy_cache/
12
+ .ruff_cache/
13
+
14
+ # OS/editor
15
+ .DS_Store
16
+ .vscode/
17
+ .idea/
18
+
19
+ # Experiment outputs
20
+ results/*
21
+ !results/.gitkeep
22
+ !results/*/
23
+ !results/comparisons/
24
+ logs/*
25
+ !logs/.gitkeep
26
+
27
+ # Data artifacts
28
+ data/*
29
+ !data/.gitkeep
30
+ !data/README.md
31
+ !data/raw_sources/
32
+ !data/raw_sources/.gitkeep
33
+ !data/curated/
34
+ !data/curated/.gitkeep
35
+ !data/normalized/
36
+ !data/normalized/.gitkeep
37
+ !data/notes/
38
+ !data/notes/.gitkeep
39
+
40
+ # Local large raw HackAPrompt dataset
41
+ data/raw_sources/hackaprompt/hackaprompt_full.jsonl
42
+ data/raw_sources/hackaprompt/hackaprompt_full.parquet
43
+ data/raw_sources/hackaprompt/hackaprompt.parquet
44
+
45
+ #env
46
+ .env
Dockerfile ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ FROM python:3.11-slim
2
+
3
+ WORKDIR /app
4
+
5
+ COPY requirements-hf.txt .
6
+ RUN pip install --no-cache-dir -r requirements-hf.txt
7
+
8
+ COPY dashboard/ ./dashboard/
9
+ COPY results/ ./results/
10
+
11
+ EXPOSE 7860
12
+
13
+ CMD ["uvicorn", "dashboard.app:app", "--host", "0.0.0.0", "--port", "7860"]
PROJECT_CONTEXT.md ADDED
@@ -0,0 +1,99 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # LLM Prompt Injection Security Evaluation Framework
2
+
3
+ ## Project Overview
4
+
5
+ ### Project Type
6
+ - University research capstone project focused on LLM security.
7
+
8
+ ### Project Objective
9
+ - Design and implement a testing framework that evaluates how vulnerable LLM chatbots are to prompt injection attacks.
10
+ - Evaluate how mitigation strategies improve security outcomes.
11
+
12
+ The system will:
13
+ 1. Simulate prompt injection attacks.
14
+ 2. Measure how often attacks succeed.
15
+ 3. Apply mitigation strategies.
16
+ 4. Measure how much mitigation reduces successful attacks.
17
+
18
+ ## Scope Clarification
19
+
20
+ ### This Project Is NOT
21
+ - Training LLM models
22
+ - Building a new AI model
23
+ - Building a ChatGPT-like system
24
+ - Performing large-scale machine learning training
25
+
26
+ ### This Project IS
27
+ - Designing attack scenarios
28
+ - Evaluating LLM security vulnerabilities
29
+ - Implementing defensive mitigation strategies
30
+ - Measuring improvements after mitigation
31
+
32
+ ## Attack Scenarios to Evaluate
33
+ - Direct prompt injection through user inputs
34
+ - Attempts to extract hidden system prompts or internal instructions
35
+ - Indirect prompt injection through retrieved documents (RAG scenarios)
36
+ - Adaptive attackers who modify prompts after observing system responses
37
+
38
+ The framework should allow easily adding new attack strategies.
39
+
40
+ ## Mitigation Strategies
41
+ - Prompt hardening
42
+ - Input filtering
43
+ - Instruction isolation
44
+ - Detection mechanisms (e.g., classifier-based detection)
45
+
46
+ The framework should support comparing multiple mitigation approaches.
47
+
48
+ The system should also allow analyzing trade-offs such as:
49
+ - Security improvement
50
+ - Usability impact
51
+ - False positives or false negatives
52
+
53
+ ## Evaluation Metrics
54
+ The system should measure:
55
+ - Attack Success Rate (ASR)
56
+ - Reduction in successful attacks after mitigation
57
+ - False positive / false negative rates for detection methods
58
+ - Impact on normal system performance
59
+
60
+ ## Models
61
+ The framework may test different LLMs including:
62
+ - API-based models (e.g., GPT-family models)
63
+ - Open-source models (e.g., LLaMA, Mistral)
64
+
65
+ The architecture should support easily adding new models.
66
+
67
+ ## System Architecture (High Level)
68
+ The pipeline will conceptually look like this:
69
+
70
+ LLM Chatbot
71
+
72
+ Attack Generator
73
+
74
+ Attack Execution
75
+
76
+ Mitigation Layer
77
+
78
+ Evaluation Metrics
79
+
80
+ Results & Analysis
81
+
82
+ The framework should support running multiple experiments and logging results.
83
+
84
+ ## Repository Goals
85
+ The repository should prioritize:
86
+ - Modular architecture
87
+ - Reproducible experiments
88
+ - Clear documentation
89
+ - Experiment logging
90
+ - Easy extension for new attacks
91
+ - Easy extension for new mitigation strategies
92
+
93
+ ## Research Inspiration
94
+ This project is inspired by research on prompt injection attacks and LLM security, including academic papers that:
95
+ - Formalize prompt injection attacks
96
+ - Benchmark attack strategies
97
+ - Compare defense mechanisms
98
+
99
+ The goal is to build a practical experimental framework inspired by this research.
README.md CHANGED
@@ -1,10 +1,202 @@
1
- ---
2
- title: G5 Eval Dashboard
3
- emoji: 🔥
4
- colorFrom: green
5
- colorTo: indigo
6
- sdk: docker
7
- pinned: false
8
- ---
9
-
10
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # LLM Prompt Injection Security Evaluation Framework
2
+
3
+ This repository contains the capstone framework for evaluating prompt injection
4
+ attacks against LLM systems, applying mitigations, and comparing security
5
+ outcomes before and after defense.
6
+
7
+ ## Project State
8
+
9
+ The current branch reflects a usable end-to-end research framework:
10
+
11
+ - a stable schema for datasets, configs, and run artifacts
12
+ - an active normalized corpus built from HackAPrompt and TensorTrust
13
+ - runnable model adapters for `mock`, `groq`, and `ollama`
14
+ - category-aware evaluation and scoring
15
+ - a mitigation layer integrated into the runner
16
+ - baseline-vs-defended comparison workflows
17
+ - a lightweight Streamlit dashboard for presenting results
18
+
19
+ This is a capstone evaluation framework, not a production security product.
20
+
21
+ ## Scope
22
+
23
+ ### In scope
24
+
25
+ - attack scenario design and normalization
26
+ - LLM vulnerability evaluation
27
+ - mitigation implementation
28
+ - comparative measurement and reporting
29
+
30
+ ### Out of scope
31
+
32
+ - training new foundation models
33
+ - building a consumer chatbot product
34
+ - large-scale model training infrastructure
35
+
36
+ ## Repository Structure
37
+
38
+ - `src/prompt_injection_framework/attacks/`: attack logic and generators
39
+ - `src/prompt_injection_framework/mitigations/`: request and response defenses
40
+ - `src/prompt_injection_framework/models/`: model adapters
41
+ - `src/prompt_injection_framework/evaluation/`: scoring and metrics
42
+ - `src/prompt_injection_framework/orchestration/`: experiment runner and config loading
43
+ - `configs/`: runnable experiment configurations
44
+ - `dashboard/`: Streamlit demo app
45
+ - `tests/`: automated validation
46
+ - `docs/`: project, methodology, and workflow documentation
47
+
48
+ ## Active Data State
49
+
50
+ - Active normalized sources:
51
+ - HackAPrompt: `1,000` curated cases
52
+ - TensorTrust: `1,346` curated cases
53
+ - Active corpus files:
54
+ - `data/normalized/attack_cases.jsonl`
55
+ - `data/normalized/attack_cases.enriched.jsonl`
56
+ - Total active normalized corpus:
57
+ - `2,346` cases
58
+
59
+ AgentDojo remains a reference source but is not part of the active experiment
60
+ corpus in the current project state.
61
+
62
+ ## Supported Model Providers
63
+
64
+ - `mock`
65
+ - for fast validation and testing
66
+ - `groq`
67
+ - for hosted real-model experiments
68
+ - `ollama`
69
+ - for local/open-source model experiments
70
+
71
+ More detail is documented in `docs/PHASE4_BASELINE_MODELS.md`.
72
+
73
+ ## Execution Pipeline
74
+
75
+ 1. Load normalized cases
76
+ 2. Filter and sample the experiment slice
77
+ 3. Map cases into taxonomy-aware experiment records
78
+ 4. Build model requests
79
+ 5. Apply mitigation if enabled
80
+ 6. Run the model or mitigation block path
81
+ 7. Apply response mitigation
82
+ 8. Score outputs
83
+ 9. Save manifest, case results, and summary artifacts
84
+
85
+ ## Quick Start
86
+
87
+ ### Environment setup
88
+
89
+ ```bash
90
+ python3 -m venv .venv
91
+ source .venv/bin/activate
92
+ pip install -U pip
93
+ pip install -e .[dev]
94
+ ```
95
+
96
+ ### Run a baseline experiment
97
+
98
+ ```bash
99
+ python -m prompt_injection_framework.orchestration.run_experiment --config configs/baseline.yaml
100
+ ```
101
+
102
+ ### Run tests
103
+
104
+ ```bash
105
+ pytest
106
+ ```
107
+
108
+ ### Run the dashboard
109
+
110
+ ```bash
111
+ pip install -e .[dashboard]
112
+ streamlit run dashboard/streamlit_app.py
113
+ ```
114
+
115
+ ## Core Experiment Configs
116
+
117
+ ### Baseline and evaluation slices
118
+
119
+ - `configs/active_corpus_smoke_40.yaml`
120
+ - `configs/hackaprompt_override_25.yaml`
121
+ - `configs/hackaprompt_leakage_20.yaml`
122
+ - `configs/tensortrust_hijacking_25.yaml`
123
+ - `configs/tensortrust_extraction_25.yaml`
124
+
125
+ ### Defended counterparts
126
+
127
+ - `configs/hackaprompt_override_25_mitigated.yaml`
128
+ - `configs/tensortrust_hijacking_25_mitigated.yaml`
129
+ - `configs/hackaprompt_direct_10_mitigated.yaml`
130
+ - `configs/agentdojo_tool_10_mitigated.yaml`
131
+ - `configs/hackaprompt_adaptive_1_mitigated.yaml`
132
+
133
+ ### Mock validation pairs
134
+
135
+ - `configs/hackaprompt_override_25_mock.yaml`
136
+ - `configs/hackaprompt_override_25_mock_mitigated.yaml`
137
+ - `configs/tensortrust_hijacking_25_mock.yaml`
138
+ - `configs/tensortrust_hijacking_25_mock_mitigated.yaml`
139
+ - `configs/hackaprompt_direct_10_mock.yaml`
140
+ - `configs/hackaprompt_direct_10_mock_mitigated.yaml`
141
+ - `configs/agentdojo_tool_10_mock.yaml`
142
+ - `configs/agentdojo_tool_10_mock_mitigated.yaml`
143
+
144
+ ### Local/open-source baselines
145
+
146
+ - `configs/ollama_llama_hackaprompt_override_25.yaml`
147
+ - `configs/ollama_qwen_tensortrust_hijacking_25.yaml`
148
+
149
+ ## Mitigation Layer
150
+
151
+ Supported strategies:
152
+
153
+ - `none`
154
+ - `prompt_hardening`
155
+ - `instruction_isolation`
156
+ - `keyword_guardrail`
157
+ - `surface_aligned`
158
+
159
+ `surface_aligned` is the main defended path for the current framework because
160
+ it routes by attack surface and category, records mitigation behavior in the
161
+ artifacts, and supports before-vs-after comparisons directly in the runner.
162
+
163
+ More detail is documented in `docs/MITIGATION_LAYER.md`.
164
+
165
+ ## Evaluation and Comparison
166
+
167
+ The framework currently supports:
168
+
169
+ - attack success rate
170
+ - prompt leakage tracking
171
+ - refusal tracking
172
+ - benign utility and false-positive reporting
173
+ - category, surface, and source breakdowns
174
+ - baseline-vs-defended comparison outputs in JSON and Markdown
175
+
176
+ Useful documentation:
177
+
178
+ - `docs/PHASE5_BASELINE_EVALUATION.md`
179
+ - `docs/PHASE7_EXPERIMENT_GUIDE.md`
180
+ - `docs/GROQ_RUNBOOK.md`
181
+ - `docs/RESULTS_TEMPLATE.md`
182
+
183
+ ## Dashboard
184
+
185
+ The repository includes a lightweight Streamlit dashboard that reads the saved
186
+ experiment artifacts and presents:
187
+
188
+ - run summaries
189
+ - baseline-vs-defended comparisons
190
+ - category, surface, and source breakdowns
191
+ - case-level inspection views
192
+
193
+ See `docs/DASHBOARD_GUIDE.md`.
194
+
195
+ ## Notes
196
+
197
+ - The schema contract is documented in `docs/SCHEMA_CONTRACT.md`.
198
+ - The taxonomy contract is documented in `docs/ATTACK_TAXONOMY.md`.
199
+ - Success criteria are documented in `docs/SUCCESS_CRITERIA.md`.
200
+ - The current system is strong enough for capstone experiments, but real-model
201
+ evaluation still shows that some benchmark slices benefit from additional
202
+ mitigation refinement.
configs/active_corpus_smoke_40.yaml ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ experiment:
2
+ name: active_corpus_smoke_40
3
+ description: Mixed active-corpus smoke run across HackAPrompt and TensorTrust
4
+ seed: 42
5
+ sample_size: 40
6
+ output_dir: results
7
+
8
+ dataset:
9
+ path: data/normalized/attack_cases.jsonl
10
+
11
+ selection:
12
+ include_sources:
13
+ - HackAPrompt
14
+ - TensorTrust
15
+
16
+ model:
17
+ provider: groq
18
+ name: llama-3.1-8b-instant
19
+ max_tokens: 256
20
+ temperature: 0.0
21
+ execution_mode: plain
22
+
23
+ mitigation:
24
+ enabled: false
25
+ strategy: none
26
+
27
+ evaluation:
28
+ metrics:
29
+ - attack_success
configs/agentdojo_tool_10.yaml ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ experiment:
2
+ name: agentdojo_tool_10
3
+ description: Tool-mediated subset for indirect and retrieved-content evaluation
4
+ seed: 42
5
+ sample_size: 10
6
+ output_dir: results
7
+
8
+ dataset:
9
+ path: data/normalized/attack_cases.jsonl
10
+
11
+ selection:
12
+ include_sources:
13
+ - AgentDojo
14
+ include_attack_surfaces:
15
+ - tool_mediated
16
+
17
+ model:
18
+ provider: groq
19
+ name: llama-3.1-8b-instant
20
+ max_tokens: 256
21
+ temperature: 0.0
22
+ execution_mode: context_first
23
+
24
+ mitigation:
25
+ enabled: false
26
+ strategy: none
27
+
28
+ evaluation:
29
+ metrics:
30
+ - attack_success
configs/agentdojo_tool_10_mitigated.yaml ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ experiment:
2
+ name: agentdojo_tool_10_mitigated
3
+ description: Tool-mediated subset with instruction-isolation style mitigations enabled
4
+ seed: 42
5
+ sample_size: 10
6
+ output_dir: results
7
+
8
+ dataset:
9
+ path: data/normalized/attack_cases.jsonl
10
+
11
+ selection:
12
+ include_sources:
13
+ - AgentDojo
14
+ include_attack_surfaces:
15
+ - tool_mediated
16
+
17
+ model:
18
+ provider: groq
19
+ name: llama-3.1-8b-instant
20
+ max_tokens: 256
21
+ temperature: 0.0
22
+ execution_mode: context_first
23
+
24
+ mitigation:
25
+ enabled: true
26
+ strategy: surface_aligned
27
+ options:
28
+ strict_mode: true
29
+ sanitize_untrusted_content: true
30
+ block_suspicious_tool_actions: true
31
+ guard_tool_outputs: true
32
+ allow_urls_in_output: false
33
+
34
+ evaluation:
35
+ metrics:
36
+ - attack_success
configs/agentdojo_tool_10_mock.yaml ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ experiment:
2
+ name: agentdojo_tool_10_mock
3
+ description: Mock baseline run for AgentDojo tool-mediated subset
4
+ seed: 42
5
+ sample_size: 10
6
+ output_dir: results
7
+
8
+ dataset:
9
+ path: data/normalized/attack_cases.jsonl
10
+
11
+ selection:
12
+ include_sources:
13
+ - AgentDojo
14
+ include_attack_surfaces:
15
+ - tool_mediated
16
+
17
+ model:
18
+ provider: mock
19
+ name: mock-model
20
+ max_tokens: 256
21
+ temperature: 0.0
22
+ execution_mode: context_first
23
+
24
+ mitigation:
25
+ enabled: false
26
+ strategy: none
27
+
28
+ evaluation:
29
+ metrics:
30
+ - attack_success
configs/agentdojo_tool_10_mock_mitigated.yaml ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ experiment:
2
+ name: agentdojo_tool_10_mock_mitigated
3
+ description: Mock defended run for AgentDojo tool-mediated subset
4
+ seed: 42
5
+ sample_size: 10
6
+ output_dir: results
7
+
8
+ dataset:
9
+ path: data/normalized/attack_cases.jsonl
10
+
11
+ selection:
12
+ include_sources:
13
+ - AgentDojo
14
+ include_attack_surfaces:
15
+ - tool_mediated
16
+
17
+ model:
18
+ provider: mock
19
+ name: mock-model
20
+ max_tokens: 256
21
+ temperature: 0.0
22
+ execution_mode: context_first
23
+
24
+ mitigation:
25
+ enabled: true
26
+ strategy: surface_aligned
27
+ options:
28
+ strict_mode: true
29
+ sanitize_untrusted_content: true
30
+ block_suspicious_tool_actions: true
31
+ guard_tool_outputs: true
32
+ allow_urls_in_output: false
33
+
34
+ evaluation:
35
+ metrics:
36
+ - attack_success
configs/baseline.yaml ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ experiment:
2
+ name: baseline_direct_injection_mvp
3
+ description: Small MVP baseline run without mitigation
4
+ seed: 42
5
+ sample_size: 5
6
+ output_dir: results
7
+
8
+ dataset:
9
+ path: data/normalized/attack_cases.jsonl
10
+
11
+ model:
12
+ provider: mock
13
+ name: mock-model
14
+ max_tokens: 256
15
+ temperature: 0.0
16
+
17
+ mitigation:
18
+ enabled: false
19
+ strategy: none
20
+
21
+ evaluation:
22
+ metrics:
23
+ - attack_success
configs/benign_control_25.yaml ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ experiment:
2
+ name: benign_control_25
3
+ description: "Benign control \u2014 utility and false-positive measurement (baseline,\
4
+ \ llama8b)"
5
+ seed: 42
6
+ sample_size: 25
7
+ output_dir: results
8
+ dataset:
9
+ path: data/normalized/attack_cases.jsonl
10
+ selection:
11
+ include_attack_families:
12
+ - benign_control
13
+ model:
14
+ provider: groq
15
+ name: llama-3.1-8b-instant
16
+ max_tokens: 256
17
+ temperature: 0.0
18
+ execution_mode: plain
19
+ mitigation:
20
+ enabled: false
21
+ strategy: none
22
+ evaluation:
23
+ metrics:
24
+ - attack_success
configs/benign_control_25_gpt_oss_120b.yaml ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ experiment:
2
+ name: benign_control_25_gpt_oss_120b
3
+ description: "Benign control \u2014 utility and false-positive measurement (baseline,\
4
+ \ gpt_oss_120b)"
5
+ seed: 42
6
+ sample_size: 25
7
+ output_dir: results
8
+ dataset:
9
+ path: data/normalized/attack_cases.jsonl
10
+ selection:
11
+ include_attack_families:
12
+ - benign_control
13
+ model:
14
+ provider: groq
15
+ name: openai/gpt-oss-120b
16
+ max_tokens: 256
17
+ temperature: 0.0
18
+ execution_mode: plain
19
+ mitigation:
20
+ enabled: false
21
+ strategy: none
22
+ evaluation:
23
+ metrics:
24
+ - attack_success
configs/benign_control_25_gpt_oss_120b_mitigated.yaml ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ experiment:
2
+ name: benign_control_25_gpt_oss_120b_mitigated
3
+ description: "Benign control \u2014 utility and false-positive measurement (mitigated,\
4
+ \ gpt_oss_120b)"
5
+ seed: 42
6
+ sample_size: 25
7
+ output_dir: results
8
+ dataset:
9
+ path: data/normalized/attack_cases.jsonl
10
+ selection:
11
+ include_attack_families:
12
+ - benign_control
13
+ model:
14
+ provider: groq
15
+ name: openai/gpt-oss-120b
16
+ max_tokens: 256
17
+ temperature: 0.0
18
+ execution_mode: plain
19
+ mitigation:
20
+ enabled: true
21
+ strategy: surface_aligned
22
+ options:
23
+ strict_mode: false
24
+ sanitize_untrusted_content: true
25
+ block_suspicious_tool_actions: true
26
+ guard_tool_outputs: true
27
+ allow_urls_in_output: false
28
+ evaluation:
29
+ metrics:
30
+ - attack_success
configs/benign_control_25_gpt_oss_20b.yaml ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ experiment:
2
+ name: benign_control_25_gpt_oss_20b
3
+ description: "Benign control \u2014 utility and false-positive measurement (baseline,\
4
+ \ gpt_oss_20b)"
5
+ seed: 42
6
+ sample_size: 25
7
+ output_dir: results
8
+ dataset:
9
+ path: data/normalized/attack_cases.jsonl
10
+ selection:
11
+ include_attack_families:
12
+ - benign_control
13
+ model:
14
+ provider: groq
15
+ name: openai/gpt-oss-20b
16
+ max_tokens: 256
17
+ temperature: 0.0
18
+ execution_mode: plain
19
+ mitigation:
20
+ enabled: false
21
+ strategy: none
22
+ evaluation:
23
+ metrics:
24
+ - attack_success
configs/benign_control_25_gpt_oss_20b_mitigated.yaml ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ experiment:
2
+ name: benign_control_25_gpt_oss_20b_mitigated
3
+ description: "Benign control \u2014 utility and false-positive measurement (mitigated,\
4
+ \ gpt_oss_20b)"
5
+ seed: 42
6
+ sample_size: 25
7
+ output_dir: results
8
+ dataset:
9
+ path: data/normalized/attack_cases.jsonl
10
+ selection:
11
+ include_attack_families:
12
+ - benign_control
13
+ model:
14
+ provider: groq
15
+ name: openai/gpt-oss-20b
16
+ max_tokens: 256
17
+ temperature: 0.0
18
+ execution_mode: plain
19
+ mitigation:
20
+ enabled: true
21
+ strategy: surface_aligned
22
+ options:
23
+ strict_mode: false
24
+ sanitize_untrusted_content: true
25
+ block_suspicious_tool_actions: true
26
+ guard_tool_outputs: true
27
+ allow_urls_in_output: false
28
+ evaluation:
29
+ metrics:
30
+ - attack_success
configs/benign_control_25_groq_compound.yaml ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ experiment:
2
+ name: benign_control_25_groq_compound
3
+ description: "Benign control \u2014 utility and false-positive measurement (baseline,\
4
+ \ groq_compound)"
5
+ seed: 42
6
+ sample_size: 25
7
+ output_dir: results
8
+ dataset:
9
+ path: data/normalized/attack_cases.jsonl
10
+ selection:
11
+ include_attack_families:
12
+ - benign_control
13
+ model:
14
+ provider: groq
15
+ name: groq/compound
16
+ max_tokens: 256
17
+ temperature: 0.0
18
+ execution_mode: plain
19
+ mitigation:
20
+ enabled: false
21
+ strategy: none
22
+ evaluation:
23
+ metrics:
24
+ - attack_success
configs/benign_control_25_groq_compound_mitigated.yaml ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ experiment:
2
+ name: benign_control_25_groq_compound_mitigated
3
+ description: "Benign control \u2014 utility and false-positive measurement (mitigated,\
4
+ \ groq_compound)"
5
+ seed: 42
6
+ sample_size: 25
7
+ output_dir: results
8
+ dataset:
9
+ path: data/normalized/attack_cases.jsonl
10
+ selection:
11
+ include_attack_families:
12
+ - benign_control
13
+ model:
14
+ provider: groq
15
+ name: groq/compound
16
+ max_tokens: 256
17
+ temperature: 0.0
18
+ execution_mode: plain
19
+ mitigation:
20
+ enabled: true
21
+ strategy: surface_aligned
22
+ options:
23
+ strict_mode: false
24
+ sanitize_untrusted_content: true
25
+ block_suspicious_tool_actions: true
26
+ guard_tool_outputs: true
27
+ allow_urls_in_output: false
28
+ evaluation:
29
+ metrics:
30
+ - attack_success
configs/benign_control_25_llama4scout.yaml ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ experiment:
2
+ name: benign_control_25_llama4scout
3
+ description: "Benign control \u2014 utility and false-positive measurement (baseline,\
4
+ \ llama4scout)"
5
+ seed: 42
6
+ sample_size: 25
7
+ output_dir: results
8
+ dataset:
9
+ path: data/normalized/attack_cases.jsonl
10
+ selection:
11
+ include_attack_families:
12
+ - benign_control
13
+ model:
14
+ provider: groq
15
+ name: meta-llama/llama-4-scout-17b-16e-instruct
16
+ max_tokens: 256
17
+ temperature: 0.0
18
+ execution_mode: plain
19
+ mitigation:
20
+ enabled: false
21
+ strategy: none
22
+ evaluation:
23
+ metrics:
24
+ - attack_success
configs/benign_control_25_llama4scout_mitigated.yaml ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ experiment:
2
+ name: benign_control_25_llama4scout_mitigated
3
+ description: "Benign control \u2014 utility and false-positive measurement (mitigated,\
4
+ \ llama4scout)"
5
+ seed: 42
6
+ sample_size: 25
7
+ output_dir: results
8
+ dataset:
9
+ path: data/normalized/attack_cases.jsonl
10
+ selection:
11
+ include_attack_families:
12
+ - benign_control
13
+ model:
14
+ provider: groq
15
+ name: meta-llama/llama-4-scout-17b-16e-instruct
16
+ max_tokens: 256
17
+ temperature: 0.0
18
+ execution_mode: plain
19
+ mitigation:
20
+ enabled: true
21
+ strategy: surface_aligned
22
+ options:
23
+ strict_mode: false
24
+ sanitize_untrusted_content: true
25
+ block_suspicious_tool_actions: true
26
+ guard_tool_outputs: true
27
+ allow_urls_in_output: false
28
+ evaluation:
29
+ metrics:
30
+ - attack_success
configs/benign_control_25_llama70b.yaml ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ experiment:
2
+ name: benign_control_25_llama70b
3
+ description: "Benign control \u2014 utility and false-positive measurement (baseline,\
4
+ \ llama70b)"
5
+ seed: 42
6
+ sample_size: 25
7
+ output_dir: results
8
+ dataset:
9
+ path: data/normalized/attack_cases.jsonl
10
+ selection:
11
+ include_attack_families:
12
+ - benign_control
13
+ model:
14
+ provider: groq
15
+ name: llama-3.3-70b-versatile
16
+ max_tokens: 256
17
+ temperature: 0.0
18
+ execution_mode: plain
19
+ mitigation:
20
+ enabled: false
21
+ strategy: none
22
+ evaluation:
23
+ metrics:
24
+ - attack_success
configs/benign_control_25_llama70b_mitigated.yaml ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ experiment:
2
+ name: benign_control_25_llama70b_mitigated
3
+ description: "Benign control \u2014 utility and false-positive measurement (mitigated,\
4
+ \ llama70b)"
5
+ seed: 42
6
+ sample_size: 25
7
+ output_dir: results
8
+ dataset:
9
+ path: data/normalized/attack_cases.jsonl
10
+ selection:
11
+ include_attack_families:
12
+ - benign_control
13
+ model:
14
+ provider: groq
15
+ name: llama-3.3-70b-versatile
16
+ max_tokens: 256
17
+ temperature: 0.0
18
+ execution_mode: plain
19
+ mitigation:
20
+ enabled: true
21
+ strategy: surface_aligned
22
+ options:
23
+ strict_mode: false
24
+ sanitize_untrusted_content: true
25
+ block_suspicious_tool_actions: true
26
+ guard_tool_outputs: true
27
+ allow_urls_in_output: false
28
+ evaluation:
29
+ metrics:
30
+ - attack_success
configs/benign_control_25_mitigated.yaml ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ experiment:
2
+ name: benign_control_25_mitigated
3
+ description: "Benign control \u2014 utility and false-positive measurement (mitigated,\
4
+ \ llama8b)"
5
+ seed: 42
6
+ sample_size: 25
7
+ output_dir: results
8
+ dataset:
9
+ path: data/normalized/attack_cases.jsonl
10
+ selection:
11
+ include_attack_families:
12
+ - benign_control
13
+ model:
14
+ provider: groq
15
+ name: llama-3.1-8b-instant
16
+ max_tokens: 256
17
+ temperature: 0.0
18
+ execution_mode: plain
19
+ mitigation:
20
+ enabled: true
21
+ strategy: surface_aligned
22
+ options:
23
+ strict_mode: false
24
+ sanitize_untrusted_content: true
25
+ block_suspicious_tool_actions: true
26
+ guard_tool_outputs: true
27
+ allow_urls_in_output: false
28
+ evaluation:
29
+ metrics:
30
+ - attack_success
configs/benign_control_25_qwen32b.yaml ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ experiment:
2
+ name: benign_control_25_qwen32b
3
+ description: "Benign control \u2014 utility and false-positive measurement (baseline,\
4
+ \ qwen32b)"
5
+ seed: 42
6
+ sample_size: 25
7
+ output_dir: results
8
+ dataset:
9
+ path: data/normalized/attack_cases.jsonl
10
+ selection:
11
+ include_attack_families:
12
+ - benign_control
13
+ model:
14
+ provider: groq
15
+ name: qwen/qwen3-32b
16
+ max_tokens: 256
17
+ temperature: 0.0
18
+ execution_mode: plain
19
+ mitigation:
20
+ enabled: false
21
+ strategy: none
22
+ evaluation:
23
+ metrics:
24
+ - attack_success
configs/benign_control_25_qwen32b_mitigated.yaml ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ experiment:
2
+ name: benign_control_25_qwen32b_mitigated
3
+ description: "Benign control \u2014 utility and false-positive measurement (mitigated,\
4
+ \ qwen32b)"
5
+ seed: 42
6
+ sample_size: 25
7
+ output_dir: results
8
+ dataset:
9
+ path: data/normalized/attack_cases.jsonl
10
+ selection:
11
+ include_attack_families:
12
+ - benign_control
13
+ model:
14
+ provider: groq
15
+ name: qwen/qwen3-32b
16
+ max_tokens: 256
17
+ temperature: 0.0
18
+ execution_mode: plain
19
+ mitigation:
20
+ enabled: true
21
+ strategy: surface_aligned
22
+ options:
23
+ strict_mode: false
24
+ sanitize_untrusted_content: true
25
+ block_suspicious_tool_actions: true
26
+ guard_tool_outputs: true
27
+ allow_urls_in_output: false
28
+ evaluation:
29
+ metrics:
30
+ - attack_success
configs/groq_20.yaml ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ experiment:
2
+ name: groq_20_case_mvp
3
+ description: Groq-backed 20-case MVP baseline run
4
+ seed: 42
5
+ sample_size: 20
6
+ output_dir: results
7
+
8
+ dataset:
9
+ path: data/normalized/attack_cases.jsonl
10
+
11
+ model:
12
+ provider: groq
13
+ name: llama-3.1-8b-instant
14
+ max_tokens: 256
15
+ temperature: 0.0
16
+
17
+ mitigation:
18
+ enabled: false
19
+ strategy: none
20
+
21
+ evaluation:
22
+ metrics:
23
+ - attack_success
configs/groq_smoke.yaml ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ experiment:
2
+ name: groq_smoke_mvp
3
+ description: Small Groq-backed smoke run for MVP validation
4
+ seed: 42
5
+ sample_size: 5
6
+ output_dir: results
7
+
8
+ dataset:
9
+ path: data/normalized/attack_cases.jsonl
10
+
11
+ model:
12
+ provider: groq
13
+ name: llama-3.1-8b-instant
14
+ max_tokens: 256
15
+ temperature: 0.0
16
+
17
+ mitigation:
18
+ enabled: false
19
+ strategy: none
20
+
21
+ evaluation:
22
+ metrics:
23
+ - attack_success
configs/hackaprompt_adaptive_1_mitigated.yaml ADDED
@@ -0,0 +1,37 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ experiment:
2
+ name: hackaprompt_adaptive_1_mitigated
3
+ description: Focused adaptive-attack run with surface-aligned mitigations enabled
4
+ seed: 42
5
+ sample_size: 1
6
+ output_dir: results
7
+
8
+ dataset:
9
+ path: data/normalized/attack_cases.jsonl
10
+
11
+ selection:
12
+ include_sources:
13
+ - HackAPrompt
14
+ include_attack_families:
15
+ - adaptive_attack
16
+ require_expected_target: true
17
+
18
+ model:
19
+ provider: groq
20
+ name: llama-3.1-8b-instant
21
+ max_tokens: 256
22
+ temperature: 0.0
23
+ execution_mode: plain
24
+
25
+ mitigation:
26
+ enabled: true
27
+ strategy: surface_aligned
28
+ options:
29
+ strict_mode: true
30
+ sanitize_untrusted_content: true
31
+ block_suspicious_tool_actions: true
32
+ guard_tool_outputs: true
33
+ allow_urls_in_output: false
34
+
35
+ evaluation:
36
+ metrics:
37
+ - attack_success
configs/hackaprompt_direct_10.yaml ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ experiment:
2
+ name: hackaprompt_direct_10
3
+ description: Focused direct-attack subset for higher-pressure MVP testing
4
+ seed: 42
5
+ sample_size: 10
6
+ output_dir: results
7
+
8
+ dataset:
9
+ path: data/normalized/attack_cases.jsonl
10
+
11
+ selection:
12
+ include_sources:
13
+ - HackAPrompt
14
+ include_attack_surfaces:
15
+ - direct
16
+ require_expected_target: true
17
+
18
+ model:
19
+ provider: groq
20
+ name: llama-3.1-8b-instant
21
+ max_tokens: 256
22
+ temperature: 0.0
23
+ execution_mode: attack_then_task
24
+
25
+ mitigation:
26
+ enabled: false
27
+ strategy: none
28
+
29
+ evaluation:
30
+ metrics:
31
+ - attack_success
configs/hackaprompt_direct_10_mitigated.yaml ADDED
@@ -0,0 +1,37 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ experiment:
2
+ name: hackaprompt_direct_10_mitigated
3
+ description: Direct-attack subset with surface-aligned mitigations enabled
4
+ seed: 42
5
+ sample_size: 10
6
+ output_dir: results
7
+
8
+ dataset:
9
+ path: data/normalized/attack_cases.jsonl
10
+
11
+ selection:
12
+ include_sources:
13
+ - HackAPrompt
14
+ include_attack_surfaces:
15
+ - direct
16
+ require_expected_target: true
17
+
18
+ model:
19
+ provider: groq
20
+ name: llama-3.1-8b-instant
21
+ max_tokens: 256
22
+ temperature: 0.0
23
+ execution_mode: attack_then_task
24
+
25
+ mitigation:
26
+ enabled: true
27
+ strategy: surface_aligned
28
+ options:
29
+ strict_mode: true
30
+ sanitize_untrusted_content: true
31
+ block_suspicious_tool_actions: true
32
+ guard_tool_outputs: true
33
+ allow_urls_in_output: false
34
+
35
+ evaluation:
36
+ metrics:
37
+ - attack_success
configs/hackaprompt_direct_10_mock.yaml ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ experiment:
2
+ name: hackaprompt_direct_10_mock
3
+ description: Mock baseline run for HackAPrompt direct subset
4
+ seed: 42
5
+ sample_size: 10
6
+ output_dir: results
7
+
8
+ dataset:
9
+ path: data/normalized/attack_cases.jsonl
10
+
11
+ selection:
12
+ include_sources:
13
+ - HackAPrompt
14
+ include_attack_surfaces:
15
+ - direct
16
+ require_expected_target: true
17
+
18
+ model:
19
+ provider: mock
20
+ name: mock-model
21
+ max_tokens: 256
22
+ temperature: 0.0
23
+ execution_mode: attack_then_task
24
+
25
+ mitigation:
26
+ enabled: false
27
+ strategy: none
28
+
29
+ evaluation:
30
+ metrics:
31
+ - attack_success
configs/hackaprompt_direct_10_mock_mitigated.yaml ADDED
@@ -0,0 +1,37 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ experiment:
2
+ name: hackaprompt_direct_10_mock_mitigated
3
+ description: Mock defended run for HackAPrompt direct subset
4
+ seed: 42
5
+ sample_size: 10
6
+ output_dir: results
7
+
8
+ dataset:
9
+ path: data/normalized/attack_cases.jsonl
10
+
11
+ selection:
12
+ include_sources:
13
+ - HackAPrompt
14
+ include_attack_surfaces:
15
+ - direct
16
+ require_expected_target: true
17
+
18
+ model:
19
+ provider: mock
20
+ name: mock-model
21
+ max_tokens: 256
22
+ temperature: 0.0
23
+ execution_mode: attack_then_task
24
+
25
+ mitigation:
26
+ enabled: true
27
+ strategy: surface_aligned
28
+ options:
29
+ strict_mode: true
30
+ sanitize_untrusted_content: true
31
+ block_suspicious_tool_actions: true
32
+ guard_tool_outputs: true
33
+ allow_urls_in_output: false
34
+
35
+ evaluation:
36
+ metrics:
37
+ - attack_success
configs/hackaprompt_leakage_20.yaml ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ experiment:
2
+ name: hackaprompt_leakage_20
3
+ description: Focused HackAPrompt prompt-leakage evaluation slice
4
+ seed: 42
5
+ sample_size: 20
6
+ output_dir: results
7
+
8
+ dataset:
9
+ path: data/normalized/attack_cases.jsonl
10
+
11
+ selection:
12
+ include_sources:
13
+ - HackAPrompt
14
+ include_attack_families:
15
+ - prompt_leakage
16
+ require_expected_target: true
17
+
18
+ model:
19
+ provider: groq
20
+ name: llama-3.1-8b-instant
21
+ max_tokens: 256
22
+ temperature: 0.0
23
+ execution_mode: plain
24
+
25
+ mitigation:
26
+ enabled: false
27
+ strategy: none
28
+
29
+ evaluation:
30
+ metrics:
31
+ - attack_success
configs/hackaprompt_new_families_75.yaml ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ experiment:
2
+ name: hackaprompt_new_families_75
3
+ description: 'HackAPrompt: adaptive_attack + blacklist_evasion + xml_escape_evasion
4
+ — baseline (llama8b)'
5
+ seed: 42
6
+ sample_size: 25
7
+ output_dir: results
8
+ dataset:
9
+ path: data/normalized/attack_cases.jsonl
10
+ selection:
11
+ include_sources:
12
+ - HackAPrompt
13
+ include_attack_families:
14
+ - adaptive_attack
15
+ - blacklist_evasion
16
+ - xml_escape_evasion
17
+ require_expected_target: true
18
+ model:
19
+ provider: groq
20
+ name: llama-3.1-8b-instant
21
+ max_tokens: 256
22
+ temperature: 0.0
23
+ execution_mode: attack_then_task
24
+ mitigation:
25
+ enabled: false
26
+ strategy: none
27
+ evaluation:
28
+ metrics:
29
+ - attack_success
configs/hackaprompt_new_families_75_gpt_oss_120b.yaml ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ experiment:
2
+ name: hackaprompt_new_families_75_gpt_oss_120b
3
+ description: 'HackAPrompt: adaptive_attack + blacklist_evasion + xml_escape_evasion
4
+ — baseline (gpt_oss_120b)'
5
+ seed: 42
6
+ sample_size: 25
7
+ output_dir: results
8
+ dataset:
9
+ path: data/normalized/attack_cases.jsonl
10
+ selection:
11
+ include_sources:
12
+ - HackAPrompt
13
+ include_attack_families:
14
+ - adaptive_attack
15
+ - blacklist_evasion
16
+ - xml_escape_evasion
17
+ require_expected_target: true
18
+ model:
19
+ provider: groq
20
+ name: openai/gpt-oss-120b
21
+ max_tokens: 256
22
+ temperature: 0.0
23
+ execution_mode: attack_then_task
24
+ mitigation:
25
+ enabled: false
26
+ strategy: none
27
+ evaluation:
28
+ metrics:
29
+ - attack_success
configs/hackaprompt_new_families_75_gpt_oss_120b_mitigated.yaml ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ experiment:
2
+ name: hackaprompt_new_families_75_gpt_oss_120b_mitigated
3
+ description: 'HackAPrompt: adaptive_attack + blacklist_evasion + xml_escape_evasion
4
+ — mitigated (gpt_oss_120b)'
5
+ seed: 42
6
+ sample_size: 25
7
+ output_dir: results
8
+ dataset:
9
+ path: data/normalized/attack_cases.jsonl
10
+ selection:
11
+ include_sources:
12
+ - HackAPrompt
13
+ include_attack_families:
14
+ - adaptive_attack
15
+ - blacklist_evasion
16
+ - xml_escape_evasion
17
+ require_expected_target: true
18
+ model:
19
+ provider: groq
20
+ name: openai/gpt-oss-120b
21
+ max_tokens: 256
22
+ temperature: 0.0
23
+ execution_mode: attack_then_task
24
+ mitigation:
25
+ enabled: true
26
+ strategy: surface_aligned
27
+ options:
28
+ strict_mode: false
29
+ sanitize_untrusted_content: true
30
+ block_suspicious_tool_actions: true
31
+ guard_tool_outputs: true
32
+ allow_urls_in_output: false
33
+ evaluation:
34
+ metrics:
35
+ - attack_success
configs/hackaprompt_new_families_75_gpt_oss_20b.yaml ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ experiment:
2
+ name: hackaprompt_new_families_75_gpt_oss_20b
3
+ description: 'HackAPrompt: adaptive_attack + blacklist_evasion + xml_escape_evasion
4
+ — baseline (gpt_oss_20b)'
5
+ seed: 42
6
+ sample_size: 25
7
+ output_dir: results
8
+ dataset:
9
+ path: data/normalized/attack_cases.jsonl
10
+ selection:
11
+ include_sources:
12
+ - HackAPrompt
13
+ include_attack_families:
14
+ - adaptive_attack
15
+ - blacklist_evasion
16
+ - xml_escape_evasion
17
+ require_expected_target: true
18
+ model:
19
+ provider: groq
20
+ name: openai/gpt-oss-20b
21
+ max_tokens: 256
22
+ temperature: 0.0
23
+ execution_mode: attack_then_task
24
+ mitigation:
25
+ enabled: false
26
+ strategy: none
27
+ evaluation:
28
+ metrics:
29
+ - attack_success
configs/hackaprompt_new_families_75_gpt_oss_20b_mitigated.yaml ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ experiment:
2
+ name: hackaprompt_new_families_75_gpt_oss_20b_mitigated
3
+ description: 'HackAPrompt: adaptive_attack + blacklist_evasion + xml_escape_evasion
4
+ — mitigated (gpt_oss_20b)'
5
+ seed: 42
6
+ sample_size: 25
7
+ output_dir: results
8
+ dataset:
9
+ path: data/normalized/attack_cases.jsonl
10
+ selection:
11
+ include_sources:
12
+ - HackAPrompt
13
+ include_attack_families:
14
+ - adaptive_attack
15
+ - blacklist_evasion
16
+ - xml_escape_evasion
17
+ require_expected_target: true
18
+ model:
19
+ provider: groq
20
+ name: openai/gpt-oss-20b
21
+ max_tokens: 256
22
+ temperature: 0.0
23
+ execution_mode: attack_then_task
24
+ mitigation:
25
+ enabled: true
26
+ strategy: surface_aligned
27
+ options:
28
+ strict_mode: false
29
+ sanitize_untrusted_content: true
30
+ block_suspicious_tool_actions: true
31
+ guard_tool_outputs: true
32
+ allow_urls_in_output: false
33
+ evaluation:
34
+ metrics:
35
+ - attack_success
configs/hackaprompt_new_families_75_groq_compound.yaml ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ experiment:
2
+ name: hackaprompt_new_families_75_groq_compound
3
+ description: 'HackAPrompt: adaptive_attack + blacklist_evasion + xml_escape_evasion
4
+ — baseline (groq_compound)'
5
+ seed: 42
6
+ sample_size: 25
7
+ output_dir: results
8
+ dataset:
9
+ path: data/normalized/attack_cases.jsonl
10
+ selection:
11
+ include_sources:
12
+ - HackAPrompt
13
+ include_attack_families:
14
+ - adaptive_attack
15
+ - blacklist_evasion
16
+ - xml_escape_evasion
17
+ require_expected_target: true
18
+ model:
19
+ provider: groq
20
+ name: groq/compound
21
+ max_tokens: 256
22
+ temperature: 0.0
23
+ execution_mode: attack_then_task
24
+ mitigation:
25
+ enabled: false
26
+ strategy: none
27
+ evaluation:
28
+ metrics:
29
+ - attack_success
configs/hackaprompt_new_families_75_groq_compound_mitigated.yaml ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ experiment:
2
+ name: hackaprompt_new_families_75_groq_compound_mitigated
3
+ description: 'HackAPrompt: adaptive_attack + blacklist_evasion + xml_escape_evasion
4
+ — mitigated (groq_compound)'
5
+ seed: 42
6
+ sample_size: 25
7
+ output_dir: results
8
+ dataset:
9
+ path: data/normalized/attack_cases.jsonl
10
+ selection:
11
+ include_sources:
12
+ - HackAPrompt
13
+ include_attack_families:
14
+ - adaptive_attack
15
+ - blacklist_evasion
16
+ - xml_escape_evasion
17
+ require_expected_target: true
18
+ model:
19
+ provider: groq
20
+ name: groq/compound
21
+ max_tokens: 256
22
+ temperature: 0.0
23
+ execution_mode: attack_then_task
24
+ mitigation:
25
+ enabled: true
26
+ strategy: surface_aligned
27
+ options:
28
+ strict_mode: false
29
+ sanitize_untrusted_content: true
30
+ block_suspicious_tool_actions: true
31
+ guard_tool_outputs: true
32
+ allow_urls_in_output: false
33
+ evaluation:
34
+ metrics:
35
+ - attack_success
configs/hackaprompt_new_families_75_llama4scout.yaml ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ experiment:
2
+ name: hackaprompt_new_families_75_llama4scout
3
+ description: 'HackAPrompt: adaptive_attack + blacklist_evasion + xml_escape_evasion
4
+ — baseline (llama4scout)'
5
+ seed: 42
6
+ sample_size: 25
7
+ output_dir: results
8
+ dataset:
9
+ path: data/normalized/attack_cases.jsonl
10
+ selection:
11
+ include_sources:
12
+ - HackAPrompt
13
+ include_attack_families:
14
+ - adaptive_attack
15
+ - blacklist_evasion
16
+ - xml_escape_evasion
17
+ require_expected_target: true
18
+ model:
19
+ provider: groq
20
+ name: meta-llama/llama-4-scout-17b-16e-instruct
21
+ max_tokens: 256
22
+ temperature: 0.0
23
+ execution_mode: attack_then_task
24
+ mitigation:
25
+ enabled: false
26
+ strategy: none
27
+ evaluation:
28
+ metrics:
29
+ - attack_success
configs/hackaprompt_new_families_75_llama4scout_mitigated.yaml ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ experiment:
2
+ name: hackaprompt_new_families_75_llama4scout_mitigated
3
+ description: 'HackAPrompt: adaptive_attack + blacklist_evasion + xml_escape_evasion
4
+ — mitigated (llama4scout)'
5
+ seed: 42
6
+ sample_size: 25
7
+ output_dir: results
8
+ dataset:
9
+ path: data/normalized/attack_cases.jsonl
10
+ selection:
11
+ include_sources:
12
+ - HackAPrompt
13
+ include_attack_families:
14
+ - adaptive_attack
15
+ - blacklist_evasion
16
+ - xml_escape_evasion
17
+ require_expected_target: true
18
+ model:
19
+ provider: groq
20
+ name: meta-llama/llama-4-scout-17b-16e-instruct
21
+ max_tokens: 256
22
+ temperature: 0.0
23
+ execution_mode: attack_then_task
24
+ mitigation:
25
+ enabled: true
26
+ strategy: surface_aligned
27
+ options:
28
+ strict_mode: false
29
+ sanitize_untrusted_content: true
30
+ block_suspicious_tool_actions: true
31
+ guard_tool_outputs: true
32
+ allow_urls_in_output: false
33
+ evaluation:
34
+ metrics:
35
+ - attack_success
configs/hackaprompt_new_families_75_llama70b.yaml ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ experiment:
2
+ name: hackaprompt_new_families_75_llama70b
3
+ description: 'HackAPrompt: adaptive_attack + blacklist_evasion + xml_escape_evasion
4
+ — baseline (llama70b)'
5
+ seed: 42
6
+ sample_size: 25
7
+ output_dir: results
8
+ dataset:
9
+ path: data/normalized/attack_cases.jsonl
10
+ selection:
11
+ include_sources:
12
+ - HackAPrompt
13
+ include_attack_families:
14
+ - adaptive_attack
15
+ - blacklist_evasion
16
+ - xml_escape_evasion
17
+ require_expected_target: true
18
+ model:
19
+ provider: groq
20
+ name: llama-3.3-70b-versatile
21
+ max_tokens: 256
22
+ temperature: 0.0
23
+ execution_mode: attack_then_task
24
+ mitigation:
25
+ enabled: false
26
+ strategy: none
27
+ evaluation:
28
+ metrics:
29
+ - attack_success
configs/hackaprompt_new_families_75_llama70b_mitigated.yaml ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ experiment:
2
+ name: hackaprompt_new_families_75_llama70b_mitigated
3
+ description: 'HackAPrompt: adaptive_attack + blacklist_evasion + xml_escape_evasion
4
+ — mitigated (llama70b)'
5
+ seed: 42
6
+ sample_size: 25
7
+ output_dir: results
8
+ dataset:
9
+ path: data/normalized/attack_cases.jsonl
10
+ selection:
11
+ include_sources:
12
+ - HackAPrompt
13
+ include_attack_families:
14
+ - adaptive_attack
15
+ - blacklist_evasion
16
+ - xml_escape_evasion
17
+ require_expected_target: true
18
+ model:
19
+ provider: groq
20
+ name: llama-3.3-70b-versatile
21
+ max_tokens: 256
22
+ temperature: 0.0
23
+ execution_mode: attack_then_task
24
+ mitigation:
25
+ enabled: true
26
+ strategy: surface_aligned
27
+ options:
28
+ strict_mode: false
29
+ sanitize_untrusted_content: true
30
+ block_suspicious_tool_actions: true
31
+ guard_tool_outputs: true
32
+ allow_urls_in_output: false
33
+ evaluation:
34
+ metrics:
35
+ - attack_success
configs/hackaprompt_new_families_75_mitigated.yaml ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ experiment:
2
+ name: hackaprompt_new_families_75_mitigated
3
+ description: 'HackAPrompt: adaptive_attack + blacklist_evasion + xml_escape_evasion
4
+ — mitigated (llama8b)'
5
+ seed: 42
6
+ sample_size: 25
7
+ output_dir: results
8
+ dataset:
9
+ path: data/normalized/attack_cases.jsonl
10
+ selection:
11
+ include_sources:
12
+ - HackAPrompt
13
+ include_attack_families:
14
+ - adaptive_attack
15
+ - blacklist_evasion
16
+ - xml_escape_evasion
17
+ require_expected_target: true
18
+ model:
19
+ provider: groq
20
+ name: llama-3.1-8b-instant
21
+ max_tokens: 256
22
+ temperature: 0.0
23
+ execution_mode: attack_then_task
24
+ mitigation:
25
+ enabled: true
26
+ strategy: surface_aligned
27
+ options:
28
+ strict_mode: false
29
+ sanitize_untrusted_content: true
30
+ block_suspicious_tool_actions: true
31
+ guard_tool_outputs: true
32
+ allow_urls_in_output: false
33
+ evaluation:
34
+ metrics:
35
+ - attack_success
configs/hackaprompt_new_families_75_qwen32b.yaml ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ experiment:
2
+ name: hackaprompt_new_families_75_qwen32b
3
+ description: 'HackAPrompt: adaptive_attack + blacklist_evasion + xml_escape_evasion
4
+ — baseline (qwen32b)'
5
+ seed: 42
6
+ sample_size: 25
7
+ output_dir: results
8
+ dataset:
9
+ path: data/normalized/attack_cases.jsonl
10
+ selection:
11
+ include_sources:
12
+ - HackAPrompt
13
+ include_attack_families:
14
+ - adaptive_attack
15
+ - blacklist_evasion
16
+ - xml_escape_evasion
17
+ require_expected_target: true
18
+ model:
19
+ provider: groq
20
+ name: qwen/qwen3-32b
21
+ max_tokens: 256
22
+ temperature: 0.0
23
+ execution_mode: attack_then_task
24
+ mitigation:
25
+ enabled: false
26
+ strategy: none
27
+ evaluation:
28
+ metrics:
29
+ - attack_success
configs/hackaprompt_new_families_75_qwen32b_mitigated.yaml ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ experiment:
2
+ name: hackaprompt_new_families_75_qwen32b_mitigated
3
+ description: 'HackAPrompt: adaptive_attack + blacklist_evasion + xml_escape_evasion
4
+ — mitigated (qwen32b)'
5
+ seed: 42
6
+ sample_size: 25
7
+ output_dir: results
8
+ dataset:
9
+ path: data/normalized/attack_cases.jsonl
10
+ selection:
11
+ include_sources:
12
+ - HackAPrompt
13
+ include_attack_families:
14
+ - adaptive_attack
15
+ - blacklist_evasion
16
+ - xml_escape_evasion
17
+ require_expected_target: true
18
+ model:
19
+ provider: groq
20
+ name: qwen/qwen3-32b
21
+ max_tokens: 256
22
+ temperature: 0.0
23
+ execution_mode: attack_then_task
24
+ mitigation:
25
+ enabled: true
26
+ strategy: surface_aligned
27
+ options:
28
+ strict_mode: false
29
+ sanitize_untrusted_content: true
30
+ block_suspicious_tool_actions: true
31
+ guard_tool_outputs: true
32
+ allow_urls_in_output: false
33
+ evaluation:
34
+ metrics:
35
+ - attack_success
configs/hackaprompt_override_25.yaml ADDED
@@ -0,0 +1,33 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ experiment:
2
+ name: hackaprompt_override_25
3
+ description: Focused HackAPrompt instruction-override pressure test
4
+ seed: 42
5
+ sample_size: 25
6
+ output_dir: results
7
+
8
+ dataset:
9
+ path: data/normalized/attack_cases.jsonl
10
+
11
+ selection:
12
+ include_sources:
13
+ - HackAPrompt
14
+ include_attack_families:
15
+ - direct_instruction_override
16
+ - compound_instruction_attack
17
+ - sandwich_defense_bypass
18
+ require_expected_target: true
19
+
20
+ model:
21
+ provider: groq
22
+ name: llama-3.1-8b-instant
23
+ max_tokens: 256
24
+ temperature: 0.0
25
+ execution_mode: attack_then_task
26
+
27
+ mitigation:
28
+ enabled: false
29
+ strategy: none
30
+
31
+ evaluation:
32
+ metrics:
33
+ - attack_success
configs/hackaprompt_override_25_gpt_oss_120b.yaml ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ experiment:
2
+ name: hackaprompt_override_25_gpt_oss_120b
3
+ description: HackAPrompt instruction-override pressure test (baseline, gpt_oss_120b)
4
+ seed: 42
5
+ sample_size: 25
6
+ output_dir: results
7
+ dataset:
8
+ path: data/normalized/attack_cases.jsonl
9
+ selection:
10
+ include_sources:
11
+ - HackAPrompt
12
+ include_attack_families:
13
+ - direct_instruction_override
14
+ - compound_instruction_attack
15
+ - sandwich_defense_bypass
16
+ require_expected_target: true
17
+ model:
18
+ provider: groq
19
+ name: openai/gpt-oss-120b
20
+ max_tokens: 256
21
+ temperature: 0.0
22
+ execution_mode: attack_then_task
23
+ mitigation:
24
+ enabled: false
25
+ strategy: none
26
+ evaluation:
27
+ metrics:
28
+ - attack_success
configs/hackaprompt_override_25_gpt_oss_120b_mitigated.yaml ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ experiment:
2
+ name: hackaprompt_override_25_gpt_oss_120b_mitigated
3
+ description: HackAPrompt instruction-override pressure test (mitigated, gpt_oss_120b)
4
+ seed: 42
5
+ sample_size: 25
6
+ output_dir: results
7
+ dataset:
8
+ path: data/normalized/attack_cases.jsonl
9
+ selection:
10
+ include_sources:
11
+ - HackAPrompt
12
+ include_attack_families:
13
+ - direct_instruction_override
14
+ - compound_instruction_attack
15
+ - sandwich_defense_bypass
16
+ require_expected_target: true
17
+ model:
18
+ provider: groq
19
+ name: openai/gpt-oss-120b
20
+ max_tokens: 256
21
+ temperature: 0.0
22
+ execution_mode: attack_then_task
23
+ mitigation:
24
+ enabled: true
25
+ strategy: surface_aligned
26
+ options:
27
+ strict_mode: false
28
+ sanitize_untrusted_content: true
29
+ block_suspicious_tool_actions: true
30
+ guard_tool_outputs: true
31
+ allow_urls_in_output: false
32
+ evaluation:
33
+ metrics:
34
+ - attack_success
configs/hackaprompt_override_25_gpt_oss_20b.yaml ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ experiment:
2
+ name: hackaprompt_override_25_gpt_oss_20b
3
+ description: HackAPrompt instruction-override pressure test (baseline, gpt_oss_20b)
4
+ seed: 42
5
+ sample_size: 25
6
+ output_dir: results
7
+ dataset:
8
+ path: data/normalized/attack_cases.jsonl
9
+ selection:
10
+ include_sources:
11
+ - HackAPrompt
12
+ include_attack_families:
13
+ - direct_instruction_override
14
+ - compound_instruction_attack
15
+ - sandwich_defense_bypass
16
+ require_expected_target: true
17
+ model:
18
+ provider: groq
19
+ name: openai/gpt-oss-20b
20
+ max_tokens: 256
21
+ temperature: 0.0
22
+ execution_mode: attack_then_task
23
+ mitigation:
24
+ enabled: false
25
+ strategy: none
26
+ evaluation:
27
+ metrics:
28
+ - attack_success