Радарная диаграмма с пятью осями метрик ИБ на плотной бумаге. Синий полигон отражает текущее состояние, пунктирный янтарный — целевую зрелость; рядом латунный пресс-папье и перо.


Два года назад я собрал в Splunk дашборд для квартального отчёта перед советом директоров. Центральная метрика - "1 247 832 заблокированных атаки за квартал". Зелёные индикаторы, растущий тренд, красота. CFO посмотрел и спросил: "Если в следующем квартале заблокируем 800 тысяч - мы стали хуже защищены?". Я завис. Цифра не говорила ничего ни о рисках, ни о реальном уровне защиты. По данным PwC (цитата через UpGuard), только 22% CEO уверены, что получают достаточно полные данные о рисках для принятия решений. EY даёт ещё жёстче: 15% организаций считают свою ИБ-отчётность соответствующей ожиданиям. Проблема не в отсутствии измерений - security-команды измеряют не то.

KPI для ИБ-команды: какие метрики создают иллюзию защищённости​

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

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

"Количество инцидентов за период". Снижение может означать улучшение защиты. А может - деградацию мониторинга. Как справедливо подметили на CISOClub, команда SOC способна занижать классификацию событий, чтобы "улучшить" статистику. Или наоборот: рост инцидентов показывает, что аналитики стали внимательнее, а не то, что атак стало больше. Метрика, где улучшение и деградация выглядят одинаково - бесполезна.

"Процент закрытых уязвимостей" без привязки к severity и SLA. 95% - звучит отлично, пока не выясняется, что оставшиеся 5% - critical на публичных сервисах, которые висят открытыми третий месяц.

Почему атакующий обесценивает ваши метрики​

Опасность "пустышек" не только в ложном чувстве контроля. Атакующий, применяющий Disable or Modify Tools (T1562.001, Defense Evasion), отключает EDR-агент на хосте - а ваша метрика "покрытие EDR: 100%" остаётся зелёной. Spoof Security Alerting (T1685.003) позволяет подменить алерты - дашборды показывают штатную работу, а в сети идёт lateral movement. Clear Windows Event Logs (T1685.005) обнуляет MTTD для конкретного хоста: нельзя детектировать то, чего нет в логах.

Через Security Software Discovery (T1518.001) атакующий первым делом определяет, какие инструменты вы используете и что мониторите. Он буквально знает, какие метрики вы собираете, и строит операцию так, чтобы не попасть ни в одну из них. Метрика, которую можно обмануть без ведома SOC - это не метрика, а декорация.

Как измерить эффективность ИБ: MTTD, MTTR и метрики SOC​

1782289276248.webp

Три операционные метрики - MTTD, MTTR и MTTC - считают почти все, но часто неправильно.

MTTD - Mean Time to Detect​

Среднее время от момента, когда атакующий получает initial access, до фиксации подозрительной активности SOC. Формула:

MTTD = Сумма (времядетекта − времякомпрометации) / количество_инцидентов

Типичная ошибка: за "время компрометации" берут момент первого алерта SIEM, а не реальный initial access. При расследовании инцидента момент проникновения восстанавливается ретроспективно - по логам аутентификации, сетевым записям, артефактам. Разрыв между "первый алерт" и "реальный initial access" может составлять дни. Если считать MTTD от алерта - получается время реакции на шум, а не время обнаружения атаки.

Пример: извлечение MTTD из Splunk, где incident_timeline - lookup-таблица, заполняемая при расследовании с реальной датой компрометации:
Код:
index=notable status=closed
| eval detect_ts=_time
| lookup incident_timeline incident_id OUTPUT first_compromise_ts
| eval mttd_hrs=round((detect_ts - first_compromise_ts)/3600, 1)
| stats avg(mttd_hrs) as avg_mttd median(mttd_hrs) as p50_mttd by urgency
Без этого lookup вы считаете MTTD от первого алерта, а не от реального проникновения. Разница принципиальная: медианный MTTD может отличаться в 3–5 раз. Я видел случаи, когда "отчётный" MTTD был 4 часа, а реальный - за двое суток.

MTTR - Mean Time to Resolve​

Общее время устранения инцидента. Единая цифра MTTR бесполезна - разумнее разбить на фазы и искать bottleneck:

ФазаЧто измеряетОриентир для зрелого SOC
Detection -> TriageОт алерта до начала разбора15-30 минут
Triage -> ContainmentОт начала разбора до изоляции1-4 часа
Containment -> EradicationПолное удаление присутствия атакующего24-72 часа
Eradication -> RecoveryВосстановление сервисов4-48 часов

Часто bottleneck - не в детекте, а в эскалации: аналитик L1 видит алерт, но не уверен в критичности и ждёт подтверждения от L2. Если ваш MTTR = 48 часов и 36 из них уходят на эскалацию - проблема в процессе, не в технологиях. Покупка нового SOAR тут не поможет.

