Содержание
Пентест (тестирование на проникновение) — это проверка, при которой специалисты по безопасности по согласованию с вами пытаются взломать продукт так же, как это сделал бы злоумышленник. Он находит уязвимости, которые пропускают автоматические сканеры: ошибки в логике доступа, обход оплаты, утечки чужих данных. Заказывать его стоит перед запуском продукта с деньгами или персональными данными, после крупных изменений и регулярно — раз в год.
Разберём, чем пентест отличается от других проверок, когда он нужен, как подготовиться и что делать с результатами.
Чем пентест отличается от сканирования и аудита кода?
Автоматический сканер быстро находит известные типовые проблемы: устаревшие библиотеки, отсутствующие заголовки безопасности, простые инъекции. Аудит кода проверяет исходники. Пентест — это ручная работа эксперта, который ищет способы использовать уязвимости и их сочетания в реальном работающем продукте.
| Проверка | Что делает | Сильные стороны | Ограничения |
|---|---|---|---|
| Автоматический сканер | Проверяет по базе известных проблем | Быстро, дёшево, регулярно | Не понимает бизнес-логику |
| Аудит кода | Читает исходники | Находит причины, а не симптомы | Не видит настройки окружения |
| Пентест | Атакует работающую систему вручную | Находит реальные пути взлома | Дороже, это снимок на момент проверки |
Сканеры стоит запускать постоянно в CI, а пентест — периодически. Про аудит кода и архитектуры — статья технический аудит продукта.
Когда продукту действительно нужен пентест?
Пентест нужен, когда цена взлома высока: продукт работает с деньгами, персональными или медицинскими данными, корпоративными клиентами или критичными процессами. Часто его требуют крупные заказчики, партнёры, банки и регуляторы.
- перед запуском продукта с платежами или персональными данными;
- перед подписанием договора с корпоративным клиентом, который требует отчёт;
- после крупных изменений: новая авторизация, платёжный модуль, публичный API;
- после инцидента безопасности — чтобы найти другие слабые места;
- регулярно, раз в год, для зрелых продуктов.
О безопасности финансовых сервисов — статья разработка финтех-продукта.
Фото: Unsplash
Какие бывают виды пентеста?
Виды пентеста различаются тем, сколько информации о системе получает проверяющий. Чем больше информации, тем глубже и дешевле проверка в пересчёте на найденные проблемы, но тем меньше она похожа на атаку постороннего.
- Чёрный ящик. Проверяющий знает только адрес сайта — как внешний злоумышленник.
- Серый ящик. Есть тестовые аккаунты с разными ролями — самый популярный вариант для веб-приложений, потому что большинство серьёзных проблем связаны с правами доступа.
- Белый ящик. Доступны исходный код и архитектура — максимальная глубина.
Для веб-продуктов обычно выбирают серый ящик: он проверяет, может ли обычный пользователь получить доступ к чужим данным или функциям администратора.
Как подготовиться к пентесту?
Подготовка определяет, сколько пользы вы получите. Главное — чётко описать область тестирования, правила и предоставить окружение, похожее на продакшен.
- определите область: какие домены, API, мобильные приложения и роли входят в проверку;
- подготовьте тестовое окружение с реалистичными данными и отключёнными реальными платежами и рассылками;
- создайте тестовые аккаунты всех ролей;
- согласуйте правила: что запрещено, время проверки, контакт для экстренной остановки;
- подпишите соглашение о конфиденциальности и разрешение на тестирование;
- предупредите хостинг и команду, чтобы атаки не приняли за настоящие.
Как читать отчёт и что делать с результатами?
Хороший отчёт описывает каждую уязвимость: где она находится, как её воспроизвести, что может сделать злоумышленник, насколько это критично и как исправить. Исправлять начинают с критичных и высоких, а после исправления заказывают повторную проверку.
Что важно в отчёте:
- оценка критичности по понятной шкале — например, по CVSS;
- шаги воспроизведения, по которым разработчик сам увидит проблему;
- реалистичный сценарий атаки, а не только техническое описание;
- рекомендации по исправлению;
- краткое резюме для руководства.
После исправлений добавьте найденные классы ошибок в чек-лист код-ревью и в автотесты, чтобы они не вернулись. Про типичные уязвимости — статья OWASP Top 10 простыми словами.
Коротко
- Пентест — ручная попытка взлома по согласованию, которая находит реальные пути атаки.
- Сканеры запускают постоянно, пентест — перед запуском, после крупных изменений и раз в год.
- Для веб-приложений чаще всего выбирают серый ящик с аккаунтами разных ролей.
- Подготовьте область, окружение, аккаунты и правила проверки.
- Исправляйте по критичности, проводите повторную проверку и закрепляйте выводы в процессах.
Частые вопросы
Сколько длится пентест?
Для типичного веб-приложения с API — от одной до трёх недель работы вместе с отчётом. Крупные системы с мобильными приложениями и инфраструктурой проверяют дольше.
Можно ли проводить пентест на продакшене?
Можно, но с ограничениями и согласованием: без нагрузочных атак, в оговорённое время, с контактом для экстренной остановки. Чаще тестируют на копии продакшена с реалистичными данными.
Как часто нужно повторять пентест?
Обычно раз в год и после крупных изменений: новой системы авторизации, платёжного модуля, публичного API. Для регулируемых отраслей частота может быть задана требованиями.



