Тестирование на проникновение (пентест) — разрешённая владельцем имитация атаки на систему, сеть или приложение, чтобы найти и продемонстрировать уязвимости раньше настоящих злоумышленников.
Как проходит пентест
Пентестеры — этичные хакеры — повторяют шаги атакующих, но в согласованных рамках и по правилам, подписанным владельцем системы.
Типичный проект включает:
- разведку и сканирование;
- эксплуатацию уязвимостей;
- повышение привилегий;
- отчёт с доказательствами, оценкой рисков и рекомендациями.
По объёму исходной информации:
- чёрный ящик — никаких сведений, как у внешнего атакующего;
- серый ящик — частичный доступ, например обычная учётная запись;
- белый ящик — полная документация и исходный код.
Объекты — внешний периметр, внутренняя сеть и Active Directory, веб- и мобильные приложения, API, облака, Wi-Fi и даже физическая безопасность. Методики описаны в PTES, OWASP Web Security Testing Guide и NIST SP 800-115.
Почему пентест важен
Автоматические сканеры находят известные проблемы. Пентест показывает, как слабые места складываются в реальный взлом и куда на самом деле может добраться атакующий. Стандарты вроде PCI DSS требуют регулярных пентестов, многие клиенты запрашивают отчёты.
Пентест — снимок одного момента, поэтому он дополняет, а не заменяет постоянное управление уязвимостями и bug bounty. Учения red team идут дальше: они неделями скрытно проверяют обнаружение и реагирование.
Рекомендации
- Письменно зафиксируйте рамки, цели и экстренные контакты — тестирование без разрешения является преступлением.
- Проводите пентест после крупных изменений и не реже раза в год для критичных систем.
- Устраняйте находки и перепроверяйте. Анализируйте повторяющиеся проблемы, чтобы улучшить процессы разработки.