Тестирование на проникновение (Pentest) — это авторизованная проверка защищённости сайта, веб-приложения, сервера, сети или другой информационной системы с моделированием действий потенциального злоумышленника.
Цель пентеста — не просто обнаружить технические ошибки, а определить, какие недостатки в системе безопасности действительно могут привести к несанкционированному доступу, раскрытию информации, нарушению работы системы или получению избыточных прав.
Тестирование проводится только с разрешения владельца системы или другого уполномоченного заказчика и в пределах заранее согласованного технического задания.
Что входит в услугу
В зависимости от поставленной задачи может проводиться проверка:
- веб-сайтов;
- веб-приложений;
- API;
- серверов;
- сетевой инфраструктуры;
- беспроводных сетей;
- систем аутентификации и управления доступом;
- отдельных компонентов информационной системы;
- конфигурации используемого программного обеспечения.
Перед началом работ определяется область тестирования, перечень разрешённых объектов, ограничения и допустимые методы проверки.
Пентест веб-сайта
Проверка веб-сайта на наличие распространённых проблем безопасности.
В рамках проверки могут анализироваться:
- механизмы входа и регистрации;
- управление пользовательскими сессиями;
- разграничение прав доступа;
- административные разделы;
- формы и пользовательский ввод;
- загрузка файлов;
- обработка параметров запросов;
- работа с пользовательскими данными;
- настройки безопасности веб-сервера;
- используемое программное обеспечение;
- конфигурация HTTPS и связанных механизмов защиты;
- заголовки безопасности;
- возможные утечки технической информации;
- доступность служебных файлов и разделов;
- API и другие внешние точки взаимодействия.
Отдельное внимание уделяется ситуациям, когда обычный пользователь может получить доступ к функциям или данным, предназначенным для другого пользователя либо администратора.
Пентест веб-приложения
Для веб-приложений проверяется не только техническая конфигурация сервера, но и логика самого приложения.
В зависимости от приложения могут проверяться:
- аутентификация;
- авторизация;
- роли пользователей;
- разграничение доступа;
- управление сессиями;
- обработка пользовательских данных;
- работа с файлами;
- API;
- механизмы восстановления доступа;
- обработка ошибок;
- бизнес-логика;
- взаимодействие отдельных компонентов приложения;
- защита конфиденциальных данных.
При наличии интернет-магазина или другого приложения с личными кабинетами дополнительно рассматриваются сценарии, связанные с доступом пользователей к чужим данным и функциям.
Проверка серверов и сетевой инфраструктуры
При необходимости пентест может включать проверку внешней или внутренней инфраструктуры.
Возможные направления:
- доступные извне сервисы;
- сетевые порты и службы;
- конфигурация серверов;
- версии используемого программного обеспечения;
- сетевое разделение;
- правила доступа;
- удалённые сервисы;
- серверные приложения;
- базы данных;
- файловые ресурсы;
- механизмы управления пользователями;
- Active Directory и другие компоненты корпоративной инфраструктуры, если они входят в область работ.
Цель такой проверки — определить, какие доступные сервисы и настройки могут создавать дополнительные риски для системы.
Проверка беспроводных сетей
Отдельным направлением может быть тестирование беспроводной инфраструктуры.
Проверяется, в частности:
- конфигурация беспроводной сети;
- используемые механизмы защиты;
- параметры доступа;
- разделение сетей;
- настройки точек доступа;
- возможные ошибки конфигурации;
- доступность внутренних ресурсов через беспроводную сеть.
Тестирование проводится только в отношении сетей и оборудования, на которые заказчик имеет право предоставлять доступ для проверки.
Внешнее тестирование
Внешний пентест проводится с позиции потенциального внешнего нарушителя, не имеющего обычного внутреннего доступа к системе.
В рамках такой проверки оцениваются:
- публичные IP-адреса;
- доступные интернет-сервисы;
- доменная инфраструктура;
- веб-сервисы;
- почтовая инфраструктура;
- конфигурация HTTPS;
- публично доступная техническая информация;
- потенциальные точки входа в систему.
Такой формат позволяет оценить, насколько защищена инфраструктура от угроз, исходящих из внешней сети.
Внутреннее тестирование
Внутренний пентест проводится при наличии согласованного доступа к внутренней инфраструктуре.
В зависимости от задачи может проверяться:
- разграничение прав пользователей;
- доступ к внутренним ресурсам;
- сетевое разделение;
- файловые ресурсы;
- серверы;
- базы данных;
- корпоративные сервисы;
- механизмы повышения привилегий;
- настройки Active Directory;
- возможность перемещения между отдельными компонентами инфраструктуры.
Цель — определить, насколько далеко может распространиться компрометация системы при наличии внутреннего доступа.
Проверка облачной инфраструктуры
Если информационная система размещается в облачной среде, отдельно может анализироваться её конфигурация.
Проверяются доступные в рамках согласованной области:
- учётные записи и права доступа;
- настройки сетевой безопасности;
- хранилища данных;
- публичный и закрытый доступ к ресурсам;
- правила взаимодействия компонентов;
- настройки шифрования;
- конфигурация отдельных облачных сервисов.
Объём проверки зависит от используемой облачной платформы и предоставленных заказчиком полномочий.
Что именно может быть обнаружено
Пентест может выявить различные категории проблем безопасности, например:
- ошибки аутентификации;
- недостаточное разграничение прав;
- некорректную авторизацию;
- доступ к данным других пользователей;
- небезопасную обработку пользовательского ввода;
- ошибки при работе с файлами;
- проблемы в API;
- небезопасные настройки серверов;
- устаревшие или уязвимые компоненты;
- неправильную конфигурацию сетевых сервисов;
- утечки технической или конфиденциальной информации;
- ошибки в реализации бизнес-логики;
- недостаточную защиту отдельных внутренних ресурсов.
Наличие конкретной уязвимости само по себе не означает, что система полностью скомпрометирована. Поэтому результаты рассматриваются с учётом возможных последствий и условий эксплуатации обнаруженной проблемы.
Оценка критичности
Обнаруженные проблемы классифицируются по степени риска.
В отчёте может использоваться следующая классификация:
- Critical — критическая проблема с потенциально серьёзными последствиями для системы или данных;
- High — высокая степень риска, которая может привести к существенному нарушению безопасности;
- Medium — проблема со средним уровнем воздействия или требующая дополнительных условий;
- Low — проблема с ограниченным воздействием;
- Informational — замечание или рекомендация, не являющаяся непосредственно уязвимостью.
При оценке учитываются не только технические характеристики проблемы, но и возможные последствия для конкретной системы.
Отчёт по результатам пентеста
После завершения проверки заказчик получает отчёт с результатами проведённого тестирования.
В зависимости от объёма работ отчёт может включать:
Резюме
Краткое описание:
- объекта тестирования;
- проведённых работ;
- основных результатов;
- наиболее значимых обнаруженных проблем;
- общего состояния проверенной системы с точки зрения выявленных рисков.
Методология
Описание:
- области тестирования;
- проверенных компонентов;
- использованных подходов;
- ограничений;
- исключённых из проверки объектов.
Перечень обнаруженных проблем
Для каждой проблемы указываются:
- название;
- категория;
- уровень критичности;
- затронутый компонент;
- описание проблемы;
- возможные последствия;
- условия, при которых проблема может проявиться;
- рекомендации по устранению.
При необходимости к отдельным находкам могут добавляться подтверждающие материалы, позволяющие специалисту заказчика понять характер обнаруженной проблемы.
Рекомендации
По каждой значимой проблеме предоставляются рекомендации по её устранению или снижению связанного с ней риска.
Рекомендации могут касаться:
- изменения конфигурации;
- обновления программного обеспечения;
- изменения прав доступа;
- корректировки настроек безопасности;
- изменения логики приложения;
- дополнительной защиты отдельных компонентов;
- изменения организационных или технических процедур.
Повторная проверка
После устранения обнаруженных проблем может быть проведена повторная проверка.
Её задача — определить, устранена ли конкретная проблема и не возникли ли в результате внесённых изменений новые очевидные проблемы в рамках проверяемой области.
Повторная проверка является отдельным этапом и проводится после внесения изменений в систему.
Инструменты
При проведении авторизованного тестирования могут использоваться специализированные инструменты анализа безопасности, например:
- Burp Suite;
- OWASP ZAP;
- Nmap;
- Wireshark;
- Nessus;
- другие средства анализа веб-приложений, сетей и конфигурации.
Конкретный набор инструментов определяется задачей. Автоматическое сканирование не заменяет ручной анализ результатов: обнаруженные инструментами потенциальные проблемы необходимо проверять и интерпретировать с учётом особенностей конкретной системы.
Пентест по техническому заданию
Каждый проект по тестированию на проникновение предварительно ограничивается согласованной областью работ.
До начала тестирования необходимо определить:
- какие домены и IP-адреса входят в проверку;
- какие приложения и сервисы необходимо тестировать;
- какие сети и системы разрешено проверять;
- какие виды тестирования допускаются;
- временные рамки проведения работ;
- ограничения по нагрузке;
- контактное лицо со стороны заказчика;
- порядок действий при обнаружении критической проблемы;
- порядок передачи результатов;
- требования конфиденциальности.
Это особенно важно для систем, которые используются в рабочем режиме. Проверка не должна проводиться без согласования с владельцем системы и без определения допустимых границ тестирования.
Что не входит автоматически в пентест
Пентест не следует рассматривать как автоматическую гарантию полной безопасности системы.
Также отдельно согласовываются:
- исправление обнаруженных уязвимостей;
- разработка программных изменений;
- настройка серверов;
- изменение сетевой инфраструктуры;
- повторная проверка после исправлений;
- дополнительные виды аудита;
- расширение первоначальной области тестирования.
Если заказчику требуется не только обнаружить проблемы, но и устранить их, соответствующие работы можно рассматривать отдельно.
Требования к заказчику
Для проведения тестирования заказчик должен подтвердить право на проверку соответствующих систем.
В зависимости от проекта могут потребоваться:
- перечень объектов тестирования;
- разрешение на проведение работ;
- техническое задание;
- тестовые учётные записи;
- описание отдельных компонентов системы;
- контакт технического специалиста;
- согласованные временные интервалы;
- ограничения по допустимой нагрузке;
- требования к конфиденциальности.
Для сторонних систем, сервисов и инфраструктуры необходимо наличие соответствующего разрешения владельца.
Результат работы
По завершении согласованного объёма работ заказчик получает результаты проведённого тестирования, перечень обнаруженных проблем и рекомендации по дальнейшему устранению выявленных недостатков.
Пентест позволяет получить независимый взгляд на защищённость системы и обнаружить проблемы, которые могут быть неочевидны при обычном администрировании или разработке.
Нужен пентест?
Опишите, что необходимо проверить: сайт, веб-приложение, сервер, сеть или другой объект, а также укажите предполагаемый объём системы. После этого можно определить область тестирования, состав работ и формат итогового отчёта.