Рассмотрим гипотетическое сравнение. Находка A получила критический уровень по технической оценке критичности. Она обнаружена во внутреннем сервисе отчётности, к которому можно подключиться только из административного сегмента сети. Сервис не обрабатывает персональные или платёжные данные, и нет никаких известных свидетельств того, что эту уязвимость кто-то эксплуатирует. Находка B оценена как средняя. Она находится в сторонней библиотеке, которую использует доступный из интернета клиентский портал, уязвимость внесена в каталог уязвимостей со свидетельствами эксплуатации в реальных атаках, а через портал клиенты управляют своими учётными записями. Оба примера условны: они не описывают реальную систему или инцидент и нужны только для того, чтобы сделать логику наглядной.
Если сортировать бэклог только по критичности, первой окажется находка A. Если же команда спросит, кто может добраться до каждого дефекта, используют ли его злоумышленники уже сейчас и что будет потеряно, аргументы в пользу того, чтобы сначала заняться находкой B, становятся намного сильнее. Дело не в том, что оценка критичности бесполезна. Дело в том, что одно число не может одновременно вместить пять разных ответов.
Эта статья — редакционное руководство по приоритизации уязвимостей по риску для CISO, CTO и руководителей разработки. В ней разобрано, как рассматривать техническую критичность, вероятность эксплуатации, свидетельства эксплуатации в реальных атаках, доступность актива и бизнес-последствия как отдельные входные данные, как цепочки зависимостей и компенсирующие меры меняют картину и как владелец устранения, срок действия исключений и повторное тестирование превращают рейтинг в замкнутый цикл. Речь идёт о находках, полученных при авторизованном тестировании, сканировании и анализе кода. Инструкций по эксплуатации здесь нет.
Почему одна оценка не может нести решение
Решение о приоритете отвечает на практический вопрос: что именно команда должна исправить, на каком активе и в каком порядке при ограниченном времени инженеров. Единая оценка привлекательна тем, что по ней удобно сортировать. Проблема в том, что входные данные обоснованного решения измеряют разные вещи. Если их сложить или перемножить с весами, получится число, смысл которого потом никто не сможет объяснить.
Техническая критичность, вероятность эксплуатации, известная эксплуатация, доступность и бизнес-последствия отвечают на разные вопросы. Пока они разделены, проверяющий видит, почему находка оказалась на своём месте, может оспорить один фактор, не переписывая остальные, и обновить решение, когда меняется один факт. Когда они слиты в одно число, изменение любого фактора растворяется в сумме, а обсуждение превращается в спор о формуле вместо разговора о фактах.
Сводная оценка порождает ещё и ложную точность. Порог, ниже которого находка якобы может подождать, создаёт стимул спорить о долях балла, а не о том, достижим ли актив и что он защищает. Разделение факторов не отменяет структуру. Организациям по-прежнему нужны согласованные правила, письменная политика и сопоставимые решения. Просто правила работают с названными фактами, например «эксплуатируется в реальных атаках и доступна из интернета», а не с непрозрачным итогом, в котором не видно, какой факт определил результат.
На какой вопрос отвечает каждый сигнал
Листайте таблицу по горизонтали
| Сигнал | На какой вопрос отвечает | Чего не сообщает | Какие доказательства фиксировать |
|---|---|---|---|
| Техническая критичность (например, CVSS) | Насколько серьёзен дефект при допущениях системы оценки? | Достижим ли ваш экземпляр, эксплуатируется ли он и насколько важен | Оценка, версия системы оценки, вектор или обоснование |
| Вероятность эксплуатации (FIRST EPSS) | Насколько вероятна эксплуатация в ближайшие 30 дней? | Бизнес-последствия для вашей организации | Значение оценки и дата её получения |
| Известная эксплуатация (CISA KEV и сопоставимые свидетельства) | Есть ли свидетельства эксплуатации этой уязвимости в реальных атаках? | Что не внесённые в каталог уязвимости безопасны | Ссылка на запись каталога или источник разведданных с датой |
| Доступность и достижимость | Кто реально может добраться до уязвимого компонента и каким путём? | Насколько ценен актив | Сетевой путь, данные конфигурации или результат теста |
| Бизнес-последствия | Какой процесс, какие данные или обязательства пострадают? | Насколько вероятна атака | Подтверждение владельца актива и запись в реестре активов |
Техническая критичность: что может сделать дефект
Техническая критичность описывает свойства самого дефекта: чего может добиться атакующий при эксплуатации, насколько сложна эксплуатация и какие привилегии или действия пользователя для неё нужны. Системы оценки вроде CVSS делают такое описание единообразным для разных продуктов и вендоров. Это полезно для первичной сортировки и для коммуникации.
Критичность относится к дефекту, а не к вашей среде. Одна и та же уязвимость библиотеки имеет одинаковую базовую оценку и в изолированном тестовом инструменте, и в платёжном контуре рабочего сервиса. Поэтому критичность хорошо работает как один из факторов и плохо как единственный. Воспринимайте её как ответ на вопрос «насколько плохо это может быть в принципе» и фиксируйте версию системы оценки и допущения, чтобы последующие проверяющие сравнивали сопоставимое.
Полезная дисциплина — отделять опубликованную критичность от собственной оценки конкретного экземпляра. Если команда считает, что опубликованная оценка завышает или занижает опасность дефекта в её контексте, обоснование должно попасть в поля доступности, последствий или мер защиты вместе с доказательствами, а не в тихую правку числа критичности.
Вероятность эксплуатации и свидетельства эксплуатации в реальных атаках
Вероятность и свидетельства связаны, но это разные сигналы. Первое — прогнозная оценка, второе — запись о том, что уже наблюдалось. Их смешение приводит к двум противоположным ошибкам: прогноз принимают за доказательство, а отсутствие записи — за повод успокоиться.
EPSS: оценка вероятности, а не мера ущерба
Система Exploit Prediction Scoring System, которую поддерживает FIRST, оценивает вероятность эксплуатации уязвимости в ближайшие 30 дней. Поэтому она полезна для упорядочивания большого объёма находок, которые иначе ничем не различаются, и для выявления уязвимостей, у которых ожидаемая активность эксплуатации растёт.
EPSS не измеряет бизнес-последствия для конкретной организации. Высокая вероятность для компонента, до которого никто не может добраться и который ничего важного не защищает, не делает эту находку важнее доступной системы с чувствительными данными. Поскольку EPSS — оценка на временное окно, записывайте значение вместе с датой его получения и проверяйте заново, когда решение пересматривается.
KEV: свидетельства эксплуатации, а не список безопасного
Каталог CISA Known Exploited Vulnerabilities содержит уязвимости, для которых есть свидетельства эксплуатации в реальных атаках. Такие свидетельства могут сильно влиять на приоритизацию: если известно, что уязвимость эксплуатируется, вопрос меняется с «можно ли это атаковать?» на «достижим ли наш экземпляр и защищён ли он?».
Важны два ограничения. Во-первых, отсутствие уязвимости в KEV не означает, что она безопасна: каталог фиксирует собранные свидетельства, а эксплуатация может начаться до внесения записи или вообще без неё. Во-вторых, сроки устранения, связанные с KEV, действуют в контексте федеральных органов власти США и не являются всеобщими юридическими требованиями для организаций в любой стране. Ваши сроки устранения определяются вашей политикой и теми правилами, которые действительно к вам применимы.
Доступность и достижимость затронутого актива
Доступность отвечает на вопрос, кто может добраться до уязвимого компонента и каким путём. Сервис, открытый в интернет, интерфейс, доступный из партнёрских сетей, и компонент, достижимый только из закрытого административного сегмента, дают атакующему совершенно разные возможности, даже если дефект одинаков.
Достижимость нужно подтверждать, а не предполагать. Полезные доказательства — актуальные сетевые схемы, конфигурация межсетевых экранов и балансировщиков, правила групп безопасности в облаке и результаты оценки внешней поверхности атаки, которая показывает, что действительно видно снаружи. Пока доступность не подтверждена, фиксируйте более осторожное значение. Оптимистичные допущения о сегментации — один из самых частых способов незаметно понизить приоритет.
Доступность тоже меняется. Новая интеграция, переезд на другую модель размещения или временное изменение правил межсетевого экрана могут превратить внутренний компонент в доступный извне. Любое изменение доступности должно запускать пересмотр связанных находок независимо от их текущего приоритета.
Бизнес-последствия: что организация может потерять
Бизнес-последствия описывают, какой процесс, набор данных или обязательство зависит от актива и что произойдёт при его компрометации. Эти данные может предоставить только сама организация. Ни один публичный каталог не знает, что конкретный сервер отчётности питает регуляторную отчётность, а внешне второстепенный сервис хранит учётные данные платёжной интеграции.
Последствия должен подтвердить владелец актива, а запись должна храниться в реестре активов или в профиле управления рисками. NIST Cybersecurity Framework 2.0 создан, чтобы помогать организациям понимать киберриски и управлять ими, и профиль CSF удобно использовать для записи того, какие активы и результаты критичны. Типичные категории последствий — раскрытие чувствительных данных, нарушение целостности бизнес-записей, потеря доступности клиентского сервиса и потеря контроля над системой, через которую можно добраться до других.
Последствия не зависят от вероятности, а вероятность не зависит от последствий. Критичный актив с труднодостижимым дефектом и второстепенный актив с активно эксплуатируемым дефектом — это разные задачи. Именно раздельный учёт последствий позволяет руководству видеть компромисс, а не число.
Цепочки зависимостей: когда умеренная находка открывает путь
Находки редко существуют изолированно. Умеренное раскрытие информации может выдать внутренние имена хостов. Ошибка в настройке идентификации может позволить перейти от одной учётной записи к другой. Уязвимый компонент глубоко в дереве зависимостей может оказаться достижимым только потому, что публичная точка входа передаёт ему данные. Во всех этих случаях риск заключён в цепочке, а не в отдельном звене.
Поэтому при приоритизации стоит спрашивать, не является ли находка шагом к чему-то более ценному. Помогают такие вопросы. Даёт ли эта находка доступ, учётные данные или сведения, которые нужны другой находке? Вызывается ли уязвимая библиотека из достижимого пути выполнения кода или просто присутствует в сборке? Разрывает ли исправление одного звена всю цепочку и какое звено дешевле всего исправить?
Тестирование на проникновение здесь особенно полезно: в согласованных границах и при письменном разрешении тестировщики могут показать, как находки сочетаются. Цепочку нужно фиксировать как связь между находками, чтобы закрытие одного звена запускало переоценку остальных, а не допущение, что весь путь исчез.
Компенсирующие меры: проверенные, ограниченные и временные
Не каждую срочную находку можно исправить сразу. Компенсирующая мера может временно снизить риск, пока исправление запланировано, но только если она действительно применима к конкретной уязвимости. Например, Content Security Policy позволяет сайту ограничить, какие ресурсы может загружать браузер, и помогает смягчать ряд атак межсайтового скриптинга и внедрения данных. Сетевые ограничения, правила межсетевого экрана веб-приложений и отключение функций могут играть похожую роль для других классов дефектов.
Компенсирующую меру делают убедительной три условия. Она должна быть проверена: авторизованное тестирование должно подтвердить, что мера блокирует нужное поведение, потому что политика со слишком широким списком источников или обходимое правило могут почти ничего не защищать. Она должна быть ограничена: в записи указано, к какой находке, какому активу и какому пути атаки она относится. Она должна быть временной: исходная находка остаётся открытой с датой пересмотра, потому что мера снижает вероятность или ущерб, но не устраняет первопричину.
Если дефект продукта можно смягчить только обходными мерами на стороне заказчика, это тоже стоит зафиксировать. Позиция CISA Secure by Design состоит в том, что бремя безопасности не должно непропорционально ложиться на заказчиков, и такие случаи полезны для управления поставщиками и будущих закупок.
Логика решения без сводной оценки
Логика решения заменяет арифметику явными вопросами. Вместо подсчёта суммы команда задаёт короткую последовательность вопросов о названных фактах и записывает ответ на каждый. Результатом становятся класс приоритета, путь устранения и владелец вместе с причинами, которые к ним привели.
Шаблоны ниже показывают, как это работает. Это отправные точки для калибровки под вашу политику, а не универсальные правила:
- Известная эксплуатация, достижимый экземпляр и отсутствие проверенной компенсирующей меры обычно оправдывают немедленные действия, какой бы ни была метка критичности.
- Высокую критичность на активе с подтверждённой недостижимостью и низкими последствиями часто можно включить в обычный цикл релизов, если доказательства недостижимости записаны и пересматриваются при изменении среды.
- Растущая оценка вероятности эксплуатации для доступного актива с высокими последствиями — повод ускорить решение ещё до появления свидетельств эксплуатации.
- Находку, входящую в продемонстрированную цепочку, приоритизируют по ценности того, к чему ведёт цепочка, а не по её собственной оценке.
- Любое изменение свидетельств эксплуатации, доступности или последствий снова открывает решение.
- Подтвердить фактыОтдельно записать критичность, оценку вероятности, известную эксплуатацию, доступность и последствия, указав для каждого фактора источник и дату.
- Проверить путь атакиУстановить, достижим ли экземпляр и входит ли он в цепочку зависимостей, ведущую к более ценному активу.
- Выбрать маршрутВыбрать исправление, проверенную компенсирующую меру или ограниченное по времени исключение и назначить владельца устранения.
- Проверить результатПовторно протестировать конкретное исправление или меру при оговорённых условиях и приложить доказательства до закрытия.
- Пересматривать при измененияхВозвращаться к решению при изменении свидетельств эксплуатации, доступности, последствий или даты истечения исключения.
Ценность такого подхода — в прослеживаемости. Когда руководство спрашивает, почему находку средней критичности исправили раньше критической, запись показывает факты, которые определили решение. Как встроить эту логику в регулярный цикл обнаружения, оценки и закрытия, разобрано в материале о том, как выстроить процесс управления уязвимостями.
Владелец устранения, исключения и срок их действия
Приоритет без владельца остаётся пожеланием. Каждой находке, которую не закрыли сразу, нужны названный владелец устранения, выбранный маршрут и дата, к которой будет принято следующее решение.
Как назначить владельца устранения
Владелец устранения — это человек или команда, которые реально могут изменить затронутую систему: продуктовая команда для кода приложения, платформенная команда для общей инфраструктуры, менеджер по работе с поставщиком, если исправление зависит от вендора. Владение должно следовать реестру активов, а не тому, кто случайно сообщил о находке. Если исправление затрагивает несколько команд, как это часто бывает с цепочками зависимостей, назначьте одного координирующего владельца и запишите участвующие команды. Как отслеживать такие работы до конца, описано в статье о контроле устранения уязвимостей.
Исключения с датой истечения
Иногда правильное решение — не исправлять сейчас: систему выводят из эксплуатации, исправление требует релиза от вендора или бизнес принимает риск на определённый период. Такие решения можно оформить как ограниченное по времени принятие риска; их допустимость по закону, договору и применимым требованиям нужно оценивать отдельно. В исключении должно быть указано, кто его принял и на каком основании, какие компенсирующие меры действуют, какие условия делают исключение недействительным и когда оно истекает.
Дата истечения обязательна. Исключение без даты окончания превращается в постоянное и невидимое принятие риска. Когда исключение истекает, находка возвращается в очередь для нового решения на основе актуальных доказательств. Сроки устранения и длительность исключений задаёт политика организации; публичные источники, рассмотренные для этой статьи, не предписывают конкретного числа дней.
Повторное тестирование и доказательства приёмки
Находка должна закрываться по доказательствам, а не по статусу тикета. Повторное тестирование подтверждает, что конкретное исправление или мера работает при оговорённых условиях: проверенная версия, среда, метод теста и дата. Оно не доказывает, что риск навсегда отсутствует, что похожих дефектов нет в других местах или что последующее изменение не вернёт проблему.
Листайте таблицу по горизонтали
| Доказательство | Что оно показывает | Чего оно не показывает | Кто обычно предоставляет |
|---|---|---|---|
| Результат повторного теста исходной находки | Конкретная проблема больше не воспроизводится при оговорённых условиях | Что в системе нет других уязвимостей | Тестировщик, проводивший повторный тест |
| Запись об изменении или ссылка на патч | Какое изменение внесено, когда и в какой актив | Что изменение действительно устранило слабость | Владелец устранения |
| Проверка компенсирующей меры | Мера блокирует нужное поведение на проверенном пути | Что первопричина устранена | Тестировщик и владелец меры |
| Подписанное исключение по риску | Кто принял остаточный риск, на каких условиях и до какой даты | Что риск снижен | Владелец актива и утверждающее лицо |
| Обновлённые данные о доступности | Текущая достижимость затронутого компонента | Будущие изменения среды | Инфраструктурная или платформенная команда |
Критерии приёмки лучше согласовать до начала устранения, чтобы владелец знал, какие доказательства закроют находку. Помогает согласованность методов: процедуры тестирования на основе OWASP Web Security Testing Guide и NIST SP 800-115 делают повторный тест сопоставимым с исходным. Практический порядок такой проверки разобран в статье о том, как доказать, что исправления после пентеста действительно работают. Ни тест на проникновение, ни процесс приоритизации не являются сертификацией, аттестацией или заключением о гарантии безопасности: они дают доказательства по конкретным находкам на конкретный момент времени.
Классы слабостей и стандарты: от находок к первопричинам
Приоритизировать отдельные находки необходимо, но повторяющиеся находки одного класса указывают на первопричину, которую не устранит никакая скорость выпуска патчей. Список MITRE CWE Top 25 выделяет слабости, которые серьёзны и широко распространены среди опубликованных записей CVE, а кроме того MITRE публикует рейтинг слабостей на основе каталога KEV. Первый показывает, что распространено в отрасли, второй — что противники уже используют. Ни один из них не описывает вашу среду, поэтому они помогают в работе с первопричинами, но не заменяют собственный контекст.
Если сопоставить каждую находку с идентификатором CWE, а веб-находки — с категорией OWASP Top 10 и требованием OWASP ASVS, у разработчиков и менеджеров появляется общий словарь. ASVS рекомендует указывать идентификаторы требований вместе с версией стандарта, потому что идентификаторы могут меняться между версиями. Такой формат в тикетах сохраняет прослеживаемость решений во времени.
Когда значительная часть бэклога относится к одному классу, например к внедрениям или проблемам безопасности памяти, устранение класса целиком через архитектуру, более безопасные фреймворки или безопасные настройки по умолчанию обычно даёт больше, чем ускорение отдельных исправлений. Отчёт руководству в этих терминах — какие классы повторяются, на каких активах и как долго срочные находки остаются открытыми — даёт основание финансировать структурную работу.
Как выбрать сервис или инструмент приоритизации уязвимостей
Когда логика решения понятна, коммерческие предложения оценивать проще. Задача — купить поддержку своей модели, а не отдать определение риска формуле вендора.
Полезные вопросы к любой платформе, управляемому сервису или подрядчику по тестированию:
- Может ли решение показать по каждой находке отдельные факторы, определившие приоритет, и выгрузить это обоснование?
- Хранит ли оно критичность, оценку вероятности эксплуатации, известную эксплуатацию, доступность и бизнес-последствия в отдельных полях, а не в одном непрозрачном числе?
- Может ли оно принимать ваш реестр активов, данные о доступности и сведения о владельцах вместо типовых значений?
- Фиксирует ли оно исключения с владельцами и датами истечения и предупреждает ли об их окончании?
- Поддерживает ли оно повторное тестирование и закрытие по доказательствам?
- Для услуг тестирования: выполняются ли работы в согласованных границах, при письменном разрешении и по признанным методикам?
К непроверяемым утверждениям стоит относиться осторожно. Если вендор называет показатель снижения риска или точность модели, запросите методику и данные и считайте эту цифру заявлением вендора, пока она не подтверждена в вашей среде. О публичных обязательствах вроде CISA Secure by Design Pledge спрашивать разумно, но обязательство не является сертификацией и оценивается вместе с реальной практикой.
От бэклога к решению: практические шаги
Приоритизация уязвимостей по риску работает, когда факты, стоящие за каждым решением, остаются видимыми. Критичность говорит, насколько серьёзен может быть дефект. Оценка вероятности говорит, насколько вероятна атакующая активность в ближайшее время. Известная эксплуатация говорит о том, что уже наблюдалось. Доступность показывает, кто может добраться до актива, а бизнес-последствия — что поставлено на карту. Цепочки зависимостей и проверенные меры корректируют картину, а владельцы, даты истечения и повторные тесты сохраняют её честной.
Практичное начало — взять небольшой срез бэклога, отдельно записать пять факторов по каждой находке, назначить владельцев и договориться, какие доказательства закроют каждый пункт. Если нужны независимые доказательства достижимости, цепочек или эффективности исправлений, можно описать системы и ограничения для работы с Pentest.red и согласовать границы тестирования до начала работ.
PENTEST.RED
Обсудить объём и стоимость пентеста
Сначала согласуем системы, доступы, ограничения и ожидаемый результат.
Статья подготовлена на основе глубокого исследования и прошла редакционную переработку.