GitLab на русском
Подписаться
Как GitLab отслеживает уязвимости при рефакторинге и переформатировании
Сканеры безопасности часто сталкиваются с проблемой двойного сообщения об одной и той же уязвимости из-за незначительных изменений в коде, таких как добавление комментария или переформатирование файла. Это приводит к напрасным усилиям по аудиту и подрывает доверие к результатам сканирования. Для решения этой проблемы в 2022 году была внедрена усовершенствованная система отслеживания уязвимостей, использующая метод отпечатков Scope+Offset для идентификации находок по их наименьшей охватывающей области и смещению строки. Однако этот метод все еще имел ограничения, особенно в отношении нефункциональных изменений, таких как добавление комментариев или пустых строк, которые могли сместить смещение и привести к тому, что трекер будет считать уязвимость дубликатом. Для решения этой проблемы был разработан усовершенствованный метод, который игнорирует нефункциональный код при вычислении отпечатка, гарантируя, что добавление комментария или переформатирование файла больше не изменяет отпечаток. Этот нормализованный метод был протестирован на наборе из 439 исходных файлов на нескольких языках программирования, где он не дал ни одного дубликата и в целом сократил количество уникальных отпечатков на 43%. Оригинальный метод Scope+Offset, напротив, накопил 1361 дубликат отпечатка, что на 77% больше по сравнению с базовым уровнем. Нормализованный метод Scope+Offset теперь доступен в GitLab как алгоритм отслеживания scope_offset_compressed, поддерживающий несколько языков программирования и совместимый с любыми комбинациями инструментов SAST. Исследование этого метода под названием "Отслеживание уязвимостей с использованием нормализованного Scope+Offset" будет представлено на выставке ASE 2026 Industry Showcase, и его выводы имеют важное значение для повышения точности и эффективности сканирования безопасности. Разработка этого метода является результатом сотрудничества нескольких исследователей, включая Джулиана Томе, Хуа Яна, Лукаса Чарльза, Крейга Смита и Джейсона Лизура, которые внесли свой вклад в исследование и статью.