Постоянную программу пентестов легко продать красивыми словами. В предложении могут быть слова «непрерывно», «по запросу», личный кабинет и неограниченное число заявок. Но ни одно из этих обещаний не объясняет, что произойдёт, если в одну неделю одним и тем же специалистам понадобятся проверка релиза, срочная оценка новой угрозы, два ретеста и плановый пентест.
Полезный вопрос для заказчика звучит иначе: как авторизованный запрос попадает в программу, кто определяет его приоритет, сколько времени специалистов действительно зарезервировано, с какого момента считаются сроки, кто снимает блокировки и какие доказательства останутся у заказчика после завершения договора? Без таких правил подписка превращается в очередь со скрытыми приоритетами.
Ниже — модель организации регулярного тестирования на проникновение. Это авторская практическая схема, а не стандарт и не утверждение, что любой поставщик оказывает такую услугу. CIS Controls, OWASP SAMM, материалы NIST, CREST и NCSC подтверждают базовые принципы: программу нужно определить, работу следует выбирать с учётом риска и изменений, роли необходимо закрепить, измерять надо не только активность, но и среду, а находки нужно доводить до исправления и выводов. Предложенные ниже правила очереди, резервирования времени, отсчёта сроков и завершения договора помогают превратить эти принципы в проверяемые условия.
Что должно означать слово «управляемая»
«Управляемая» должно означать, что вокруг отдельных авторизованных тестов существует понятный порядок работы. Это не меняет того, что доказывает пентест. У каждой проверки по-прежнему есть утверждённая цель, даты, допущения, методы, исключения и ограничения. Находка относится к условиям конкретного теста, а отсутствие находок за месяц не доказывает безопасность среды.
CIS Control 18 описывает программу тестирования на проникновение через охват, частоту, ограничения, контакты, маршрутизацию исправлений и ретроспективы. CREST разделяет подготовку, проведение теста и последующие действия, включая планы работ и извлечение уроков. Это свойства программы. Портал может помочь их фиксировать, но сам по себе не обеспечивает ни управление, ни квалификацию тестировщиков.
Нужна и чёткая граница со смежными видами работ. Автоматическое сканирование уязвимостей, контроль конфигураций, обработка bug bounty, red team и реагирование на инциденты могут давать входные сигналы, но не заменяют пентест с согласованными границами. Сигнал может стать поводом для предварительной оценки, но не создаёт автоматического обязательства провести ручной тест.
Поэтому заказчику нужен каталог конкретных видов работ. Например: пентест веб-приложения или API в определённом объёме, проверка после значимого изменения, валидация названных исправлений либо короткая встреча для разбора системы и определения границ. Для каждой единицы следует указать условия допуска, ожидаемое доказательство, оценку трудоёмкости и критерий завершения. «Неограниченные заявки» могут означать неограниченную подачу запросов, но не неограниченную одновременную работу экспертов.
Сначала настройте приём заявок, затем календарь
Регулярная программа начинает буксовать, когда сообщение «проверьте новый платёжный сценарий к пятнице» считается полноценной заявкой. В очереди должна быть минимальная карточка запроса. В ней указывают владельца бизнес-риска, цель и среду, причину проверки, соответствующее изменение или угрозу, дату управленческого решения, источник полномочий на тест, чувствительность данных, известные ограничения и людей, которые обеспечат доступ либо остановят тест.
Первое решение касается допуска, а не приоритета. Заявку нельзя переводить в активное тестирование, если неизвестен владелец, нет достаточного письменного разрешения, сторонний актив не согласован, среда не выдерживает согласованные методы или ожидаемый результат не входит в каталог услуг. Запись и причину нужно сохранить, а не удалять. Так остаются данные о реальном спросе и видно, улучшается ли качество подготовки заявок.
Допущенные заявки попадают в очередь, отсортированную по риску. Практическая оценка может учитывать влияние на бизнес, внешнюю доступность, чувствительность достижимых данных, уровень привилегий, новизну изменения, сведения об эксплуатации, договорные или регуляторные сроки и время с последней уместной проверки. Формула менее важна, чем понятные полномочия. Один названный владелец риска со стороны заказчика должен иметь право согласовать отсрочку, а руководитель тестирования — отказаться от небезопасной или неавторизованной работы.
OWASP SAMM предлагает здравый принцип для ручного тестирования при ограниченных ресурсах: выбирать компоненты с высоким риском, недавно существенно изменённые области и крупные предстоящие релизы. Этот принцип обосновывает проверки по событиям, но не задаёт универсальную формулу. Организация сама определяет, что значит «высокий риск» в её среде.
- ПриёмЗафиксировать владельца, цель, разрешение, изменение, дату решения, ограничения и контакты ответственных
- ОценкаПроверить допуск, оценить трудоёмкость и ранжировать заявку по согласованной модели риска
- ПланированиеНазначить очередь, время и специалиста, закрепить границы и начало отсчёта срока
- Тест и отчётВыполнить авторизованную работу, оперативно сообщить о критичных находках и записать ограничения и блокировки
- Ретест и выводыПроверить согласованные исправления, закрыть или вернуть заявку в очередь и учесть уроки при планировании следующих проверок
В этой схеме между подачей и началом теста намеренно есть два решения: допуск и подтверждение срока выполнения. Это не позволяет выдавать большой бэклог за активную работу и даёт продуктовым командам честный ответ о дате старта.
Покажите загрузку команды и распределение работ
Доступный объём работ лучше измерять днями квалифицированного тестировщика или закреплёнными в календаре окнами тестирования. Число тикетов скрывает разницу между узким ретестом и оценкой API с несколькими ролями. Внутренние условные единицы допустимы, но заказчику всё равно нужно правило пересчёта, объясняющее, какой объём можно принять на плановый период.
Время команды распределяют по направлениям до появления новых заявок. Плановый базовый тест защищает важные системы от вечного вытеснения релизами. Проверка по событию следует за существенными изменениями. Ретест закрывает доказательный цикл. Срочная очередь предназначена для конкретной угрозы или бизнес-решения, которое не может ждать следующего цикла. Если любую заявку разрешено объявить срочной, получится ещё один неуправляемый бэклог.
Листайте таблицу по горизонтали
| Очередь | Основание для проверки | Как выделяется время | Доказательство завершения |
|---|---|---|---|
| Плановая базовая проверка | Согласованная дата для стабильной и важной цели | Закреплённое окно, которое не вытесняют обычные проверки релизов | Отчёт с границами, датами, фактическим охватом, находками и ограничениями |
| Проверка по изменению | Существенная смена аутентификации, границы доверия, публичного API, потока чувствительных данных или сходного риска | Конкурирует в общем пуле по рангу риска | Сфокусированный отчёт с описанием изменения и непротестированных областей |
| Ретест | Названная находка и развёрнутое исправление, готовое к проверке | Малый резерв либо согласованное использование общего лимита с понятной стоимостью | Результат по каждой находке с условиями, доказательством и остаточным ограничением |
| Срочная проверка | Достоверная и чувствительная ко времени угроза либо бизнес-решение по письменным критериям | Отдельно выделенное время; вытеснение другой работы одобряет владелец риска | Быстрое фактическое уведомление, затем согласованное формальное доказательство |
Расчёт доступного времени нужно разбирать на встречах с заказчиком. Возьмём исключительно иллюстративный цикл, в котором доступно 20 дней работы тестировщика. Стороны резервируют 4 дня под срочные задачи и ретесты, а 16 оставляют плановым запросам. Если допущенный плановый спрос равен 28 дням, команда может взять 16 дней работы, а оставшиеся 12 нужно перенести или пересогласовать объём. Это не отраслевой ориентир и не рекомендация по числам. Смысл в том, что 12 дней остаются видимыми вместе с владельцами и причинами, а не исчезают за обещанием «по запросу».
Для неиспользованного резерва на срочные задачи нужно правило. Его можно передавать плановым задачам после контрольной даты, удерживать до конца цикла или не переносить. Использование времени из будущих периодов тоже фиксируют, потому что оно создаёт будущий дефицит. Перегрузку нельзя незаметно компенсировать снижением глубины теста при неизменном описании охвата.
Соедините плановые проверки с событийными
Плановое и событийное тестирование управляют разными рисками. Календарь не позволяет забыть тихие, но важные системы. Триггеры сокращают интервал между значимым изменением и целевой проверкой. Один механизм не должен отменять другой.
Повод для внеплановой проверки должен быть достаточно конкретным, чтобы выбрать подходящий вид работ. Это могут быть новый сценарий аутентификации или восстановления, изменение изоляции арендаторов, новый внешний интерфейс, крупная смена облачной границы доверия, замена критичной зависимости или инцидент, породивший конкретный вопрос. «Каждый деплой» обычно слишком широк для ручного тестирования. Сначала появляется заявка; затем предварительная оценка определяет, нужен ли узкий пентест, автоматическая проверка, анализ архитектуры или дополнительная оценка вообще не требуется.
NIST SP 800-137 посвящён непрерывному мониторингу, а не управляемому пентесту. Для этой модели полезен его принцип: частота оценки зависит, в частности, от изменчивости меры защиты и влияния системы. OWASP SAMM также сочетает масштабируемую автоматизацию с глубокой ручной проверкой. Эти материалы поддерживают сочетание разных видов проверки, но не обещание непрерывной ручной оценки каждого актива.
В программе нужна карта покрытия: критичные активы и существенные границы доверия, последняя уместная проверка, открытые изменения, следующее решение по тестированию и известные исключения. Такая карта полезнее отметки «приложение тестировалось в этом году». Проверка мобильного клиента может не охватить API; пентест API может не охватить облачную идентификацию; ретест одной находки не обновляет остальную область. Выбор момента подробнее разобран в статье о непрерывном пентесте и разовом аудите.
Закрепите ответственность и правила отсчёта сроков
В одном договоре нельзя смешивать обязательства подрядчика по сдаче результата со сроками исправления со стороны заказчика. Подрядчик может обязаться подтвердить заявку, завершить предварительную оценку, предложить границы, начать работу после готовности, уведомить о критичной находке, передать проверенный отчёт или приступить к согласованному ретесту. Заказчик принимает решения о риске продукта и обычно отвечает за исправления. В рекомендациях NCSC эта граница сформулирована прямо: тестировщики оценивают проблемы и предлагают решения, но оценка риска и решения об исправлениях остаются ответственностью организации.
У каждого этапа должен быть свой срок и момент начала отсчёта. Отсчёт срока подтверждения заявки может начинаться при её поступлении в согласованный канал. Срок предварительной оценки начинает отсчитываться после заполнения минимальных полей. В договоре должен быть срок, за который допущенную заявку принимают, отклоняют или возвращают за недостающими данными. Когда подготовка закончена, подрядчик обязан за согласованное время назначить дату старта. Готовая заявка не должна бесконечно ждать свободного специалиста без учёта этого ожидания. Отсчёт срока выполнения начинается с фактического тестирования. Срок ретеста начинает отсчитываться, когда заказчик указал, какое исправление уже установлено и предоставил нужную среду и доказательства.
Для каждой паузы нужны два представления: договорное время и полное календарное время. Если отсутствующие учётные данные блокируют тест на четыре дня, договорный срок может остановиться, но панель всё равно должна показать четыре дня блокировки на стороне заказчика. Иначе показатели будут выглядеть хорошо, пока бизнес ждёт. Блокировки подрядчика учитывают отдельно. Заблокированная заявка остаётся в очереди с ответственным за снятие блокировки, следующим действием, датой пересмотра и маршрутом эскалации.
Минимальная модель ответственности выглядит так:
- Владелец риска заказчика утверждает приоритет, расширение границ, отсрочку и решение по остаточному риску.
- Технический владелец заказчика предоставляет точные данные об активе, устойчивый доступ, тестовые учётные записи и подтверждение готовности исправления.
- Руководитель программы подрядчика управляет приёмом, оценкой трудоёмкости, загрузкой команды, отчётностью и эскалацией.
- Руководитель тестирования защищает качество метода, отказывается от небезопасной работы, фиксирует ограничения и обеспечивает воспроизводимость находок.
- Ответственный за исправление устраняет или снижает риск и запрашивает ретест; обычно эта роль находится у заказчика, а не у тестирующей стороны.
Изменение границ требует такой же дисциплины, как первоначальный допуск. Если во время теста обнаруживается важная смежная система, стороны либо авторизуют и обеспечивают расширение, либо фиксируют исключение как ограничение. В материале о границах и приёмке в договоре на пентест показано, как сделать такие решения проверяемыми на уровне отдельного проекта.
Считайте результаты по всей очереди
Количество находок — плохой показатель продуктивности команды. Погоня за числом поощряет шум в отчётах. Результат зависит от объёма и среды: более безопасный продукт может выглядеть хуже только потому, что его проверили глубже. OWASP SAMM рекомендует сочетать показатели усилий, результатов и среды и накопить базовые данные до утверждения KPI. Для управляемой программы это особенно важно: спрос и множество активов со временем меняются.
Для каждого показателя нужно указать, какие заявки или активы в него входят, что исключено и за какой период он рассчитан. Также нужны ответственный за данные и решение, ради которого их собирают. Полезны следующие метрики:
- Допуск: число допущенных заявок, делённое на число всех поступивших, с отдельным разбором причин отказа. Показывает проблемы подготовки и авторизации.
- Принятый объём: трудоёмкость подтверждённых работ, делённая на трудоёмкость всех допущенных заявок. Отложенную работу показывают отдельно, с уровнем риска и ответственным. Это выявляет нехватку ресурсов.
- Время прохождения: от подачи до допуска, от допуска до подтверждения работ, от подтверждения до старта и от старта до проверенного отчёта. Медиану и показатель длительных ожиданий, например 90-й процентиль, стоит показывать лишь при достаточной выборке, а время блокировки — отдельно.
- Покрытие: число критичных активов или существенных границ доверия с подходящей проверкой за выбранный период, делённое на их общее число в заявленном периметре. Рядом указывают исключения и пробелы инвентаризации.
- Закрытие: отдельно считают долю находок с согласованным решением и долю находок, прошедших ретест. Для каждой доли явно указывают исходное число находок. «Риск принят», «исправлено» и «не воспроизведено» нельзя объединять.
- Выводы: повторяющиеся классы уязвимостей и доля завершённых тестов, по итогам которых назначены конкретные улучшения и ответственные. Это помогает принимать решения, но не доказывает, что повторения уже устранены.
Иллюстративный месячный отчёт может выглядеть так: в начале периода для планирования выбрали группу из 12 допущенных задач; 9 завершены, 2 заблокированы отсутствием доступа со стороны заказчика, 1 отложена из-за нехватки времени команды. Доля завершения равна 9/12, при этом блокировки и отсрочка остаются видимыми. Фраза «завершено 9 из 9 начатых» математически верна, но скрывает реальную ситуацию с очередью. Это условный пример выбора знаменателя, а не статистика Pentest.red.
Сначала нужно накопить исходные данные, затем ставить цели. Первый период может показать, что узкое место находится в разрешениях, подготовке тестовых аккаунтов или готовности исправлений, а не в числе тестировщиков. Метрика должна приводить к решению: изменить форму приёма, иначе распределить резерв, назначить отсутствующего владельца или сузить каталог. Если из показателя не следует действие, вероятно, это лишь украшение панели.
Согласуйте начало работы, контроль и завершение договора
До приёма регулярных заявок подготовьте условия для безопасной работы. Соберите перечень допущенных активов и карту границ доверия; назначьте ответственных за риск и техническую подготовку; запишите, кто уполномочен разрешать тест каждого актива; согласуйте методы, запрещённые действия, условия остановки и экстренные контакты; определите работу с доказательствами и сроки хранения; безопасным способом убедитесь, что тестовый доступ работает. Планировщик границ пентеста даёт исходный набор сведений о цели, среде и ограничениях.
Регулярные рабочие встречи проводят с частотой, соответствующей объёму работ и риску. На них рассматривают новые заявки, доступное время по видам работ, давно заблокированные задачи, изменения границ, критичные уведомления, готовность ретестов, пробелы покрытия, действия по хранению данных и решения с прошлого обзора. Результатом должен быть обновлённый согласованный план, а не только презентация. Ретроспектива должна менять правило приёма, оценку доступных ресурсов, подход к тестированию или владельца, когда это подтверждают данные.
Порядок завершения сотрудничества согласуют ещё до старта. Пакет передачи дел включает реестр активов и разрешений, историю заявок и решений, документы о границах, итоговые отчёты и доказательства в пригодных форматах, статус находок и ретестов, известные ограничения, определения метрик и незавершённые действия с владельцами. Кроме того, он описывает отзыв аккаунтов, ключей, тестовых агентов, интеграций и доступа к порталу; возврат или удаление оставшихся доказательств по договору; передачу нерешённых рисков. Состав такого пакета стороны определяют в договоре; перечисленное здесь — практическое предложение.
Переносимость данных важна, потому что многолетняя программа становится частью истории риска заказчика. После завершения договора нельзя терять историю находок или возможность объяснить прежнее покрытие. Пример отчёта о пентесте помогает оценить документ для людей; в соглашении о программе дополнительно определяют структурированный экспорт и словарь статусов.
Когда стоит заказать независимый пентест
Управляемая программа не отменяет авторизацию и определение границ каждой технической проверки. Она делает эти решения повторяемыми и показывает компромиссы между конкурирующими заявками. Часть организаций способна управлять моделью самостоятельно и покупать независимые тесты по мере необходимости. Другим нужна внешняя координация вместе с тестированием. Распределение зависит от внутренних владельцев, объёма спроса, систем и нормативного контекста.
Если нужно проверить конкретный релиз, API или критичный бизнес-сценарий, начните с пентеста Pentest.red. Согласуем объём авторизованной проверки, подготовим отчёт с воспроизводимыми находками и разберём результат. Объём и сроки ретеста фиксируются отдельно. Если вам нужна серия проверок, заранее обсудите координацию, резерв времени, экспорт данных и передачу дел: эти условия должны быть явно закреплены в соглашении.
Для отдельного проекта заранее используйте планировщик границ, критерии договорной приёмки и пример отчёта. После появления находок материал о триаже находок безопасности поможет разделить валидацию, бизнес-приоритет, ответственность за исправление и ретест. Именно эти переходы ответственности должна показывать и большая программа.
Поэтому главный вопрос закупки не в том, использует ли поставщик слово «управляемая». Попросите показать модель состояний заявки, план загрузки команды, критерии допуска и срочности, правила отсчёта сроков, правила блокировок, распределение ответственности, знаменатели метрик и порядок передачи дел. Если эти документы и правила понятны, заказчик понимает, что произойдёт при конкуренции за ресурс. Если их нет, портал и подписка не создадут отсутствующий порядок работы.
PENTEST.RED
Обсудить объём и стоимость пентеста
Сначала согласуем системы, доступы, ограничения и ожидаемый результат.
Статья подготовлена на основе глубокого исследования и прошла редакционную переработку.