Найти и обезвредить: обнаружение, классификация и верификация уязвимостей

erid: 2SDnjcjDGxK
Найти и обезвредить: обнаружение, классификация и верификация уязвимостей
Найти и обезвредить: обнаружение, классификация и верификация уязвимостей
13.10.2023

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

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

Типология уязвимостей

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

Поскольку проблему важно «знать в лицо», особое значение приобретает типология уязвимостей. Но составить ее не так просто, поскольку за основу разделения можно взять различные критерии. Уязвимости классифицируются по:

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

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

Сергей Полунин

Руководитель группы защиты инфраструктурных ИТ-решений компании «Газинформсервис»

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

Перечисленные выше пункты точно не позволяют классифицировать все имеющиеся уязвимости безопасности. Их непрерывная вносит свои коррективы.

Какие бывают классификаторы

Проблема выявления уязвимостей и их типологизации появилась не вчера. Поэтому существует немало зарубежных и российских классификаторов — перечней обнаруженных проблем безопасности с указанием их основных характеристик.

CVE входит в число самых распространенных классификаторов. Аббревиатура расшифровывается как Common Vulnerabilities and Exposures. У уязвимостей CVE есть уникальный идентификатор, который позволяет легко найти о ней подробную информацию. Номер уязвимости присваивают члены CVE Numbering Authorities или CNA. Этот организационный комитет CVE включает представителей более двух сотен компаний, работающих в сфере информационной безопасности.

Классификаторы  могут быть и более прикладными, то есть включать не все уязвимости, а концентрироваться только на одной области. Пример — CWE или Common Weakness Enumeration, в который собирают ошибки программного обеспечения. Этот классификатор имеет формат иерархического словаря, в который энтузиасты сферы информационной безопасности включают недостатки ПО.

Валерий Степанов

Руководитель направления Центра компетенций по информационной безопасности Т1 Интеграции

Согласно классификации Mitre, самыми опасными уязвимостями являются CWE-787, связанная с записью данных за границами буфера, и CWE-79, подразумевающая возможность межсайтового скриптинга. Уязвимость CWE-89, которая дает возможность выполнять инъекции SQL, замкнула тройку лидеров.

В ряде случаев инициаторами создания классификаторов выступают некоммерческие организации из сферы информационной безопасности. OWASP Top Ten создан Open Web Application Security Project и включает десятку наиболее опасных уязвимостей веб-приложений.

Еще один классификатор CAPEC (Common Attack Pattern Enumeration and Classification) включает уже возможные способы эксплуатации уязвимостей, то есть методы действий потенциальных злоумышленников.

Выше перечислены международные классификаторы, но в России есть и внутренние варианты. Классификатор ФСТЭК уязвимостей информационных систем имеет статус  ГОСТ Р-56546-2015. Документ на 12 страниц классифицирует уязвимости по области происхождения, типу недостатка, а также месту проявления проблемы в информационной системе.

Своя база уязвимостей собрана на портале safe-surf.ru. По каждой проблеме есть дата обнаружения и подтверждения, производитель и наименование ПО, а также уровень опасности.

Оценка уровня опасности уязвимости

Следующим логичным шагом после выявления уязвимости является определение уровня ее опасности. Для этого используются метрики, учитывающие различные показатели. Самый популярный международный вариант — CVSS, то есть Common Vulnerability Scoring System. Метрика разработана NIAC — Национальным советом по инфраструктуре США.

Максимальная оценка, которую может получить уязвимость по CVSS, составляет 10 баллов. До 3.9 баллов уровень угрозы будет низким, до 6.9 баллов — средним, до 8.9 баллов — высоким. Особого внимания заслуживают уязвимости с оценкой от 9.0 до 10 баллов, так как они носят название критических. Иными словами, риски и масштаб ущерба в случае эксплуатации данной уязвимости злоумышленниками будут особенно высоки.

При оценке уязвимости по CVSS используются три типа метрик:

  • Базовые, к которым относят метрики определения простоты эксплуатации  уязвимости и метрики воздействия, оценивающие последствия для системы.
  • Временные, то есть те, для которых со временем могут появиться варианты эксплойта или устраняющие уязвимость патчи.
  • Окружения — дополнительные метрики, которые определяют уровень угрозы уязвимости для конкретной IT-среды.

