Обновить

Зоопарк версий под контролем: как я создал enodia — инвентаризацию сервисов с EOL и CVE

Уровень сложностиСредний
Время на прочтение13 мин
Охват и читатели7.4K
Всего голосов 4: ↑4 и ↓0+4
Комментарии15

Комментарии 15

работа конечно проделана потрясающая. но есть еще куда расти. три примера, когда ваша тула сфелит или скажет не то

1) debian с репой от вендора nginx. стоит условная версия 1.1, которая уже EOL, но CVE патчи дотягиваются командой дебиана. но версия стоит из репы и она протухла давно, откуда брать фиды CVE непонятно.

2) rhel based дистры, в которых нет софта вообще, часто подключают помойки типа remi/epel и тд. какая там политика патчинга никто не знает

3) ESM в убунте. да-да, даже в актуальной 26 некоторые пакеты избавляются от CVE только в ESM

Спасибо, все три примера в точку. Проект свежий и развивается.

1. Debian и nginx. Тут два разных случая.

1.1 Если nginx штатный, из Debian: ось пакетов сверяет версию с Debian Security Tracker, а он про бэкпорты знает, так что там всё честно.

Ось сервисов, наоборот, смотрит на upstream-версию из баннера и покажет CVE, которые Debian уже закрыл патчами. Будут ложные срабатывания, а EOL при этом окажется правдой. Сейчас эти оси не сводятся, и я сознательно предпочёл ложное срабатывание пропуску. Для дистрибутивного софта главная — ось пакетов.

1.2 Если nginx из репозитория nginx.org: трекер Debian про такой пакет ничего не знает. Версия 1.26 «старше» исправленной дебиановской 1.22, поэтому по пакетам выйдет тишина.

Спасает ось сервисов, если nginx заведён отдельной целью: версия вендорского пакета совпадает с upstream, а её покрывают advisories nginx.org, NVD и БДУ.

2. RHEL с EPEL и remi. OVAL от Red Hat, Alma и Oracle описывает только пакеты самого дистрибутива. Всё, что пришло из EPEL или remi, там просто не упоминается, и сейчас enodia покажет по таким пакетам «нет находок», хотя честнее было бы «неизвестно». Есть и обратный риск: если имя стороннего пакета совпало с дистрибутивным, его сверят с чужим фидом. Буду исправлять: введу отдельный статус «не покрыто фидом» и начну учитывать, из какого репозитория пришёл пакет (apt Origin, rpm vendor).

3. Ubuntu ESM. Проверил на OVAL для noble: ESM-исправления там есть, с версиями +esm. Хост без Pro enodia покажет уязвимым, и это правда: пакет действительно не пропатчен. Но она не предупредит, что исправление ставится только через Ubuntu Pro. Возможно добавлю такую пометку, либо опишу в доках.

Всё записал в roadmap, спасибо за конкретные сценарии.

ну я просто уже все это проходил, пока у нас нечто аналогичное делали. и сколько там еще скрывается - надо плотно сидеть и разибраться. или ллм натравить, пусть покажет дырки.

PS BDU зачастую трэшак несет - например отмечен CVE для пакета aarch64 only, а по факту общая для всех платформ.

BTW тоже поди по архитектурам не распилено в вашем продукте :)

Про БДУ согласен, там все очень неоднозначно. Поэтому оно все опционально подключается)

По архитектурам не распиливал. Так как изначально, тула делалась для покрытия мониторингом серверных аппов, с api и протоколами в первую очередь. Ну то есть всяких редисок. жир, гитлабов и тд.

Покрытие по софту на ОС через овалы и вендор-базы уже добавлялось значительно позже в качестве эксперимента и полезной потенциально фичи. Так что упора, мониторить именно пакеты не было.

Но в целом, есть куда развивать. Главное, в итоге не превратиться в Ccleaner с проверкой обновления софта и биоса. Но мысль проработать анализ установленного софта был, и на кросплатформе. Пока просто как идея.

aarch64 давно уже много серверных железок. например

продается в РФ вполне.

я имею ввиду, что если взять тот же esxi, который есть на арме, то его тула увидит ее по версиям.

но фильтр по cve можно будет доработать, чтобы условная cve воспроизводимая и на спецефичной архитектуре (на arm на том же) не попадала в x86 выборку, например. это да.

учту момент.

а так, если у платформы есть api, то могу с ним ознакомиться и постараться добавить пробу.

в общем, на гитхабе есть категория ишью с реквестаии, чтобы оно не потерялось)

то его тула увидит ее по версиям.

для сферического дебиана вы отличия в версиях не увидите

Ложное срабатывание в любом случае лучше, чем пропущенная дыра в безопасности)

Проще собирать софт в Docker-образах с четкими тегами, тогда сканировать зависимости намного легче. А тащить левые репы в систему это всегда риск

и да, в целом история вполне коммерциализируема, нормальных решений сейчас на рынке или 0 или 1.

из дополнительно проверить в сценарии

"Отчёт нужно перегенерировать, а потом ещё и понять, что изменилось с прошлого раза. Поддерживать диффы руками больно."

даунгрейд - часто бывает откат у админов, прилетела новая версия, неочень, нужно откатиться.

и еще в копилку - нотификации владельцу сервера "у вас тут дыряво", с запоминанием CVSS, даты патчинга и когда уже поздно и надо писать объяснительную.

пока есть лайв режим с прометеус экспортером, можно в графану влить.

но я думал нал заббикс-подобным. сейчас пока можно худобедно json парсить, но неудобно

в целом, в планах есть, у себя такое бы в заббикс сделали. и сотсчетчиком све и с венсими.

Крутая идея собрать инвентаризацию и сверку с календарем EOL в один бинарник)

Спасибо!

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации