Перейти к содержанию

Уязвимости

В информационной безопасности, уязвимость это проектировачный, логический, конструкционный дефект/изъян объекта, который может привести к нарушению его функциональности, в том числе - раскрытию конфиденциальной информации и выполнению произвольного кода.

Основные 5 типов уязвимостей приведены в нижеследующей таблице:

Тип уязвимости Описание
Уязвимости ОС Уязвимости находящиеся в операционных системах. Как правило, приводят к эскалации привилегий
Ошибки конфигурации Тип уязвимостей вызванный ошибками конфигурации различных сервисов
Слабая защита учётных данных Тут все понятно. Сюда же можно отнести использование стандартных учёток
Уязвимости логики приложения/сервиса Вызваны ошибками проектирования или реализации какого-нибудь механизма
Человеческий фактор Люди - источник бед :) Сюда относятся все виды фишинга и прочие способы эксплуатации поведения человека

Управление уязвимостями vs Сканирование уязвимостей.

Управление уязвимостями

Это постоянный, проактивный, часто автоматизированный процесс, направленный на защиту информационных систем и прочих сопутствующих активов от кибератак и утечек информации, путём обнаружения, оценки и устранения различных недостатков в системе безопасности.
Управление уязвимостями является важнейшим компонентом обеспечения информационной безопасности любой организации.

Сканирование уязвимостей

Часть процесса управления уязвимостями отвечающая за непосредственный поиск таких уязвимостей в защищаемых активах.

В роли сканеров уязвимости может выступать как различное коммерческое ПО: Nessus, Nexpose, Acunetix, MaxPatrol, так и различные open-source решения: Greenbone OpenVAS (community edition), OWASP ZAP и многие другие

Классификация уязвимостей.

Следует понимать, что невозможно каждое отдельное приложение/сервис или систему защитить от всех возможных уязвимостей, в виду того, что их существует огромное множество. Вместо этого, рациональным подходом считается защита от наиболее опасных уязвимостей.

Для выявления опасных уязвимостей проводится их категорирование/классификация.

Существует несколько различных подходов по проведению категорирования уязвимостей, каждый из которых сводится к определению уровня опасности и других различных характеристик конкретной уязвимости.

NIST разработал унифицированный подход к управлению уязвимостями - Security Content Automation Protocol - (SCAP). В него входят следующие основные компоненты:

Common Vulnerabilities and Exposures (CVE)

Уникальные идентификаторы уязвимостей. Содержит в себе описание уязвимости, оценка уровня опасности уязвимости и прочие сведения. Для поиска информации о CVE имеются различные сервисы, один из таких - CVE Details

Common Configuration Enumeration (CCE)

Предоставляет уникальные идентификаторы конфигураций различных защищаемых систем.
Например:

  • CCE ID:CCE-9260-1
  • CCE Description: The 'Store passwords using reversible encryption' setting should be configured correctly.
  • CCE Parameters: enabled/disabled
  • CCE Technical Information:
    (1) GPO: Computer Configuration\Windows Settings\Security Settings\Account Policies\Password Policy\Store passwords using reversible encryption.
    (2) WMI: Namespace = root\rsop\computer; Class = RSOP_SecuritySettingBoolean; Property = Setting; Where = KeyName = 'ClearTextPassword' And precedence=1

Нужно это для того, чтобы по номеру CCE можно было ссылаться на конкретную меру защиты.

Common Platform Enumeration (CPE)

Метод классификации и идентификации устройств, ОС, и типы Приложений.
CPE призван идентифицировать различные активы.

Common Vulnerability Scoring System (CVSS)

Cистема оценки уязвимостей которая категорирует их по следующим критериям (но не ограничивается ими):

  1. Насколько легко эксплуатировать уязвимость?
  2. Существует ли готовый эксплойт для эксплуатации?
  3. Какую часть CIA триады затрагивает уязвимость?

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

Итогом исследования конкретной уязвимости является присвоение ей одной из пяти категорий, в зависимости от количества очков которые в свою очередь начисляются за конкретные критерии.

Raiting Score
None 0
Low 0,1 - 3,9
Medium 4 - 6,9
High 7 - 8,9
Critical 9 - 10

Каждую уязвимость можно записать в виде формализованной записи которая представляет из себя совокупность критериев, базовых или расширенных:

В терминах CVSS такая строка называется vector

CVE-2023-24892
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:N/I:L/A:N
Обозначение Расшифровка Принимаемые значения
AV Attack Vector Network, Adjanced Network, Local, Physical
AC Attack Complexity Low, High
PR Privileges Required None, Low, High
UI User Interaction None, Required
S Scope Unchanged, Changed
C Confidentiality Impact None, Low, High
I Integrity Impact None, Low, High
A Availability Impact None, Low, High

Из формализованного описания следует следующее:

Для эксплуатации уязвимости CVE-2023-24892 требуется сетевое взаимодействие с уязвимым ПО, при этом эксплуатация не является сложной. Не требуется каких либо привилегий, однако требуется взаимодействие с пользователем. Эксплуатация уязвимости оказывает несущественное влияние на целостность информации и влияет на другие компоненты системы. При этом конфиденциальность и доступность информации остаются неизменными.

Vulnerability Priority Raiting - VRP

В качестве дополнения, не относящаяся к SCAP методология категорирования уязвимостей.

Является примером проприетарного фреймворка. В отличии от CVSS позволяет категорировать уязвимости применяя риск-ориентированный подход. К примеру, в оценку уязвимостей для конкретной компании не будут включены те уязвимости, которые относятся к неиспользуемым компанией приложениям.

Подробнее о VRP фреймворке на сайте разработчика - Tenable

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

В соответствии с NIST Cybersecurity Framework можно выделить 6 основных этапов ЖЦ Управления уязвимостями:

Определение/идентификация

Как обычно, первый шаг - инвентаризация: аппаратка, виртуалки, сети, ОС, приложения и т.п. Без сведений о том, что нужно защищать, хорошую защиту построить не представляется возможным.

Приоритезация

Логичное продолжение предыдущего шага. Используя риск-ориентированный подход следует приоритизировать идентифицированные активы. Это поможет выявить группы активов к которым нужно предъявить особое внимание.

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

Оценка

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

Документирование

Очень важно вести подробную документацию по каждому активу, уязвимости.

Исправление

Этап включает в себя исправление выявленных уязвимостей в порядке определенным на предыдущих этапах.

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

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