Сергей Зыбнев

Пентестер Awillix

Существует 6 главных метрик на основе которых определяется критичность уязвимости:

  1. Способ получения доступа
  2. Сложность получения доступа
  3. Необходимость быть аутентифицированным
  4. Влияние на конфиденциальность
  5. Влияние на целостность
  6. Влияние на доступность

При честном указании метрик, критичность уязвимости оценивается достаточно точно. К примеру возьмем уязвимость, которая позволяет выполнять произвольные команды на сервере. Если для эксплуатации уязвимости требуется наличие прав администратора, то критичность снизится. Также критичность может снижаться из-за того, что вектор атаки обязывает хакера физически находиться рядом с оборудованием или сервером.

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

Николай Казанцев

CEO SECURITM

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

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

Верификация уязвимостей

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

Ключевое понятие для верификации уязвимости —  Proof of concept или доказательство концепции. Так называют практическую демонстрацию успешной эксплуатации обнаруженной уязвимости. Обнаруживший уязвимость исследователь предоставляет скрипт, в котором описывает механизм ее реализации. Дополнительно могут прилагаться скриншоты или видео.

Особые характеристики уязвимостей

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

Уязвимость нулевого дня

Это понятие является буквальным переводом английского 0-day (читается zero day). Под количеством дней в этом случае понимается время, которое есть у разработчиков на исправление опасной уязвимости. В русском языке подошло бы выражение, что сделать это нужно было «еще вчера».

Если уязвимость имеет статус 0-day, значит она не просто обнаружена, но уже публично известна. При этом защиты от нее пока нет, что открывает широкие возможности для злоумышленников. Некоторые 0-day продаются широкому кругу потенциальных покупателей на теневых форумах.

Всегда ли 0-day является для хакера скоростным шоссе к уязвимой системе? Иногда она касается конкретного этапа жизненного цикла атаки, то есть помогает злоумышленнику сделать очередной шаг к успешному взлому. В этом случае «время еще есть», но хакеры в любом случае становятся ближе к цели.

Трендовая уязвимость

Как в любой другой сфере, в информационной безопасности есть свои тренды — мода на уязвимости. Трендовыми называются проблемы безопасности, которые в настоящие момент популярны у злоумышленников.

Тарас Дира

Директор центра сервисов информационной безопасности STEP LOGIC

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

  1. Широкое распространение – когда уязвимость затрагивает продукты и сервисы, которые используются массовым спросом. То есть чем больше систем и устройств подвержено уязвимости, тем выше ее потенциальное воздействие и, следовательно, интерес со стороны профессионалов информационной безопасности.
  2. Уровень уязвимости и возможный ущерб – чем более разрушительно потенциальное воздействие может оказать эксплуатация уязвимости, тем больше внимания она привлекает. Из примеров можно привести получение несанкционированного доступа, выполнение произвольного кода, а также раскрытие информации.
  3. Публичность – в случае, если уязвимость была опубликована известной компанией или была использована в известной атаке позволяет привлечь много внимания со стороны медиаресурсов, средств массовой информации, что, безусловно, является драйвером попадания уязвимости в категорию трендовых.

Уязвимости бизнес-логики

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

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

Пример такой ошибки в приложении — вместо ввода CAPTCHA пользователь пробует обратиться напрямую к серверу через программный интерфейс приложения (API). Разработчики этот вариант не учли, а значит и ввода CAPTCHA пользователь может достаточно легко избежать.

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

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

Константин Ларин

Руководитель направления «Киберразведка» ООО «Бастион»

Жизненный цикл уязвимости состоит из следующих этапов:

  • анонс уязвимости — публикация на официальных и неофициальных ресурсах;
  • разработка эксплойта;
  • продажа и частное использование эксплойта узким кругом лиц (иногда данный этап отсутствует);
  • публикация эксплойта в открытом доступе;
  • вендор обнаруживает уязвимость;
  • выпуск хотфикса (иногда данный этап отсутствует и сразу выходит обновление с патчем);
  • публикация патча.


Что в итоге

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

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

Особую опасность представляют критические уязвимости. Время на исправление уязвимостей нулевого дня у разработчиков истекло еще вчера. Трендовые уязвимости прямо сейчас интересуют максимальное количество потенциальных злоумышленников.

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


Популярные публикации

Комментарии 0