Работа со ScanSuite

Управление уязвимостями

Одна запись на каждую проблему, разбор с указанием причины, история изменений и закрытие по доказательствам.

Уязвимости, найденные AI-сканированиями, собираются в одном списке. Дубли в нём уже убраны, а у каждой записи есть доказательства, которых разработчику хватит для исправления. На странице Уязвимости их разбирают, назначают ответственных и доводят до закрытия.

Жизненный цикл уязвимости

  1. 01
    Сбор

    Уязвимости из AI Native SAST, анализа достижимости зависимостей, AI DAST и AI Pentest, а также из тех классических сканеров, результаты которых команда решила сохранять, приводятся к единому виду. Каждая запись привязывается к продукту, цели, сканеру и запуску.

  2. 02
    Объединение

    Если одну и ту же проблему нашли разные сканеры или разные запуски, в списке остаётся одна запись. Если уязвимость появилась снова, открывается прежняя запись, а не создаётся новая.

  3. 03
    Проверка

    У каждой записи есть результат проверки: вердикт об эксплуатируемости, оценка риска, уверенность, обоснование и ссылки на известные случаи эксплуатации, а где применимо — схема прохождения данных по коду.

  4. 04
    Доказательство

    Эксплойт можно сгенерировать, отредактировать и запустить в изолированном контейнере. Подробнее — на следующей странице.

  5. 05
    Устранение

    Разбор с указанием причины, ответственный и срок. Каждый шаг сохраняется в истории уязвимости.

  6. 06
    Отчётность

    Поиск, фильтры и выгрузка в PDF-отчёт, XLSX, JSON или ServiceNow.

Секреты, найденные в репозиториях, сюда не попадают: они собраны на странице Учётные данные.

Что считается одной уязвимостью

Это зависит от типа сканирования. По этому признаку ScanSuite убирает дубли внутри сканирования и узнаёт уязвимость, которая вернулась в следующем запуске:

Тип сканированияПризнак
СтатическоеКласс уязвимости + файл в пределах репозитория
ЗависимостиCVE + компонент + версия компонента
ДинамическоеТип уязвимости + путь URL + параметр
ИнфраструктурноеCVE + узел + версия сервера

AI SAST выбирает класс по недостающей защите, а не по последствиям. Но модели всё равно путают соседние классы одного дефекта: path traversal и чтение произвольного файла, code injection и удалённое выполнение кода. Поэтому две такие уязвимости в одном файле остаются одной записью, если у них совпадает ещё и параметр, процитированный код или название.

Поэтому счётчикам на панели можно верить. Проблема, о которой сообщили три сканера, — это одна запись, а уязвимость, вернувшаяся после исправления, открывает прежнюю запись, а не появляется как новая.

Панель

Вверху страницы — сводка: сколько продуктов и репозиториев просканировано, сколько всего уязвимостей и сколько из них открыто, сколько выполнено сканирований. Ниже — разбивка по критичности и изменения с последнего сканирования.

Панель уязвимостей ScanSuite
Панель управления уязвимостями
  • Топ-10 наиболее уязвимых целей и 10 основных классов уязвимостей упорядочены по риску: открытая уязвимость уровня Critical весит 40, High — 10, Medium — 3, Low — 1. Рядом с каждым пунктом указано число уязвимостей, а щелчок по нему фильтрует список. Уязвимости в статусах Resolved, False Positive и Risk Accepted не учитываются, а в режиме всех продуктов уязвимость, общая для двух продуктов, считается один раз.
  • Топ-10 целей по расходу токенов LLM показывает, на какие цели AI-сканирования потратили больше всего: в токенах, а если для моделей заданы цены, то и в деньгах.
  • Если выбран продукт, строка Последнее сканирование показывает итог его последнего сканирования: сколько уязвимостей оказались новыми, подтверждёнными, открытыми повторно и закрытыми автоматически. Щелчок по дате открывает страницу сканирования.

Работа с уязвимостью

В каждой записи есть поля, нужные для разбора:

ПолеНазначение
Название, CVE, Критичность, CVSSЧто это и насколько опасно.
Цель, Сканер, ID сканирования, ПродуктОткуда взялась уязвимость. Для уязвимости в репозитории указаны файл и строка со ссылкой на них.
СтатусOpen, In Progress, Risk Accepted, False Positive, Resolved.
Ответственный, Срок устраненияКто исправляет и к какому сроку.
Теги, СсылкиСобственная классификация и внешние ссылки.
Описание, Доказательства, РешениеПодробности для разработчика.
Заметки по обработкеЖурнал решений по этой уязвимости.

Метки в строке показывают, что происходило с уязвимостью:

  • открыто снова — уязвимость обнаружена снова после исправления;
  • подтверждено — закрыта, потому что сканер доказал, что дефекта больше нет;
  • межфайловый поиск — найдена при трассировке запроса через несколько файлов. Уязвимость, которую нашёл только межфайловый поиск, закрывается автоматически лишь в запуске «Проверка исправлений», где её выбрали явно;
  • число вида ×3 рядом с датой в столбце «Последнее подтверждение» — сколько сканирований сообщили об уязвимости;
  • N пропущено — сколько сканирований проверили её файл и не нашли её. Это ещё не доказательство исправления.

Ссылка рядом с уязвимостью в репозитории открывает файл на нужной строке в том коммите, который анализировало сканирование. Формат ссылки зависит от сервиса Git, выбранного на странице Команды (вкладка Сканирование, карточка Доступ к репозиториям), поэтому для GitHub, GitLab и Bitbucket Server ссылки строятся по правилам каждого сервиса.

