Skip to main content

Autonomous Cyber Reasoning System - Red Team & Blue Team AI agents

Project description

Spectrum – Red/Blue Team AI Framework

A dual‑mode autonomous security platform.
Run as Red Team to attack a target, or as Blue Team to monitor, detect intrusions and hot‑patch vulnerabilities.
Powered by Hugging Face (or AMD Cloud) models.


Prerequisites

  • Python 3.10 or newer
  • pip
  • A Hugging Face account (hf.co) and an API token
  • Git (optional – you can also download the ZIP)

Clone the project

git clone https://github.com/yourusername/spectrum.git
cd spectrum

If you downloaded a ZIP, extract it and open a terminal inside the extracted folder.


Install dependencies

Create and activate a virtual environment (recommended):

python3 -m venv venv
source venv/bin/activate       # macOS / Linux
venv\Scripts\activate          # Windows

Install the required packages:

pip install -r requirements.txt

On macOS with Homebrew Python you may need:

pip install --break-system-packages -r requirements.txt

Configuration

API Provider & Token

On the first run, Spectrum asks which provider you want to use:

  1. Hugging Face – you will be prompted for your HF_TOKEN.
  2. AMD Cloud – you will be prompted for your AMD_API_KEY.

The token is saved in a .env file.
You can also create that file manually:

echo "HF_TOKEN=hf_xxxxxxxxxxxxxxxxxxxx" > .env

(Replace hf_xxxxxxxxxxxxxxxxxxxx with your actual token.)

Model selection (config.json)

The default models work out of the box.
You can change final_model_id (the main agent) and sentinel_model_id (the lightweight Blue Team watcher) inside config.json.

Example excerpt:

{
    "final_model_id": "deepseek-ai/DeepSeek-V4-Flash",
    "sentinel_model_id": "Qwen/Qwen2.5-3B-Instruct"
}

Run a vulnerable target (optional)

The project includes a deliberately vulnerable Flask application (lab.py).
Start it in a separate terminal to give the agents something to attack/defend:

python3 lab.py

It listens on http://127.0.0.1:4999 (or the port printed in the terminal).


Launch Spectrum

python3 main.py

You will see the Spectrum banner. Press Enter to continue.

Choose your mode

Select Operational Module:
  1. Red Team (Offensive)
  2. Blue Team (Defensive)
  3. Exit

Red Team Mode

  1. Enter a target / objective, for example:
    Find the hidden flag on http://127.0.0.1:4999
  2. The agent will plan, execute terminal commands, write scripts, and attempt to breach the target.
  3. Ctrl+C to pause, then:
    • s – steer the agent (give an instruction)
    • p – pause and save the session
    • Enter – resume

Blue Team Mode

  1. Enter the URL to defend, for example:
    http://127.0.0.1:4999
  2. The Blue Team will:
    • Kill the existing server (if any) and restart it with logging enabled.
    • Start a Sentinel (small AI model) that watches the log file every few seconds.
    • When an attack is detected:
      • Record the attacker IP (in blocked_ips.txt).
      • Ask the main model to classify the attack.
      • Automatically patch the vulnerable code (SQLi, command injection, SSTI, etc.).
      • Restart the server with a fresh log.
  3. Ctrl+C to pause, same steering options as Red Team.

File structure (key files)

spectrum/
├── main.py               # Entry point, mode selector
├── redteamer.py          # Offensive agent logic
├── blueteamer.py         # Defensive agent (Sentinel + patcher)
├── tools.py              # Tool implementations (shell, HTTP, file I/O, patch engine)
├── lab.py                # Vulnerable SAAS lab (for testing)
├── config.json           # Model IDs and provider settings
├── requirements.txt      # Python dependencies
├── tutorials/            # Optional playbooks loaded by agents
│   ├── BLUE_DEFENSE_PLAYBOOK.md
│   └── VULNERABLE_APP_SOURCE.txt
├── blocked_ips.txt       # IPs blocked during Blue Team sessions
├── attacks.log           # Record of detected attacks
├── server.log            # Flask output (created at runtime)
├── session.md            # Live session log (viewed by viewer.py)
└── thoughts.json         # Agent reasoning trail

Troubleshooting

  • ModuleNotFoundError → run pip install -r requirements.txt again.
  • API Quota Exhausted → wait a few minutes or switch to another model in config.json.
  • Blue Team doesn't detect attacks → ensure the target was started with logging (the Blue Team does this automatically for lab.py).
  • Terminal output looks broken → run main.py in a standard terminal; Rich formatting works best there.

Deployment (Hugging Face Spaces / Streamlit Cloud)

The repository includes app.py for Streamlit deployment and a Dockerfile for Docker Spaces.
Refer to the comments in those files for details.


For questions or contributions, open an issue on the project's GitHub page.

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

spectrum_security-1.35.4.tar.gz (21.3 kB view details)

Uploaded Source

Built Distribution

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

spectrum_security-1.35.4-py3-none-any.whl (21.6 kB view details)

Uploaded Python 3

File details

Details for the file spectrum_security-1.35.4.tar.gz.

File metadata

  • Download URL: spectrum_security-1.35.4.tar.gz
  • Upload date:
  • Size: 21.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.4

File hashes

Hashes for spectrum_security-1.35.4.tar.gz
Algorithm Hash digest
SHA256 6d35fc0f70aa39097c8a5df7c90082b0a3d778728151dbad00c23cb43c9b4bd9
MD5 8beb9deeb88841754817107b9194c41a
BLAKE2b-256 d82d265d2848b48df8823a2251445058cc1db55a8487e01dbbcc27fe8fcafbaf

See more details on using hashes here.

File details

Details for the file spectrum_security-1.35.4-py3-none-any.whl.

File metadata

File hashes

Hashes for spectrum_security-1.35.4-py3-none-any.whl
Algorithm Hash digest
SHA256 3f4a317725b5bb2420e03ffac3abde5b53bdaf1ef67773e50fe9a16211f598b7
MD5 d29b2f72ffed505be9c8441beec145fa
BLAKE2b-256 a6c4a452c273c845d78dc175bd46bd7a92141f263f75239576406383a1ab8c1b

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