Четыреста находок. Какие стоят вашего дня?
Вторая половина SENTINEL AI читает не сеть, а проект: исходный код, библиотеки, случайно оставленные пароли, упаковку и опубликованный сайт. И решает, что из найденного действительно требует человека.
Пять мест, где прячутся проблемы
Исходный код
Опасные конструкции и типовые ошибки в коде проекта.
Библиотеки
Около 240 тыс. опубликованных уязвимостей из открытой базы OSV для PyPI и npm. Локальный файл на 4 МБ, проверка без интернета. Рядом с каждым ответом указан возраст базы.
Пароли и ключи
Учётные данные, которые попали в код или конфигурацию.
Сборка и развёртывание
Как проект собирается и запускается.
Опубликованный сайт
Только после заявления ответственного, что он вправе проверять этот адрес; заявление попадает в подписанный журнал. Только обычные GET-запросы: ничего не отправляется, не внедряется и не перебирается.
Источником может быть папка на сервере, архив, адрес репозитория или адрес сайта.
Слой над проверками
Запустить проверки умеет любой инструмент. Трудно решить, какие из четырёхсот находок заслуживают вашего дня, и объяснить почему. Для этого используется та же арифметика, что и в обнаружении атак.
Предупреждения с общей причиной сводятся в одну задачу с объяснением.
Улика, а не приговор
Каждая проверка выдаёт улику с весом, а не вердикт.
Контекст проекта
Это тестовый код, это слово «changeme», этот пакет нигде не импортируется, эта библиотека ставится только для разработки.
Одна причина, одна задача
Сорок предупреждений об одной устаревшей библиотеке дают одно решение, а не сорок.
Объяснение для четырёх читателей
Что это, что это значит и что делать, на шести языках.
Тот же подписанный журнал
Включая то, кто запустил проверку.
Отчёт, который можно отправить
Один файл: что найдено, что это значит и что исправить, по порядку важности. Открывается в любом браузере, сохраняется в PDF и уходит команде, подрядчику или руководству.
Сначала важное
Задачи упорядочены по оценке, а не по числу предупреждений.
Что исправить
У каждой задачи есть объяснение и конкретное действие.
Возраст базы
Ответ по базе четырёхмесячной давности сам устарел на четыре месяца, и отчёт это показывает.
Чего проверка не умеет
Не находит больше, чем специализированные сканеры
Сырые проблемы Semgrep, CodeQL, Trivy или ZAP находят не хуже. Ценность в том, чтобы решить, что из найденного важно.
Не видит логических ошибок
Неверные права доступа и изъяны в том, как части системы соединены, не видит ни один сканер. Нужен человек.
Чистый результат не гарантия
Он значит, что проверки ничего не нашли, а не что проект безопасен. Консоль пишет это рядом с каждым результатом.
Проверка сайта только читает
Она находит то, что видно снаружи, а не то, что пришлось бы доказывать атакой.
Проверьте на своих данных
Пилот разворачивается на одном сервере внутри вашей сети. Вы увидите, что платформа находит у вас и сколько тревог больше не доходит до аналитиков.
Запросить пилот →