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

Как будем описывать активы в Vulremi?

Как будем описывать активы в Vulremi?

Как будем описывать активы в Vulremi? Основная идея, что это должен быть настолько гибкий формат, чтобы в него можно было разложить результаты детектирования уязвимостей из любого решения: коммерческого, опенсурсного, агентного, безагентного. Вообще любого. Поэтому задачу досконально описывать конфигурацию актива сознательно отбрасываем. Берём только то, что понадобится нам в приоритизации уязвимостей (с учётом активов) и их исправлении.

{
"asset_id": "important-host1",
"owner": "marketing_department",
"patching_engineer": "johnsmith1",
"patching_rule": "once in a month",
"asset_value": "key",
"asset_type": "server",
"perimeter": false,
"last_scan": "2024-02-06T21:07:27+00:00",
"vulnerabilities":
[
{
"vulnerability_id": "CVE-2024-00001",
"cvss_v3_env": "CR:L/IR:M/AR:M/MAV:N/MAC:L/MPR:N/MUI:N/MS:U/MC:L/MI:L/MA:L",
"related_objects":
[
{
"object_type": "ubuntu_package",
"name": "anacron",
"version": "2.3-38ubuntu1"
}
]
}
]
}

Параметры для описания самого актива

🔹 asset_id - идентификатор актива. Логично было бы использовать для него hostname, но ситуации бывают разные, поэтому не конкретизирую. Возможно это будет id из CMDB-шки.
🔹 owner - ответственный за актив, с которым можно договариваться о регулярных и экстренных обновлениях актива. Обычно какое-то бизнесовое подразделение.
🔹 patching_engineer - тот, кто непосредственно должен обновлять активы. С него нужно спрашивать, если договоренности по регулярным или экстренным обновлениям нарушаются.
🔹 patching_rule - правило регулярного обновления, которое было согласовано с овнером. Если оно нарушается, то спрашиваем с patching_engineer.
🔹 asset_value - ценность актива для злоумышленника. Если, получив доступ к активу, злоумышленник может непосредственно реализовать недопустимое событие, то значит актив целевой (target). Если, получив доступ к активу, злоумышленник может развить атаку на целевой актив, то значит актив ключевой (key). Если и не ключевой, и не целевой, то обычный (ordinary).
🔹 asset_type - тип актива. Critical Infrastructure, Server, Network Equipment, Desktop, Other. Ровно как в методике оценки уровня критичности уязвимости ФСТЭК, примеряемся к использованию. 😏
🔹 perimeter - влияет ли состояние актива на безопасность периметра. Тоже как в методике ФСТЭК.
🔹 last_scan - когда этот актив сканировали на уязвимости в последний раз. Чтобы понимать насколько у нас информация по уязвимостям актуальная. Если нашли активы со старой датой - идём разбираться со сканами.

Параметры для описания уязвимостей на активе

🔸 vulnerability_id - идентификатор уязвимости. CVE. Если нет CVE, то BDU. Если и его нет, то любой уникальный идентификатор уязвимости. По этому идентификатору найдем описание этой уязвимости в объекте типа vulnerability, который я буду описывать позже.
🔸 cvss_v3_env - environmental часть CVSS вектора на случай, если мы захотим поманипулировать через него критичностью уязвимости для данного актива.
🔸 related_objects - объекты актива, связанные с уязвимостью. Опциональная штука, которая может быть использована patching_engineer-ом для того, чтобы понять на что ругается сканер. Если в связанных объектах линуксовый пакет, значит его нужно обновлять и всё будет ок. С другой стороны, там может быть описан не только пакет, но и, например, софт. В этом случае можно будет накрутить логику учёта российский он или нет, а следовательно решать требуется ли тестирование безопасности обновления или не требуется. Но подробнее эту штуку буду расписывать позже, уже после MVP.

Возвращаюсь к теме простой утилиты для управления исправлением уязвимостей

