Архив рубрики: Проекты

Детект типа уязвимости по CWE в Vulristics

Детект типа уязвимости по CWE в Vulristics

Детект типа уязвимости по CWE в Vulristics. Теперь Vulristics может детектировать тип уязвимости не только по ключевым словам (выражениям), но и по CWE идентификаторам из NVD. Для каждого типа уязвимости в Vulristics можно указать набор соответствующих CWE идентификаторов. Некоторые CWE идентификаторы я уже таким образом смапил на типы уязвимостей Vulristics. Но, разумеется, не все. Всего CWE идентификаторов больше 600! Буду добавлять их по мере необходимости.

Кроме того, я сделал следующие изменения в детектах типов уязвимостей в Vulristics:

🔹 Добавил новый тип уязвимости Incorrect Calculation для массовых некритичных уязвимостей, которые не связаны с памятью (и поэтому не попадают в Memory Corruption). Например, "Divide By Zero" или "Integer Overflow". Фактически такие уязвимости являются просто багами, т.к. из описания непонятно как злоумышленник может их эксплуатировать. Если они приводят к падению приложения или к RCE, то почему бы про это не написать? А если не приводят, то в чём тогда беда? Как по мне, лучше бы для таких проблем вообще не заводили CVE. Но по факту их заводят. И особенно часто для Linux. Поэтому и детектировать тип для таких "уязвимостей" приходится. Теперь они будут валиться в Incorrect Calculation с относительно невысокой критичностью (такой же как у Memory Corruption).
🔹 Меня начали подбешивать Path Traversal уязвимости, которые по факту дают злоумышленнику возможность читать и писать произвольные файлы. 🤷‍♂️ Поэтому для таких уязвимостей буду использовать типы Arbitrary File Reading (уже была) и Arbitrary File Writing (новая).
🔹 Подкрутил веса для типов уязвимостей. Логика такая: чем более конкретен тип и чем более понятно как этот тип уязвимости может использоваться злоумышленником, тем больше вес. Но вещь это, конечно, крайне субъективная и я её, скорее всего, буду подкручивать ещё много раз. В моменте выглядит так:

Remote Code Execution 1.0
Code Injection 0.97
XXE Injection 0.97
Command Injection 0.97
Authentication Bypass 0.95
Arbitrary File Writing 0.95
Security Feature Bypass 0.90
Elevation of Privilege 0.85
Information Disclosure 0.83
Arbitrary File Reading 0.83
Cross Site Scripting 0.8
Open Redirect 0.75
Path Traversal 0.7
Denial of Service 0.7
Memory Corruption 0.5
Incorrect Calculation 0.5
Spoofing 0.4
Tampering 0.3
Unknown Vulnerability Type 0

Сейчас кажется, что XSS и Open Redirect низковаты. Но, с другой стороны, они в большей степени на социалку завязаны, так что может и норм. 🤔 В любом случае, тип уязвимости хоть и влияет достаточно сильно на итоговую критичность, но в меньшей степени чем наличие эксплоита и признак эксплуатации вживую.

Кроме детектирования типа уязвимости по CWE, я также оптимизировал сочетание детектирования имени уязвимого продукта по CPE и по ключевым словам (выражениям). Если кратко, то сначала приоритет отдается имени продукта непосредственно заданному в источнике данных, затем имени продукта определенному эвристически из шаблонного описания (для Microsoft), затем имени продукта определенному по ключевым словам (выражениям), затем имени продукта определенному по идентификаторам CPE. В CPE-детектах отдаём наивысший приоритет первому идентификатору типа a (application), если его нет, то h (hardware), если и его нет, то о (operating system).

Для демонстрации я перегенерил последние Linux Patch Wednesday отчёты:

🗒 Ноябрьский LPW
🗒 Декабрьский LPW

Довёл их практически до идеального состояния. Название продукта и тип уязвимости НЕ детектируются только для заглушек "This candidate has been reserved…" и уязвимостей с таким странным описанием, что даже ручной их разбор весьма затруднен.

В общем, праздничные дни прошли весьма плодотворно, доволен. 😇

Про итоги 2023 года

Про итоги 2023 года

Про итоги 2023 года. Для меня год был отличный, грех жаловаться. 😇 Жив, чувствую себя неплохо. С близкими тоже хорошо. Хвала Создателю за всё!

Делал довольно много интересных штук. Что-то в итоге получилось, что-то нет. Но это не беда, на следующем подходе получится. А если не получится, то тоже не беда. 🙂

Из того, что можно отметить:

