SAST-сканер на основе ИИ, который находит обход аутентификации, IDOR и логические ошибки, которые пропускают Semgrep/CodeQL. Бесплатное действие GitHub. Поддерживает Python, JS/TS, Go, PHP, Ruby.
Сканер безопасности кода на базе ИИ, который находит уязвимости, пропущенные Semgrep и CodeQL.
Быстрый старт • GitHub Action • Сравнение • Языки • FAQ
Традиционные SAST-инструменты полагаются на сопоставление шаблонов и правила AST. Они отлично справляются с обнаружением известных шаблонов уязвимостей, но принципиально не могут рассуждать о намерениях.
Если в вашем API есть 20 конечных точек и 19 из них проверяют авторизацию перед выполнением действия над ресурсом, Semgrep не сможет отметить ту единственную, которая этого не делает — потому что нет шаблона для сопоставления. Уязвимость заключается в отсутствии шаблона.
VulnHawk анализирует код с помощью ИИ, и для каждого фрагмента кода он включает связанный код из других частей вашей кодовой базы в качестве контекста. Этот этап обогащения позволяет ИИ сравнивать, как аналогичные компоненты обрабатывают безопасность — и заметить тот, который этого не делает.
pip install vulnhawk
Выберите бэкенд:
# Claude Code CLI - БЕСПЛАТНО для подписчиков (рекомендуется)
vulnhawk scan ./src -b claude-code
# Codex CLI - БЕСПЛАТНО для подписчиков ChatGPT Pro/Plus
vulnhawk scan ./src -b codex
# Claude API
export ANTHROPIC_API_KEY=sk-ant-...
vulnhawk scan ./src
# OpenAI API
vulnhawk scan ./src -b openai -m gpt-4o
# Ollama - бесплатно, локально, полностью приватно
vulnhawk scan ./src -b ollama -m llama3.1
Никаких конфигурационных файлов. Никаких правил для написания. Никакой базы данных для создания.
Бэкенды Claude Code и Codex бесплатны для пользователей с существующими подписками. VulnHawk передаёт промпты через ваш локальный CLI, поэтому дополнительных затрат на API нет.
| Возможность | VulnHawk | Semgrep | CodeQL | Snyk Code | Checkmarx | SonarQube |
|---|---|---|---|---|---|---|
| Метод обнаружения | Рассуждение ИИ | AST-шаблоны | QL-потоки данных | ML + правила | Шаблоны + потоки | Шаблоны |
| Ошибки бизнес-логики | Да | Нет | Ограниченно | Ограниченно | Ограниченно | Нет |
| Межфайловый контекст | Автоматически | Пользовательские правила | Пользовательские запросы | Частично | Платный тариф | Ограниченно |
| Сложность настройки | Нулевая | Настройка правил | Сборка DB + QL | Конфигурационный файл | Сложно | Настройка сервера |
| Требуются пользовательские правила | Нет | Да (YAML) | Да (QL) | Частично | Да | Да |
| Исправления с учётом контекста | Да | Общие | Общие | Общие | Общие | Общие |
| Локальный / приватный режим | Ollama | Да | Да | Нет | Нет | Self-hosted |
| Интеграция с CI/CD | Однострочный Action | Action | Action | Action | Плагин | Плагин |
| Ввод SARIF (цепочка инструментов) | Да | Нет | Нет | Нет | Нет | Нет |
| Цена | Бесплатно* | Бесплатно / Платно | Бесплатно / Платно | Бесплатно / $$$ | $$$$$ | Бесплатно / $$$ |
*Бесплатно с Claude Code, Codex CLI или Ollama. Бэкенды API стоят около $0.50-$2.00 за сканирование.
| Класс уязвимости | Почему инструменты на основе правил пропускают его |
|---|---|
| Отсутствие авторизации на 1 из N конечных точек | Нет шаблона для сопоставления — ошибка в отсутствии проверки |
| IDOR / BOLA | Требуется понимание, что ID пользователя в JWT должен совпадать с ID в URL |
| Манипуляция суммой платежа | Бизнес-логика — поле суммы не должно доверяться клиенту |
| Непоследовательная валидация ввода | 5 обработчиков санируют, 6-й — нет; требуется межфайловое сравнение |
| Неправильное использование сохранённого ввода | Ввод сохранён безопасно, но eval() или raw-SQL в 3 файлах оттуда |
| Состояния гонки при обновлении состояния | Одновременные модификации баланса без блокировки |
VulnHawk разработан как дополнительный слой, а не замена:
| Слой | Инструмент | Назначение |
|---|---|---|
| 1 | Semgrep | Быстрая детерминированная проверка известных плохих шаблонов |
| 2 | CodeQL | Глубокое отслеживание "грязных" данных по сложным цепочкам вызовов |
| 3 | VulnHawk | Бизнес-логика, пробелы в аутентификации, IDOR и несоответствия, которые правила не могут описать |
vulnhawk scan ./src # Полное сканирование (по умолчанию)
vulnhawk scan ./src --mode auth # Обход аутентификации, пропущенные проверки, ошибки сессий
vulnhawk scan ./src --mode injection # SQLi, внедрение команд, SSTI, XSS
vulnhawk scan ./src --mode secrets # Жёстко закодированные ключи, токены, пароли
vulnhawk scan ./src --mode config # Режим отладки, разрешительный CORS, небезопасные куки
vulnhawk scan ./src --mode crypto # Слабое хэширование, жёстко закодированные ключи, плохой ГСЧ
vulnhawk scan ./src -o json -f results.json # JSON
vulnhawk scan ./src -o sarif -f results.sarif # SARIF (GitHub Code Scanning)
vulnhawk scan ./src -o markdown -f report.md # Отчёт в Markdown
vulnhawk scan ./src --severity high # Только Critical + High
vulnhawk scan ./src --severity info # Всё
Передайте вывод Semgrep, CodeQL или любого инструмента, производящего SARIF, в VulnHawk. Он использует эти находки как дополнительный контекст для проверки, расширения и объединения их в более глубокие уязвимости.
# Сначала запустите Semgrep, затем обогатите VulnHawk
semgrep --config auto ./src -o semgrep.sarif --sarif
vulnhawk scan ./src --sarif-input semgrep.sarif
Что это даёт:
vulnhawk info ./src # Предварительный просмотр файлов, фрагментов и разбивки по языкам
VulnHawk выполняет базовое сканирование в вашей ветке по умолчанию и инкрементально в каждом pull request.
name: VulnHawk Security Scan
on:
push:
branches: [main, master]
pull_request:
permissions:
security-events: write
contents: read