Возвращаюсь к теме простой утилиты для управления исправлением уязвимостей

Возвращаюсь к теме простой утилиты для управления исправлением уязвимостей. Собираюсь вести работу в рамках проекта Vulremi на GitHub (заводил 3 года назад и пока там пусто).

Что нужно для MVP? Видятся следующие этапы:

🔹 Научиться раскладывать результаты детектирования уязвимостей и данные по инфре в удобные структурки описывающие активы/хосты (назовём их Активы).

🔹 Научиться на основе Активов генерить/обновлять структурки описывающие требования по исправлению уязвимостей определенными ответственными лицами в определенный срок (назовём их Таски).

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

То есть берём источник данных об уязвимостях (результаты сканирований), непрерывно обновляем из него Активы, по Активам непрерывно обновляем статус Тасков, ответственных по просроченным Таскам автоматизированно тыкаем палочкой. Профит. 🙂

Правда ли, что 96% компаний в России можно взломать с помощью старых эксплуатабельных уязвимостей на периметре?

Правда ли, что 96% компаний в России можно взломать с помощью старых эксплуатабельных уязвимостей на периметре?

Правда ли, что 96% компаний в России можно взломать с помощью старых эксплуатабельных уязвимостей на периметре? Статья CNews выглядит забавно потому, что там тезис из аналитического отчёта опровергается одним неаргументированным мнением эксперта. Типа завышено и всё тут. Но когда я смотрю на эту цифирь, то я тоже думаю, что она с реальностью не особо бьётся. 🙂 Попробую аргументировать.

🔻Если мы просто посмотрим организации из ЕГРЮЛ, очевидно, что там будет значимое число организаций типа ООО "Вектор", у которых весь условный "сетевой периметр" это сайт-визитка с телефоном и email-ом на бесплатном сервисе. Очевидно, что если у вас нет периметра, уязвимости ему не страшны. 😏

🔻В отчёте Джеты не пишут, что это статистика по всем российским организациям. Они пишут, что отчёт на основе работ с клиентами и опроса более 100 организаций. В статье CNews это тоже пишут "Все данные из отчета относятся к клиентам и сервисам компании «Инфосистемы Джет», но представитель компании объяснил CNews, что эти данные могут быть релевантны для экстраполяции на российские компании в целом, поскольку компания давно на рынке и обслуживает крупнейших клиентов из самых разных сфер, а в статистику вошло около 500 крупных компаний". Т.е. "96% компаний используют на внешнем периметре версии ПО, имеющие уязвимости уровня «Critical» и «High», для которых существуют публично доступные эксплойты" это не про все российские компании, а про некоторую выборку. А оценку для всех российских компаний можно получить путём какой-то хитрой экстраполяции. Но там будет уже не 96%.

🔻 Так от какого числа компаний посчитаны эти 96% и достоверна ли информация, что у них на периметре эксплутабельные уязвимости? Учитывая, что в отчёте ссылаются на сервис Jet Nautilus (надо ж было назваться как и популярная модель раций - в поиске фиг найдёшь 🙂), видимо речь о клиентах этого сервиса. Сколько этих клиентов непонятно. Но цифра 96% может быть, к примеру, получена, если у вас 25 клиентов и у 24 у них вы продетектировали эксплутабельные уязвимости. Если посмотреть описание сервиса, то в части детектирования уязвимостей он проводит "Пассивное сканирование внешней инфраструктуры компании без прямого контакта с ней. Обеспечивает оценку потенциальных векторов атак и инвентаризацию внешнего периметра". Что это за пассивное сканирование без прямого контакта стоит уточнять у Джетов, но я при таких словах воображаю себе, что у них есть доступ к условному Shodan/Censys и они смотрят результаты баннерных детектов через API-шку и ищут для продетектированных CVE-шек эксплоиты. Метод простой, но достоверность таких детектов, конечно, низкая. Но это не более чем мои домыслы на основе чтения лендинга, конкретно нужно у вендора узнавать.

