Skip to main content

LLM application security testing framework — prompt injection, safety bypass, and indirect injection scanner

Project description

AICU

CI Python 3.10+ License: MIT

Black-box security scanner for LLM applications. Point it at any chat endpoint, get a report of what leaks.

AICU demo

AICU replays captured HTTP requests with adversarial payloads and evaluates whether the target discloses system prompts, internal tools, credentials, or responds to safety bypass attempts — no API keys or model access required.

Quick Start (2 minutes)

# Install
git clone https://github.com/Jake-Schoellkopf/aicu.git && cd aicu
pip install -e .

# Start the built-in vulnerable demo target
python demo_server.py &

# Run a full scan
aicu scan --request examples/demo_request.txt

What It Finds

Category Examples
Prompt Disclosure System prompt leakage via translation, repetition, reframing
Capability Leakage Tool names, API schemas, internal function exposure
Safety Bypass Roleplay, hypothetical, academic, completion tricks
Credential Exposure API keys, tokens, internal URLs leaked in responses
Multi-turn Escalation Crescendo-style attacks that build trust over turns
Indirect Injection Malicious payloads embedded in uploaded files
Harmful Content Phishing, malware generation, disinformation
Unauthorized Actions Privilege escalation, data exfiltration prompts

How It Works

  1. Capture a request to your LLM endpoint (Burp Suite, browser dev tools, curl)
  2. Save it as a raw HTTP file
  3. Run aicu scan --request req.txt
  4. Read the HTML/JSON/Markdown report with findings and evidence

AICU establishes a baseline response, then fires YAML-driven payloads (single-turn, multi-turn, file-based) and uses a strict multi-layer evaluator to classify results with minimal false positives.

Usage

# Full scan (recommended)
aicu scan --request req.txt

# Individual modes
aicu single-turn --request req.txt --best-of-n 10
aicu multi-turn --request req.txt
aicu safety --request req.txt --category safety_bypass
aicu indirect --request upload_req.txt

# With target profile
aicu scan --request req.txt --profile openai

Burp Suite Integration

  1. Capture a request in Burp (Proxy → HTTP history)
  2. Right-click → Copy to file → save as req.txt
  3. aicu scan --request req.txt

CI/CD

- name: LLM Security Scan
  run: aicu scan --request req.txt
  # Exit 0 = clean, 1 = confirmed findings, 2 = suspicious only

Target Profiles

Built-in: openai, anthropic, azure_openai, generic

Custom via YAML:

preset: openai
name: my_chatbot
response_path: choices[0].message.content
request_delay_ms: 200

False Positive Reduction

No external LLM needed for evaluation. AICU uses:

  • Payload echo detection
  • Baseline similarity comparison
  • Reflection/httpbin filtering
  • Entropy analysis
  • Refusal detection
  • Tiered confidence scoring

Output

Reports land in runs/run_<timestamp>/:

  • report.html — interactive HTML report
  • results.json — structured findings
  • report.md — markdown summary
  • evidence/ — raw response captures

Companion Tool

Tool Tests
AICU LLM applications (prompt injection, file upload, safety bypass)
AICU Agent MCP infrastructure (server probing, credential extraction, protocol attacks)

Install

pip install aicu-scanner    # from PyPI
# or
pip install -e .            # editable install from source
pip install -e ".[dev]"     # with test/lint tools

Run Tests

pytest -v

License

MIT

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

aicu_scanner-0.1.5.tar.gz (104.0 kB view details)

Uploaded Source

Built Distribution

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

aicu_scanner-0.1.5-py3-none-any.whl (128.9 kB view details)

Uploaded Python 3

File details

Details for the file aicu_scanner-0.1.5.tar.gz.

File metadata

  • Download URL: aicu_scanner-0.1.5.tar.gz
  • Upload date:
  • Size: 104.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for aicu_scanner-0.1.5.tar.gz
Algorithm Hash digest
SHA256 1af9f6d7f4607e9813cc8dadef18b8fbb967216fbe885d8bce2133c877fbd85f
MD5 129488262fafd3661feb3e9eab535f98
BLAKE2b-256 6483825d9d201667a061a82cc148358228de513e79e4b95877c69e7176a7da58

See more details on using hashes here.

File details

Details for the file aicu_scanner-0.1.5-py3-none-any.whl.

File metadata

  • Download URL: aicu_scanner-0.1.5-py3-none-any.whl
  • Upload date:
  • Size: 128.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for aicu_scanner-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 bf6898cff7620f4bc5155b9bfcd3080e033a83a59a6cd16f8ce20dc7203c4a5b
MD5 0116145319feb17c16bec71a96ad75cc
BLAKE2b-256 74ceb24a26ebb9a2914912d81646a8a1ee9c2d25341756cf9312e1dc6cc14fd0

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