Архив метки: Detection

Стоит ли опускаться до базового дистрибутива при детектировании уязвимостей Linux?

Стоит ли опускаться до базового дистрибутива при детектировании уязвимостей Linux?

Стоит ли опускаться до базового дистрибутива при детектировании уязвимостей Linux? Возьмём деривативный Linux-дистрибутив. Например, Astra Linux CE, использующий помимо собственных также пакеты Ubuntu и Debian.

Есть 2 подхода к детектированию уязвимостей:

🔹 Используем только информацию об уязвимостях от вендора. Берём бюллетени безопасности вендора, генерим на основе них правила детектирования ("версия пакета X -> уязвимость"). И детектируем, и устраняем уязвимости по рекомендациям вендора.

🔹 Используем информацию об уязвимостях от вендора, но и опускаемся до базового дистрибутива. Т.е. предыдущий вариант плюс смотрим на пакеты, которые похоже были взяты из базового дистриба (Ubuntu, Debian) и используем для их проверки правила детектирования для этого базового дистриба (OVAL-контент Ubuntu, Debian). Продетектируется больше уязвимостей, но вендор, скорее всего, посчитает их фолсами и обновлений не выпустит. 🤷‍♂️

Как считаете, какой подход более правильный? 🤔

Сканер уязвимостей с "поиском по версиям в базе" может найти все уязвимости из этой базы?

Сканер уязвимостей с поиском по версиям в базе может найти все уязвимости из этой базы?

Сканер уязвимостей с "поиском по версиям в базе" может найти все уязвимости из этой базы? То, что для качественного детектирования нужен "не совсем поиск и не совсем по версиям", я уже расписал ранее. Теперь посмотрим по контенту.

Если в базе сканера 427498 уязвимостей, значит ли это, что сканер может находить их все? Не совсем. 🙂

🔷 Для уязвимости должны быть правила детектирования. Если правила детектирования строятся на основе NVD CPE Configurations, а для какой-то уязвимости в NVD их нет, значит и в сканере их не будет, и сканер уязвимость не обнаружит.

🔷 Должна быть логика определения продукта и его версии. Вот уязвимость CVE-2023-32311 в некотором китайском проекте CloudExplorer Lite, для неё есть логика детектирования: версии = 1.1.0 уязвимы. Но сможет ли сканер узнать инсталляцию с этим CloudExplorer Lite и определить его версию? Не факт. 😉 Поэтому для таких сканеров "наличие уязвимости в базе" != "возможность продетектировать её в инфраструктуре".

Публичная база уязвимостей Эшелон Сканер-ВС

Публичная база уязвимостей Эшелон Сканер-ВСПубличная база уязвимостей Эшелон Сканер-ВСПубличная база уязвимостей Эшелон Сканер-ВСПубличная база уязвимостей Эшелон Сканер-ВСПубличная база уязвимостей Эшелон Сканер-ВСПубличная база уязвимостей Эшелон Сканер-ВСПубличная база уязвимостей Эшелон Сканер-ВСПубличная база уязвимостей Эшелон Сканер-ВС

Публичная база уязвимостей Эшелон Сканер-ВС. На днях коллеги из Эшелон запустили портал, отображающий уязвимости из базы знаний Сканер-ВС 7. 🔥

На данный момент в базе 427498 уязвимостей. Многовато, учитывая, что в NVD сейчас 283593, да? 😏 На самом деле там не только CVE идентификаторы, но и идентификаторы бюллетеней безопасности, такие как ROS-20240731-03 или oval:redos:def:6132. Причём это только для RedOS так, уязвимости других дистрибов группируются на страницы CVE-шек. 🤷‍♂️ Отдельно вынесены и уязвимости БДУ (даже при наличии ссылки на СVE), например BDU:2022-06708.

Доступны правила детектирования! Например, для CVE-2021-40438 в Apache HTTP Server видим детекты по версиям пакетов из бюллетеней безопасности (включая признаки "unfixed" и "unaffected" для версий дистрибов), и NVD CPE Configurations для баннерных детектов без аутентификации.

Также есть ссылки на эксплоиты (не из NVD!) 🔥

В общем, круто получилось! Молодцы, Эшелон! 👍

Детектирование уязвимостей "поиском по версиям" - серебряная пуля?

Детектирование уязвимостей поиском по версиям - серебряная пуля?