➡️ Так что, имхо, нет. Доля российских компаний, которых можно взломать с помощью старых эксплуатабельных уязвимостей на периметре, меньше 96%. А для того, чтобы оценить сколько конкретно таких компаний нужно уметь активно и достоверно сканировать весь рунет на уязвимости и понимать какие IP-адреса к каким организациям относятся. А до этого это всё прикидки уровня пол-палец-потолок.

Снова забавное от CNews: cтатья "96% компаний в России можно взломать с помощью старых уязвимостей, которые уже описаны в Сети"

Снова забавное от CNews: cтатья 96% компаний в России можно взломать с помощью старых уязвимостей, которые уже описаны в Сети

Снова забавное от CNews: cтатья "96% компаний в России можно взломать с помощью старых уязвимостей, которые уже описаны в Сети". 🙂

🔹 Половина статьи про то, что Джеты выпустили отчет за 2023 г. и там якобы написано, что "96% компаний в России используют на внешнем периметре версии софта, имеющие уязвимости критического либо высокого уровня". Ссылку на отчёт Cnews почему-то не приводят, но вот этот отчёт. В нём 96% относятся к несколько другому: "96% компаний используют на внешнем периметре версии ПО, имеющие уязвимости уровня «Critical» и «High», для которых существуют публично доступные эксплойты". Согласитесь, что важную часть месседжа проглотили. Сами данные на основе анализа инфраструктур компаний-клиентов Джета. Как бы ок - аудиты, пентесты, статистика.

🔹 Вторая половина статьи (которая собственно меня и позабавила) озаглавлена "Но всё не так критично". Ага. Т.е. на периметре организаций эксплуатабельные уязвимости, но это не так критично. Тут должна быть интересная аргументация. 🧐 Возможно там нам расскажут про какие-то компенсирующие меры, которые повсюду в организациях внедрены, Zero Trust или что-нибудь такое… Но нет, на самом деле аргументация там такая: "Ведущий инженер CorpSoft24 Михаил Сергеев считает, что уязвимости такого уровня действительно присутствуют у большого количества компаний, но цифра в 96% явно завышена". Во как! Явно завышена. 😅 Джеты пишут так, а Михаил Сергеев, ведущий инженер CorpSoft24, считает иначе. 🤷‍♂️ Шах и мат, аналитики. ♟

Дальше приводятся цитаты Михаила, которые не про "не всё так критично", а про то что Vulnerability Management это слооожна, а у админов лапки: 🐾

🔻 "Для закрытия уязвимостей необходимо чуть ли не ежедневно обновлять ПО, но это очень трудоемкий и требовательный к ресурсам процесс"

🔻 "Обычно компании обновляются когда им требуется дополнительный функционал или возникают проблемы, которые они хотят решить с помощью патча. Многие информационные системы работают в режиме "работает, не трогай" "

А раз так, давайте закроем глазки и не будем нагнетать. 🙈 Так что ли должно следовать по логике автора статьи? 😁

В общем, CNews такой CNews. Что ни материал, то радость, веселье и хорошее настроение. 🤩

Но к 96% из отчёта есть, конечно, вопросики. 🧐

Периодически у меня возникает идея: а почему бы не сделать простую опенсурсную утилиту для контроля исправления уязвимостей в организации?

Периодически у меня возникает идея: а почему бы не сделать простую опенсурсную утилиту для контроля исправления уязвимостей в организации?

Периодически у меня возникает идея: а почему бы не сделать простую опенсурсную утилиту для контроля исправления уязвимостей в организации? Имею ввиду часть VM-процесса когда у нас уже есть данные по активам в каком-то виде (включая их критичность и ответственных за них) и данные по уязвимостям для этих активов. И дело, казалось бы, за малым - чтобы эти уязвимости начали исправляться. 🙂

