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

Хакатон MaxPatrol VM, часть 1: Linux стенд и Ansible

Хакатон MaxPatrol VM, часть 1: Linux стенд и Ansible

Хакатон MaxPatrol VM, часть 1: Linux стенд и Ansible. Как и обещал, делюсь впечатлениями от хакатона. Первым заданием у меня была автоматизации установки софта из TAR-архива на Debian 12 с помощью Ansible. Раньше я с Ansible толком не работал, поэтому появился повод немного разобраться.

Ansible - система управления конфигурациями, написанная на Python. Главное отличие Ansible от аналогов - не нужна установка агента или клиента на управляемые хосты. Обычно используется для управления Linux-хостами, но Windows также поддерживается. Взаимодействие происходит по модели push: сам Ansible запускается на "центральном" управляющем хосте, ходит на управляемые хосты и что-то делает. На управляемом хосте должен быть установлен Python версии 2.4 и выше, соединение выполняется по SSH или WinRM.

Управляющим хостом для Ansible будет мой десктоп на Ubuntu 23.10, а управляемым хостом будет виртуалка в VirtualBox.

Я завёл виртуалку в VirtualBox с Debian 12, добавил интерфейс Host-only adapter, чтобы можно было подключаться к ней по SSH. Я проверил, что подключение работает с помощью:

$ ssh vmuser@192.168.56.104

Для работы Ansible должна быть настроена аутентификация по ключам. Я сгенерировал ключ с помощью:

$ ssh-keygen -t ed25519 -C "alexander@avleonov.com"

Затем я закинул его на target-host:

$ ssh-copy-id vmuser@192.168.56.104

После этого команда уже не требовала пароль.

На десктоп с Ubuntu 23.10 я поставил Ansible при помощи утилиты pipx

$ sudo apt-get install pipx
$ pipx install --include-deps ansible

Обновлять можно с помощью:

$ pipx upgrade --include-injected ansible

Проверить версию ansible можно с помощью:

$ ansible --version
ansible [core 2.16.7]
...

Далее описываю управляемый хост (виртуалку) в yaml файле:

$ cat hosts.yaml 
myhosts:
hosts:
debian12:
ansible_host: 192.168.56.104

Валидирую файл hosts.yaml:

$ ansible-inventory -i hosts.yaml --list
{
"_meta": {
"hostvars": {
"debian12": {
"ansible_host": "192.168.56.104"
}
}
},
"all": {
"children": [
"ungrouped",
"myhosts"
]
},
"myhosts": {
"hosts": [
"debian12"
]
}
}

Проверяю соединение:

$ ansible myhosts -m ping -i hosts.yaml -u vmuser
debian12 | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python3"
},
"changed": false,
"ping": "pong"
}

Всё работает, связь есть. Теперь можно попробовать выполнить какие-то команды на хосте с помощью Ansible. Делаю тестовый плейбук для вывода hostname и версии дистрибутива:

- name: Print Hostname and OS Version
hosts: all
tasks:
- name: Get Hostname
command: hostname
register: hostname_output

- name: Get OS Version
ansible.builtin.shell: lsb_release -a | grep "Description:" | awk -F"\t" '{print $2}'
register: os_version_output

- name: Display Outputs
debug:
msg: "Hostname is {{ hostname_output.stdout }} and OS Version is {{ os_version_output.stdout }}"

Запускаю его:

$ ansible-playbook -i hosts.yaml -u 'vmuser' playbook.yaml
...

TASK [Display Outputs] *********************************************************
ok: [debian12] => {
"msg": "Hostname is debian and OS Version is Debian GNU/Linux 12 (bookworm)"
}

Работает! В следующей части рассмотрим как описать в плейбуке установку софта из TAR-архива.

Продолжаю рассказ про уязвимости БДУ без ссылок на CVE идентификаторы разбором конкретных кейсов

Продолжаю рассказ про уязвимости БДУ без ссылок на CVE идентификаторы разбором конкретных кейсовПродолжаю рассказ про уязвимости БДУ без ссылок на CVE идентификаторы разбором конкретных кейсовПродолжаю рассказ про уязвимости БДУ без ссылок на CVE идентификаторы разбором конкретных кейсовПродолжаю рассказ про уязвимости БДУ без ссылок на CVE идентификаторы разбором конкретных кейсовПродолжаю рассказ про уязвимости БДУ без ссылок на CVE идентификаторы разбором конкретных кейсовПродолжаю рассказ про уязвимости БДУ без ссылок на CVE идентификаторы разбором конкретных кейсов

Продолжаю рассказ про уязвимости БДУ без ссылок на CVE идентификаторы разбором конкретных кейсов.

