Тест на проникновение (пентест) — это авторизованное (согласованное) моделирование атаки на компьютерную систему для оценки ее безопасности. Пентестеры используют те же инструменты, методы и процессы, что и злоумышленники, чтобы найти и продемонстрировать влияние слабых мест в системе на бизнес.
Пентесты обычно имитируют различные атаки, которые могут угрожать вашему бизнесу. Тесты на проникновение проверяют, достаточно ли стабильны системы, чтобы противостоять атакам как из аутентифицированных, так и неаутентифицированных источников, а также атакам, осуществляемым различными участниками системы. При необходимости, тестирование на проникновение может быть углубленным для любого аспекта системы, который вам необходимо оценить.
Преимущества тестирования на проникновение
В идеале, ваша организация начинает разработку своего программного обеспечения и систем со стремлением устранить опасные уязвимости безопасности. Тестирование на проникновение поможет вам получить представление о том, насколько хорошо достигается эта цель. Среди прочего, тестирование на проникновение поддерживает следующие мероприятия по обеспечению безопасности:
- Выявление слабых мест в системах;
- Определение надежности средств контроля безопасности;
- Поддержка соответствия спецификациям по конфиденциальности и безопасности данных;
- Предоставить руководству качественные и количественные примеры текущего состояния безопасности и бюджетных приоритетов.
Виды тестирования на проникновение
В зависимости от конкретных целей теста на проникновение, организации предоставляют тестировщикам различные уровни информации или доступа к целевой системе. Иногда команда тестирования на проникновение устанавливает подход в самом начале и придерживается его. Но бывает и так, что команда тестирования уточняет свою стратегию по мере того, как узнает больше о системе в ходе теста. В этой отрасли мы обсуждаем три типа тестирования на проникновение.
- Черный ящик
Команда не имеет знаний о внутренней структуре целевой системы. Они действуют как хакеры, нащупывая любые слабые места, через которые может начаться атака извне.
- Серый ящик
Команда обладает определенными знаниями об одном или нескольких наборах учетных данных. Они также понимают внутреннюю структуру данных, код и алгоритмы цели. Тестировщики на проникновение могут создавать тестовые случаи на основе подробной проектной документации (например, архитектурных диаграмм целевой системы).
- Белый ящик
При тестировании методом «белого ящика» пентестеры имеют доступ к системе и системным артефактам: исходному коду, двоичным файлам, контейнерам, а иногда даже к серверу, на котором работает система. Подход «белого ящика» обеспечивает наивысший уровень гарантии безопасности в кратчайшие сроки.
Этапы тестирования на проникновение
Тестировщики на проникновение намерены имитировать атаку, предпринятую мотивированным противником. Для этого они следуют сценарию, который обычно состоит из следующих шагов.
Сбор информации из открытых источников (OSINT)
Соберите как можно больше информации о цели из открытых и специальных источников, чтобы разработать стратегию атаки. Эти источники включают поиск в Интернете, поиск информации о регистрации доменов, социальную инженерию, неинтрузивное сканирование сети и иногда даже поиск в корзинах для спама. Эта информация помогает специалистам по тестированию расшифровать поверхность атаки цели и потенциальные уязвимости. Разведка может варьироваться в зависимости от объема и целей теста на проникновение.
Сканирование
«Хакеры» используют инструменты для проверки целевого веб-сайта или системы на наличие уязвимостей, включая открытые сервисы, проблемы безопасности приложений и уязвимости открытых источников. Специалисты по тестированию на проникновение используют различные инструменты, основываясь на результатах, полученных в ходе разведки и тестирования.
Получение доступа. Эксплуатация
У злоумышленника могут быть самые разные мотивы: украсть, изменить или удалить данные, перевести средства или просто испортить вашу репутацию. При выполнении каждого тестового случая специалисты должны определить наилучшие инструменты и методы для получения доступа к системе, будь то использование слабых мест (например, инъекции SQL), вредоносное ПО, социальная инженерия или другие средства.
Закрепление доступа
Как только тестер получает доступ к объекту, его имитация атаки должна оставаться подключенной достаточно долго, чтобы достичь своих целей: извлечь данные, изменить данные или нарушить функциональность. Цель — продемонстрировать потенциальное воздействие.