
Guardian ist ein produktionsreifes, KI-gestütztes CLI-Tool zur Automatisierung von Penetrationstests, das Google Gemini und LangChain nutzt, um intelligente, schrittweise Penetrationstest-Workflows unter Einhaltung ethischer Hacking-Standards zu orchestrieren.
Guardian ist ein unternehmensgerechtes, KI-gestütztes Penetrationstest-Automatisierungsframework, das mehrere KI-Anbieter (OpenAI GPT-4, Claude, Google Gemini, OpenRouter, Requesty) mit kampferprobten Sicherheitstools kombiniert, um intelligente, adaptive Sicherheitsbewertungen mit umfassender Beweissicherung zu liefern.
Funktionen • Installation • Schnellstart • Dokumentation • Mitwirken
Guardian ist ausschließlich für autorisierte Sicherheitstests und Bildungszwecke konzipiert.
Sie sind vollständig dafür verantwortlich, sicherzustellen, dass Sie vor dem Testen eines Systems eine ausdrückliche schriftliche Genehmigung haben. Der unbefugte Zugriff auf Computersysteme ist gesetzeswidrig, einschließlich des Computer Fraud and Abuse Act (CFAA), der DSGVO und gleichwertiger internationaler Gesetze.
Durch die Nutzung von Guardian erklären Sie sich damit einverstanden, es nur auf Systemen zu verwenden, die Ihnen gehören oder für die Sie eine ausdrückliche Testgenehmigung haben.
[project.entry-points."guardian.providers"] aus – kein Fork erforderlichthink_deeply-Austausch-und-Wiederherstellung – großes Modell denkt, kleines Modell bewertet, ~10-fache Kostenreduzierung50 integrierte Sicherheitstools in 10 Kategorien:
execution_id verknüpftsession_<id>.json ermöglicht --resumedepends_on werden parallel bis zu max_parallel_tools ausgeführtparameters: {key: "{{ <id>.parsed.alive_hosts }}"} löst Abhängigkeiten von vorherigen Schrittergebnissen aufwhen:-Klauseln steuern die Ausführung basierend auf vorheriger Ausgabe--resume setzt nach dem letzten abgeschlossenen Schritt fortagent: debate | visual | analyst auf Analyseschrittensecurity-severity, Dedup fingerprints von execution_idguardian report --export sarif --export defectdojo --export slack<UNTRUSTED_TOOL_OUTPUT>-Begrenzer + ANSI-Entfernung verpacktasyncio-Subprozess; Agenten asynchron--help bleibt unter 500msGuardian kann diese Tools intelligent nutzen, falls installiert:
Hinweis: Guardian funktioniert auch ohne externe Tools, jedoch mit eingeschränkten Scan-Fähigkeiten. Die KI passt sich basierend auf verfügbaren Tools an.
git clone https://github.com/zakirkun/guardian-cli.git cd guardian-cli
### Schritt 2: Python-Umgebung einrichten
**Linux/macOS:**```bash
python3 -m venv venv
source venv/bin/activate
pip install -e .
Windows:```powershell python -m venv venv .\venv\Scripts\activate pip install -e .
### Schritt 3: KI-Anbieter konfigurieren
Guardian unterstützt mehrere KI-Anbieter. Konfigurieren Sie Ihren bevorzugten Anbieter in `config/guardian.yaml`:```yaml
# config/guardian.yaml
ai:
# Choose your provider: openai, claude, gemini, openrouter, or requesty
provider: openai
# OpenAI Configuration (recommended)
openai:
model: gpt-4o
api_key: sk-your-api-key-here # Or set OPENAI_API_KEY env var
# Claude Configuration
claude:
model: claude-3-5-sonnet-20241022
api_key: null # Or set ANTHROPIC_API_KEY env var
# Gemini Configuration
gemini:
model: gemini-2.5-pro
api_key: null # Or set GOOGLE_API_KEY env var
# OpenRouter Configuration
openrouter:
model: anthropic/claude-3.5-sonnet
api_key: null # Or set OPENROUTER_API_KEY env var
# Requesty Configuration (OpenAI-compatible gateway)
requesty:
model: openai/gpt-4o-mini
api_key: null # Or set REQUESTY_API_KEY env var
Oder Umgebungsvariablen verwenden:```bash
export OPENAI_API_KEY="sk-your-key-here" export ANTHROPIC_API_KEY="sk-ant-your-key-here" export GOOGLE_API_KEY="your-gemini-key" export OPENROUTER_API_KEY="your-router-key" export REQUESTY_API_KEY="your-requesty-key"
$env:OPENAI_API_KEY="sk-your-key-here" $env:ANTHROPIC_API_KEY="sk-ant-your-key-here"
### Schritt 4: Konfiguration initialisieren```bash
# Verify installation
python -m cli.main --help
# Check AI provider status
python -m cli.main models
python -m cli.main workflow list
python -m cli.main models
python -m cli.main workflow run --name web_pentest --target example.com --provider openai
### Beispielhafte Anwendungsszenarien
#### 1. Schneller Penetrationstest für Webanwendungen```bash
# Fast security check with evidence capture
python -m cli.main workflow run --name web_pentest --target https://dvwa.csalab.app
Erwartete Ausgabe:
python -m cli.main workflow run --name network --target 192.168.1.0/24
#### 3. Benutzerdefinierter Workflow mit Parametern```bash
# Run with workflow-specific parameters
# Parameters in workflow YAML override config defaults
python -m cli.main workflow run --name web_pentest --target example.com
Priorität von Workflow-Parametern:
python -m cli.main report --session 20260203_175905 --format html
#### 5. KI-Anbieter wechseln```bash
# Use OpenAI GPT-4
python -m cli.main workflow run --name web_pentest --target example.com --provider openai
# Use Claude
python -m cli.main workflow run --name web_pentest --target example.com --provider claude
# Use Gemini
python -m cli.main workflow run --name web_pentest --target example.com --provider gemini
# Local Ollama (no cloud)
OLLAMA_HOST=http://localhost:11434 python -m cli.main workflow run --name recon --target scanme.nmap.org --provider ollama
# Any OpenAI-compatible endpoint (vLLM, LM Studio, Together, Groq)
python -m cli.main workflow run --name web_pentest --target example.com --provider openai_compatible
python -m cli.main kb seed
python -m cli.main kb status
python -m cli.main kb query "log4j JNDI" --top 5
python -m cli.main kb update --kind cve --file ./nvd-2025.json
Analysten-Grounding in `config/guardian.yaml` aktivieren:```yaml
rag:
enabled: true
top_k: 5
python -m cli.main workflow run --name web_pentest_with_debate --target https://example.com
Drei Rollen (roter Befürworter, blauer Befürworter, Richter) diskutieren nur mehrdeutige Ergebnisse — eindeutige Urteile überspringen die Debatte, um die Token-Kosten zu begrenzen.
#### 8. Visual Triage (vision-LLM)```bash
# Captures full-page screenshots and feeds them to a vision-capable provider
python -m cli.main workflow run --name web_visual_pentest --target https://example.com --provider openai
Erfordert playwright: pip install playwright && python -m playwright install chromium. Wird stillschweigend übersprungen, wenn der aktive Anbieter keine Vision-Unterstützung hat.
python -m cli.main report --session 20260203_175905 --export sarif
python -m cli.main report --session 20260203_175905 --export sarif --export defectdojo --export slack
--slack-webhook https://hooks.slack.com/services/...
#### 10. Telemetrie + gelernter Ranker (offline)```bash
# Anonymise sessions into JSONL (no raw targets, no commands, no secrets)
python -m cli.main telemetry export ./reports --out telemetry.jsonl
# Train the offline tool ranker
python -m cli.main telemetry train telemetry.jsonl
# Inspect what the ranker learned
python -m cli.main telemetry status
Aktivieren in der Konfiguration:```yaml ai: use_learned_ranker: true # ToolAgent calls ranker before LLM selector
> **Windows-Benutzer**: Verwenden Sie `python -m cli.main` anstelle von `guardian`
---
## 🔧 Konfiguration
### Vollständige Konfigurationsreferenz
Bearbeiten Sie `config/guardian.yaml`, um das Verhalten von Guardian anzupassen:```yaml
# AI Configuration
ai:
provider: openai # openai, claude, gemini, openrouter, requesty
openai:
model: gpt-4o
api_key: sk-your-key # Or use OPENAI_API_KEY env var
claude:
model: claude-3-5-sonnet-20241022
api_key: null
gemini:
model: gemini-2.5-pro
api_key: null
temperature: 0.2
max_tokens: 8000
# Penetration Testing Settings
pentest:
safe_mode: true # Prevent destructive actions
require_confirmation: true # Confirm before each step
max_parallel_tools: 3 # Concurrent tool execution
max_depth: 3 # Maximum scan depth
tool_timeout: 300 # Tool timeout in seconds
# Output Configuration
output:
format: markdown # markdown, html, json
save_path: ./reports
include_reasoning: true
verbosity: normal # quiet, normal, verbose, debug
# Scope Validation
scope:
blacklist: # Never scan these
- 127.0.0.0/8
- 10.0.0.0/8
- 172.16.0.0/12
- 192.168.0.0/16
require_scope_file: false
max_targets: 100
# Tool Configuration (defaults)
tools:
httpx:
threads: 50
timeout: 10
tech_detect: true
nuclei:
severity: ["critical", "high", "medium"]
templates_path: ~/nuclei-templates
nmap:
default_args: "-sV -sC"
timing: T4
Erstellen Sie benutzerdefinierte Workflows im Verzeichnis workflows/:```yaml
name: custom_web_assessment description: Custom web security testing
steps:
name: http_discovery type: tool tool: httpx parameters: threads: 100 # Override config default (50) timeout: 15 # Override config default (10) tech_detect: true
name: vulnerability_scan type: tool tool: nuclei parameters: severity: ["critical", "high"] # Override config templates_path: ".shared/nuclei/templates/"
name: generate_report type: report
**Parameter-Priorität:**
- Workflow-Parameter **überschreiben** Konfigurationsparameter
- Konfigurationsparameter **überschreiben** Tool-Standardwerte
- In sich geschlossene, wiederverwendbare Workflows
---
## 📖 Dokumentation
### Benutzerhandbücher
- **[Schnellstartanleitung](https://github.com/zakirkun/guardian-cli/blob/HEAD/QUICKSTART.md)** - In 5 Minuten startklar
- **[Befehlsreferenz](https://github.com/zakirkun/guardian-cli/blob/HEAD/docs/)** - Ausführliche Dokumentation aller Befehle
- **[Konfigurationshandbuch](https://github.com/zakirkun/guardian-cli/blob/HEAD/config/guardian.yaml)** - Vollständige Konfigurationsreferenz
- **[Workflow-Anleitung](https://github.com/zakirkun/guardian-cli/blob/HEAD/docs/WORKFLOW_GUIDE.md)** - Erstellen benutzerdefinierter Workflows
- **[Eval-Anleitung](https://github.com/zakirkun/guardian-cli/blob/HEAD/docs/EVAL_GUIDE.md)** - Ausführen und Erweitern der Eval-Testumgebung
- **[Plugin-Anleitung](https://github.com/zakirkun/guardian-cli/blob/HEAD/docs/PLUGIN_GUIDE.md)** - Einbinden von Drittanbieter-Anbietern und Tools
- **[Änderungsprotokoll](https://github.com/zakirkun/guardian-cli/blob/HEAD/CHANGELOG.md)** - Versionsverlauf und Migrationshinweise
### Entwicklerhandbücher
- **[Erstellen benutzerdefinierter Tools](https://github.com/zakirkun/guardian-cli/blob/HEAD/docs/TOOLS_DEVELOPMENT_GUIDE.md)** - Erstellen Sie Ihre eigenen Tool-Integrationen
- **[Workflow-Entwicklung](https://github.com/zakirkun/guardian-cli/blob/HEAD/docs/WORKFLOW_GUIDE.md)** - Erstellen benutzerdefinierter Test-Workflows
- **[Verfügbare Tools](https://github.com/zakirkun/guardian-cli/blob/HEAD/tools/README.md)** - Übersicht über integrierte Tools
### Architekturübersicht```
Guardian Architecture:
┌─────────────────────────────────────────┐
│ AI Provider Layer │
│ (OpenAI, Claude, Gemini, OpenRouter, │
│ Requesty) │
└─────────────────────────────────────────┘
│
┌─────────────────────────────────────────┐
│ Multi-Agent System │
│ Planner → Tool Agent → Analyst → │
│ Reporter │
└─────────────────────────────────────────┘
│
┌─────────────────────────────────────────┐
│ Workflow Engine │
│ - Parameter Priority │
│ - Evidence Capture │
│ - Session Management │
└─────────────────────────────────────────┘
│
┌─────────────────────────────────────────┐
│ Tool Integration Layer │
│ (19 Security Tools) │
└─────────────────────────────────────────┘
guardian-cli/ ├── ai/ # AI integration │ └── providers/ # Multi-provider support │ ├── base_provider.py │ ├── openai_provider.py │ ├── claude_provider.py │ ├── gemini_provider.py │ ├── openrouter_provider.py │ └── requesty_provider.py ├── cli/ # Command-line interface │ └── commands/ # CLI commands (init, scan, recon, etc.) ├── core/ # Core agent system │ ├── agent.py # Base agent │ ├── planner.py # Planner agent │ ├── tool_agent.py # Tool selection agent │ ├── analyst_agent.py # Analysis agent │ ├── reporter_agent.py # Reporting agent │ ├── memory.py # State management │ └── workflow.py # Workflow orchestration ├── tools/ # Pentesting tool wrappers │ ├── nmap.py # Nmap integration │ ├── masscan.py # Masscan integration │ ├── httpx.py # httpx integration │ ├── subfinder.py # Subfinder integration │ ├── amass.py # Amass integration │ ├── nuclei.py # Nuclei integration │ ├── sqlmap.py # SQLMap integration │ ├── wpscan.py # WPScan integration │ ├── whatweb.py # WhatWeb integration │ ├── wafw00f.py # Wafw00f integration │ ├── nikto.py # Nikto integration │ ├── testssl.py # TestSSL integration │ ├── sslyze.py # SSLyze integration │ ├── gobuster.py # Gobuster integration │ ├── ffuf.py # FFuf integration │ └── ... # 15 tools total ├── workflows/ # Workflow definitions (YAML) ├── utils/ # Utilities (logging, validation) ├── config/ # Configuration files ├── docs/ # Documentation └── reports/ # Generated reports
---
## 🆕 Neueste Aktualisierungen
### Version 4.0.0 — Neuartige F&E + Abdeckungserweiterung
**Track A — KI/Agent F&E (7 Elemente)**
| ID | Element | Highlights |
|---|---|---|
| A1 | RAG-Wissensdatenbank | `core/knowledge_base.py` SQLite + FTS5 + optionale Einbettungen; Analystenfundierung über `kb_references`-Slot; `guardian kb {seed,update,query,status}` |
| A2 | Multi-Agenten-Debatten-Triage | Rot/Blau/Richter nur über MEDIUM-fp-Ergebnisse; neuer Analyseschritttyp `agent: debate` |
| A3 | Vision-LLM-Bildschirmfotoanalyse | `tools/playwright_screenshot.py` + `core/agents/visual_triage.py`; OpenAI + Claude `generate_with_images` |
| A4 | Plugin-Vertrag + lokale Anbieter | Entry-Point-Erkennung für Anbieter UND Tools; **Ollama** + **OpenAI-kompatible** Anbieter ausgeliefert |
| A5 | Gelernte Toolauswahl (offline) | `core/learners/tool_ranker.py` + `core/telemetry.py`; Opt-in via `ai.use_learned_ranker: true` |
| A6 | Eval-Harness | `evals/{__init__,scoring,fixtures_loader,test_*}.py` + golden Fixtures; 3 Stufen (Parser, Workflow, Agent-Grundierung) |
| A7 | Richter-Modell-Upgrade | `BaseAgent.think_deeply(judge_model=...)` Swap-and-Restore; Transkript-Beurteilung für ~10-fache Kostenreduktion |
**Track B — Tool-Abdeckungserweiterung (7 Elemente)**
| ID | Kategorie | Hinzugefügte Tools |
|---|---|---|
| B8 | Active Directory | crackmapexec, bloodhound, kerbrute, impacket-secretsdump |
| B9 | Mobile Android | mobsf, apkleaks, objection |
| B10 | API-Fuzzer | schemathesis, restler, cariddi |
| B11 | SAST + Geheimnisse | semgrep, trufflehog, dependency-check |
| B12 | LLM-Red-Team | garak, pyrit, prompt_fuzz |
| B13 | Burp/ZAP-Brücke | zap, burp |
| B14 | Ausgabe-Exporteure | SARIF v2.1.0, DefectDojo, Slack |
**Qualitätsmaßstab:**
- 296 Tests bestanden (+93% gegenüber v3-Basislinie von 153)
- Alle v3-Härtungen beibehalten: Prompt-Injection-Trennzeichen, Schlüsselbereinigung, DNS-Auflösungsbereich, atomare Checkpoints, Log-Rotation, verzögertes Tool-Laden
- Startzeit von `guardian --help` bleibt <500ms trotz 50 Tools
- Neue CLI-Oberflächen: `guardian kb`, `guardian telemetry`
- 8 neue ausgelieferte Workflows: `web_pentest_with_debate`, `web_visual_pentest`, `ad_assessment`, `mobile_android`, `llm_redteam`, `sast_review`, `api_pentest_v2`, plus bestehende v3-Workflows
### Version 3.0.0 — Härtung + Engine v2
- Prompt-Injection-Trennzeichen (`<UNTRUSTED_TOOL_OUTPUT>`) auf allen Tool-Ausgaben
- DAG-Scheduler, Pydantic-Schemas, atomare Checkpoints, `--resume`
- 11 neue Wrapper (Cloud/Container/SBOM/GraphQL/JWT/OSINT)
- CVSS v3.1-Neuberechnung + Drift-Erkennung
- Log-Rotation, Schlüsselbereinigung beim Schreiben
- Bestätigungsgate für aktive+ Tools verdrahtet
### Version 2.0.0
- Multi-Anbieter-KI (OpenAI, Claude, Gemini, OpenRouter, Requesty)
- Evidenzverknüpfung über `execution_id`
- Workflow-Parameter-Prioritätssystem
---
## 🤝 Mitwirken
Wir freuen uns über Beiträge! So geht's:
### Entwicklungsumgebung einrichten```bash
# Fork and clone
git clone https://github.com/zakirkun/guardian-cli.git
cd guardian-cli
# Install dev dependencies
pip install -e ".[dev]"
# Run tests
pytest tests/
# Format code
black .
Siehe CONTRIBUTING.md für detaillierte Richtlinien.
Veröffentlicht in v4.0.0:
--resumeZukünftig:
Importfehler```bash
pip install -e . --force-reinstall
**Fehler des KI-Anbieters**```bash
# Verify API key is set
python -m cli.main models
# Check provider configuration
cat config/guardian.yaml | grep -A 5 "ai:"
Tool nicht gefunden```bash
which nmap which httpx
**Workflow lädt nicht**```bash
# Check workflow file exists
ls workflows/web_pentest.yaml
# Verify YAML syntax
python -c "import yaml; yaml.safe_load(open('workflows/web_pentest.yaml'))"
Windows-Befehl nicht gefunden```powershell
python -m cli.main --help
Für weitere Hilfe, [öffnen Sie ein Issue](https://github.com/zakirkun/guardian-cli/issues).
---
## 📄 Lizenz
Dieses Projekt ist unter der MIT-Lizenz lizenziert – siehe die Datei [LICENSE](https://github.com/zakirkun/guardian-cli/blob/HEAD/LICENSE) für Details.
---
## 🙏 Danksagungen
- **OpenAI** – GPT-4-Fähigkeiten
- **Anthropic** – Claude KI
- **Google** – Gemini KI
- **LangChain** – KI-Orchestrierungs-Framework
- **ProjectDiscovery** – Open-Source-Sicherheitstools (httpx, subfinder, nuclei)
- **Nmap** – Netzwerkerkundung und Sicherheitsaudit
- **Die Sicherheits-Community** – Tool-Entwickler und Forscher
---
## 📞 Support & Kontakt
- **GitHub Issues**: [Fehler melden oder Funktionen anfragen](https://github.com/zakirkun/guardian-cli/issues)
- **Diskussionen**: [An Community-Diskussionen teilnehmen](https://github.com/zakirkun/guardian-cli/discussions)
- **Dokumentation**: [Dokumentation lesen](https://github.com/zakirkun/guardian-cli/blob/HEAD/docs/)
- **Sicherheit**: Melden Sie Schwachstellen vertraulich an [email protected]
---
## 🌟 Star History
<a href="https://github.com/zakirkun/guardian-cli/stargazers">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=zakirkun/guardian-cli&type=Date&theme=dark" />
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=zakirkun/guardian-cli&type=Date" />
Sternverlauf-Diagramm
</picture>
</a>
---
---
<div align="center">
**Guardian** – Intelligentes, ethisches, automatisiertes Penetrationstesting
Mit ❤️ gemacht von der Sicherheits-Community
[⬆ Zurück nach oben](#-guardian)
</div>
| Kategorie | Tools |
|---|
| Netzwerk | nmap, masscan |
| Web-Erkundung | httpx, whatweb, wafw00f, cmseek |
| Subdomain / DNS | subfinder, amass, dnsrecon |
| Schwachstellenscanning | nuclei, nikto, sqlmap, wpscan |
| SSL/TLS-Tests | testssl, sslyze |
| Inhaltserkennung | gobuster, ffuf, arjun |
| Sicherheitsanalyse | xsstrike, gitleaks |
| Cloud / Container / SBOM | trivy, grype, syft, scoutsuite, prowler, kube-bench |
| Moderne Web + OSINT | graphw00f, clairvoyance, jwt_tool, shodan, theharvester |
| SAST + Secrets (B11) | semgrep, trufflehog, dependency-check |
| API-Fuzzer (B10) | schemathesis, cariddi, restler |
| Burp/ZAP-Brücke (B13) | zap, burp |
| LLM-Red-Team (B12) | garak, pyrit, prompt_fuzz |
| Mobil Android (B9) | mobsf, apkleaks, objection |
| Active Directory (B8) | crackmapexec, bloodhound, kerbrute, impacket-secretsdump |
| Visuelle Beweise (A3) | playwright_screenshot |
| Tool | Zweck | Installation |
|---|
| nmap | Portscanning | apt install nmap / choco install nmap |
| masscan | Ultraschneller Scan | apt install masscan / Aus Quellen bauen |
| httpx | HTTP-Prüfung | go install github.com/projectdiscovery/httpx/cmd/httpx@latest |
| subfinder | Subdomain-Enumeration | go install github.com/projectdiscovery/subfinder/v2/cmd/subfinder@latest |
| amass | Netzwerkkartierung | go install github.com/owasp-amass/amass/v4/...@master |
| nuclei | Schwachstellenscanning | go install github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest |
| whatweb | Technologiefingerabdruck | gem install whatweb / apt install whatweb |
| wafw00f | WAF-Erkennung | pip install wafw00f |
| nikto | Web-Schwachstellenscan | apt install nikto |
| sqlmap | SQL-Injection | pip install sqlmap / apt install sqlmap |
| wpscan | WordPress-Scan | gem install wpscan |
| testssl | SSL/TLS-Tests | Download von testssl.sh |
| sslyze | SSL/TLS-Analyse | pip install sslyze |
| gobuster | Verzeichnis-Brute-Force | go install github.com/OJ/gobuster/v3@latest |
| ffuf | Web-Fuzzing | go install github.com/ffuf/ffuf/v2@latest |
| arjun | Parametererkennung | pip install arjun |
| xsstrike | Fortgeschrittenes XSS | git clone https://github.com/s0md3v/XSStrike |
| gitleaks | Secret-Scanning | go install github.com/zricethezav/gitleaks/v8@latest |
| cmseek | CMS-Erkennung | pip install cmseek |
| dnsrecon | DNS-Enumeration | pip install dnsrecon |