🔹 Почему так много уязвимостей Astra Linux? Upd 0704. В основном это результат собственного ресёрча.
🔹 Для EMIAS OS уязвимости Linux Kernel, но даже без ссылки на бюллетень. Откуда именно уязвимость непонятно.
🔹 Откуда уязвимости Windows? Их Microsoft выпускали не как CVE-шки, а как ADVisories. Потом для них могут добавлять CVE, которые не пробрасываются в БДУ. 🤷‍♂️
🔹 Для уязвимостей Debian Linux аналогично. Они заводятся по бюллетеням DSA без ссылки на CVE на момент публикации. Затем ссылка добавляется, но в БДУ она не пробрасывается. 🤷‍♂️
🔹 Почему много уязвимостей Open Source продуктов? Потому что они заводятся по эксплойтам, в описании которых нет ссылки на CVE.
🔹 Некоторые виндоры не любят заводить CVE идентификаторы. Например, SAP часто выпускают только непубличные SAP Notes.

После продолжительного перерыва выпустил англоязычную видяшку и блогопост

После продолжительного перерыва выпустил англоязычную видяшку и блогопост. Разбираю там то, что произошло за последние 3 месяца. В первую очередь в плане улучшений Vulristics. Во вторую - смотрю какие были интересные уязвимости в Microsoft Patch Tuesday, Linux Patch Wednesday и из остальных. Ну и подвожу итоги 2023, а также намечаю направления работы на 2024.

Из занимательного:

🔻 Подсветил 7 уязвимостей из Microsoft Patch Tuesday, для которых за последние 3 месяца появились PoC-и/эксплоиты. Как правило это совсем не те уязвимости, на которые указывали VM-вендоры в своих обзорах. 😏
🔻 В Linux Patch Wednesday за последние 3 месяца было 90 уязвимостей с PoC-ами/эксплоитами (и это не считая тех, про которые известно, что они в активной эксплуатации). 🙈

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

———

November 2023 – January 2024: New Vulristics Features, 3 Months of Microsoft Patch Tuesdays and Linux Patch Wednesdays, Year 2023 in Review

Hello everyone! It has been 3 months since the last episode. I spent most of this time improving my Vulristics project. So in this episode, let’s take a look at what’s been done.

Also, let’s take a look at the Microsoft Patch Tuesdays vulnerabilities, Linux Patch Wednesdays vulnerabilities and some other interesting vulnerabilities that have been released or updated in the last 3 months. Finally, I’d like to end this episode with a reflection on how my 2023 went and what I’d like to do in 2024.

New Vulristics Features
00:32 Vulristics JSON input and output
02:37 CPE-based vulnerable product names detection
04:16 CWE-based vulnerability type detection

3 Months of Vulnerabilities
07:03 Linux Patch Wednesday
11:22 Microsoft Patch Tuesdays
13:59 Other Vulnerabilities

16:14 About the results of 2023
18:45 What about 2024?

📘 Blogpost
🎞 VKVideo

Про январский Linux Patch Wednesday

Про январский Linux Patch Wednesday

Про январский Linux Patch Wednesday. Основная сложность в распределении CVE-шек по месяцам для LPW это поймать момент, когда CVE-шку первый раз запатчили. Обычно первыми это делают Debian. Но вот беда - в Debian OVAL зачастую отсутствует дата, когда именно это произошло (дата публикации дефинишена). 😑

Продемонстрирую на примере. Генерю я вчера Linux Patch Wednesday отчёт за январь и вижу там UnRAR Arbitrary File Overwrite (CVE-2022-30333). Почему уязвимость 2022 года всплыла сейчас, в начале 2024? Потому, что её запатчили в Ubuntu на днях, 8 января. Причём фиксили не саму утилиту UnRAR, а стороннюю либу ClamAV для антивирусной проверки архивов. А раньше эту CVE не фиксил никто что ли? Ну, фиксили. Вот есть сообщение в листе рассылке Debian от 17 августа 2023. Тоже поздно, совсем не 2022 год, но всё-таки несколько раньше. Но в OVAL-контенте Debian этой даты, 17 августа 2023, не было. И поэтому попала CVE-шка из 2022 года в 2024, т.к. самая ранняя (и единственная) дата, которая была в OVAL-контентах Linux вендоров для этой уязвимости это была дата запоздалого фикса в Ubuntu. 🤷‍♂️

В общем, OVAL хорошо и универсально, но, к сожалению, не панацея. Удивительно, но там тоже бардак, на который всем пофигу. 😏

Пришлось вчера спешно научиться парсить архивы листа рассылки с бюллетенями безопасности Debian. В итоге список уязвимостей стал поадекватнее. В частности, CVE-2022-30333 ушла в LPW для сентября 2023. Аналогично можно и работу с другими листами рассылки построить, например с Suse.

С Suse, кстати, забавно. У них есть OVAL контент, но он отдаётся только по FTP и нереально медленно, как на dial-up модеме. Причём, не только для России режут скорость (как можно было бы предположить). Вовсе нет, проблема общая.

Отчёт Vulristics выпустил:

🗒 Январский LPW

С детектами можно (и нужно) ещё поиграться, но в целом выглядит норм. 🙂

81 уязвимость.

🔻 Из них самая критичная это RCE в модуле Perl Spreadsheet::ParseExcel (CVE-2023-7101). Эта уязвимость используется вживую и есть в CISA KEV.

Из того, для чего ещё есть ссылки на эксплоиты (ссылки из NVD - требуется верификация):

