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

Размышляю о развитии Scanvus

Размышляю о развитии Scanvus

Размышляю о развитии Scanvus. Давненько не было обновлений проекта. Так-то понятно, что опекать конкретную инфру мне стало не нужно, поэтому приоритизирующий уязвимости Vulristics мне стал важнее, чем детектирующий их Scanvus. 🤷‍♂️ Однако проблема оценки качества детектирования уязвимостей никуда не делась, поэтому и необходимость в "прозрачном" (и желательно бесплатном 😏) сканере остаётся.

Подход к интерпретации OVAL-контента в рамках Vuldetta показал, что хоть это делать и можно, но местами довольно хлопотно (для уязвимостей ядра например).

Использовать для детектирования OpenSCAP было бы гораздо проще. В этом случае задачей Scanvus было бы зайти на хост, определить версию дистрибутива, найти инсталляцию OpenSCAP, скачать и загрузить на хост актуальный OVAL-контент, запустить утилиту OpenSCAP, забрать и отобразить отчёт сканирования.

Мне кажется, что такой "агентный" режим работы имеет смысл реализовать.

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

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

На выходных добился первых результатов в своём опенсурсном проекте по детектированию уязвимостей Vuldetta. 😇

Что получилось сделать:

🔹 Распарсил Ubuntu OVAL в простые правила детектирования по версиям пакетов. Cтруктура OVAL-а там достаточно навороченная, особенно что касается детектирования уязвимостей ядра (не по пакетам, а по uname_test и variable_test 🤯). Несмотря на то, что OVAL-контент для каждой версии дистрибутива качается в отдельном файле, на уровне OVAL-а также реализованы проверки версии дистриба. Сейчас я просто прохожу по всем definition-ам, смотрю какие dpkginfo_test используются в критериях и разбираю только их.

🔹 Сделал примитивную чекалку по правилам детектирования. Без оптимизаций на парсинг OVAL-а и расчет уязвимостей уходит 6,5 секунд. Проверил для пакетов необновленного хоста - получил список свежих уязвимостей, обновил пакеты - уязвимости ушли. Работает. 🙂👍

Всё на Github. Дальше разбираться с уязвимостями ядра, оптимизацией и оформление в API-шку.

Закругляю февраль традиционным англоязычным постом и видяшкой

Закругляю февраль традиционным англоязычным постом и видяшкой. 🙂 Чуть-чуть поговорил про опенсурсные проекты (признаться, не было особо времени ими заниматься, пока одни намётки), про PT-шные активности и, естественно, про уязвимости (трендовые и не очень).

———

February 2024: Vulremi, Vuldetta, PT VM Course relaunch, PT TrendVulns digests, Ivanti, Fortinet, MSPT, Linux PW

Hello everyone! In this episode, I will talk about the February updates of my open source projects, also about projects at my main job at Positive Technologies and interesting vulnerabilities.

My Open Source projects
00:14 Vulremi - a simple vulnerability remediation utility
00:55 Vuldetta - an API for detecting vulnerabilities based on a list of Linux packages

Positive Technologies
01:22 Two new video modules for the relaunch of the Vulnerability Management training course
02:00 Monthly digests of trending vulnerabilities

Vulnerabilities
02:17 RCEs in the Ivanti Connect Secure, Ivanti Policy Secure and Ivanti Neurons for ZTA (CVE-2024-21887, CVE-2023-46805, CVE-2024-21893)
03:47 Arbitrary Code Execution vulnerability in Fortinet FortiOS and FortiProxy (CVE-2024-21762)
04:11 Cisco ASA Information Disclosure vulnerability (CVE-2020-3259) is used by the Akira ransomware
04:55 February Microsoft Patch Tuesday
07:14 February Linux Patch Wednesday

🎞 Video
📘 Blogpost
🎞 VKVideo

Хочется немного поиграться с непосредственным детектом уязвимостей - проект Vuldetta

Хочется немного поиграться с непосредственным детектом уязвимостей - проект Vuldetta

Хочется немного поиграться с непосредственным детектом уязвимостей - проект Vuldetta. С 2021 года я работаю над открытым проектом сканера уязвимостей Scanvus для Linux хостов и docker-образов. И с ним всё отлично, кроме того, что он сам уязвимости не детектирует. 😅 Он собирает пакеты и версию дистриба, но для детектирования использует внешние коммерческие API-шки: Vulners Linux API или VulnsIO API. А оно стоит денег и это, естественно, снижает привлекательность утилиты. 🤷‍♂️

Можно ли сделать так, чтобы Scanvus работал без использования коммерческих API? Можно. И тут видятся 2 пути:

🔹 Первый путь - это добавить детектирование уязвимостей непосредственно в Scanvus. Мне это не очень нравится. Мне нравится концепция такого "безмозглого" нейтрального сканера, который может использовать различную внешнюю экспертизу в зависимости от потребностей.

🔹 Второй путь - это сделать некоторый аналог Vulners Linux API или VulnsIO API, который можно было бы развернуть локально в организации и использовать для детекта уязвимостей хотя бы для некоторых Linux дистрибутивов. Понимая, безусловно, что коммерческий сервис будет, скорее всего, поддерживать большее количество дистрибутивов и, возможно, будет даже лучше детектировать. Но от бесплатной свободной альтернативы хуже не будет.

Собственно второй путь и есть Vuldetta. Взять готовые формализованные правила детекта (после возни с OVAL-контентом для Debian я смотрю теперь в сторону OVAL-контента для Ubuntu), разобрать их во что-нибудь простое и удобное для работы (Bulletin|CVE_Number|Distribution_Version|Package_Name|Package_Version), сделать API-шку-сравнивалку версии на хосте с безопасными версиями из OVAL-контента.

Вроде выглядит как изян. А на выходе может получиться штука, которую как минимум можно будет использовать для валидации качества детектирования коммерческих сканеров уязвимостей, а как максимум возможно даже в проде где-то использовать. А так как лицензия будет MIT, то это даже можно будет встроить куда-нибудь как альтернативу жуткому фолсящему Trivy. 😅 И будет на чём тестовый контент для Vulremi генерить опять же. 🙂