Команда AutoVM Google обнаружила,что инструменты для сканирования зависимостей часто ошибочно сообщают о наличии уязвимостей в программном обеспечении. Эти уязвимости могут либо не представлять реальной угрозы безопасности, либо не требовать каких-либо действий. В новом блоге Google команда делится наиболее распространёнными типами ложных срабатываний и советами, как их распознать.
Основная проблема заключается в том, что сторонние сканеры зависимостей проверяют версии установленных пакетов на хостах и сопоставляют их с публичными базами данных уязвимостей. Это позволяет определить, находятся ли пакеты под угрозой известных уязвимостей. Однако нередко такие отчёты содержат ложные или неактуальные для безопасности находки, что приводит к некорректным результатам.
Один из наиболее частых источников ложных срабатываний – это ошибки в самих базах данных уязвимостей, таких как NVD или специфические для операционных систем источники данных. Иногда уязвимость может быть отклонена или отозвана после более детального анализа. Например, уязвимость CVE-2023-4881 была признана не относящейся к безопасности, но сканеры продолжали её фиксировать. В некоторых случаях информация в базе данных NVD может отличаться от данных, предоставляемых для конкретных дистрибутивов операционных систем, что тоже приводит к ошибочным отчётам.
Другим важным фактором являются слишком широкие диапазоны версий уязвимого ПО, представленные в общих базах данных. Часто эти диапазоны не учитывают патчи, которые дистрибутивы операционных систем выпускают самостоятельно. Например, уязвимость CVE-2020-14422 , которая затрагивает Python версии 3.6.10, на самом деле была исправлена в Ubuntu, где выпустили версию с патчем, но многие сканеры продолжают считать эту версию уязвимой.
Также есть случаи, когда уязвимость применима только в определённых конфигурациях системы, но сканеры не всегда это учитывают. Например, уязвимость CVE-2023-52426затрагивает пакеты только в тех случаях, когда они скомпилированы с определёнными флагами. В Ubuntu Focal эти флаги не используются, поэтому уязвимость не актуальна, но некоторые сканеры продолжают её фиксировать.
Нередко проблема заключается и в неполных данных в базах уязвимостей, как это было с CVE-2022-3857 , где разные базы давали противоречивую информацию о затронутых версиях пакета. Это приводит к тому, что некоторые сканеры могут ошибочно сообщать об уязвимости даже на защищённых системах.
Также ложные срабатывания могут возникать из-за некорректной информации о затронутых бинарных пакетах. Например, уязвимость CVE-2024-6387 затрагивает только серверы OpenSSH, но в базе данных Debian уязвимым обозначается весь исходный пакет “openssh”, что приводит к неверной отметке о наличии уязвимости даже на системах, где установлен только клиент.
Кроме того, некоторые сканеры могут сообщать о вспомогательной информации, не связанной с безопасностью. Например, сканеры могут указывать на обновления, не касающиеся уязвимостей, такие как изменения данных о временных зонах или добавление новых GPG-ключей. Эти отчёты не представляют угрозы для безопасности и не требуют немедленного вмешательства.
Заключая пост, Google подчёркивает, что к отчётам сканеров зависимостей нужно подходить с осторожностью. Ложные срабатывания могут возникать по разным причинам, и важно проверять, применима ли указанная уязвимость к конкретной системе.