Что такое пентест и чем он отличается от смежных задач
Пентест (тестирование на проникновение) — это моделирование атаки на систему, сеть или приложение с целью обнаружения уязвимостей, которые реально эксплуатируемы. Ключевое слово — «моделирование»: пентестер не просто находит дыры, а демонстрирует, к чему приводит их эксплуатация, и оценивает бизнес-последствия.
Пентест часто путают с двумя другими видами проверок:
- Сканирование уязвимостей — автоматизированный перебор известных CVE и мисконфигураций. Даёт широкий охват, но не проверяет, можно ли реально использовать найденное.
- Аудит безопасности — проверка соответствия политикам, стандартам и регуляторным требованиям. Может включать пентест как один из этапов, но сам по себе шире.
NIST в документе SP 800-115 определяет пентест как один из методов технического тестирования и оценки безопасности информации, подчёркивая, что он помогает находить уязвимости и проверять соответствие требованиям, но не заменяет полноценную программу безопасности.
Правовые рамки: где заканчивается обучение и начинается нарушение закона
Любое действие, которое выглядит как несанкционированный доступ к чужой системе, является правонарушением в большинстве юрисдикций. В России это статьи 272–274 УК РФ (неправомерный доступ, создание и распространение вредоносных программ, нарушение правил эксплуатации). В США — Computer Fraud and Abuse Act, в ЕС — Directive on Attacks against Information Systems.
Пентест легален только при соблюдении трёх условий:
- Письменное разрешение (Rules of Engagement, scope document) от владельца системы. В нём фиксируются целевые адреса, допустимые методы, временные окна и ограничения.
- Ограниченный scope. Всё, что выходит за рамки согласованного перечня, — за пределами разрешения.
- Отчётность. Результаты передаются заказчику, а не публикуются без согласия.
Для обучения это означает: практикуйтесь только на собственных системах, в специально уязвимых лабораториях или на платформах, которые явно разрешают тестирование (CTF, bug bounty с чётким scope).
Типы пентеста по уровню информированности
| Тип | Что знает тестировщик | Когда применяется |
|---|---|---|
| Black box | Нет предварительной информации | Имитация внешнего атакующего |
| Grey box | Учётные данные, частичная документация | Наиболее распространённый формат |
| White box | Полный доступ к коду, архитектуре, конфигурациям | Глубокий аудит конкретного приложения |
Новичку логичнее начинать с grey box: он ближе к реальным заказам и не требует ни идеального знания кода, ни умения работать вслепую.
Основные направления пентеста
- Web-приложения — самый доступный старт: не нужна сложная инфраструктура, много открытых лабораторий.
- Сетевая инфраструктура — требует понимания TCP/IP, маршрутизации, Active Directory.
- Мобильные приложения — реверс-инжиниринг APK/IPA, анализ API.
- Социальная инженерия — тестирование осведомлённости сотрудников (только с письменного согласия руководства).
- Физическая безопасность — проникновение в помещения, работа с замками и СКУД.
- Red Team — комплексная имитация APT-группы, сочетающая несколько направлений.
Фазы пентеста
Стандартный процесс включает пять этапов:
- Разведка (Reconnaissance) — сбор информации о цели: домены, поддомены, открытые порты, технологии, публичные утечки.
- Сканирование и перечисление — активное взаимодействие с целью: определение версий сервисов, перечисление пользователей, маппинг приложения.
- Эксплуатация — попытка использовать найденные уязвимости для получения доступа.
- Закрепление и повышение привилегий — оценка того, насколько глубоко можно продвинуться внутри системы.
- Отчёт — описание находок, оценка риска по CVSS или внутренней шкале, рекомендации по устранению.
Для новичка первые два этапа — разведка и сканирование — наиболее безопасны для тренировки, потому что не предполагают эксплуатации.
Инструменты, которые стоит освоить первыми
- Nmap — сканирование портов и определение сервисов. Начните с локальной сети или
localhost.
- Burp Suite Community Edition — перехват и модификация HTTP-запросов. Бесплатная версия достаточна для обучения.
- Nikto / WhatWeb — быстрая идентификация веб-технологий и известных мисконфигураций.
- Linux-терминал — базовое владение командной строкой обязательно: навигация, права, пайпы, grep.
- Wireshark — анализ сетевого трафика на уровне пакетов.
Не нужно сразу ставить Kali Linux и пытаться освоить все 600+ инструментов. Достаточно двух-трёх, которые вы понимаете глубоко.
Где практиковаться легально
Интерактивные лаборатории
- PortSwigger Web Security Academy — бесплатные лабораторные работы по веб-безопасности от создателей Burp Suite. Темы охватывают SQL-инъекции, XSS, CSRF, SSRF, десериализацию и другие классы уязвимостей. Каждая тема содержит теорию и практические задания с нарастающей сложностью.
- OWASP Web Security Testing Guide (WSTG) — структурированный чек-лист тестирования веб-приложений. Каждый сценарий имеет идентификатор вида
WSTG-<category>-<number>(например,WSTG-INFO-02— второй тест из категории Information Gathering). Актуальная версия доступна на сайте OWASP.
- DVWA (Damn Vulnerable Web Application) — локально разворачиваемое приложение с намеренно внедрёнными уязвимостями.
- HackTheBox / TryHackMe — платформы с виртуальными машинами и сценариями разной сложности.
CTF-соревнования
Capture The Flag — формат, в котором участники решают задачи на криптографию, реверс, веб, форензику и другие категории. Для новичка подходят онлайн-CTF с категориями «web» и «misc»: они не требуют глубокой подготовки.
Bug Bounty
Платформы вроде HackerOne и Bugcrowd публикуют программы с чётко определённым scope. Это уже реальные цели, но с юридическим разрешением на тестирование. Начинать стоит с программ, где разрешён широкий scope и нет жёсткой конкуренции.
Структура обучения: от нуля до первого заказа
- Сети и ОС. Понимание модели OSI, TCP/IP, DNS, HTTP. Умение настроить виртуальную машину, работать с файловой системой и процессами в Linux.
- Веб-технологии. Как работают HTTP-запросы, cookies, сессии, CORS, CSP. Понимание клиент-серверной архитектуры.
- Классификация уязвимостей. OWASP Top 10 — минимальный набор, который нужно знать наизусть: инъекции, сломанная аутентификация, XSS, небезопасная десериализация и т. д.
- Практика на лабораториях. PortSwigger Academy, DVWA, HackTheBox — в таком порядке нарастания сложности.
- Отчётность. Учитесь писать отчёты: описание уязвимости, шаги воспроизведения, оценка риска, рекомендация. Без этого навыка пентестер бесполезен для заказчика.
- Сертификации (опционально). eJPT, CEH, OSCP — подтверждают уровень, но не заменяют практику.
Типичные ошибки новичков
- Сканирование чужих хостов без разрешения. Даже «безобидный» Nmap-скан может быть расценён как несанкционированный доступ.
- Запуск эксплойтов на продакшене. Даже в рамках лаборатории убедитесь, что цель изолирована.
- Фокус на инструментах вместо понимания. Инструмент без понимания протокола даёт ложные срабатывания и пропуски.
- Игнорирование отчётности. Заказчику нужен не список CVE, а объяснение, что произойдёт, если уязвимость не закрыть.
- Отсутствие записей. Ведите заметки по каждой лаборатории: что нашли, как эксплуатировали, как исправили. Это формирует базу знаний.
Как проверить, что вы готовы к первому реальному заданию
- Вы можете самостоятельно пройти полный цикл: разведка → сканирование → эксплуатация → отчёт — на лабораторной машине без подсказок.
- Вы понимаете, почему уязвимость существует, а не просто копируете payload.
- Вы способны написать отчёт, понятный человеку без технического бэкграунда.
- Вы знаете, как остановить тестирование, если нашли критическую уязвимость, и как об этом сообщить заказчику.
Если все четыре пункта выполнены — можно рассматривать стажировку, junior-позицию или первые bug bounty программы с широким scope.