1. Поменял одну основную работу (очень хорошую) на другую (даже ещё лучше). 3 месяца отработал, полёт нормальный.

2. Начал больше музицировать и даже изредка что-то выкладывать. 😊 Сидеть с укулелькой и напевать понравившиеся стихи это, наверное самое приятное занятие для меня сейчас. И результаты записи мне, несмотря на все очевидные огрехи, нравятся.

3. "Прожектор по ИБ" запустили с Львом и Максимом. Вообще не предполагал, что такое в моей жизни будет, однако уже 18 эпизодов (вместе с пилотным) записали. И всё ещё весело этим заниматься. На праздники прервёмся, а дальше, надеюсь, продолжим.

4. Vulristics хорошо продвинулся: нормальный импорт и экспорт данных, кастомный источник данных, улучшенные и быстрые детекты софта. Прям полноценный инструмент стал! Также в части кодяканья доволен Linux Patch Wednesday и экспортером в avleonov.ru. Карта VM-вендоров была не про кодяканье, но тоже здесь отмечу.

5. Telegram-канал @avleonovrus неплохо так подрос! К июлю он догнал и перегнал мой англоязычный (некогда основной, а теперь подзаброшенный) канал @avleonovcom на отметке 1741 подписчик. А к концу года ещё удвоился до 3482. 🤩 Круто! Спасибо, что читаете, лайкаете и шарите!

На следующий год ничего планировать и загадывать не буду. Пусть будет как будет. 🙂

Закончил обучение на курсе "Управление Уязвимостями" от Inseca

Закончил обучение на курсе Управление Уязвимостями от Inseca

Закончил обучение на курсе "Управление Уязвимостями" от Inseca. В целом, ожидания оправдались. 🙂 Опишу то, что понравилось и то, что можно было бы улучшить.

1. Практические домашние работы. 👍 Их было 11 штук. С учётом того, что курс шёл 6 недель, получалось в среднем 2 работы в неделю. Они рассчитаны max на 1-2 часа, так что делать по вечерам было комфортно.

Большая часть домашних работ строилась вокруг 3 стендов в VirtualBox:

🔻 Виртуалка с Kali на которую нужно было поставить Nessus Essentials
🔻 Виртуалка с необновлённым Windows уязвимая к EternalBlue
🔻 Виртуалка с необновлённой Ubuntu и развёрнутым DWVA

Работы были такие:

🔹 Развернём сканер уязвимостей
🔹 Проэксплотируем EternalBlue с помощью Metasploit, забёрем хэши и побрутим их
🔹 Посканим виртуалки в режиме "чёрного ящика"
🔹 Настроем учётки на виртуалках и посканируем их с аутентификацией
🔹 Посканим DVWA Nessus-ом и Acunetix-ом и посмотрим разницу
🔹 Выгрузим уязвимости из Nessus через API, обогатим отчёты данными по эксплоитам и активной эксплуатации
🔹 Пофиксим уязвимости через обновление или отключение уязвимых сервисов, проверим, что они не детектируются или не эксплуатируются

Ещё 2 работы не были завязаны на стенды. В одной нужно было составить CVSS Base Vector-ы по описаниям уязвимостей. В другой нужно было по версии софта найти уязвимости (поиск по CPE), а затем выделить для них эксплуатабельные (эта задачка хорошо решалась с помощью Vulristics 😉).

➡️ Вопрос: можно ли проделать такие учебные активности самостоятельно? Конечно. Но это искать надо, а тут уже готовые стенды, подробно описанные методички (кроме подзадачек со звёздочкой), проверка преподавателем. Сервис. 🙂

Как видно из описания работ, упор на практическое детектирование, приоритизацию и исправление уязвимостей. Без привязки к решениям VM-вендоров.

2. Вебинары-семинары. 👍 Их было 5 штук. Проходили по субботам в 12:00. Длительность около 1,5 часов. Дмитрий Топорков рассказывал нам какую-то тему, касающуюся текущего модуля и в процессе можно было задавать вопросы, дискутировать, обмениваться опытом. Один вебинар был с Давидом Ордяном из Metascan, я о нём уже писал подробнее. Получалось лампово, посещал эти онлайн-созвоны с удовольствием.

3. Тьюторство. 👍 Каждую неделю в телегу скидывали табель с принятыми заданиями и посещёнными вебинарами. При открытии модуля скидывали оповещение с темой модуля и количеством домашек. За три дня до дедлайна оповещение, что надо домашку сдавать. Оповещения о вебинарах за день и за час. Вроде мелочи, а забота приятна. 😇 Ну и Дмитрий очень оперативно домашки проверял. 🔥