MTTC - Mean Time to Contain​

Время от обнаружения до изоляции угрозы - самая критичная метрика с точки зрения ущерба. Именно containment останавливает lateral movement. Если MTTC = 6 часов, атакующий успевает закрепиться на нескольких хостах и, вполне возможно, добраться до domain admin через privilege escalation. Шесть часов - это целая вечность для red team.

Red team как проверка реальности​

Заявленный MTTD из дашборда и фактический MTTD при настоящей атаке - часто два разных числа. На одном из tabletop exercises после red team-операции дашборд показывал MTTD = 4 часа. Красная команда просидела в сети 11 дней без единого алерта - использовала legitimate credentials и избегала шумных TTPs. Метрика была посчитана корректно, но базировалась только на инцидентах, которые SOC уже видел. Слепые зоны в расчёт не входили.

Рекомендация: проводите red team-операции не реже раза в полугодие и сравнивайте фактический MTTD красной команды с отчётным. Расхождение больше чем в 2 раза - ваши метрики SOC описывают идеализированную картину, а не реальность.

Показатели эффективности vulnerability management: от сканера до SLA​

Управление уязвимостями - область, где метрики информационной безопасности врут чаще всего. "10 000 уязвимостей найдено" - и что дальше? Без severity-приоритизации и контекста эксплуатируемости сырые цифры бесполезны.

Покрытие: ширина и глубина​

По модели ToucanToco для CISO-дашбордов, покрытие имеет два измерения.

Ширина (breadth): процент активов, охваченных программой vulnerability management. Например, 70% серверов дата-центра и облачных активов покрыты сканированием через Tenable.io или Qualys. Цель - 100% к концу года. Но 100% покрытия сетевым сканером не означает 100% видимости: API-сервисы, контейнеры, serverless-функции часто выпадают из стандартного сканирования. Сканер их просто не видит.

Глубина (depth): какие слои стека проверяются. Если сканируете только ОС и не трогаете зависимости приложений, middleware, конфигурации - ваш "100% coverage" реально покрывает 30–40% атакуемой поверхности. Пентестер это заметит первым - обычно через уязвимую библиотеку в npm или pip.

Remediation backlog efficiency​

Формула, показывающая, справляется ли команда с потоком уязвимостей или тонет:
Код:
Backlog Efficiency = Closed_This_Month / (Open_Backlog + New_This_Month) * 100
Пример по модели ToucanToco: в январе 200 critical в бэклоге, нашли 50 новых, закрыли 50 - эффективность = 50/250 = 20%. Бэклог не уменьшился. В феврале нашли 50, закрыли 100 - эффективность = 100/250 = 40%, бэклог снизился до 150. Тренд важнее абсолютной цифры: если три месяца подряд Backlog Efficiency < 30% - процесс не работает, бэклог растёт бесконтрольно. Вы тонете, а дашборд показывает "в процессе".

Risk Exposure Rate​

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

Risk Exposure Rate = Vulns_In_Prod / (Vulns_Fixed_PreProd + Vulns_In_Prod) * 100

Один из сценариев ToucanToco: 30 уязвимостей найдено в продакшне при 250 исправленных на этапе подготовки - risk exposure rate = 11%. Цель - снижать этот процент от квартала к кварталу. Если RER растёт - ваш pipeline безопасности пропускает дефекты, и надо разбираться где именно дырка.

SLA по устранению: привязка к severity​

Метрика «среднее время устранения уязвимости» бессмысленна без разбивки по критичности:

SeveritySLA (дни)Что отслеживаем
Critical (CVSS 9.0+)7% закрытых в срок
High (CVSS 7.0-8.9)30% закрытых в срок
Medium (CVSS 4.0-6.9)90% закрытых в срок
Low (CVSS 0.1-3.9)180% закрытых в срок

Показатель "% критических уязвимостей, закрытых в рамках SLA" - одна из немногих метрик vulnerability management, которая реально связана с бизнес-риском. 60% critical закрывается вовремя? Значит пентестер имеет 40%-ное окно для initial access через известные эксплойты. Это не абстрактный риск - это конкретное окно, через которое заходят.

Пентест vs сканер: разница в данных​

Сканер находит CVE по версиям. Пентестер находит цепочки: слабый пароль -> lateral movement -> privilege escalation -> domain admin. Метрики, построенные только на данных сканера, не отражают реальную эксплуатируемость. Включайте результаты пентестов и red team-операций в расчёт: из 200 "high" по CVSS уязвимостей пентестер реально проэксплуатировал 12 - ваш процесс приоритизации нуждается в пересмотре. CVSS без контекста эксплуатируемости - это как диагноз по учебнику без осмотра пациента.

