какие они бывают и зачем нужны / Хабр
В отчете по результатам пентеста каждой уязвимости присваивается определенный класс опасности. Это не субъективная оценка, она основывается на общепринятых методиках. О них сегодня и поговорим. Расскажем, как принято классифицировать и оценивать уязвимости информационных систем и объясним, зачем это нужно.
Что такое уязвимости и чем они отличаются от угроз
Многие путают эти понятия, а разница есть. Угрозы в ИБ — это потенциальные опасности, которые могут возникнуть в информационной системе (ИС), если нарушитель использует ее уязвимости для атак.
Угроз в ИС может быть всего три. Это угрозы:
нарушения целостности;
нарушения доступности;
нарушения конфиденциальности.
Число уязвимостей не ограничено. Порой кажется, что со временем их становится только больше. Уязвимости — это некие недостатки в ПО, оборудовании, мерах по обеспечению безопасности компании с точки зрения человеческого фактора (доступы, пропуски), предоставляющие злоумышленнику возможность совершать в ИС несанкционированную деятельность. В уязвимость быстро превращается и отсутствие или слабая защита информационной системы.
Эксплуатируя уязвимость, атакующий получает возможность реализовать угрозу. То, что дает возможность использовать уязвимости, называется источником угрозы (threat agent): хакер; недобросовестный или ошибившийся сотрудник, через которого произошла утечка конфиденциальной информации или который повредил файлы; процесс, осуществляющий доступ к данным в обход политики безопасности; обстоятельства непреодолимой силы (землетрясение, разрушившее здание).
Какие бывают уязвимости:
Уязвимости с риском — подразумевают, что злоумышленник может значительно воздействовать на систему в результате использования такой уязвимости.
Уязвимости без риска — когда эксплуатация уязвимости не может нанести значимого вреда.
Уязвимости могут быть эксплуатируемыми и неэксплуатируемыми, то есть такими, для которых еще не существует эксплойт. Однако и уязвимость, для которой есть эксплойт, может быть уязвимостью без риска. Все зависит от конкретной ситуации.
Уязвимости проявляются в следующих местах:
материальная среда ИС: оборудование, устройства (например, носители для записи и хранения информации), физические входы в систему;
персонал;
политики безопасности и различные административные регламенты;
бизнес-процессы;
локальное и облачное программное обеспечение.
Классификация и оценка уязвимостей и угроз: зачем это все нужно?
Уязвимостей много, они чрезвычайно разнообразны, а их опасность варьируется в широких пределах. Поэтому, чтобы верно расставить приоритеты и сперва устранить наиболее опасные уязвимости, просто необходимо их правильно классифицировать и оценить.
Как классифицируют уязвимости и угрозы
Существуют международные и локальные, принятые в отдельных странах системы классификации. Это перечни известных дефектов в безопасности вычислительных систем, которые составляют экспертные группы из безопасников, разработчиков и заинтересованных представителей отраслевых компаний.
5 наиболее распространенных классификаций
OWASP Top 10 получила название в честь некоммерческой организации Open Web Application Security Project, которая сосредоточена на обеспечении безопасности Интернета. OWASP ведет и регулярно обновляет чарт из 10 самых опасных рисков для web-приложений, составленный на основе общедоступной Risk Rating Methodology.
ТОП-10 веб-угроз с официального сайта классификации
Рейтинг не охватывает все возможные проблемы, он лишь позволяет выделить и изучить десять наиболее распространенных и актуальных на сегодня типов угроз. Так что OWASP даже выдвинула призыв: «Don’t stop at 10».
Впервые OWASP Top 10 обнародовали в 2004 году, и с тех пор он обновляется примерно раз в три года. Каждая угроза в топе сопровождается подробным описанием, примерами и рекомендациями по устранению. В последней на сегодняшний день версии рейтинга есть, например, такие ошибки, как отсутствие журналирования и мониторинга, небезопасная конфигурация, межсайтовый скриптинг.
Классификация уязвимостей CVE. Классификацию Common Vulnerabilities and Exposures ИБ-профессионалы используют чаще всего. Именно на нее мы постоянно ссылаемся в отчетах по итогам пентестов.
CVE представляет собой нечто вроде словаря известных угроз. Каждой присваивается идентификатор, где также указаны год, в который поступило сообщение об этой уязвимости, и номер, присвоенный экспертами из CNA (CVE Numbering Authorities). Это отдельная организация, состоящая из более чем 200 экспертных групп, объединяющих исследователей, специалистов по обнаружению уязвимостей, разработчиков. Наиболее авторитетная из них — та же Mitre.
CVE-запись об уязвимости в Diagnostic Lab Management System в National Vulnerability Database. Содержит описание уязвимости и дополнительные данные о ней
Самым опасным, громким уязвимостям дают собственные имена. Например, CVE-2022-30190, которая позволяет проэксплуатировать Windows Support Diagnostic Tool через файлы MS Office, назвали Follina, а критическая уязвимость удаленного выполнения кода CVE-2021-44228, найденная в библиотеке Apache Log4j, известна как Log4Shell или LogJam.
Классификация недостатков безопасности CWE. Перечень Common Weakness Enumeration составлен в форме иерархического словаря, где перечислены ошибки в ПО, из-за которых возможно появление уязвимостей.
Инициатором этого проекта выступило Министерство нацбезопасности США, его поддерживает корпорация Mitre, а развивает большое сообщество ИБ-экспертов. Соответственно, многие эксперты считают эту классификацию стандартом описания недостатков безопасности ПО. Важная особенность CWE — строгая многоуровневая древовидная структура, состоящая из типов и категорий уязвимостей, снабженных цветовой кодировкой. Этот классификатор не такой динамичный, как OWASP Top 10. Внесение изменений в структуру CWE происходит редко, после уймы исследований и бюрократических проволочек.
Классификация атак CAPEC. Common Attack Pattern Enumeration and Classification — это классификация, которая появилась в процессе развития CWE и схожа с ней по иерархической структуре, однако содержит больше контекста и дополнительной информации.
В CAPEC систематизированы так называемые шаблоны объектов и механизмов атак, в которых описаны методы, используемые злоумышленниками. В них включены: описание того, как эксплуатируется уязвимость, последствия, которые возможны при ее эксплуатации, меры защиты.
CAPEC ссылается и на CVE, так что ее можно считать объединяющим классификатором и отправной точкой для поиска дополнительной информации о конкретной проблеме.
Классификация основных уязвимостей ИСПДн. Мы уже рассмотрели одну, по сути американскую государственную классификацию уязвимостей, но есть и российский аналог. Эта классификация узкоспециальная. Она разработана ФСТЭК для упорядочивания уязвимостей информационных систем, в которых ведется обработка персональных данных.
Эта классификация является основой для составления многих документов, связанных с информационной безопасностью, ее активно использует регулятор. В то же время, классификация основных уязвимостей ИСПДн не включает технических подробностей уязвимостей и содержит достаточно общие описания. Впрочем, для нужд регулятора этого более, чем достаточно.
Помимо пяти перечисленных можно вспомнить и пару необычных классификаций. Например, компания QIWI совместно с проектом Vulners разработали классификацию уязвимостей на основе графа связанной информации. Существует и классификация логических уязвимостей на основе метода групповой атаки с использованием апостериорной эмпирической методологии (что бы это ни значило). Такие вещи редко используются на практике и представляют скорее научный, академический интерес.
Как оценивают уязвимости
Время переходить от упорядочивания к приоритизации найденных проблем. Для этого уязвимости необходимо оценить. Если классификации универсальны, то результаты оценки конкретной уязвимости сильно зависят от IT-ландшафта, в котором она обнаружена.
Каждой уязвимости присваивают ранг или оценку серьезности на основе таких факторов, как:
Какие системы затронуты.
Какие данные в опасности.
Какие бизнес-функции находятся под угрозой.
Насколько легко реализовать атаку и добиться компрометации ИС.
Потенциальный ущерб в результате уязвимости.
Исходя из этого набора факторов, уязвимость в тестовой версии ПО не так страшна, как такая же в продуктовой. Уязвимость в старой версии ПО, для которой уже есть патч, оценивается как более легкая, чем такой же недостаток в новейшей программе.
При этом в целом уязвимость удаленного исполнения кода в популярном MS Word опаснее, чем подобная дыра в каком-нибудь редком текстовом редакторе, так как она затрагивает больше пользователей. Однако если компания использует не Word, а именно это редкое решение, то подобная ошибка будет оценена как критически опасная. Повторим, что многое зависит от контекста.
Бывают случаи, когда непонятно, как оценивать уязвимость. Обычно это связано с ошибками конфигурации (например, слабый пароль на критическом сервисе). Такие кейсы сложно оценить в соответствии с общепринятым стандартом. Тем не менее он есть и широко применяется.
Стандарт CVSS
Common Vulnerability Scoring System без ложной скромности переводится как общая система оценки уязвимостей. Это отраслевой стандарт, по которому оценивают серьезность дыр в безопасности ИС.
Краткая история CVSS
В начале нулевых Консультативный Совет по Инфраструктуре США (NIAC) провел исследования, благодаря которым в 2005 году появился первый стандарт с методами оценки ПО-уязвимостей. Заложенные тогда принципиальные основы расчета метрики используются и сегодня. Из-за того, что первую версию CVSS поддерживала еще молодая экспертная группа CVSS-SIG, вскоре разработчики стали жаловаться на многочисленные недостатки стандарта.
В CVSS стали вносить правки и в 2007 выпустили вторую версию с измененной формулой расчета. Прошло семь лет, прежде чем авторитетные Национальный институт стандартов и технологий (NIST) и Международный союз электросвязи (ITU) выпустили рекомендации по применению этой версии.
Третью версию CVSS NIAC опубликовал в 2015 году. В ее разработке участвовали эксперты Microsoft, IBM Internet Security Systems, Cisco, eBay, CERT/CC, Qualys, Symantec, DHS/MITRE. Ее до сих пор поддерживает FIRST, хотя в 2019 году вышел апдейт: CVSS 3.1.
Метрики в CVSS
CVSS позволяет вычислить серьезность риска по десятибалльной шкале. Чем больше число, тем выше опасность и быстрее нужно на нее реагировать.
Степени опасности по шкале:
низкая — от 0,1 до 3,9 баллов;
средняя — от 4 до 6,9;
высокая — от 7 до 8,9,
критическая — от 9 до 10.
Баллы начисляются исходя из базовых метрик, охватывающих различные аспекты уязвимости:
Вектор атаки (AV) — выражает «удаленность» атаки и способ эксплуатации уязвимости.
Сложность атаки (AC) — говорит о сложности выполнения атаки и о том, какие факторы необходимы для ее успеха (наряду с взаимодействием с пользователем, сложность атаки ранее была частью метрики сложности доступа).
Взаимодействие с пользователем (пользовательский интерфейс) — определяет, требует ли атака активного участия человека или ее можно автоматизировать.
Требуемые привилегии (PR) — документирует уровень аутентификации пользователя, необходимый для успешной атаки (это заменяет прежнюю метрику аутентификации).
Область действия (S) — определяет, может ли злоумышленник повлиять на компонент за пределами его области/полномочия безопасности.
Конфиденциальность (C) — определяет, могут ли неавторизованные лица получить доступ к данным и в какой степени.
Целостность (I) — измеряет влияние на достоверность данных.
Доступность (A) — относится к влиянию на доступность данных или услуг для авторизованных пользователей.
Эти показатели дают всестороннее представление об уязвимости. В результате, например, для ПО с открытым исходным кодом, поставляемого несколькими поставщиками, оценки CVSS могут различаться в зависимости от поставляемой версии, способа поставки, платформы и даже способа компиляции ПО.
Применение CVSS
Уязвимости в известных программных продуктах получают официальную оценку. Информация о каждой раскрытой уязвимости из CVE поступает в NIST. Эксперты института анализирует все аспекты уязвимости и присваивают ей степень опасности. В результате специалисты по информационной безопасности получают показатель, на который можно опираться в своих исследованиях. Применение метрик CVSS закреплено в стандартах PCI DSS и СТО БР ИББС, так что можно сказать, что эта оценка имеет юридическую силу.
Мы также проводим оценку уязвимостей по шкале CVSS, например, во время пентестов. Как правило, для расчетов используем онлайн-калькулятор, опубликованный на сайте Форума групп безопасности и реагирования на инциденты (FIRST) или аналогичное решение от NVD — CVSS v3 Calculator.
Поэтому и метрики CVSS, и другие перечисленные системы стоит использовать именно в качестве базовых инструментов. Они — унифицированная основа для работы, а не замена профессионального чутья опытного безопасника.
Уязвимости
Повышение привилегий в Seatd
Рейтинг опасности:
Исправление:
OS command injection in multiple Hikvision products
Рейтинг опасности:
Исправление:
Рейтинг опасности:
Исправление:
SQL-инъекция в Anuko Time Tracker
Рейтинг опасности:
Исправление:
Межсайтовый скриптинг в Anuko Time Tracker
Рейтинг опасности:
Исправление:
Множественные уязвимости в Microweber
Рейтинг опасности:
Исправление:
Повышение привилегий в Bubblewrap
Рейтинг опасности:
Исправление:
Раскрытие важных данных в snipe-it
Рейтинг опасности:
Исправление:
Множественные уязвимости в Mitsubishi Electric EcoWebServerIII
Рейтинг опасности:
Исправление:
PT-2022-05: Возможность выполнения Stored XSS авторизованным злоумышленником
Рейтинг опасности:
Исправление:
PT-2022-04: Возможность выполнения CSTI авторизованным злоумышленником
Рейтинг опасности:
Исправление:
PT-2022-03: Возможность выполнения Stored XSS авторизованным злоумышленником
Исправление:
PT-2022-02: Возможность выполнения произвольное чтение файлов и SSRF авторизованным злоумышленником
Рейтинг опасности:
Исправление:
PT-2022-01: Возможность выполнения произвольное чтение файлов и SSRF авторизованным злоумышленником
Рейтинг опасности:
Исправление:
PT-2021-15: Отказ в обслуживании при обработке файла с неправильным содержимым заголовка в модулях FX5U(C) CPU и FX5UJ CPU
Рейтинг опасности:
Исправление:
PT-2021-14: Целочисленное переполнение, приводящее к чтению и записи вне диапазона памяти, выделенного устройству
Рейтинг опасности:
Исправление:
PT-2021-13: Доступ к конфиденциальной информации PLC в модулях FX5U(C) CPU и FX5UJ CPU
Рейтинг опасности:
Исправление:
PT-2021-12: Обход аутентификации с помощью захвата-воспроизведения в модулях FX5U(C) CPU и FX5UJ CPU
Рейтинг опасности:
Исправление:
Подпишитесь на получение последних материалов по безопасности от SecurityLab.
Ежедневный выпуск от SecurityLab.Ru
Еженедельный выпуск от SecurityLab.Ru
Нажимая на кнопку, я принимаю условия соглашения.уязвимостей | OWASP Foundation
Что такое уязвимость?
Уязвимость — это дыра или слабость в приложении, которую можно недостаток дизайна или ошибка реализации, которая позволяет злоумышленнику вызвать вред заинтересованным сторонам приложения. К заинтересованным сторонам относятся владелец приложения, пользователи приложения и другие объекты, которые полагаются на приложение.
Пожалуйста, не публикуйте актуальные уязвимости в продуктах, услугах, или веб-приложений. Эти отчеты о раскрытии информации должны быть размещены на bugtraq или списки рассылки с полным раскрытием информации.
Примеры уязвимостей
- Отсутствие проверки ввода при вводе пользователем
- Отсутствие достаточного механизма регистрации
- Обработка ошибок открытия при отказе
- Неправильное закрытие соединения с базой данных
Чтобы получить отличный обзор, ознакомьтесь с OWASP Top Ten Проект. Вы можете прочитать о топе уязвимостей и загрузите документ, в котором они подробно описаны. Много организации и агентства используют первую десятку как способ создания осведомленность о безопасности приложений.
ПРИМЕЧАНИЕ. Прежде чем добавлять уязвимость, выполните поиск и убедитесь, что равноценного уже нет. Вы можете подумать о создании редирект, если тема та же. В каждой статье об уязвимостях есть определенная структура.
Список уязвимостей
- Разрешение истечения срока действия доменов или учетных записей
- Переполнение буфера
- Уязвимость бизнес-логики
- CRLF Впрыск
- Инъекция CSV от Timo Goosen, Albinowax
- Поймать исключение NullPointerException
- Скрытый канал хранения
- Десериализация ненадежных данных
- Ошибка ограничения каталога
- Двойное освобождение памяти
- Пустая строка пароля
- Внедрение языка выражений
- Проблема с проверкой Full Trust CLR Использование передачи ссылочных типов по ссылке
- Жук с кровотечением сердца
- Неправильная проверка данных
- Неправильное вычитание указателя
- Воздействие информации через строки запроса в URL-адресе Роберта Гилберта (amroot)
- Проблема с впрыском
- Небезопасная оптимизация компилятора
- Небезопасная случайность
- Небезопасный временный файл
- Небезопасный доступ к стороннему домену
- Небезопасный транспорт
- Недостаточная энтропия
- Недостаточная длина идентификатора сеанса
- Наименьшее нарушение привилегий
- Утечка памяти
- Отсутствует обработка ошибок
- Отсутствует проверка XML
- Несколько уровней администратора
- Нулевое разыменование
- Исследование уязвимостей OWASP . NET
- Чрезмерно разрешающее регулярное выражение
- Включение файла PHP
- Внедрение объекта PHP Эджидио Романо
- Ошибка начального числа PRNG
- Жестко запрограммированный пароль для управления паролями
- Хранение пароля в открытом виде
- Плохая практика ведения журнала, Вейлин Чжун
- Недостаток портативности
- Нарушение конфиденциальности
- Управление технологическим процессом
- Вернуться внутрь наконец Блок
- Перегрузка переменной сеанса
- Ошибка завершения строки
- Неотмеченное состояние ошибки
- Непроверенное возвращаемое значение отсутствует Проверка на нуль
- Неопределенное поведение
- Невыпущенный ресурс
- Неограниченная загрузка файлов
- Небезопасный мобильный код
- Небезопасный вызов функции из обработчика сигнала
- Небезопасное использование Reflection
- Использование устаревших методов
- Использование жестко запрограммированного пароля
- Использование сломанного или рискованного криптографического алгоритма
- Использование освобожденной памяти
- Шаблон уязвимости
- Обработка внешнего объекта XML (XXE)
Что такое уязвимости, эксплойты и угрозы?
Объяснение уязвимостей, эксплойтов и угроз
К Интернету подключено больше устройств, чем когда-либо прежде. Это музыка для ушей злоумышленников, поскольку они хорошо используют такие машины, как принтеры и камеры, которые никогда не предназначались для отражения изощренных вторжений. Это заставило компании и частных лиц переосмыслить, насколько безопасны их сети.
По мере того, как количество этих инцидентов растет, растет и то, как нам нужно классифицировать опасности, которые они представляют как для бизнеса, так и для потребителей. При обсуждении киберрисков чаще всего используются три термина: уязвимости, эксплойты и угрозы.
Узнайте о 7 распространенных типах кибератак.
Что такое уязвимость?
Ошибки случаются даже в процессе построения и кодирования технологии. То, что осталось от этих ошибок, обычно называют ошибкой. Хотя ошибки сами по себе не опасны (за исключением потенциальной производительности технологии), многие из них могут быть использованы злоумышленниками — это называется уязвимостями. Уязвимости можно использовать, чтобы заставить программное обеспечение действовать не по назначению, например, собирать информацию о текущих средствах защиты.
После того, как ошибка определена как уязвимость, она регистрируется MITRE как CVE, или общая уязвимость, или незащищенность, и ей присваивается оценка Общей системы оценки уязвимостей (CVSS), чтобы отразить потенциальный риск, который она может представлять для вашей организации. Этот центральный список CVE служит ориентиром для решений по управлению уязвимостями.
Вообще говоря, сканер уязвимостей сканирует и сравнивает вашу среду с базой данных уязвимостей или со списком известных уязвимостей; чем больше информации у сканера, тем точнее его работа. Когда у команды есть отчет об уязвимостях, разработчики могут использовать тестирование на проникновение как средство, чтобы увидеть, где находятся слабые места, чтобы можно было исправить проблему и избежать ошибок в будущем. При частом и последовательном сканировании вы начнете замечать общие связи между уязвимостями, что поможет лучше понять систему в целом. Узнайте больше об управлении уязвимостями и сканировании.
Примеры уязвимостей в системе безопасности
Уязвимость в системе безопасности — это уязвимость, недостаток или ошибка, обнаруженная в системе безопасности, которая потенциально может быть использована агентом угрозы для компрометации защищенной сети.
Существует ряд уязвимостей системы безопасности, но вот некоторые распространенные примеры:
- Нарушенная аутентификация: Когда учетные данные для аутентификации скомпрометированы, сеансы и удостоверения пользователей могут быть перехвачены злоумышленниками, которые выдают себя за исходного пользователя.
- SQL-инъекция: Внедрение SQL-кода является одной из наиболее распространенных уязвимостей системы безопасности и пытается получить доступ к содержимому базы данных посредством внедрения вредоносного кода. Успешная SQL-инъекция может позволить злоумышленникам украсть конфиденциальные данные, подделать удостоверения и принять участие в ряде других вредоносных действий.
- Межсайтовый скриптинг: Подобно SQL-инъекции, межсайтовый скриптинг (XSS) также внедряет вредоносный код на веб-сайт. Однако атака с использованием межсайтовых сценариев нацелена на пользователей веб-сайта, а не на сам веб-сайт, что подвергает риску кражи конфиденциальной пользовательской информации.
- Подделка межсайтовых запросов: Атака с подделкой межсайтовых запросов (CSRF) направлена на то, чтобы обманным путем заставить пользователя, прошедшего проверку подлинности, выполнить действие, которое он не намеревался выполнять. Это, в сочетании с социальной инженерией, может обманом заставить пользователей случайно предоставить злоумышленнику личные данные.
- Неправильная конфигурация безопасности: Любой компонент системы безопасности, который может быть использован злоумышленниками из-за ошибки конфигурации, может считаться «неправильной конфигурацией безопасности».
Уязвимости любого размера могут привести к утечке данных и, в конечном итоге, к утечке данных. Что такое утечка данных? Утечка данных происходит, когда данные случайно просачиваются внутри организации, в отличие от утечки данных, которая является результатом кражи данных. Утечка данных обычно является результатом ошибки. Например: отправка документа с важной или конфиденциальной информацией не тому получателю электронной почты, сохранение данных в общедоступном облачном хранилище или хранение данных на разблокированном устройстве в общедоступном месте для просмотра другими.
Что такое уязвимость кибербезопасности?
Эксплуатация — следующий шаг злоумышленника после обнаружения уязвимости. Эксплойты — это средства, с помощью которых хакеры могут использовать уязвимость для злонамеренных действий; к ним относятся части программного обеспечения, последовательности команд или даже наборы эксплойтов с открытым исходным кодом.
Что такое киберугроза?
Угроза – это гипотетическое событие, при котором злоумышленник использует уязвимость. Сама угроза, как правило, связана с эксплойтом, так как хакеры часто делают свой ход. Хакер может использовать несколько эксплойтов одновременно после оценки того, что принесет наибольшую награду. Хотя на данном этапе ничего катастрофического еще не произошло, это может дать группе безопасности или отдельному лицу представление о том, нужно ли составлять план действий в отношении конкретных мер безопасности.
Хотя может показаться, что вы постоянно слышите о новых атаках или киберугрозах в мире, эти термины могут помочь дать дополнительный контекст для этапов и опасностей, с которыми ежедневно сталкиваются специалисты по безопасности.