Архив рубрики: Scanvus

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

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

Хочется немного поиграться с непосредственным детектом уязвимостей — проект Vuldet­ta. С 2021 года я работаю над открытым проектом сканера уязвимостей Scan­vus для Lin­ux хостов и dock­er-образов. И с ним всё отлично, кроме того, что он сам уязвимости не детектирует. 😅 Он собирает пакеты и версию дистриба, но для детектирования использует внешние коммерческие API-шки: Vul­ners Lin­ux API или VulnsIO API. А оно стоит денег и это, естественно, снижает привлекательность утилиты. 🤷‍♂️

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

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

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

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

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

Проекты, над которыми я сейчас размышляю

Проекты, над которыми я сейчас размышляю. Возможно кому-то тоже захочется поучаствовать.

1. CVE Men­tions. Переводить аналитические отчёты с упоминанием CVE-идентификаторов в формализованный вид, использовать их для приоритизации уязвимостей в Vul­ris­tics.

2. Свой Vul­ner­a­bil­i­ty Feed. Анализировать все CVE/БДУ, детектировать тип уязвимости и уязвимый продукт, наличие эксплоита и факта эксплуатации вживую. Использовать фид в Vul­ris­tics.

3. Lin­ux Patch Wednes­day. Формировать ежемесячные обзоры по Lin­ux-овым уязвимостям. Написать скрипт для формирования скоупов CVE с разбивкой по месяцам.

4. ОСОКА. Система оценки критичности уязвимости на основе CVSS v3 и методики оценки критичности ФСТЭК. Расписать метрики, формулу расчета, автоматическую генерацию базовых метрик из CVSS Base v2, v3, v4.

5. Scan­vus OVAL. Добавить в Scan­vus возможность детектирования уязвимостей с использованием OVAL-контента без доступа к внешним платным API.

6. Scan­vus Dock­er. Добавить возможность детектировать уязвимости Dock­er images без запуска контейнера, только через анализ SBOM.

7. Telegram2WordPress. Написать обвязку, которая будет раскидывать посты из телеграмма в блог на Word­Press. Для упрощения навигации, улучшения индексации и на случай если Телеграмм снова начнут блокировать.

Про сканер уязвимостей в Yandex Cloud

Про сканер уязвимостей в Yandex Cloud

Про сканер уязвимостей в Yan­dex Cloud. На днях были новости, что Yan­dex открыл доступ к своему сканеру уязвимостей. Из этих новостей было не очень понятно что за сканер, для чего сканер. Но я нашел первоисточник — блогопост на сайте Яндекс Клауда.

1. Речь о сканере для Dock­er-образов, интегрированный в сервис Yan­dex Con­tain­er Reg­istry. Это аналог Aqua Trivy, Clair, Fal­co, Dock­er scan. Ну и моего Scan­vus-а. 🙂 И видимо имеется ввиду Сканер уязвимостей описанный в документации, поддерживающий Alpine, Cen­tOS, Debian, Red­hat, Ubun­tu в качестве ОС, на которых могут быть собраны пользовательские Dock­er-образы.

2. В чем преимущество: "Чтобы использовать сканер уязвимостей Yan­dex Cloud, не требуется выделять дополнительную инфраструктуру, обслуживать её, заниматься разворачиванием и поддержкой продукта или глобально менять процесс выкладки кода. "

3. Описание сканера частично понятно, детект по пакетам: "по результатам сканирования образа пользователь получает отчёт об уязвимостях, обнаруженных в конкретных пакетах ОС, и о версиях этих пакетов с исправлениями, если такие имеются". А то, что понимается под "сканер уязвимостей с использованием статического анализа" — загадочно.

4. Уровни сканирования: реестра целиком и выбранных репозиториев. Сканирование отдельных образов и фильтрации по тегам пока нет, но обещают.

5. Сколько стоит: "Первые шесть первичных и шесть последующих сканирований бесплатны. Начиная с седьмого раза нужно будет платить: за каждое первичное — 13,2 рубля, а за последующее — 7,2 рубля."

Небольшое обновление Scanvus для сканирования Linux-хостов по SSH

Небольшое обновление Scan­vus для сканирования Lin­ux-хостов по SSH. Теперь Scan­vus может аутентифицировать не только ключом

$ python3 scanvus.py --audit-service "vulners" --assessment-type "remote_ssh"  --host "192.168.56.105" --user-name "vmuser" --key-path "/home/alexander/.ssh/id_rsa.pub"

но и просто по паролю

$ python3 scanvus.py --audit-service "vulners" --assessment-type "remote_ssh"  --host "192.168.56.105" --user-name "vmuser" --password "vmuser"

Иногда так проще и быстрее.

Выпустил эпизод про поддержку двух API в Scanvus

Выпустил эпизод про поддержку двух API в Scan­vus. Потестил сканирование локалхоста, удаленного хоста по SSH и Dock­er образа. Все работает, но при сравнении результатов есть серьезные расхождения. До конкретных причин я в этом эпизоде на докапывался. Однако это в очередной раз подтверждает, что обнаружение уязвимостей не такое просто дело, и хорошо, когда можно использовать несколько независимых механизмов обнаружения и сравнивать результаты. 😉

Отличные новости по моему опенсурсному проекту Scanvus!

Отличные новости по моему опенсурсному проекту Scanvus!

Отличные новости по моему опенсурсному проекту Scan­vus! Теперь вы можете проводить проверки на уязвимости Lin­ux хостов и докер-образов не только с помощью API от Vulners.com, но и с помощью аналогичного API от Vulns.io. Особенно приятно, что весь код для поддержки нового API коллеги из Vulns.io написали и законтрибьютили сами. Оставалось только потестить, что все работает. За это им огромное спасибо!

Чем может быть полезна поддержка двух API детекта уязвимостей в Scanvus?

Чем может быть полезна поддержка двух API детекта уязвимостей в Scan­vus?

1. Нет привязки к одному вендору, выбирайте чьи условия вам нравятся больше.
2. Набор поддерживаемых ОС у Vulners.com и Vulns.io различается. Если какой-то Lin­ux дистрибутив не поддерживается у одних, он может поддерживаться у других.
3. Реализации проверок независимые. Если при сканировании одного и того же хоста/образа результаты будут различаться, то будут наглядно видны ошибки/особенности реализации.
4. Scan­vus выпускается под лицензией MIT, поэтому вы можете использовать его как пример работы с API Vulners.com и Vulns.io и использовать этот код в своих проектах.

Что дальше?

В настоящий момент поддержка API Vulners.com и Vulns.io реализована в равной степени, но она реализована независимо. Скрипты инвентаризации на bash для каждого из API различаются. Также используются 2 независимые функции репортинга. Скрипты для инвентаризации видится правильным унифицировать, чтобы эти результаты инвентаризации можно было бы проверить и с помощью Vulners.com и Vulns.io. Также напрашивается создание единого формата представления результатов детектирования, к которому можно будет приводить сырые результаты от API, и который можно будет использовать для построения отчетов и дальнейших интеграций. Кажется, что на примере работы Vulners.com и Vulns.io можно отладить схему добавления новых API в Scan­vus.