Получить консультацию по Solar appScreener

Для обеспечения безопасности программных продуктов, поиска уязвимостей и недекларированных возможностей ПО используются специальные анализаторы. Они упрощают анализ кода, но в процессе могут происходить ложноположительные срабатывания — 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

Как решается проблема False Positive в анализаторе Solar appScreener

Solar appScreener — инструмент для комплексной безопасности разработки приложений. С помощью анализатора можно выполнять различные виды анализа кода, в том числе и статический. Чтобы решить проблему False Positive, в Solar appScreener реализована уникальная технология Fuzzy Logic Engine, которая позволяет свести к минимуму количество ложных тревог.

Стоит понимать, что полностью устранить False Positive при проведении SAST-анализа невозможно, несмотря на все прикладываемые разработчиками усилия. Чтобы не пропустить реальные уязвимости из-за ложных срабатываний, следует внедрить в цикл разработки ПО и другие виды тестирований:

  • Dynamic Application Security Testing (DAST) — динамическое тестирование программного обеспечения методом имитации атак и различных пользовательских действий. Для реализации такого анализа необходимо развернуть программу в имитированной рабочей среде.
  • Supply Chain Security (SCS) — анализ каждого звена цепочки поставок, под которой понимают путь ПО с начала разработки до эксплуатации конечным потребителем. Анализатор выставляет оценки доверия, иллюстрирующие степень возможных рисков.
  • Software Composition Analysis (SCA) — выявление Open Source-компонентов ПО и проверка их на уязвимости. Также в рамках такого тестирования оцениваются лицензионные риски, связанные с заимствованными компонентами.

Все эти виды тестирований можно реализовать с помощью Solar appScreener. В нем есть модули SAST и DAST, OSA, выполняющие проверку сторонних компонентов, анализ цепочки поставок и лицензионных рисков. Использование анализатора позволяет реализовать комплексный подход к обеспечению безопасности ПО и выпустить максимально защищенный качественный продукт.

ЗАКЛЮЧЕНИЕ

Даже самый продуманный и надежный статический анализатор в процессе тестирований безопасности ПО иногда выдает ложноположительные срабатывания (False Positive), но разработчики стараются решить проблему путем использования передовых механизмов подавления ошибочных сигналов. Например, в Solar appScreener реализована запатентованная технология Fuzzy Logic Engine, минимизирующая процент False Positive.

ДРУГИЕ СТАТЬИ ПРОДУКТА

Еще больше о наших возможностях

Application Security (AppSec): комплексная безопасность разработки приложений

Application Security (AppSec): комплексная безопасность разработки приложений

Узнать больше