Метрики зрелости ИБ-программы: CIS Controls и NIST CSF как система координат​

1782289367304.webp

Зрелость ИБ-программы - не бинарное "есть/нет", а спектр. Два фреймворка дают практическую шкалу для измерения защищённости организации.

CIS Controls v8: Implementation Groups как шкала​

CIS Controls разделены на Implementation Groups (IG1 -> IG2 -> IG3), где IG1 - базовая кибергигиена, IG3 - продвинутая защита. Метрика зрелости: процент safeguards каждой IG, реально внедрённых и подтверждённых проверкой.

Пример по CIS-1 (Inventory and Control of Enterprise Assets): safeguard 1.1 требует поддерживать актуальную инвентаризацию. Метрика: % активов в сети, зарегистрированных в CMDB с точностью до 24 часов. На 500 активов 120 "неопознанных устройств" - покрытие CIS-1.1 = 76%. Конкретная цифра, которую можно улучшать, и которая напрямую связана с безопасностью: неопознанные устройства - потенциальные точки входа без EDR и без патчей. Каждое такое устройство - подарок для атакующего.

По CIS-5 (Account Management): safeguard 5.3 требует отключения неактивных учёток. Метрика: % аккаунтов, не входивших в систему > 90 дней и всё ещё активных. Каждая такая учётная запись - вектор для атакующего, который через Password Policy Discovery (T1201) определяет требования к паролям и брутфорсит заброшенные аккаунты. Забытая учётка сервисного аккаунта с паролем Company2019! - классика, которую я встречал не раз.

NIST CSF v2.0: покрытие функций​

NIST CSF v2.0 организует безопасность по шести функциям: Govern (GV), Identify (ID), Protect (PR), Detect (DE), Respond (RS), Recover (RC). Метрика зрелости - оценка реализации каждой функции по шкале от Partial до Adaptive.

Типичная картина в средней организации: Protect = 3 (Repeatable), Detect = 2 (Risk-Informed), Respond = 1 (Partial). Деньги вложены в файрволы и антивирусы, мониторинг настроен на базовом уровне, плана реагирования либо нет, либо он не тестировался с прошлого года. Radar-диаграмма этих оценок - мощный визуальный инструмент для совета директоров: перекос виден мгновенно и не требует технического контекста. Директор видит "Respond = 1" и задаёт правильный вопрос.

Security metrics для CISO: дашборд отчётности по информационной безопасности​

📚 Часть контента скрыта. Этот материал доступен участникам сообщества с рангом One Level или выше
Получить доступ просто — достаточно зарегистрироваться и проявить активность на форуме

Большинство программ KPI кибербезопасности, которые я видел за время работы, проваливаются не из-за плохой математики. Формулы MTTD и MTTR все знают. Проблема глубже: команды измеряют то, что легко считается, а не то, что показывает реальную устойчивость к атаке. Процент патченных серверов легко вытащить из Tenable. А ответ на вопрос "сможет ли атакующий получить domain admin за 48 часов" - ни на одном дашборде не появляется, потому что для этого нужно регулярно проводить red team-операции и честно учитывать результаты.

Неудобная правда: большинство дашбордов существуют, чтобы CISO мог отчитаться перед советом директоров, а не чтобы улучшить защиту. Если vulnerability SLA показывает 95% compliance, а пентестер за два дня добирается до контроллера домена через цепочку, которую сканер не видит - эти 95% ничего не стоят.

Метрика должна болеть. Если показатель всегда зелёный - он бесполезен. Хороший KPI - тот, который периодически уходит в красную зону и заставляет пересматривать приоритеты. Если вы ни разу не нарушили SLA по устранению критических уязвимостей - либо SLA слишком мягкий, либо severity классифицируется неверно. Единственный способ проверить - столкнуть ваши метрики с реальной атакой. Запустите red team, сравните дашборд с результатами и посмотрите, сколько зелёных индикаторов переживут столкновение с действительностью.
 
Последнее редактирование модератором:
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

Похожие темы

🚀 Первый раз на Codeby?
Гайд для новичков: что делать в первые 15 минут, ключевые разделы, правила
Начать здесь →
🧭 Навигатор · ИБ 2026
Не знаешь, какой трек твой?
5 направлений ИБ, реальные зарплаты и точка входа для каждого — в одном треде.
JuniorSenior+
100K → 600K+ ₽ /мес
Открыть навигатор →
🔴 Свежие CVE, 0-day и инциденты
То, о чём ChatGPT ещё не знает — обсуждаем в реальном времени
Threat Intel →
💼 Вакансии и заказы в ИБ
Pentest, SOC, DevSecOps, bug bounty — работа и проекты от проверенных компаний
Карьера в ИБ →

HackerLab