
Guardian — это готовый к промышленной эксплуатации CLI-инструмент для автоматизации тестирования на проникновение на основе ИИ, который использует Google Gemini и LangChain для организации интеллектуальных, пошаговых рабочих процессов тестирования на проникновение при соблюдении стандартов этичного хакинга.
Guardian — это корпоративная среда автоматизации тестирования на проникновение на основе ИИ, которая объединяет несколько поставщиков ИИ (OpenAI GPT-4, Claude, Google Gemini, OpenRouter, Requesty) с проверенными инструментами безопасности для проведения интеллектуальных, адаптивных оценок безопасности с полным сбором доказательств.
Возможности • Установка • Быстрый старт • Документация • Вклад в проект
Guardian предназначен исключительно для авторизованного тестирования безопасности и образовательных целей.
Вы несёте полную ответственность за получение явного письменного разрешения перед тестированием любой системы. Несанкционированный доступ к компьютерным системам является незаконным в соответствии с такими законами, как Computer Fraud and Abuse Act (CFAA), GDPR и аналогичным международным законодательством.
Используя Guardian, вы соглашаетесь использовать его только на системах, которые вам принадлежат или на тестирование которых у вас есть явное разрешение.
[project.entry-points."guardian.providers"] — не требуется форкthink_deeply замена и восстановление — большая модель думает, маленькая модель судит, сокращение затрат ~в 10 разfp_probability решающе50 интегрированных инструментов безопасности в 10 категориях:
execution_idsession_<id>.json позволяет использовать --resumedepends_on выполняются параллельно до max_parallel_toolsparameters: {key: "{{ <id>.parsed.alive_hosts }}"} разрешается относительно результатов предыдущего шагаwhen: управляют выполнением на основе предыдущих выходных данных--resume продолжает после последнего завершённого шагаagent: debate | visual | analyst в шагах анализаsecurity-severity, дедупликация fingerprints из execution_idguardian report --export sarif --export defectdojo --export slack<UNTRUSTED_TOOL_OUTPUT> + очистка ANSIasyncio; агенты асинхронны--help занимает менее 500 мсGuardian может интеллектуально использовать эти инструменты, если они установлены:
Примечание: Guardian работает и без внешних инструментов, но с ограниченными возможностями сканирования. ИИ адаптируется в зависимости от доступных инструментов.
git clone https://github.com/zakirkun/guardian-cli.git cd guardian-cli
### Шаг 2: Настройка окружения Python
**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 .
### Шаг 3: Настройка AI-провайдера
Guardian поддерживает несколько AI-провайдеров. Настройте предпочитаемого провайдера в `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
Или используйте переменные окружения:```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"
### Шаг 4: Инициализация конфигурации```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
### Примеры сценариев использования
#### 1. Быстрое тестирование на проникновение веб-приложения```bash
# Fast security check with evidence capture
python -m cli.main workflow run --name web_pentest --target https://dvwa.csalab.app
Ожидаемый результат:
python -m cli.main workflow run --name network --target 192.168.1.0/24
#### 3. Настраиваемый рабочий процесс с параметрами```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
Приоритет параметров рабочего процесса:
python -m cli.main report --session 20260203_175905 --format html
#### 5. Смена провайдеров ИИ```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
Включите привязку аналитика в `config/guardian.yaml`:```yaml
rag:
enabled: true
top_k: 5
python -m cli.main workflow run --name web_pentest_with_debate --target https://example.com
Три роли (красный защитник, синий защитник, судья) обсуждают только неоднозначные выводы — уверенные вердикты пропускают обсуждение, чтобы ограничить затраты токенов.
#### 8. Визуальная триаж (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
Требуется playwright: pip install playwright && python -m playwright install chromium. Пропускается без уведомления, если активный провайдер не поддерживает vision.
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. Телеметрия + Learned Ranker (оффлайн)```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
Включить в конфиге:```yaml ai: use_learned_ranker: true # ToolAgent calls ranker before LLM selector
> **Пользователям Windows**: используйте `python -m cli.main` вместо `guardian`
---
## 🔧 Конфигурация
### Полный справочник по конфигурации
Отредактируйте `config/guardian.yaml`, чтобы настроить поведение Guardian:```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
Создайте собственные рабочие процессы в каталоге 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
**Приоритет параметров:**
- Параметры рабочего процесса **переопределяют** параметры конфигурации
- Параметры конфигурации **переопределяют** значения по умолчанию инструмента
- Автономные, многократно используемые рабочие процессы
---
## 📖 Документация
### Руководства пользователя
- **[Руководство по быстрому старту](https://github.com/zakirkun/guardian-cli/blob/HEAD/QUICKSTART.md)** — Начало работы за 5 минут
- **[Справочник команд](https://github.com/zakirkun/guardian-cli/blob/HEAD/docs/)** — Подробная документация по всем командам
- **[Руководство по настройке](https://github.com/zakirkun/guardian-cli/blob/HEAD/config/guardian.yaml)** — Полный справочник по конфигурации
- **[Руководство по рабочим процессам](https://github.com/zakirkun/guardian-cli/blob/HEAD/docs/WORKFLOW_GUIDE.md)** — Создание пользовательских рабочих процессов
- **[Руководство по оценке](https://github.com/zakirkun/guardian-cli/blob/HEAD/docs/EVAL_GUIDE.md)** — Запуск и расширение средства оценки
- **[Руководство по плагинам](https://github.com/zakirkun/guardian-cli/blob/HEAD/docs/PLUGIN_GUIDE.md)** — Поставка сторонних провайдеров и инструментов
- **[Список изменений](https://github.com/zakirkun/guardian-cli/blob/HEAD/CHANGELOG.md)** — История версий и примечания по миграции
### Руководства для разработчиков
- **[Создание пользовательских инструментов](https://github.com/zakirkun/guardian-cli/blob/HEAD/docs/TOOLS_DEVELOPMENT_GUIDE.md)** — Разработка собственных интеграций инструментов
- **[Разработка рабочих процессов](https://github.com/zakirkun/guardian-cli/blob/HEAD/docs/WORKFLOW_GUIDE.md)** — Создание пользовательских тестовых рабочих процессов
- **[Доступные инструменты](https://github.com/zakirkun/guardian-cli/blob/HEAD/tools/README.md)** — Обзор интегрированных инструментов
### Обзор архитектуры```
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
---
## 🆕 Последние обновления
### Версия 4.0.0 — Новые исследования и расширение покрытия
**Трек A — ИИ/Агентские исследования (7 пунктов)**
| ID | Элемент | Особенности |
|---|---|---|
| A1 | RAG база знаний | `core/knowledge_base.py` SQLite + FTS5 + optional embeddings; обоснование аналитика через слот `kb_references`; `guardian kb {seed,update,query,status}` |
| A2 | Многоагентная дебатная триажа | Красный/Синий/Судья только для находок MEDIUM-fp; новый тип шага анализа `agent: debate` |
| A3 | Анализ скриншотов с помощью Vision-LLM | `tools/playwright_screenshot.py` + `core/agents/visual_triage.py`; OpenAI + Claude `generate_with_images` |
| A4 | Контракт плагинов + локальные провайдеры | Обнаружение точек входа для провайдеров И инструментов; поставляются провайдеры **Ollama** + **OpenAI-совместимые** |
| A5 | Обученный выбор инструментов (офлайн) | `core/learners/tool_ranker.py` + `core/telemetry.py`; опционально через `ai.use_learned_ranker: true` |
| A6 | Оценочная обвязка | `evals/{__init__,scoring,fixtures_loader,test_*}.py` + золотые фикстуры; 3 уровня (парсер, workflow, обоснование агента) |
| A7 | Обновление модели судьи | `BaseAgent.think_deeply(judge_model=...)` — замена и восстановление; оценка транскриптов для снижения затрат ~в 10 раз |
**Трек B — Расширение покрытия инструментов (7 пунктов)**
| ID | Категория | Добавленные инструменты |
|---|---|---|
| B8 | Active Directory | crackmapexec, bloodhound, kerbrute, impacket-secretsdump |
| B9 | Мобильные Android | mobsf, apkleaks, objection |
| B10 | Фаззеры API | schemathesis, restler, cariddi |
| B11 | SAST + секреты | semgrep, trufflehog, dependency-check |
| B12 | Red-team для LLM | garak, pyrit, prompt_fuzz |
| B13 | Мост Burp/ZAP | zap, burp |
| B14 | Экспортеры вывода | SARIF v2.1.0, DefectDojo, Slack |
**Планка качества:**
- 296 тестов проходят (+93% от базового значения v3 в 153)
- Все закалки v3 сохранены: разделители для инъекций подсказок, очистка ключей, область разрешения DNS, атомарные контрольные точки, ротация логов, ленивая загрузка инструментов
- Время запуска `guardian --help` остаётся <500 мс, несмотря на 50 инструментов
- Новые CLI поверхности: `guardian kb`, `guardian telemetry`
- 8 новых поставляемых workflow: `web_pentest_with_debate`, `web_visual_pentest`, `ad_assessment`, `mobile_android`, `llm_redteam`, `sast_review`, `api_pentest_v2`, плюс существующие workflow v3
### Версия 3.0.0 — Закалка + Engine v2
- Разделители для инъекций подсказок (`<UNTRUSTED_TOOL_OUTPUT>`) на всех выводах инструментов
- DAG планировщик, Pydantic схемы, атомарные контрольные точки, `--resume`
- 11 новых обёрток (облако/контейнер/SBOM/GraphQL/JWT/OSINT)
- Пересчёт CVSS v3.1 + обнаружение дрейфа
- Ротация логов, очистка ключей при записи
- Подтверждающий шлюз, подключённый для активных+ инструментов
### Версия 2.0.0
- Многопровайдерный ИИ (OpenAI, Claude, Gemini, OpenRouter, Requesty)
- Связывание доказательств через `execution_id`
- Система приоритетов параметров workflow
---
## 🤝 Вклад
Мы приветствуем вклад! Вот как:
### Настройка среды разработки```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 .
Подробные рекомендации см. в CONTRIBUTING.md.
Выпущено в v4.0.0:
--resumeВ перспективе:
Ошибки импорта```bash
pip install -e . --force-reinstall
**Ошибки поставщика ИИ**```bash
# Verify API key is set
python -m cli.main models
# Check provider configuration
cat config/guardian.yaml | grep -A 5 "ai:"
Инструмент не найден```bash
which nmap which httpx
**Рабочий процесс не загружается**```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 не найдена```powershell
python -m cli.main --help
Для получения дополнительной помощи, [создайте issue](https://github.com/zakirkun/guardian-cli/issues).
---
## 📄 License
Этот проект лицензирован по лицензии MIT - подробности см. в файле [LICENSE](https://github.com/zakirkun/guardian-cli/blob/HEAD/LICENSE).
---
## 🙏 Благодарности
- **OpenAI** - возможности GPT-4
- **Anthropic** - Claude AI
- **Google** - Gemini AI
- **LangChain** - фреймворк оркестрации ИИ
- **ProjectDiscovery** - инструменты безопасности с открытым исходным кодом (httpx, subfinder, nuclei)
- **Nmap** - исследование сети и аудит безопасности
- **The Security Community** - разработчики и исследователи инструментов
---
## 📞 Поддержка и контакты
- **GitHub Issues**: [Сообщить об ошибках или запросить функции](https://github.com/zakirkun/guardian-cli/issues)
- **Discussions**: [Присоединиться к обсуждениям сообщества](https://github.com/zakirkun/guardian-cli/discussions)
- **Documentation**: [Читать документацию](https://github.com/zakirkun/guardian-cli/blob/HEAD/docs/)
- **Security**: Сообщайте об уязвимостях конфиденциально на [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" />
Star History Chart
</picture>
</a>
---
---
<div align="center">
**Guardian** - Умное, этичное, автоматизированное тестирование на проникновение
Сделано с ❤️ сообществом безопасности
[⬆ Наверх](#-guardian)
</div>
| Категория | Инструменты |
|---|
| Сеть | nmap, masscan |
| Веб-рекогносцировка | httpx, whatweb, wafw00f, cmseek |
| Поддомены / DNS | subfinder, amass, dnsrecon |
| Сканирование уязвимостей | nuclei, nikto, sqlmap, wpscan |
| Тестирование SSL/TLS | testssl, sslyze |
| Обнаружение контента | gobuster, ffuf, arjun |
| Анализ безопасности | xsstrike, gitleaks |
| Облако / Контейнеры / SBOM | trivy, grype, syft, scoutsuite, prowler, kube-bench |
| Современный веб + OSINT | graphw00f, clairvoyance, jwt_tool, shodan, theharvester |
| SAST + Секреты (B11) | semgrep, trufflehog, dependency-check |
| Фаззеры API (B10) | schemathesis, cariddi, restler |
| Мост Burp/ZAP (B13) | zap, burp |
| Красная команда LLM (B12) | garak, pyrit, prompt_fuzz |
| Мобильные Android (B9) | mobsf, apkleaks, objection |
| Active Directory (B8) | crackmapexec, bloodhound, kerbrute, impacket-secretsdump |
| Визуальные доказательства (A3) | playwright_screenshot |
| Инструмент | Назначение | Установка |
|---|
| nmap | Сканирование портов | apt install nmap / choco install nmap |
| masscan | Сверхбыстрое сканирование | apt install masscan / Build from source |
| httpx | Проверка HTTP | go install github.com/projectdiscovery/httpx/cmd/httpx@latest |
| subfinder | Перебор поддоменов | go install github.com/projectdiscovery/subfinder/v2/cmd/subfinder@latest |
| amass | Сетевое отображение | go install github.com/owasp-amass/amass/v4/...@master |
| nuclei | Сканирование уязвимостей | go install github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest |
| whatweb | Идентификация технологий | gem install whatweb / apt install whatweb |
| wafw00f | Обнаружение WAF | pip install wafw00f |
| nikto | Сканирование веб-уязвимостей | apt install nikto |
| sqlmap | SQL-инъекции | pip install sqlmap / apt install sqlmap |
| wpscan | Сканирование WordPress | gem install wpscan |
| testssl | Тестирование SSL/TLS | Скачать с testssl.sh |
| sslyze | Анализ SSL/TLS | pip install sslyze |
| gobuster | Подбор каталогов | go install github.com/OJ/gobuster/v3@latest |
| ffuf | Веб-фаззинг | go install github.com/ffuf/ffuf/v2@latest |
| arjun | Обнаружение параметров | pip install arjun |
| xsstrike | Продвинутый XSS | git clone https://github.com/s0md3v/XSStrike |
| gitleaks | Сканирование секретов | go install github.com/zricethezav/gitleaks/v8@latest |
| cmseek | Обнаружение CMS | pip install cmseek |
| dnsrecon | Перебор DNS | pip install dnsrecon |