
Процесс безопасной разработки
Узнать больше02.04.2025
Для обеспечения безопасности программных продуктов, поиска уязвимостей и недекларированных возможностей ПО используются специальные анализаторы. Они упрощают анализ кода, но в процессе могут происходить ложноположительные срабатывания — False Positive. В статье рассказываем, когда и почему они возникают, как снизить их процент.
Что такое True Positive и False Positive в контексте анализа кода ПО
True Positive и False Positive — типы срабатываний инструментов, используемых для проверки безопасности программного обеспечения. Рассказываем, чем они отличаются.
Истинноположительные срабатывания или True Positive — корректное срабатывание анализатора. В процессе тестирования ПО инструмент выдает сигналы об ошибках в программном коде, уязвимостях, некорректной работе функций и т.д. Как правило, анализатор сообщает, где именно обнаружены проблемы. Задача команды разработки — устранить слабые места до релиза ПО. Если этого не произойдет, на рынок выйдут программные продукты с уязвимостями, что повышает риски хакерских атак.
Ложноположительное срабатывание статического анализатора кода или False Positive — это сообщение о проблеме, которой по факту нет. Проверять такие сигналы все равно нужно, поскольку неизвестно, что они ошибочные. Команде проекта приходится впустую тратить ресурсы на проверку, из-за чего может быть пропущена часть реальных уязвимостей.
Риски и проблемы, связанные с False Positive
Ключевые проблемы из-за ложноположительных срабатываний анализатора:
Эти проблемы становятся ощутимее, если False Positive происходят часто. К тому же, из-за постоянных ложных тревог разработчики могут предвзято относиться к отчетам анализатора и идентифицировать все неоднозначные срабатывания как ошибочные. Это часто приводит к тому, что команда в случае не очень понятных предупреждений пренебрегает проверкой. Хотя на самом деле анализатор мог обнаружить неприметную на первый взгляд ошибку в коде. В результате уязвимость остается неустраненной.
Ложноположительные срабатывания статического анализатора кода
Начнем с описания статического анализа. Это тестирование Static Application Security Testing (SAST), позволяющее проверять программный код или его отдельные фрагменты, не запуская приложение в рабочей среде. Его можно внедрять уже с первых этапов разработки. Такой анализ позволяет практически на 100% покрывать программный код, исследовать на уязвимости и наличие недекларированных возможностей разрабатываемые приложения, программы от сторонних разработчиков, наследуемое ПО.
SAST лучше выполнять с помощью автоматических анализаторов, которые могут выдавать False Positive. Выглядит это так: в отчетах инструмента подсвечиваются проблемные (или псевдопроблемные) участки с рекомендациями по устранению ошибок кода и уязвимостей. Выявленным уязвимостям присваивается степень критичности — от низкой до очень высокой. Таким образом, разработчики видят, какие слабые места необходимо устранять в первую очередь.
Основные причины False Positive и практические рекомендации по снижению количества ложноположительных срабатываний статического анализатора кода
Если не брать во внимание ошибки разработчиков инструментов для анализа кода, то причины False Positive могут быть следующими:
Полностью устранить False Positive не получится, но можно существенно сократить их количество. Рекомендации:
При выборе анализатора следует учитывать репутацию решения. Многие пользователи делятся опытом, выдавая в отзывах процент True Positive и False Positive. Если анализатор часто грешит ложными срабатываниями, его использование не будет оправдано, даже если остальные характеристики на высоком уровне.
Как решается проблема False Positive в анализаторе Solar appScreener
Solar appScreener — инструмент для комплексной безопасности разработки приложений. С помощью анализатора можно выполнять различные виды анализа кода, в том числе и статический. Чтобы решить проблему False Positive, в Solar appScreener реализована уникальная технология Fuzzy Logic Engine, которая позволяет свести к минимуму количество ложных тревог.
Стоит понимать, что полностью устранить False Positive при проведении SAST-анализа невозможно, несмотря на все прикладываемые разработчиками усилия. Чтобы не пропустить реальные уязвимости из-за ложных срабатываний, следует внедрить в цикл разработки ПО и другие виды тестирований:
Все эти виды тестирований можно реализовать с помощью Solar appScreener. В нем есть модули SAST и DAST, OSA, выполняющие проверку сторонних компонентов, анализ цепочки поставок и лицензионных рисков. Использование анализатора позволяет реализовать комплексный подход к обеспечению безопасности ПО и выпустить максимально защищенный качественный продукт.
ЗАКЛЮЧЕНИЕ
Даже самый продуманный и надежный статический анализатор в процессе тестирований безопасности ПО иногда выдает ложноположительные срабатывания (False Positive), но разработчики стараются решить проблему путем использования передовых механизмов подавления ошибочных сигналов. Например, в Solar appScreener реализована запатентованная технология Fuzzy Logic Engine, минимизирующая процент False Positive.
Самые важные новости кибербезопасности у вас в почте
Выберите темы, на которые бы вам было интересно получать новости.
Для получения бесплатной консультации заполните форму ниже и отправьте заявку. Наш менеджер свяжется с вами в ближайшее время.