Детектирование уязвимостей "поиском по версиям" - серебряная пуля? Я бы хотел жить в мире, где наличие уязвимости в продукте однозначно определялось простым поиском по его версии в некоторой базе. 🙏 Но реальность сложнее. 🤷‍♂️

🔹 Детектирование по CPE идентификаторам на основе данных из NVD требует расчёта логических выражений (потенциально с большой вложенностью). Это уже не совсем поиск, ближе к расчёту статусов в OVAL-е. 😉

🔹 Для правильного детектирования уязвимостей по версиям пакетов в Linux необходимо сравнивать версии согласно алгоритмам системы управления пакетами (RPM, DEB и т.д.), а не как строки. Тоже не простой поиск. Логика расчёта уязвимостей может требовать проверять версию дистрибутива и версию ядра. Т.е. нужны не только версии продуктов. 🧐

🔹 Детектирование уязвимостей Windows может включать проверку значений в реестре. Т.е. не только версии.

Поэтому, имхо, лучше не ограничиваться только этим подходом к детектированию, а исходить из потребностей. 😉

При всём моём принятии любых подходов к детектированию уязвимостей, есть одна вещь, которая мне однозначно не нравится

При всём моём принятии любых подходов к детектированию уязвимостей, есть одна вещь, которая мне однозначно не нравится

При всём моём принятии любых подходов к детектированию уязвимостей, есть одна вещь, которая мне однозначно не нравится. Когда VM-вендор реализует некоторый подход к детектированию (условный Best Detection & Scanning Method 😏) и начинает применять его везде и всегда как самый лучший и правильный.

Частенько оказывается, что гибкость реализованного подхода недостаточна, чтобы получать качественные результаты детектирования уязвимостей для некоторых типов активов. Гладко было на бумаге, да забыли про овраги. 🤷‍♂️

Правильным решением такое ситуации выглядит:

🔹 Публично признать проблему, покаяться перед клиентами.
🔹 Реализовать подход, обеспечивающий наилучшее качество детектирования.

Но VM-вендоры могут вместо этого включать режим "пренебречь - вальсируем". 😐 Тоже понятно почему: доработка требует ресурсов, а клиенты фолсы могут и не заметить. 😉 Такие кейсы, имхо, следует аккуратно подсвечивать и стимулировать вендоров к повышению качества детектирования.

Важно ли, что именно у сканера уязвимостей "под капотом"?

Важно ли, что именно у сканера уязвимостей под капотом?

Важно ли, что именно у сканера уязвимостей "под капотом"? На презентации Сканер-ВС 7 Александр Дорофеев поднял интересную тему сравнения подходов к детектированию уязвимостей. Поделюсь своим мнением:

🔹 Я видел много разных сканеров уязвимостей, и у меня сейчас нет предпочтений в том, как должна описываться логика детектирования уязвимостей. Глядя со стороны клиента, мне без разницы, что у сканера "под капотом": NASL/NSE/NucleiTemplates, SCAP/OVAL/NVD CPE Configurations, свои форматы описания логики на основе XML и YAML, любые таблички с версиями или произвольные скрипты. 🤷‍♂️

🔹Я даже не против, если для разных типов сканирования и/или разных типов активов будут использоваться различные подходы к детектированию. Вообще пофиг - хоть на таро гадайте. 🃏😏

Определяющим для меня является только одно - итоговое качество детектирования: чтобы количество ошибок первого и второго рода в результатах было минимальным. А как этого добивается VM-вендор - его проблемы.

О сертификации VM-продуктов по качеству детектирования

О сертификации VM-продуктов по качеству детектирования

О сертификации VM-продуктов по качеству детектирования. Моё мнение - такая сертификация должна быть. Добровольная или обязательная, государственная или негосударственная. Но хоть какая-то должна быть. Это ненормально, когда вендор может начать продавать буквально любой треш, а задача оценки качества детектирования уязвимостей (равно как и ответственность в случае инцидента) целиком ложится на клиента. 🤷‍♂️ Рыночек тут не порешает.

Такая сертификация должна гарантировать приемлемый уровень качества детектирования уязвимостей для типичной IT-инфраструктуры российской организации.

И тут встают очень интересные вопросы:

🔹 Какая инфраструктура типичная? Кто это может решить? У кого есть такая статистика?

🔹 Результаты работы какого средства детектирования (с каким движком и контентом) должны браться за эталон?

🔹 Как будут решаться спорные вопросы?

Если с этим определиться, то создание автоматических тестов становится делом техники.