4. Контент. 👌 Большая часть контента - текст. Скринкасты в основном были доп. материалом для практических занятий. Я к текстовому контенту хорошо отношусь, т.к. его удобнее быстро просматривать. Тексты качественные. Не скажу, что по содержанию для меня были какие-то откровения, но лишний раз перечитать было прикольно. Тем, кто видит подобный контент в первый раз, должно быть интересно. Порог входа небольшой, всё разжёвывается подробно.

5. Что улучшить? 🤔 Исходя из концепции, что это базовый вендерно-нейтральный курс с фокусом на низкоуровневую работу с уязвимостями напрашивается следующее:

🔹 Добавить лабу для работу с опенсурсным решением, на котором можно построить процесс управления уязвимостями, например, Faraday Security или DefectDojo
🔹 Выделить больше времени на разбор веб-уязвимостей DVWA
🔹 Добавить про анализ безопасности конфигураций, например с помощью OpenSCAP

В целом, неплохо бы дать более цельное представление как строить VM-процесс в организации с использованием конкретных тулов. Но как курс для старта вполне норм. 👍

Спасибо коллегам из Inseca за предоставленный доступ к курсу!

PS: Также мне подарили термокружку Inseca. 😅 Я в одном из Прожекторов отмечал, что термокружки очень уж часто дарят. Но эта кружка прям норм. 🔥 Добротная, прорезиненная где надо, без каких-то ненужных наворотов. Вещь! Передаривать не буду, оставлю себе. За кружку тоже спасибо! 🙂

Про определение имени уязвимого продукта по CPE в Vulristics

Про определение имени уязвимого продукта по CPE в Vulristics

Про определение имени уязвимого продукта по CPE в Vulristics. Для тех, кто не в курсе, моя утилита, кроме прочего, решает задачку получения для CVE-шки описательной строки "тип уязвимости - уязвимый продукт". В итоге пришёл к выводу, что хоть метод определения имени уязвимого продукта по CPE хорош своей скоростью и универсальностью, но в качестве основного он не годится.

Проблема не в самих CPE, а в том как их используют в NVD: иногда для CVE их слишком много, иногда их вообще нет, иногда они нерелевантные. Возьмём, для примера, Log4Shell (CVE-2021-44228). Согласитесь, что для этой уязвимости было бы неплохо в качестве уязвимого продукта получить Apache Log4j2 или хотя бы Apache Log4j. И он там даже есть в виде a:apache:log4j. Но в общем случае автоматически выделить именно этот CPE идентификатор среди десятков других, связанных с этой CVE, задача такая себе. 🤷‍♂️ Теоретически это можно было бы делать, если бы была какая-то иерархия CPE, анализируя которую можно было бы понять, что a:apache:log4j имеет больший приоритет, т.к. это уязвимая либа, которую использую другие уязвимые продукты. Но этого нет. Тот же официальный CPE dictionary это просто перечень CPE идентификаторов со ссылками на сайты вендоров и прочие сайты без какого-либо дополнительного полезного контекста.

Поэтому основным способом определения имени уязвимого продукта остаётся анализ текстового описания по ключевым словам. Несмотря на все недостатки в виде относительно долгого времени работы (которое увеличивается с увеличением количества описанных продуктов и, соответственно, ключевых слов), фолсов первого и второго рода, необходимости наполнять базу продуктов ручками и т.п. Разумеется с возможными оптимизациями там, где это возможно (например, для генеренных описаний уязвимостей Microsoft).

А детект по CPE оставить на случай, когда анализ текстового описания ничего не дал и лучше попробовать показать хоть что-то, чем Unknown Product.

Прожектор по ИБ, выпуск №17 (23.12.2023): Слово пацана или стих от Mr

Прожектор по ИБ, выпуск №17 (23.12.2023): Слово пацана или стих от Mr. X

🔸 Александр Леонов, "Управление уязвимостями и прочее"
🔸 Лев Палей, "Вести из Палей"
🔸 Максим Хараск, "Global Digital Space"

Перебрались для записи эпизода с ТГ на платформу VK Звонки. По-моему вполне удачно. В первый раз выходим в 1080p! 🙂 Это последний эпизод в этом году, следующий выпуск планируем записать уже в январе.

