РАЗБОР
Статья
Методологии пентеста и рабочий набор инструментов
[ обложка статьи ]
Режим чтения
По данным IBM Cost of a Data Breach Report за 2024 год, средняя стоимость утечки - $4,88 млн, плюс 10% к прошлому году. Структурированный пентест обнаруживает уязвимости до того, как они конвертируются в эти цифры. Но результативность теста определяет не количество запущенных сканеров, а выбор методологии (methodology) - формализованного плана, который задаёт порядок действий, границы тестирования и формат отчёта. Это пятый выпуск серии по OWASP Web Security Testing Guide (WSTG). Разберём, как подобрать методологию пентеста под конкретное задание, и переведём приложения B и C WSTG: каталог рабочих инструментов и рекомендуемую литературу - с проверкой актуальности.
Методологии пентеста: какую выбрать под задачу
OWASP WSTG и PTES: pentest фреймворк или методология
OWASP Web Security Testing Guide (WSTG) - методология тестирования веб-приложений и API. WSTG описывает конкретные тестовые сценарии по категориям: управление идентификацией, аутентификация, авторизация, управление сессиями, валидация ввода, обработка ошибок, криптография, бизнес-логика и клиентская сторона. Каждый сценарий - цель проверки, способ тестирования, ожидаемый результат.Тут стоит разделить роли смежных материалов OWASP. WSTG отвечает на вопрос "как проверять" - это методология. ASVS (Application Security Verification Standard) отвечает на вопрос "что должно выполняться" - это каталог требований для верификации. OWASP Top 10 описывает наиболее распространённые риски и указывает, куда смотреть в первую очередь. OWASP Developer Guide адресован разработчикам и объясняет, как писать безопасный код. WSTG и ASVS работают в связке: методология описывает процедуру проверки, каталог требований определяет критерии соответствия. Подменять одно другим - ошибка. Получишь либо формальную проверку без глубины, либо бессистемное тестирование без измеримых критериев.
PTES (Penetration Testing Execution Standard) - pentest фреймворк, покрывающий семь фаз: предварительные договорённости, сбор информации, моделирование угроз, анализ уязвимостей, эксплуатация, пост-эксплуатация и подготовка отчёта. PTES создавался практиками для реальных проектов и ближе всего к универсальному шаблону для профессионального пентестера. Его сильная сторона - структурирование полного цикла проекта: от согласования границ до финальной документации. Зрелые команды комбинируют PTES как каркас проекта с OWASP WSTG для глубины на прикладном уровне. И это, пожалуй, самая рабочая связка.
NIST SP 800-115 и OSSTMM: инфраструктура и операционная безопасность
NIST SP 800-115 - техническое руководство Национального института стандартов и технологий США. Назначение - помочь организациям в планировании и проведении технических тестов ИБ, анализе результатов и разработке мер по снижению рисков. NIST SP 800-115 ориентирован на регулируемые отрасли: госсектор, финансы, здравоохранение. Документ вписывается в NIST Cybersecurity Framework - результаты пентеста подключаются к программе управления рисками организации.
OSSTMM (Open Source Security Testing Methodology Manual) - методология операционной безопасности от ISECOM. OSSTMM определяет пять каналов тестирования: безопасность человека, физическая безопасность, беспроводная связь, телекоммуникации и сети передачи данных. Главное отличие - метрика RAV (Risk Assessment Value), которая позволяет измерять уровень безопасности количественно. OSSTMM не ограничивается веб-приложениями и охватывает операционную безопасность в целом.
PCI DSS (текущая версия - v4.0.1, опубликована PCI SSC) - стандарт индустрии платёжных карт. PCI DSS включает требования к тестированию на проникновение для организаций, обрабатывающих данные держателей карт. Это не методология тестирования, а набор обязательных требований - для их выполнения привлекается одна из перечисленных выше методологий.
Мобильные и встроенные системы
Для мобильных приложений OWASP поддерживает MASTG (Mobile Application Security Testing Guide) - руководство по тестированию и реверс-инжинирингу мобильных приложений. MASTG проверяет слабые места из каталога OWASP MASWE (Mobile Application Security Weakness Enumeration), выровненные с контролями MASVS (Mobile Application Security Verification Standard).Для прошивок и встроенных систем есть Firmware Security Testing Methodology (FSTM) - методология из девяти этапов для оценки безопасности прошивок, адресованная исследователям, разработчикам и консультантам.
| Методология | Область | Задача | Когда выбирать |
|---|---|---|---|
| OWASP WSTG | Веб-приложения, API | Тестовые сценарии по категориям | Пентест веб-приложения |
| PTES | Полный цикл пентеста | Структура проекта от start до отчёта | Комплексный пентест |
| NIST SP 800-115 | ИТ-инфраструктура | Планирование и документирование | Регулируемые отрасли, аудит |
| OSSTMM | Операционная безопасность | Измеримая оценка через RAV | Комплексная проверка организации |
| PCI DSS v4.0.1 | Платёжные данные | Обязательные требования | Обработка данных карт |
| OWASP MASTG | Мобильные приложения | Тестирование и реверс | Мобильный пентест |
| FSTM | Прошивки, IoT | Оценка безопасности прошивок | Embedded/IoT-устройства |
Ни одна методология не покрывает всё - они дополняют друг друга. MITRE ATT&CK дополняет картину: это не методология тестирования, а база знаний о тактиках, техниках и процедурах реальных атакующих. Пентестер использует ATT&CK для маппинга находок на реальное поведение угроз, Blue Team - для оценки готовности к конкретным техникам.
Набор инструментов для пентеста по задачам
Набор рабочих инструментов (toolchain) - не коллекция всех возможных утилит, а минимальный комплект под конкретную задачу. Приложение B WSTG содержит каталог свободно доступных инструментов для тестирования веб-приложений. Включение в каталог не означает рекомендацию OWASP - это перечень инструментов, доступных для скачивания (лицензии некоторых ограничивают коммерческое применение).
Ниже - перевод каталога, организованный по задачам.
Перехватывающие прокси и расширения браузера
Перехватывающий прокси - центральный инструмент пентеста веб-приложений. Через него проходит весь HTTP(S)-трафик, и ты можешь просматривать и модифицировать запросы на лету.ZAP (Zed Attack Proxy) - интегрированный инструмент для поиска уязвимостей в веб-приложениях. Содержит автоматические сканеры и средства ручного поиска. Спроектирован для людей с разным уровнем опыта - подходит разработчикам и функциональным тестировщикам, которые только начинают осваивать пентест. Лицензия - Apache 2. Поддерживает работу в режиме демона (
-daemon) без GUI и переопределение конфигурации через -config key=value.Burp Suite Community Edition - перехватывающий прокси для тестирования безопасности. Перехватывает и модифицирует HTTP(S)-трафик в обоих направлениях, работает с пользовательскими TLS-сертификатами и приложениями без поддержки прокси.
Telerik Fiddler - перехватывающий прокси, заточенный под разработчиков. Интегрируется с Windows HTTP API, перехватывая трафик приложений, которые не поддерживают настройку прокси.
Gori (hahwul/gori) - перехватывающий прокси с терминальным интерфейсом (TUI): вкладки для истории запросов, повторителя, фаззера, проверки контроля доступа, анализа JWT и токенов сессии, внеполосного тестирования. Поддерживает скриптовое выполнение через
gori run и доступен для LLM-приложений через сервер Model Context Protocol (MCP - открытый протокол на базе JSON-RPC для подключения LLM-приложений к внешним инструментам и данным; сам по себе MCP не средство тестирования). Лицензия - Apache 2.0.Расширения Firefox: HTTP Header Live (просмотр заголовков в реальном времени), Multi-Account Containers (изолированные контейнеры с отдельными cookies - для проверки контроля доступа между пользователями), Web Developer (набор инструментов разработчика).
Расширения Chrome: Web Developer (официальный порт), Cookie Editor (быстрое создание и редактирование cookies текущей вкладки - при тестировании управления сессиями).
Инструменты пентестера для специфических уязвимостей
Каждый класс уязвимостей требует своего средства. В терминах MITRE ATT&CK: эксплуатация SQL-инъекций соответствует технике Exploit Public-Facing Application (T1190, Initial Access), подбор паролей - Brute Force (T1110, Credential Access).SQL-инъекции: sqlmap - автоматизация обнаружения и эксплуатации SQL-инъекций, вплоть до перехвата контроля над сервером БД. Лицензия - GPLv2.
Проверка TLS: OWASP O-Saft, sslyze, testssl.sh, SSLScan - анализ TLS-конфигурации сервера. SSLLabs - онлайн-сервис для оценки TLS.
Подбор паролей. Локальный взлом хешей: John the Ripper, hashcat. Удалённый перебор: ZAP, Patator, THC Hydra, Burp Suite Community Edition (модуль Intruder).
Фаззинг. ffuf - быстрый веб-фаззер для перебора директорий, параметров и виртуальных хостов. Лицензия - MIT. Ключевые флаги:
-w (путь к словарю и ключевое слово), -u (целевой URL с маркером подстановки), -recursion (рекурсивный обход), -json (вывод в JSON). Wfuzz, Jdam - альтернативные фаззеры из каталога WSTG.Google Hacking: Google Hacking Database - база поисковых дорков для обнаружения раскрытой информации через поисковые системы.
Slow HTTP: Slowloris, slowhttptest - проверка устойчивости сервера к медленным HTTP-запросам. Эти инструменты потенциально нарушают доступность цели и приведены исключительно как справочный каталог.
Обнаружение контента и поверхности атаки
Зеркалирование сайта: wget, curl - скачивание структуры и содержимого для офлайн-анализа.Обнаружение контента (Content Discovery): Gobuster (перебор директорий и файлов), Waybackurls (извлечение URL из Wayback Machine:
waybackurls example.com), GAU (сбор URL из публичных архивов: gau example.com), Unfurl (разбор URL на поддомены, пути и параметры).Обнаружение поверхности атаки (Attack Surface Detection). OWASP Noir - анализирует исходный код и выводит список эндпоинтов, методов и параметров для множества языков и фреймворков. Поддерживает вывод в JSON, OpenAPI или curl-команды; может воспроизвести найденные эндпоинты через ZAP или Burp Suite. Соответствует фазе Active Scanning (T1595, Reconnaissance). OWASP Attack Surface Detector - статический анализ кода для выявления эндпоинтов; доступен как CLI и как плагин для ZAP и Burp Suite.
Сканирование портов и сервисов: Nmap - обнаружение хостов, открытых портов и запущенных сервисов. Соответствует технике Network Service Discovery (T1046, Discovery) по MITRE ATT&CK.
Сканеры безопасности, фреймворки и дистрибутивы
Сканеры уязвимостей: ZAP, Nikto, Nuclei (YAML-шаблоны для обнаружения конкретных уязвимостей и ошибок конфигурации; сообщество поддерживает открытый репозиторий шаблонов), SecOps Solution.Фреймворки эксплуатации: Metasploit - открытый фреймворк (лицензия BSD-style) с базой известных уязвимостей и эксплойтов, генератором полезных нагрузок и средствами пост-эксплуатации. Основной интерфейс -
msfconsole. Предустановлен в Kali Linux. BeEF (Browser Exploitation Framework) - фреймворк для эксплуатации уязвимостей браузера.Дистрибутивы Linux: Kali, Parrot, Samurai, Santoku, BlackArch - готовые сборки с предустановленными инструментами для пентеста.
Анализаторы кода и автоматизация браузера
Анализаторы исходного кода: SpotBugs, Find Security Bugs (расширение SpotBugs для безопасности Java), phpcs-security-audit (PHP), PMD (Java/Apex), Microsoft .NET Analyzers, SonarQube Community Edition.Автоматизация браузера. Инструменты этой категории применяются для проверки функциональности веб-приложений и адаптируются для тестов безопасности.
HtmlUnit - безголовый (GUI-less) браузер для Java-программ. Моделирует HTML-документы и предоставляет API для навигации по страницам, заполнения форм, перехода по ссылкам и взаимодействия с JavaScript. Может имитировать Chrome, Firefox или Edge в зависимости от конфигурации. Работает как Selenium-совместимый браузер через htmlunit-driver. Актуальная версия: официальная страница htmlunit.org указывает последний релиз - версия 5.6.0 (11 октября 2026), пример Maven-зависимости -
org.htmlunit:htmlunit:5.3.0. Текст Приложения B WSTG на дату снимка указывал 4.21.0 - эта информация устарела.Selenium - зонтичный проект (umbrella project), включающий набор инструментов и библиотек для автоматизации веб-браузеров: WebDriver, IDE и Grid. Кроссплатформенный, поддерживает множество языков программирования. Исходный текст WSTG описывал Selenium как "JavaScript based testing framework" - это упрощение; по официальной документации Selenium это семейство компонентов для управления браузерами.
Ресурсы для сравнения инструментов
Помимо отдельных инструментов, практикам нужны ресурсы для сравнения средств безопасности по категориям (SAST, DAST, SCA, API Security):- AppSec Santa - курируемое сравнение более 160 инструментов безопасности приложений.
- SecurityHeaders - онлайн-анализатор HTTP-заголовков безопасности (CSP, HSTS, X-Frame-Options и др.).
- ZAP Documentation - официальная документация и учебные материалы ZAP.
- Nuclei Templates - открытый репозиторий шаблонов для автоматизированного сканирования уязвимостей.
Автоматизация и ручная проверка
Автоматические сканеры (ZAP, Nuclei, Nikto) решают задачу покрытия: за минуты проверяют тысячи шаблонов уязвимостей. Но у автоматизации три системных ограничения, без понимания которых этапы пентеста превращаются в формальность.
Первое - ложное срабатывание (false positive). Сканер сообщает об уязвимости, которая не воспроизводится в конкретном окружении. Каждое автоматическое предупреждение без ручной проверки - гипотеза, а не доказательство. Заказчик тратит ресурсы на устранение ложных находок вместо реальных рисков.
Второе - слепые зоны бизнес-логики. Сканеры находят технические уязвимости (SQL-инъекции, XSS, ошибки конфигурации TLS), но не умеют тестировать логику приложения: оформить заказ по нулевой цене, обойти workflow одобрения, получить доступ к чужим данным через манипуляцию идентификатором. Такие проверки требуют ручного анализа поведения приложения и понимания его бизнес-контекста. Сканер тут бесполезен.
Третье - воспроизводимость. Автоматический алерт без описания условий воспроизведения (версия приложения, состояние сессии, параметры запроса) невозможно проверить и невозможно передать разработчику для исправления. Каждая находка должна сопровождаться конкретным запросом и ответом, зафиксированными с указанием версий всех компонентов. Критичные приложения стоит тестировать ежеквартально - промежуток между тестами оставляет месяцы необнаруженного риска. Непрерывное автоматизированное сканирование не заменяет целевых ручных проверок, а дополняет их.
Рекомендуемая литература и учебные лаборатории
Приложение C WSTG содержит список рекомендованных публикаций, сайтов и учебных приложений. Ниже - перевод каталога с проверкой актуальности.Книги
Все книги из каталога WSTG - исторические издания. Принципы безопасной разработки, модели угроз и подходы к тестированию в них по-прежнему актуальны, но конкретные инструменты и протоколы - нет. Годы изданий, подтверждённые по страницам издательств, помечены звёздочкой; остальные указаны по данным WSTG.| Книга | Авторы | Год | ISBN |
|---|---|---|---|
| The Web Application Hacker's Handbook, 2nd Ed. | Dafydd Stuttard, Marcus Pinto | 2011 | 9781118026472 |
| The Tangled Web | Michal Zalewski (No Starch Press) | 2011* | 9781593273880 |
| Hacking Exposed: Web Applications 3 | Joel Scambray, Vincent Liu, Caleb Sima | 2010* | - |
| Secure Programming HOWTO | David Wheeler | 2015 | - (онлайн) |
| The Art of Software Security Testing | Chris Wysopal и др. (Addison-Wesley) | 2006* | 0321304861 |
| Software Security: Building Security In | Gary McGraw (Addison-Wesley Professional) | 2006* | 0321356705 |
| Building Secure Software | Gary McGraw, John Viega (Addison-Wesley) | 2002* | 020172152X |
| Web Security Testing Cookbook | Paco Hope, Ben Walther (O'Reilly) | 2008 | 0596514832 |
| Writing Secure Code, 2nd Ed. | Mike Howard, David LeBlanc (Microsoft Press) | 2002* | 0735617228 |
| Secure Coding: Principles and Practices | Mark Graff, Kenneth R. Van Wyk (O'Reilly) | 2003 | 0596002424 |
Whitepapers: The Economic Impacts of Inadequate Infrastructure for Software Testing (NIST), Fundamental Practices for Secure Software Development, OWASP Developer Guide.
Полезные сайты и стандарты OWASP
- CERT Secure Coding Standards - стандарты безопасного кодирования.
- SANS Internet Storm Center (ISC) - ежедневная аналитика угроз.
- OWASP (The Open Worldwide Application Security Project), OWASP Cheat Sheet Series - краткие практические руководства.
- OWASP GenAI Red Teaming Guide - тестирование генеративного ИИ.
- OWASP AI Exchange - ресурс по безопасности ИИ.
- OWASP OpenCRE (Open Common Requirements Enumeration) - связывание требований безопасности из разных стандартов.
- Pentestmonkey - шпаргалки для пентеста.
- Secure Coding Guidelines for .NET и Java SE.
- SANS (System Administration, Networking, and Security Institute).
Учебные уязвимые приложения
Практика на реальных системах без разрешения - уголовно наказуема. Учебные уязвимые приложения позволяют отрабатывать этичный хакинг в безопасной среде:- OWASP Vulnerable Web Applications Directory Project - каталог намеренно уязвимых приложений.
- OWASP Juice Shop - учебный магазин с десятками уязвимостей всех уровней сложности.
- OWASP WebGoat - платформа для обучения безопасности веб-приложений.
- Damn Vulnerable Web App (DVWA) - намеренно уязвимое PHP-приложение.
- Xtreme Vulnerable Web Application (XVWA), Mutillidae - дополнительные учебные приложения.
Локальная лаборатория: фиксация испытательного окружения
Повторяемость - обязательное свойство любой находки. Если другой специалист не может воспроизвести уязвимость с тем же результатом, находка не доказана. Испытательное окружение (test harness) фиксируется по компонентам: версия каждого инструмента, настройки прокси, целевое приложение и его конфигурация.Учебный сценарий: проверка формы логина в OWASP Juice Shop.
Шаг 1. Запуск учебного приложения. Согласно документации Juice Shop, контейнер запускается одной командой:
Код:
docker run -d -p 3000:3000 bkimminich/juice-shop
http://localhost:3000. Каждый экземпляр предназначен для одного пользователя. Приложение использует механизм самовосстановления: при перезапуске база данных и пользовательские файлы сбрасываются в исходное состояние.Шаг 2. Настройка прокси. В Firefox с расширением FoxyProxy задаётся прокси
localhost:8080, где слушает ZAP или Burp Suite Community Edition. Фиксируем версии: ZAP, Firefox, ОС - всё записывается до начала тестирования.Шаг 3. Перехват запроса логина. Вводим учётные данные на
http://localhost:3000/#/login и перехватываем POST-запрос в прокси. Пример перехваченного запроса (учебные данные):
Код:
POST /rest/user/login HTTP/1.1
Host: localhost:3000
Content-Type: application/json
{"email":"test@test.local","password":"test1234"}
Негативный контроль: если автосканер ZAP пометил
/rest/user/login как уязвимый к SQL-инъекции - это гипотеза до тех пор, пока инъекция не воспроизведена вручную с конкретным payload и задокументированным ответом сервера.Проверка актуальности ресурса. При работе с каталогом инструментов и литературы WSTG стоит различать текущую поддержку и методическую ценность. Книга "The Web Application Hacker's Handbook" (2011) описывает принципы, применимые до сих пор, но конкретные инструменты в ней устарели. Дата публикации статьи-рекомендации не подменяет версию инструмента: если WSTG указывает HtmlUnit 4.21.0, а официальная страница проекта показывает 5.6.0 - использовать нужно актуальную версию, а каталог обновить с соответствующей пометкой.
Выбор средства определяется целью проверки: прокси - для перехвата трафика, фаззер - для перебора путей и параметров, сканер - для автоматического покрытия известных шаблонов. Вывод инструмента подтверждается наблюдаемым эффектом: конкретным запросом и ответом, записанным с версиями всех компонентов.
Большинство споров о "правильной" методологии пентеста - ложная дилемма. Методология выбирается не по популярности, а по трём параметрам: что тестируем (веб-приложение, инфраструктура, прошивка), зачем (compliance, pre-release, red team) и кому предоставляем результат (аудитор, CTO, разработчик). NIST SP 800-115 и OWASP WSTG решают разные задачи - сравнивать их как конкурентов бессмысленно, как сравнивать отвёртку с мультиметром. Серьёзнее другое: пропасть между "запустить сканер" и "провести тест". Сканер - автоматизация рутины, не замена мышлению. Индустрия всё чаще продаёт "автоматический пентест" как полноценную замену ручной работе. В ближайшие пару лет AI-augmented инструменты займут нишу непрерывного мониторинга - и это полезно для покрытия промежутков между основными проверками. Но утверждать, что LLM-агент заменит пентестера в анализе бизнес-логики платёжного шлюза - примерно то же, что доверить роботу-пылесосу разминирование. Инструмент без методологии генерирует шум. Методология без практики остаётся PDF-файлом. Единственный надёжный критерий - воспроизводимость: если коллега не может повторить находку по вашему отчёту, тест не состоялся.
Источники и лицензия
Основа статьи - Appendix B. Testing Tools Resource и Appendix C. Suggested Reading из OWASP Web Security Testing Guide, OWASP Foundation. Дата снимка: 24 октября 2026.
Русский перевод и редакционная актуализация - Codeby. Изменения относительно оригинала:
- Версия HtmlUnit обновлена с 4.21.0 (указана в тексте WSTG) до 5.6.0 (по официальной странице htmlunit.org на дату подготовки).
- Описание Selenium скорректировано: зонтичный проект (WebDriver, IDE, Grid) вместо "JavaScript based testing framework".
- Уточнено описание Gori (лицензия Apache 2.0, репозиторий hahwul/gori) и MCP (протокол для LLM-приложений, не инструмент тестирования).
- Год издания Writing Secure Code скорректирован с 2004 (WSTG) на 2002 (по данным страницы издательства Microsoft Press).
- Добавлен обзор методологий (PTES, OSSTMM, NIST SP 800-115, PCI DSS, MASTG, FSTM) с разграничением назначения.
- Добавлен раздел по автоматизации vs ручной проверке и практический раздел по фиксации испытательного окружения.
- Книги Приложения C помечены как исторические издания.
Вся серия WSTG · Предыдущая статья
AI-выжимка
по разделам
Тезисы статьи скоро
Статья читается полностью. Тезисы со ссылками на разделы появятся позже.
Содержание
Codeby Academy
Практика и мастерство
От основ до продвинутого — программы для практиков Codeby.
Перейти к курсу →
Продолжить чтение
Следующий разбор
Оформление находок и отчёта
Комментарии
1