Noir — это SAST-инструмент, который читает исходный код и извлекает конечные точки, предоставляемые приложением: пути, методы, параметры, заголовки, cookie и исходные файлы, стоящие за ними. Теневые API, устаревшие маршруты и недокументированные обработчики попадают в тот же перечень; это не отдельный режим.
Этот перечень предназначен для трёх аудиторий:
Ревьюеры-люди. Инженеры по безопасности и аудиторы кода получают сфокусированный список доступных атакующему точек входа — путей, параметров, исходных файлов, тегов — вместо просмотра всего репозитория.
ИИ-аудиторы. SAST-агенты на основе LLM получают тот же сфокусированный список плюс контекст проверки для каждой конечной точки (--include callee для вызываемых функций на 1 уровень, --ai-context для проверок, стоков, валидаторов и сигналов).
DAST-инструменты. ZAP, Burp Suite, Caido и Gori получают реальный список маршрутов для сканирования, включая пути, до которых они никогда не добрались бы при обходе.
Что делает Noir
Извлечение конечных точек. Статический анализ для 261 фреймворка. Возвращает конечные точки, параметры, заголовки, cookie и исходные файлы, из которых они получены.
Резервный вариант через LLM. Передайте неподдерживаемые фреймворки (или разовую пользовательскую маршрутизацию) в OpenAI / Ollama / др., когда статические правила не применимы.
Вывод для следующего этапа. JSON, YAML, OpenAPI, SARIF, cURL, Postman, HTML — тот формат, который читает следующий инструмент в конвейере.
Интеграция с DAST. Передавайте напрямую в ZAP, Burp Suite, Caido или Gori как прокси-цель либо экспортируйте OpenAPI для импорта ими.
Контекст для ИИ-SAST. Перечень конечных точек (а с --include callee — и функции, вызываемые каждым обработчиком на 1 уровень) — это сфокусированный контекст, необходимый LLM-аудитору для поиска доступных атакующему ошибок. --ai-context идёт дальше и прикрепляет к каждой конечной точке агрегированный контекст проверки — проверки, вызываемые функции, стоки, валидаторы и сигналы — чтобы LLM не приходилось обнаруживать их заново.
CI/CD. GitHub Action, вывод SARIF, коды возврата — вписывается в уже имеющийся у вас конвейер.
Использование
noir -h
Пример
noir scan <source_dir>
Если вы используете его с Github Action, обратитесь к этому документу .
Для получения более подробной информации посетите нашу страницу документации.
Дорожная карта
Noir начинался как помощник для тестирования методом WhiteBox: извлечение эндпоинтов из исходного кода, чтобы DAST мог сканировать их более точно. Задача выросла — тот же инвентарь теперь питает и людей-аудиторов, и AI SAST-агентов. Цель отсюда — одинаково хорошо обслуживать всех трёх потребителей: людей, проверяющих код, LLM, аудирующие его, и DAST-инструменты, сканирующие его.
Отсюда:
Расширять охват языков и фреймворков; сохранять честную точность с помощью фикстур для каждого фреймворка.
Активнее опираться на LLM для случаев, до которых не дотягивается статический анализ.
Обогащать контекст проверки каждого эндпоинта (guard-ы, вызываемые функции, sink-и, валидаторы, сигналы), чтобы люди-ревьюеры и AI-аудиторы делили один и тот же сфокусированный взгляд на каждый обработчик.
Сохранять интеграцию с DAST первостепенной — OpenAPI, прокси-цели и прямые передачи в ZAP / Burp / Caido / Gori.
Проект OWASP
OWASP Noir присоединился к OWASP Foundation в июне 2024 года.
Май 2026: Выпущена v1.0.0 — представлена стабильная линейка 1.x для всех анализаторов, теггеров, пассивного сканирования и совершенно новая CLI-структура, ориентированная на глаголы.
Май 2026: Обновлена дорожная карта — цель Noir теперь в том, чтобы одинаково хорошо обслуживать людей, AI-аудиторов и DAST-инструменты как потребителей одного и того же инвентаря эндпоинтов.