Cloak, Honey, Trap: Proactive Defenses Against LLM Agents
Description
This artifact accompanies our USENIX Security 2025 paper “Cloak, Honey, Trap: Proactive Defenses Against LLM Agents.”
-
CHeaT.zip — complete repository with the CHeaT CLI, datasets, and a playground notebook.
-
CTF machines — 11 challenge VMs, each provided as a separate ZIP archive.
The repository’s main README appears below.
---
## 1. Overview
**CHeaT (Cloak–Honey–Trap)** is a command-line tool designed to **defend networks against autonomous, LLM-powered penetration testing agents**. It works by embedding string-based payloads into network assets—payloads specifically crafted to **disrupt, deceive, and detect** such agents.
### Core Defense Strategies:
1. **Cloaking** – Obfuscate sensitive data with strategic misdirection
2. **Honey** – Embed tokens to detect and fingerprint LLM-driven agents
3. **Traps** – Deploy inputs that stall, confuse, or crash malicious automation
CHeaT implements **6 distinct strategies** encompassing **15 payload generation techniques**, forming a layered, proactive defense against LLM-based threats.
For more information on how it works, please see our USENIX Security ’25 publication:
``
Daniel Ayzenshteyn, Weiss, Roy, and Yisroel Mirsky. "Cloak, Honey, Trap: Proactive Defenses Against LLM Agents" 34rth USENIX Security Symposium (USENIX Security 25). 2025.
``
---
## 2. Tool Quick Start 🚀
> **TL;DR**
```bash
# clone repo & enter tool folder
git clone https://github.com/Daniel-Ayz/CHeaT.git
cd CHeaT
# optional: create venv
python3 -m venv .venv && source .venv/bin/activate
# install (pure-stdlib -> nothing to pull)
pip install -e .
# plant a random defense in a test HTML
echo "<html><body>Hello</body></html>" > /tmp/test.html
cheat --action plant --details '{
"assettype": "web_file",
"file_path": "/tmp/test.html",
"technique": "random",
}'
````
| Action | Example |
| ------------------- | -------------------------------------------------------------------------------------------------------- |
| **Plant** | `cheat --action plant --details '{"assettype":"local_file","file_path":"readme.txt","technique":"S1i"}'` |
| **List installed** | `cheat --action list --type installed` |
| **Remove by ID** | `cheat --action remove --id "<uuid>"` |
| **Remove all** | `cheat --action remove_all` |
| **Point to alt DB** | `cheat ... --database /path/to/db` |
See [`cheat/README.md`](cheat/README.md) for full CLI docs.
---
## 3. Repository Layout
```
CHeaT/
├─ cheat/ ← Python package (tool)
│ ├─ database/ ← default JSON techniques & templates
│ └─ ...
├─ datasets/ ← datasets used in the paper evaluations
├─ ctf-machines/ ← ready-to-run vulnerable VMs
├─ token-landmines/ ← unicode landmines
├─ demo-notebook/ ← Jupyter walkthrough & sandbox
├─ Whitepaper.pdf ← full academic paper
└─ README.md ← you are here
```
### 3.1 ``cheat/``
Here you will find the source code to the CHeaT payload injection tool, along with instruction in [`cheat/README.md`](cheat/README.md)
### 3.2 ``datasets/``
In this directory you will find the datasets used in the paper's evalautions.
Directory **`datasets/`** collects:
```
datasets/
├─ dataset_main.json
├─ dataset_boosted_with_pi.json
├─ dataset_unicode_honeytokens.json
└─payloads/
├─ payloads.json
└─ payloads_boosted_with_prompt_injection.json
````
* **`payloads.json`** – the framed payloads constructed in the paper.
* **`payloads_boosted_with_prompt_injection.json`** – payloads that are *boosted* with a prompt-injection wrapper.
* **`dataset_main.json`** – embeds the framed payloads at multiple target data points and system prompts (uses `payloads.json`).
* **`dataset_boosted_with_pi.json`** – identical structure but built from the boosted payloads.
* **`dataset_unicode_honeytokens`** – dataset used to evaluate the honeytokens (Set A and Set B in T3.2)
### 3.3 ``ctf-machines/``
This directory holds the 11 CTF machines (ready-to-import OVA VMs) created for the paper and used in the paper’s evaluation:
`UbuntuX`, `VulBox`, `DGPro`, `Imagery`, `CornHub`, `Tr4c3`, `Hackme`, `Shocker`, `Corpnet`, `Kermit`, `GitGambit`
In each sub-dir you will find a walkthrough solution. For the respective .ova Vm files, please visit our Zenodo dataset.
If you use these CTFs in your work, please cite our paper.
### 3.4 ``token-landmines/``
Here you will find the code used to generate the “landmine tokens” from the paper. Token landmines are rare sequences of tokens that corrupt a model's internal state causing it to output gibberish or hallucinations.
The contents of this folder will be empty until 1 month after publicaiton to give vendors time to patch their LLM services.
### 3.5 ``demo-notebook/``
Here you will find a Jupyter notebook which you can use to poke and prod PentestGPT in a safe sandbox:
- load saved attack snapshots,
- drop in new hints / traps,
- watch how the agent reasons and what commands it generates.
---
## 4. License 📄
This project is licensed under the CC BY-NC 4.0 License. See the [LICENSE](./LICENSE) file for details.
---
## 5. Citation 🤝
If you use our code, datasets, or CTF VMs, please cite us:
```bibtex
@inproceedings{Ayzenshteyn2025CHeaT,
title={{CHeaT}: Cloak, Honey, Trap – Proactive Defenses Against LLM Agents},
author={Daniel Ayzenshteyn and Roy Weiss and Yisroel Mirsky},
booktitle={USENIX Security},
year={2025}
}
```
Happy trapping! 🕸️
Files
CHeaT.zip
Files
(48.7 GB)
Name | Size | Download all |
---|---|---|
md5:fa4afc604ca5c14d0ad63cb541ace0e3
|
25.2 MB | Preview Download |
md5:42606bc070f94e217ec6766dce971b85
|
5.2 GB | Preview Download |
md5:7fb2bd075bc29db51da1150e0ec354b4
|
4.7 GB | Preview Download |
md5:8295690b81676d21ed7bc6b98f481c0f
|
5.6 GB | Preview Download |
md5:7ba6d4fc9ec2ba70591e55c7fb9dfe5c
|
4.6 GB | Preview Download |
md5:a9f3cc08d7b23d636b05d2811d2b6d94
|
1.0 GB | Preview Download |
md5:80a3a3300d50c57ca65d58629a213854
|
6.8 GB | Preview Download |
md5:39e5156ec5957dbdd49b1f2285a7a658
|
4.9 GB | Preview Download |
md5:94c59a8ee112a87bab89eaa86afb3592
|
5.0 GB | Preview Download |
md5:c1b5c43b00dbbb120542892730ecfda2
|
4.3 GB | Preview Download |
md5:8d342fd6b0799defac80edabcca74cc0
|
2.0 GB | Preview Download |
md5:fa48fb5910e88d921ad2b60779ea22c7
|
4.5 GB | Preview Download |
Additional details
Software
- Repository URL
- https://github.com/Daniel-Ayz/CHeaT