На этом этапе требуется перейти из уютного ИБшного мирка к суровой IT-шной реальности. Согласованию (а затем отслеживанию и отстаиванию) договоренностей по регулярным апдейтам и дедлайнов по исправлению супер-критичных уязвимостей. Хорошо, когда у вас все инструменты для этого есть в рамках вашего энтерпрайзного VM-решения, а что если их по каким-то причинам нет или они вас не устраивают? А активов у вас десятки тысяч со множеством групп ответственных. 🤩

Я на самом деле даже несколько раз такое запиливал и оно работало с ощутимой пользой. Но потом начиналось - в проде такое нельзя держать, несерьёзно. 🫣 Нужно делать по красоте, с проработкой сложной архитектуры, многопользовательскими интерфейсами, правильным оптимизированным кодом и всем прочим. Короче, нормальный серьезный проект, а не поделье наколеночное. И это, конечно, справедливо. Однако такой серьезный проект требует серьезных ресурсов, выделенной команды и всё это начинает жутко буксовать и перерождается в нечто совсем иное. 🙂 Может и неплохое, но уже с другим замыслом и принципами.

Мне же хотелось бы, чтобы было примитивно и наглядно. Вот как OVAL/SCAP в части правил детектирования. Казалось бы возня с нелепыми XML-ками, ха-ха. А насколько живучая тема вышла! 🤔

Какие бы принципы я сформулировал:

🔹 Чтобы всё описывалось JSON-файликами: активы, инвентаризационные объекты на активах, уязвимости, таски на исправление.

🔹 Чтобы были простые скрипты, которые эти файлики молотили в автоматическом режиме и отображали текущее состояние процесса в организации.

🔹 Чтобы не было никаких архитектурных и технических ограничений на логику работы с файликами и можно было гибко настроить любой воркфлоу.

🔹 Чтобы с этим можно было поиграться и понять, какие фичи было бы неплохо получить в рамках полноценного "взрослого" VM-решения. Ну или если какой-то небольшой организации без бюджетов и такое зайдет as is для старта или на постоянку - ну круто. 🙂

Так вот, как считаете, имеет смысл поописывать и покодякать такой наколеночный "игрушечный" Vulnerability Remediation? 🙂

Колядка про Vulnerability Management "Пропатчите уязвимость"

Колядка про Vulnerability Management "Пропатчите уязвимость". 🙂 Наигрывал сегодня разные новогодние и рождественские песенки, и мне пришла в голову идея, что "We Wish You a Merry Christmas" с требованием инжирного пудинга отличное описывает процесс пушинга исправления критичных уязвимостей.

Что, в общем, и накидал по-быстрому. Подозреваю, что это первая песня, которая упоминает "НКЦКИ". 😅

Поздравляю всех с наступающим Новым 2024 Годом! Всем здоровья, счастья и интересных задачек! Ура! 🎄🎉

Надёжная позиция, которой стоит держаться при общении с IT об установке обновлений безопасности

Надёжная позиция, которой стоит держаться при общении с IT об установке обновлений безопасности

Надёжная позиция, которой стоит держаться при общении с IT об установке обновлений безопасности.

1. То, о чём мы говорим, это сетевой актив (= есть адрес IPv4/IPv6)?

2. У этого сетевого актива есть вендор (вендоры), отслеживающий появление уязвимостей и выпускающий обновления безопасности? Если да, то обновления безопасности должны своевременно тестироваться и устанавливаться. Это требования от вендоров, регуляторов и здравого смысла (cyber hygiene). На всех уровнях: hardware, OS, application. Если такого вендора (вендоров) нет, то актив неподдерживаемый и для него должен быть план вывода из эксплуатации.

3. Процесс Управления Уязвимостями нужен для отслеживания своевременной установки обновлений безопасности. Если актив не поддерживается средствами детектирования уязвимостей необходимо либо искать новые средства, либо выводить актив из эксплуатации.

Когда IT согласны с 3 пунктами можно обсудить какие у них есть проблемы с обновлениями и как им с этим помочь.