v4.1
Повторные сканирования и проверка исправлений, файловый обмен статусами с ServiceNow, идентичность находок в пределах репозитория и переиспользование анализа архитектуры.
Версия 4.0 научила ScanSuite хорошо находить. Этот релиз учит его тому, что идёт дальше: доказать, что исправление действительно внесено, не дать одной уязвимости расползтись на несколько записей между повторными сканированиями и репозиториями и передавать статусы между ScanSuite и ServiceNow, не открывая к нему соединения.
Организующая идея та же, что и в v4.0: не утверждается ничего, что нельзя показать. Уязвимость закрывается не потому, что сканирование промолчало, а потому, что агент прочитал текущий исходный код и указал на код, который её исправил.
Повторные сканирования и проверка исправлений
| Возможность | Описание |
|---|---|
| Verify Fixes | Режим сканирования, выраженный в уязвимостях, а не в файлах. Выберите уязвимости, которые считаете исправленными; ScanSuite сопоставит их с файлами, просканирует только эти файлы и повторно оценит ровно то, что вы выбрали, — уязвимость, находящаяся в одном файле с выбранной, не затрагивается никогда. |
| Агент проверки исправлений | Читает текущий исходный код по уязвимости, которую сканирование охватило, но не сообщило о ней, и возвращает один из пяти вердиктов. Закрывают что-либо только fixed и file_removed, а вердикт fixed отклоняется без доказательств вида «файл:строка» или при низкой уверенности. |
| Сверка | Каждое повторное сканирование распределяет уязвимости репозитория на подтверждённые, охваченные-но-не-сообщённые, удерживаемые решением аналитика и находящиеся вне охвата, и приводит их количества в журнале сканирования. |
| Охват сканирования | Результаты анализа по каждому файлу фиксируются, и сканирование делает выводы только о файлах, которые действительно проанализировало. Пропущенный или сбойный файл охватом не считается. |
| Автоматическое возвращение в работу при регрессе | Устранённая уязвимость, которую снова обнаруживает последующее сканирование, открывается заново сама, а её устаревшие доказательства закрытия очищаются. |
| Решения аналитика защищены | Статусы Risk Accepted и False Positive сканирование не может изменить ни в одну сторону. |
Закрытие отключено, пока вы его не включите, в Settings → Resolve findings verified as fixed. При выключенной настройке весь конвейер всё равно выполняется и пишет в журнал — можно посмотреть вердикты, которые выдаёт ваша кодовая база, прежде чем позволять им менять хоть одну задачу.
См. Повторные сканирования и проверка исправлений.
ServiceNow — через файлы
Прямая интеграция с ServiceNow и её настройки удалены. Вместо них уязвимости уходят выгрузкой ServiceNow XLSX, а назначенные в ServiceNow статусы возвращаются файлом. Учётные данные не хранятся, порты не открываются, и ничто не покидает периметр, пока этого не сделает человек.
| Изменение | Описание |
|---|---|
| Меню выгрузки | Отдельные кнопки выгрузки на странице Vulnerabilities объединены в одно меню: XLSX, JSON и ServiceNow XLSX. |
| Устойчивые идентификаторы отслеживания | Каждая уязвимость несёт идентификатор, переживающий повторные сканирования и релизы: таблица, журнал сканирования, JSON-отчёт и консоль называют одну и ту же уязвимость одной и той же строкой. |
| Расхождение статусов | Там, где вернувшиеся из ServiceNow статусы расходятся с тем, что считает ScanSuite, ScanSuite показывает расхождение и ничего не перезаписывает сам. |
Идентичность уязвимости
Теперь она ограничена не только продуктом, но и репозиторием. Раньше два репозитория в одном продукте с совпадающим путём к файлу — каким-нибудь index.js или settings.py — могли слиться в одну запись: просканированный вторым затирал первый.
Кроме того, идентичность больше не сравнивает уязвимый параметр и процитированный код. Модели формулируют их по-разному в каждом запуске, из-за чего появлялись дублирующие записи об одном дефекте. Две записи считаются одной и той же уязвимостью, когда совпадают нормализованный класс и файл исходного кода в пределах одного продукта и одного репозитория.
Существующие уязвимости были перепривязаны к новым ключам на месте. Идентификаторы отслеживания, уже отправленные в систему учёта задач, не изменились — ничего из выгруженного до этого релиза заново выгружать не нужно.
Более быстрые сканирования
| Возможность | Описание |
|---|---|
| Переиспользование анализа архитектуры | Анализ архитектуры на уровне репозитория формируется один раз и сохраняется, а затем переиспользуется во всех режимах сканирования, кроме полного, — оно его обновляет. При небольшом повторном сканировании с ограниченной областью это составляло основную часть времени работы. |
| Переиспользование при отключённом анализе | Отключение прохода по архитектуре теперь означает «не строить его заново», а не «делать вид, что мы ничего не знаем»: сохранённый отчёт по-прежнему используется при оценке. |
| Происхождение при каждом переиспользовании | В журнале сканирования указываются сканирование, ветка и коммит, из которых взят переиспользованный отчёт: неожиданную оценку можно связать с картиной, по которой она выставлялась. |
| Ручное обновление | Администратор может сбросить сохранённый анализ репозитория, чтобы следующее сканирование построило его заново, не дожидаясь полного сканирования. |
Более понятный вывод
| Изменение | Описание |
|---|---|
| Названные решения | Дедупликация и повторное появление теперь сообщают, какие уязвимости были объединены, во что и по каким значениям, а не только сколько их. В больших сканированиях называются первые двадцать каждого вида, а остальные подсчитываются. |
| Ход проверки | Каждый вердикт записывается в журнал по мере получения — с идентификатором уязвимости, решением, уверенностью и доказательствами. |
| Top 10 Vulnerability Classes | Панель Vulnerabilities теперь ранжирует классы уязвимостей, а не заголовки уязвимостей, с разбивкой по критичности и числом репозиториев, которые затрагивает каждый класс. Заголовки, написанные моделью, различаются между запусками, и прежняя панель тратила свои десять мест на формулировки вместо риска. Нажатие на класс фильтрует список ровно до тех уязвимостей, которые в нём учтены. |
Исправления
| Исправление | Описание |
|---|---|
| Verify Fixes сканировал весь репозиторий | Несовпадение имени режима между консолью и средой выполнения сканирования приводило к тому, что задание Verify Fixes скатывалось к полному сканированию репозитория. Теперь оно маршрутизируется правильно и сканирует только файлы выбранных уязвимостей. |
| Выбор уязвимостей терялся в среде выполнения | Запись об области сканирования пересобиралась без идентификаторов выбранных уязвимостей, и запуск мог повторно оценить — и при включённом закрытии устранить — уязвимости, которые никто не выбирал. Теперь выбор передаётся до конца, а запуск, пришедший без него, отказывается что-либо закрывать. |
| Проверка могла молча завершиться сбоем | Запись строки в журнал сканирования закрывала сессию базы данных: проверяемые уязвимости отсоединялись, и весь проход прерывался. Теперь проверка перечитывает каждую уязвимость по ходу работы. |
| Связь с AI-провайдером за прокси | И SDK Anthropic, и SDK OpenAI используются через адаптивный HTTP-транспорт, а собственный набор корневых сертификатов теперь добавляется к системному хранилищу доверия, а не заменяет его: сертификат прокси больше не ломает проверку всего остального. |
| Одновременный запуск | Сервисы, стартующие одновременно, больше не конфликтуют, когда релиз добавляет таблицу. |
Обновляетесь с v4.0? Два действия стоит выполнить осознанно. Выполните по одному полному сканированию на каждый репозиторий, чтобы у каждого появился сохранённый анализ архитектуры безопасности для переиспользования, и оставьте Resolve findings verified as fixed выключенным, пока не почитаете вердикты нескольких повторных сканирований. Всё остальное применяется само.
Проверено: 2026-08-27