Тестирование на проникновение (Pentest)

Тестирование на проникновение (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-адреса входят в проверку;
  • какие приложения и сервисы необходимо тестировать;
  • какие сети и системы разрешено проверять;
  • какие виды тестирования допускаются;
  • временные рамки проведения работ;
  • ограничения по нагрузке;
  • контактное лицо со стороны заказчика;
  • порядок действий при обнаружении критической проблемы;
  • порядок передачи результатов;
  • требования конфиденциальности.

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

Что не входит автоматически в пентест

Пентест не следует рассматривать как автоматическую гарантию полной безопасности системы.

Также отдельно согласовываются:

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

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

Требования к заказчику

Для проведения тестирования заказчик должен подтвердить право на проверку соответствующих систем.

В зависимости от проекта могут потребоваться:

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

Для сторонних систем, сервисов и инфраструктуры необходимо наличие соответствующего разрешения владельца.

Результат работы

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

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

Нужен пентест?

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