Щелчок по строке открывает подробности уязвимости и её историю. Чтобы проверить логику вывода, нажмите на метку в столбце Валидация: там схема прохождения данных по коду с пояснением к каждому шагу, обоснование достижимости, уровень уверенности и оценка риска. Выводу модели, который нельзя проверить, доверять нельзя.

Карточка уязвимости ScanSuite со схемой потока данных
Карточка уязвимости со схемой прохождения данных: от недоверенного ввода до опасной операции

Уязвимость, найденную без сканирования, можно завести вручную в блоке Добавить / изменить уязвимость: например, из отчёта о пентесте, по программе bug bounty или после code review. Сначала выберите продукт.

Разбор

В каждой строке есть меню Разбор. Чтобы применить действие сразу к нескольким уязвимостям, отметьте их и нажмите Разобрать выбранные: N.

Меню разбора в списке уязвимостей
Меню разбора у уязвимости
ДействиеЧто делает
Взять в работуПереводит уязвимость в статус In Progress.
Открыть повторноВозвращает уязвимость в статус Open.
Ложное срабатывание…Фиксирует, почему это ложное срабатывание. Причина обязательна.
Принять риск…Фиксирует, почему риск принят. Причина обязательна.
Отметить исправленной…Фиксирует, как уязвимость исправили. Причина обязательна.
Назначить…Назначает ответственного и срок.

Для уязвимости в репозитории пункт Ложное срабатывание… дополнительно предлагает Больше не сообщать об этом классе здесь — в этом файле, в этой папке или во всём репозитории. ScanSuite создаёт правило подавления, и следующие сканирования больше не сообщают об этом классе в указанном месте; см. Собственные правила.

Окно ложного срабатывания
Ложное срабатывание с указанием причины: больше не сообщать об этом классе в этом файле

Сроки устранения

Новая уязвимость сразу получает срок устранения по правилам команды. По умолчанию это 7 дней для Critical, 30 — для High, 90 — для Medium и 180 — для Low. Для Info срок не назначается. Сроки задаются на странице Команды, на вкладке Сканирование, в карточке Сроки устранения; значение 0 отключает срок для этого уровня критичности. Менять их могут администраторы и операторы команды.

  • Назначенный срок не меняется: следующее сканирование его не сдвигает, а новые настройки сроков не затрагивают уже обнаруженные уязвимости.
  • Срок отдельной уязвимости меняется через Назначить….
  • Просроченные уязвимости учитываются на страницах продуктов.

История уязвимости

Откройте уязвимость и посмотрите её Историю: когда её обнаружили, какие сканирования её подтвердили, какие проверили её файл и не нашли её, когда её закрыли по данным сканера, когда открыли снова, кто и почему менял статус, когда её объединили с другой уязвимостью и когда сработало правило подавления. Каждая запись ведёт на сканирование, которое к ней привело.

История уязвимости
История уязвимости: обнаружена, подтверждена, закрыта по доказательству, затем снова открыта следующим сканированием

Уязвимости одного сканирования

На странице сканирования нажмите на одно из чисел — новые, подтверждённые, открытые повторно, закрытые автоматически — или на Показать уязвимости: откроется этот список, отфильтрованный по сканированию. Фильтр отображается над списком, ✕ сбрасывает его. См. Страница сканирования.

Уязвимости одного узла

На странице Активы вкладка Уязвимости в карточке узла показывает уязвимости на нём; Открыть в разделе «Уязвимости» открывает этот список, отфильтрованный по узлу. Фильтр Актив отображается над списком с именем узла, которое ведёт обратно к нему на странице «Активы»; ✕ сбрасывает фильтр. Уязвимость относится к узлу, если её цель указывает на один из узлов продукта.

Поиск, фильтры и экспорт

  • Полнотекстовый поиск по CVE, названиям и целям.
  • Фильтры по продукту, критичности и статусу, а также по классу из панели топ-10.
  • Экспорт: Отчёт по уязвимостям (PDF) для руководителей — по уязвимостям, которые показывают текущие фильтры. Если выбран продукт, доступны ещё XLSX — весь перечень в виде таблицы, JSON — те же строки для другого инструмента и XLSX для ServiceNow — файл, готовый к загрузке в ServiceNow. См. Повторные сканирования и проверка исправлений и Отчёты и экспорт.

Удаление уязвимостей

  • Чтобы удалить уязвимости, отметьте их и нажмите Удалить выбранные: N.
  • Очистить удаляет все уязвимости выбранного продукта или только одного из его репозиториев. Уязвимости, сканирований которых уже нет в истории, по репозиторию очистить нельзя.

Для обоих действий нужно право изменять уязвимости. Оно есть у администраторов и операторов команды.

Уязвимости AI-сканирований ведутся только здесь. Большинство классических сканеров выгружает результаты только в отчёты и в DefectDojo, поэтому для них рекомендуется DefectDojo. Здесь всегда сохраняются уязвимости Nessus и ваших собственных правил, а уязвимости Semgrep, KICS, Trivy, Nuclei, ZAP, Wapiti, SSLyze, Dastardly, Acunetix и OpenVAS — если на вкладке Сканирование в настройках команды включён параметр Сохранять уязвимости сканеров. Уязвимости ниже порога Минимальная критичность для сохранения остаются только в отчётах. См. Работа с результатами сканирования.

ScanSuite Teams

Для разбора, редактирования, удаления и генерации эксплойта нужно право изменять уязвимости, для запуска эксплойта — отдельное право, а для «Больше не сообщать об этом классе здесь» — право настраивать сканирования. См. Команды и роли.

Проверено: 2026-09-30