Каким должен быть нормальный отчёт по пентесту

Пентест заканчивается не получением Domain Admin, не запуском сканера и не красивым скриншотом. Пентест заканчивается отчётом, по которому заказчик должен понять:

  • что именно проверили;
  • что удалось взломать;
  • почему это стало возможным;
  • к каким последствиям может привести атака;
  • что и в каком порядке необходимо исправлять.

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

Именно такие проблемы превращают результат пентеста в недоказуемый набор утверждений.

В первую очередь — соответствие техническому заданию

Отчёт как минимум должен подтверждать выполнение ТЗ.

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

Недостаточно написать: «Инфраструктура была протестирована».

Нормальный вариант — составить матрицу выполнения требований ТЗ. Для каждого требования необходимо указать:

  • само требование ТЗ;
  • объекты, которые должны были проверяться;
  • выполненные тесты;
  • полученный результат;
  • подтверждающие материалы;
  • выявленные ограничения;
  • причину невыполнения, если требование выполнено не полностью.

Если какое-то требование не выполнено, это также должно быть прямо указано: не было доступа, объект оказался недоступен, тест запретил заказчик или не хватило времени.

Фраза «невозможно гарантировать обнаружение всех уязвимостей» не объясняет, что именно осталось непроверенным.

Охват должен быть указан в цифрах

Из отчёта должно быть видно:

  • сколько адресов и подсетей входило в scope;
  • сколько узлов обнаружено;
  • сколько узлов было доступно;
  • сколько узлов просканировано;
  • сколько объектов проверено вручную;
  • какие объекты исключены;
  • какие объекты были недоступны.

Утверждение «получен доступ к большинству серверов» ничего не значит без количества серверов и их перечня.

Нужно указать, например, что в область тестирования вошло 120 серверов, 108 из них были доступны, 105 просканированы, а 34 дополнительно проверены вручную.

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

Должна быть понятна модель тестирования

Нужно прямо указать, как проводились работы:

  • black box, grey box или white box;
  • внешний или внутренний нарушитель;
  • какие учётные записи и доступы были предоставлены;
  • были ли включены средства защиты;
  • из какого сегмента начиналась атака;
  • какие действия были разрешены;
  • какие действия были запрещены.

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

Отдельно желательно указать критерии успешности каждого сценария. Например:

  • получение доступа во внутреннюю сеть;
  • компрометация пользовательской учётной записи;
  • повышение привилегий;
  • доступ к критичной информационной системе;
  • компрометация домена;
  • получение доступа к конфиденциальным данным.

Ссылки на PTES, NIST SP 800-115, OSSTMM или OWASP сами по себе ничего не доказывают. Важно показать, какие конкретно проверки были выполнены в рамках выбранной методологии.

Для веб-приложений удобно прикладывать отдельный перечень проверок OWASP WSTG. Для каждой проверки нужно указать один из результатов:

  • выполнено;
  • уязвимость обнаружена;
  • уязвимость не обнаружена;
  • проверка неприменима;
  • проверка не выполнена;
  • причина невыполнения.

Нужны доказательства и хронология

Скриншот терминала без даты, адреса узла и выполненной команды является слабым доказательством.

По основным действиям желательно фиксировать:

  • дату и время;
  • часовой пояс;
  • исходный адрес тестировщика;
  • целевой объект;
  • выполненное действие;
  • использованный инструмент;
  • версию инструмента;
  • полученный результат;
  • факт уведомления заказчика при выполнении критических действий.

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

В основной отчёт не обязательно вставлять несколько тысяч страниц технических логов. Их можно передать отдельным комплектом:

  • журналы команд;
  • результаты сканирования;
  • HTTP-запросы и ответы;
  • выгрузки используемых инструментов;
  • результаты ручной проверки;
  • контрольные суммы файлов с доказательствами.

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

Каждая уязвимость должна быть воспроизводимой

Карточка недостатка должна содержать не только название и оценку CVSS.

Минимально необходимо указать:

  • конкретный уязвимый объект;
  • IP-адрес, hostname или FQDN;
  • информационную систему;
  • площадку или филиал;
  • уязвимый компонент;
  • версию компонента;
  • дату обнаружения;
  • необходимые условия эксплуатации;
  • последовательность воспроизведения;
  • подтверждающие материалы;
  • вероятность эксплуатации;
  • технические последствия;
  • последствия для деятельности организации;
  • рекомендации по устранению;
  • критерий закрытия недостатка.

