Datadog SAIST CLI
CLI от Datadog, который ищет уязвимости в исходниках с помощью Claude, GPT или Gemini и сохраняет результат в SARIF
- 108 ★ репозитория
- Последний коммит
- Apache-2.0
Расширенный доступ
Почему такой уровень
- Читает исходники каталога и отправляет их целиком выбранному провайдеру моделей
- Расходует платные запросы по ключу провайдера и скачивает правила из API Datadog
Установка
Ручная установка
git clone https://github.com/DataDog/datadog-saist
cd datadog-saist
make buildСборка из исходников. После нее запускается `./bin/datadog-saist` с флагами `--directory`, `--output`, `--detection-model` и `--validation-model`.
Доступ и проверки
Как мы проверяемРасширенный доступИнструмент запускает код или ходит в сеть, а внешние данные только читает.
- Читает исходники каталога и отправляет их целиком выбранному провайдеру моделей
- Расходует платные запросы по ключу провайдера и скачивает правила из API Datadog
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
SAIST разбирает каталог с исходниками деревом Tree-sitter, строит контекст проекта и отдает файлы модели на поиск уязвимостей. Вторая модель проверяет каждую находку и отсекает лишнее. Поддерживаются Go, Java, Python, C#, C++, JavaScript, TypeScript, Kotlin, PHP, Ruby, Rust, Elixir и Swift. Результат записывается в файл SARIF, который читают IDE и CI-системы. Модели выбираются флагами `--detection-model` и `--validation-model`, ключ берется из `ANTHROPIC_API_KEY`, `OPENAI_API_KEY` или `GOOGLE_API_KEY`. Аккаунт Datadog не нужен: правила обнаружения утилита запрашивает у открытого API Datadog, а флаг `--local-prompts` включает правила, вшитые в бинарник. Проект на ранней стадии, собирается из исходников командой `make build`.
Для кого. Инженерам по безопасности и разработчикам, которые хотят прогнать свой код через языковую модель и получить отчет в стандартном формате.
Подходит, если
- Классический статический анализ молчит, а в проекте на Go и Java хочется получить второе мнение от модели.
- Отчет SARIF надо загрузить в IDE или в панель код-скана репозитория.
- Нужен прогон на крупном репозитории: параллельность по файлам задается флагом `--file-concurrency`.
- Правила и промпты приходится держать локально, и их включает флаг `--local-prompts`.
- Проект на Kotlin, Elixir или Swift проверяется той же командой, что и проект на Python.
Не подходит, если
- Код нельзя отправлять внешнему провайдеру моделей: файлы уходят выбранной модели целиком.
- Нужен детерминированный результат без вероятностных находок: ответы модели от запуска к запуску различаются.
- Требуется готовый бинарник без сборки: в README описана только сборка из исходников.
Пример запроса к агенту
Собери datadog-saist, прогони каталог services/ через Gemini и покажи, какие находки из SARIF стоит разбирать первымиОграничения
Проект находится на ранней стадии и активно меняется. Нужен ключ одного из провайдеров моделей: Anthropic, OpenAI или Google Gemini, расходы на запросы ложатся на владельца ключа. Исходники передаются модели, поэтому для закрытого кода это решение о доступе третьей стороны к проекту. Без флага `--local-prompts` правила скачиваются из API Datadog. Для OpenAI-совместимого адреса базовый URL указывается без `/v1`. Сборка идет из исходников на Go с Tree-sitter, готовые бинарники в README не упомянуты. Лицензия Apache-2.0.
Как отключить. Утилита одноразовая, в систему ничего не ставит. Достаточно удалить собранный бинарник `bin/datadog-saist` и клон репозитория.
Частые вопросы
Нужен ли аккаунт Datadog для SAIST?
Нет. Правила обнаружения утилита берет из открытого API Datadog без ключей Datadog, а нужен только ключ провайдера модели.
Какие модели подходят?
Модели Anthropic, OpenAI и Google Gemini. Для OpenAI подойдет и свой адрес через `--openai-base-url`, а точные имена моделей выводит `./bin/datadog-saist --help`.
Что внутри отчета?
Файл SARIF с найденными уязвимостями, его читают IDE и системы код-скана. Каждая находка предварительно проходит проверку второй моделью.
Как уменьшить расход памяти на большом репозитории?
Флаг `--skip-indexing` отключает индексацию контекста между файлами. Память экономится, но находки, которым нужен контекст из соседних файлов, пропадут.
Правила можно хранить у себя?
Да, флаг `--local-prompts` включает правила обнаружения, вшитые в бинарник, и запрос к API Datadog не делается.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
CLI-инструментыCLI на Go ищет уязвимости в Git-репозитории с помощью LLM и сохраняет находки в SARIF для GitHub Code Scanning.
CLI, который читает код проекта и составляет модель угроз по методике STRIDE с отчетом в Markdown, JSON, SARIF или HTML
Движок анализа потоков данных для Java и Kotlin с набором скиллов для агента: сканирует код, разбирает находки и создает правила.
19 скиллов Google для поиска, воспроизведения и исправления уязвимостей: от модели угроз до патча и отчета, плюс эталонная обвязка на ADK
SAST-сканер с межфайловым анализом потоков данных и MCP-сервером: агент видит вызовы, источники и стоки уязвимостей
CLI проверки безопасности ИИ: сканирует модели и код, пробует живые эндпоинты и MCP-серверы, разбирает записи работы агентов
Сравнение с похожими
Карточки с тем же главным запросом: чем они отличаются.
| Инструмент | Официальный | Авторизация | Звезды репозитория | Главное отличие |
|---|---|---|---|---|
| Datadog SAIST (эта карточка) | нет | 108 | ||
| Semgrep | да | не нужна | 17 635 | ищет по заранее написанным правилам, а SAIST просит модель найти уязвимость и проверяет находку второй моделью |
| Snyk CLI | да | OAuth | 5 709 | сканирует зависимости и код через сервис Snyk, а SAIST работает от ключа провайдера моделей и не требует аккаунта |
Коротко о README
Datadog называет SAIST статическим анализатором безопасности на основе моделей, который работает отдельно на ноутбуке и входит в Datadog Code Security. В README перечислены возможности, требования к ключам, команды сборки и запуска с примерами для Gemini и OpenAI, а также вариант через шлюз Datadog для клиентов сервиса.