🔸 Denial of Service - Asterisk (CVE-2023-49786)
🔸 Security Feature Bypass - Python (CVE-2023-27043)
🔸 Memory Corruption - Linux Kernel (CVE-2023-6606)
🔸 Memory Corruption - libde265 (CVE-2023-49465, CVE-2023-49467, CVE-2023-49468) - реализация видео-кодека h.265
🔸 Security Feature Bypass - twisted (CVE-2023-46137)
🔸 Memory Corruption - sqlite (CVE-2023-7104)
🔸 Denial of Service - w3m (CVE-2023-4255)
🔸 Incorrect Calculation - QEMU (CVE-2023-42467)
🔸 Memory Corruption - QEMU (CVE-2023-40360)
🔸 Memory Corruption - cJSON (CVE-2023-50471) - парсер JSON на C
🔸 Browser tab titles were being leaked - Mozilla Firefox (CVE-2023-6872)
🔸 Security Feature Bypass - sqlite (CVE-2022-46908)

К слову о том, чем я ещё занимался на праздниках

К слову о том, чем я ещё занимался на праздниках

К слову о том, чем я ещё занимался на праздниках. Поковырял официальный Debian OVAL контент и сделал про это эпизод. Из неочевидного:

1. Дефинишены заводятся не по бюллетеням, я по CVE+пакет
2. Нет ссылок на DSA и DLA бюллетени (upd. Хе, тут я погорячился, на самом деле для некоторых дефинишенов DSA идентификаторы есть, я плохо смотрел)
3. Фактически никак не учитывается архитектура при детекте

В общем, занимательно, но к авторам этого контента есть вопросики. 🙂

Какие требования к вендорам отечественных Linux дистрибутивов можно было бы предъявить для упрощения Управления Уязвимостями?

Какие требования к вендорам отечественных Linux дистрибутивов можно было бы предъявить для упрощения Управления Уязвимостями?

Какие требования к вендорам отечественных Linux дистрибутивов можно было бы предъявить для упрощения Управления Уязвимостями? Если б я был регулятор. 🙂

1) Обновления безопасности должны быть. Критичная общелинуксовая уязвимость, должна быть пофикшена и в отечественном дистрибе. Или должно быть опубликовано обоснование, почему она неэксплуатируема.
2) Бюллетени безопасности должны быть. Клиенты должны как-то узнавать какую версию пакета нужно поставить, чтобы избавиться от критичной уязвимости.
3) Бюллетени безопасности должны быть публично доступны. Cпорный момент. Зависит от отношения к "security through obscurity". По мне закрытие доступ к бюллетеням усложняет жизнь исследователям, а злоумышленники все равно их получат через любого клиента.
4) Бюллетени безопасности должны быть доступны в машиночитаемом виде. Желательно в формате OVAL, раз уж он так распространен (RHEL, Suse, Ubuntu, Debian и даже отечественный RedOS)

Весной-летом я толкал речи на тему как Vulnerability Management поменялся в 2022 году

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

Что сканировать?

1) Оценка "стабильности" IT-вендоров похоже оказалась не особо востребованной и в итоге свелась к переходу на отечественное. Тут и позиция регуляторов направляет, и нежелание зарубежных вендоров подставляться лишний раз под вторичные санкции. Пока выглядит так, что новые IT и ИБ решения будут в основном российские (пусть даже они будут функционально хуже).
2) С другой стороны массового выпиливания продуктов Microsoft пока не наблюдается. MS пока не нагнетают. Позиция регуляторов достаточно умеренная и сводится к требованию контроля обновлений. Видима зависимость настолько велика, что требовать чего-то другого не реалистично.
3) Массового отказа от мейнстримных Linux дистрибутивов тоже не наблюдается. Пока не было громких кейсов с активным участием западных вендоров Linux дистрибутивов. Миграция c Ubuntu/Debian/CentOS Stream/Alma/Rocky на российские дистрибы связана с техническими сложностями и значительными финансовыми затратами. В целом, в ширнармассах пока не ощущается понимание зачем это нужно (за исключением случаев когда это прямое указание регулятора).

Чем сканировать?

Какого-то значимого изменения ландшафта на рынке VM-решений пока не видится.
1) Кто-то продолжает использовать западные решения с помощью разного рода ухищрений.
2) Кто-то активнее переходит на продукты традиционных отечественных VM вендоров (Positive Technologies, Алтэкс-Софт, Эшелон, Газинформсервис).
3) Есть некоторая активность от нового игрока Vulns.io.
4) Есть развитие у периметровых сервисов Metascan и ScanFactory.
5) Интересно развитие VM как доп. функциональности у Kaspersky: если все равно антивирус заменять, удобно получить в результате и агент детектирующий уязвимости. Win-win в духе Microsoft Defender for Endpoint. Выглядит как перспективная тема для агентного сканирования.
6) Достаточно много больших российских компаний приняли решение пилить свои VM решения, т.к. доступные коммерческие дороги и/или чем-то не устраивают. Есть вероятность появления таких решений на рынке.