Описание должно позволять другому специалисту понять проблему и воспроизвести её в контролируемых условиях.

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

CVSS недостаточно

CVSS — полезный инструмент, но он не учитывает весь контекст конкретной организации.

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

В отчёте необходимо описать собственную шкалу риска и объяснить, как техническая оценка корректируется с учётом:

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

Нельзя обозначать CVSS 9,1 как высокий риск, а CVSS 7,5 — как критический, не объяснив причину изменения итоговой оценки.

Отдельные уязвимости нужно собирать в цепочки атак

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

Например:

Доступ к пользовательскому сегменту → получение пароля сервисной учётной записи → компрометация сервера → повышение привилегий → перемещение по сети → получение административного доступа к домену.

В отчёте необходимо показать:

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

Желательно представить основные цепочки атак в виде схемы и дополнить их хронологией.

Также необходимо указать роль каждой уязвимости в цепочке:

  • первоначальный доступ;
  • закрепление;
  • получение учётных данных;
  • повышение привилегий;
  • перемещение по сети;
  • достижение конечной цели.

Полезны и неуспешные сценарии. Они показывают, какие средства защиты действительно остановили тестировщика.

Необходимо показать инвентаризацию

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

Полезно приложить реестр обследованных активов, в котором указаны:

  • IP-адрес;
  • hostname или FQDN;
  • MAC-адрес, если он был доступен;
  • тип устройства;
  • модель оборудования;
  • операционная система;
  • версия прошивки;
  • открытые сетевые сервисы;
  • версии программного обеспечения;
  • принадлежность к информационной системе;
  • площадка или филиал;
  • результат проверки.

Такая таблица одновременно подтверждает охват работ и помогает заказчику актуализировать собственную инвентаризацию.

Ограничения нужно описывать честно!

В отчёте должен быть отдельный раздел с ограничениями.

В нём необходимо указать:

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

Если половина инфраструктуры была недоступна, нельзя делать общий вывод о защищённости всей организации.

Если тестирование проводилось при отключённых средствах защиты, это также должно быть явно указано.

В конце должен быть план устранения

Фраза «рекомендуется обновить программное обеспечение» почти бесполезна.

Рекомендации необходимо свести в единый план и разделить на несколько групп:

  • немедленные меры;
  • краткосрочные меры;
  • среднесрочные меры;
  • архитектурные изменения.

Для каждой меры следует указать:

  • приоритет;
  • затронутые объекты;
  • рекомендуемый срок;
  • ответственного;
  • необходимые зависимости;
  • временные компенсирующие меры;
  • критерий закрытия;
  • необходимость повторной проверки.

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

Такой подход превращает отчёт из архива найденных проблем в рабочий план повышения защищённости.

Должно быть понятно, кто выполнял работы!

В отчёте необходимо указать состав команды:

  • ФИО специалистов;
  • роли в проекте;
  • должности;
  • руководителя работ;
  • автора отчёта;
  • специалиста, проводившего техническую проверку;
  • лицо, утвердившее результат.

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

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

Перед передачей заказчику документ должен пройти техническую и редакторскую проверку.

В нём не должно быть:

  • незавершённых комментариев;
  • фраз вроде «добавить скрин»;
  • пустых шаблонных разделов;
  • противоречащих друг другу оценок;
  • перепутанных адресов и названий;
  • орфографических ошибок;
  • скриншотов без пояснений;
  • рекомендаций, не относящихся к найденной проблеме;
  • упоминаний объектов, не входивших в тестирование.

Также необходимо указать:

  • версию документа;
  • дату подготовки;
  • историю изменений;
  • уровень конфиденциальности;
  • правила хранения и передачи отчёта.

Черновик с десятками скриншотов не становится профессиональным отчётом только после добавления титульного листа и логотипа исполнителя.

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

Из него должно быть понятно:

  • что входило в область тестирования;
  • какие проверки были выполнены;
  • какие проверки не проводились;
  • какие уязвимости обнаружены;
  • как развивалась атака;
  • какие системы были скомпрометированы;
  • какие последствия возможны;
  • что необходимо исправлять в первую очередь;
  • как проверить устранение недостатков.

Если из документа нельзя установить, что проверялось, какой процент инфраструктуры был охвачен, как развивалась атака и что делать дальше, то это не полноценный отчёт по пентесту.

Это просто красиво оформленный набор скриншотов.

Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.