00:00 Здороваемся и смотрим статистику по предыдущему эпизоду
02:20 Злоумышленники получили доступ к корпоративным системам компании MongoDB
05:35 Декабрьский Linux Patch Wednesday
10:04 ФСТЭК России 50 лет
12:32 CISA BOD 23-01 и аналогичные инициативы отечественных регуляторов
20:41 Презентация POCA Мобайл и Р-ФОН
26:29 Ежегодная предновогодняя Поибешечка
32:12 Хакер, который участвовал во взломе Rockstar Games, останется в закрытой клинике до конца жизни
37:32 Сериал "Слово пацана"
40:27 Производитель косметики EOS выпустил кодовый замок для своего лосьона, чтобы мужчины не могли пользоваться им
44:56 Правительство займётся безопасностью видеоигр
48:22 Запрет на использование телeфонов в школе
51:22 В Санкт-Петербурге проведены аресты по делу о телефонном мошенничестве
53:20 Так совпало - Гарвард и ГРЧЦ Роскомнадзора поделились своими взглядами на развитие ИИ в 2024-м году
59:24 DevSecOps Maturity Model 2023
1:01:25 Прощание в стихах от Mr. X

Декабрьский Linux Patch Wednesday

Декабрьский Linux Patch WednesdayДекабрьский Linux Patch WednesdayДекабрьский Linux Patch WednesdayДекабрьский Linux Patch WednesdayДекабрьский Linux Patch WednesdayДекабрьский Linux Patch WednesdayДекабрьский Linux Patch Wednesday

Декабрьский Linux Patch Wednesday. Вчера была третья среда месяца, поэтому смотрим на уязвимости Linux. Основная беда прошлого месяца с непродетектированными продуктами практически решена. 🎉 Я реализовал детекты по сокращённому CPE-идентификатору (тип:вендор:продукт) в Vulristics. Смотрю как оптимальнее совместить детекты по CPE и по текстовому описанию, но уже гораздо информативнее. 🙂

Всего 158 уязвимостей. Только для 16 уязвимостей не определился продукт, из них 11 это пустые заглушки-кандидаты.

В топе:

🔻 RCE - Perl (CVE-2022-48522). Есть ссылка на NVD типа Exploit. CVSS 9.8.
🔻 RCE - Safari (CVE-2023-42917). В CISA KEV.
🔻 Memory Corruption - Chromium (CVE-2023-6345). В CISA KEV, Skia.
🔻 RCE - Redis (CVE-2022-24834). Эксплоит на гитхабе.
🔻 Memory Corruption - Safari (CVE-2023-42916). В CISA KEV.

Всего 29 уязвимостей с потенциальными эксплоитами. В основном это ссылки из NVD типа "Exploit", относиться к ним следует с долей скепсиса.

🗒 Vulristics report

Прожектор по ИБ, выпуск №16 (16.12.2023): Кружочки чёрного Несквика

Прожектор по ИБ, выпуск №16 (16.12.2023): Кружочки чёрного Несквика

🔸 Александр Леонов, "Управление уязвимостями и прочее"
🔸 Лев Палей, "Вести из Палей"
🔸 Максим Хараск, "Global Digital Space"

К сожалению, Telegram снова скинул запоротую запись конференции. 😔 Видео запись с шипением и выпадением аудио. Аудио запись убыстренная и с какими-то рассинхронами, так что в диалогах все звучат одновременно, как будто перебивают друг друга. В итоге начало эпизода кое-как нарезал. 🤷‍♂️ С 04:16 качество аудио становится нормальным, с 08:46 появляется видео. Приношу извинения от нашей дружной команды. Очень жаль, что начало получилось таким смазанным, там было весело. В следующий раз постараемся дублировать запись на нашей стороне, хотя бы в аудио. 🎙Имейте в виду, что Telegram может так косячить.

00:00 Здороваемся и смотрим статистику по просмотрам. Прошлый выпуск всего 52 просмотра набрал. Очередной анти-рекорд, но мы не сдаёмся.
00:13 RCE уязвимость в Apache Struts2 (CVE-2023-50164).
00:49 Декабрьский Microsoft Patch Tuesday
02:18 Анализ восприятия инцидентов ИБ от Hive Systems
04:21 Чат с Copilot на базе GitHub
08:46 MITRE и модель угроз EMB3D
12:05 Угораем со статистики по инцидентам
18:13 В Москве запретили использование QR-кодов на билбордах
20:19 Мем про корпоративные новогодние подарки, обсуждаем какие нам нравятся
26:44 Мем про то, что Касперский спалил сам себя в рамках своей борьбы со сбором данных
28:19 ГРЧЦ закручивает гайки: ботам OpenAI могут закрыть доступ к Рунету
31:04 Прощание от Mr.X