Пентест своего приложения помогает найти ошибки, которые легко пропустить при обычной проверке перед релизом. Допустим, вы выкатили сайт, прошли регистрацию, создали заказ — всё работает. Теперь меняем номер заказа в запросе и получаем покупку другого пользователя. Сервер тоже считает, что всё работает: запрос пришёл, данные отдал. Только отдал их не тому человеку.
Такие вещи можно проверять бесплатными инструментами: запускать автоматическое сканирование или разбирать запросы руками. Посмотрим, какой вариант для чего пригодится и как его установить. Подборка для джунов и мидлов, которые пишут код и пока не работают в ИБ.
ВАМ ПРИШЛО ПРИГЛАШЕНИЕ 💌
Приходите к нам в соцсети поделиться своим мнением и почитать, что пишут другие. А ещё там выходит дополнительный контент, которого нет на сайте — шпаргалки, опросы и разная дурка. В общем, вот тележка, вот ВК — велком!
Что такое пентест своего приложения и зачем он вам
Пентест — проверка безопасности с разрешения владельца: воспроизводим действия злоумышленника и смотрим, какие данные получится прочитать.
Код-ревью работает с исходниками. Динамическое тестирование, или DAST, проверяет уже запущенное приложение: отправляет запросы и изучает ответы. Это позволяет увидеть ошибки, которые зависят от настроек сервера. Полноценный пентест веб-приложения может включать оба подхода и ручное исследование его логики.
Для рабочего проекта заранее получаем письменное разрешение и согласуем границы проверки. Свой код на сервере работодателя ещё не даёт права сканировать всё, до чего получилось достучаться. Первые проверки запускаем на тестовой копии: активный сканер может менять данные, а нагрузку от него почувствует сервер.
Как мы отбирали инструменты
Выбирали бесплатные программы без пробного периода и c официальным способом установки. Большинство работает локально. У Strix программа бесплатная, а обращения к языковой модели могут быть платными. Стоимость выбранного API учитываем отдельно. Проверки с российских IP не проводили: доступность из России зависит от сети. Ниже укажем источники загрузки, а с Docker Hub разберёмся отдельно.
10 бесплатных инструментов для пентеста
ZAP
ZAP — открытый DAST-сканер, который встаёт между браузером и приложением как прокси. Вы ходите по сайту, а он видит запросы и ответы. В пассивном режиме анализирует этот трафик; в активном сам отправляет проверочные запросы, например для поиска XSS.
Для первого знакомства удобно: можно открыть интерфейс, пройти обычный пользовательский сценарий и посмотреть, на что пожаловался сканер. Для личного кабинета придётся настроить авторизацию — иначе ZAP может проверить форму входа и на этом закончить.
Установщики скачиваются с официального сайта через GitHub, Docker необязателен. В 2023 году проект ушёл из OWASP, а с 2024-го его развивают разработчики из Checkmarx. Официальное название теперь ZAP by Checkmarx, но иногда по привычке пишут OWASP ZAP.
Burp Suite Community
Burp Suite пригодится, когда уже есть вопрос к поведению приложения. Например, почему пользователь видит документ, который создал другой аккаунт. Перехватываем запрос в Proxy, отправляем его в Repeater, меняем нужный параметр и смотрим, как ответит сервер.
В бесплатной Community эти инструменты есть. Intruder для перебора значений работает с ограничениями; автоматический сканер и полная версия Intruder доступны в платной Professional. Начиная с 2026.4, у двух редакций общий установщик: скачиваем его у PortSwigger и выбираем Community. Берём версию не старше 2026.4.3: в ней закрыли серьёзную уязвимость браузерного краулинга под Windows.
Работаем локально, без Docker. Burp удобен для проверки прав и защиты от CSRF. Первые шаги есть в нашем разборе практики в Burp.
sqlmap
sqlmap автоматизирует поиск и эксплуатацию SQL-инъекций. Они возникают, когда данные из запроса позволяют изменить SQL-команду, которую приложение отправляет в базу. Например, через фильтр каталога удаётся получить лишние записи.
Инструмент подставляет проверочные данные и сравнивает ответы, в том числе время их получения. Задержка может выдать инъекцию даже при внешне одинаковых ответах.
Для установки понадобятся Git и Python:
# скачиваем исходники sqlmap в папку sqlmap-dev
git clone --depth 1 https://github.com/sqlmapproject/sqlmap.git sqlmap-dev
Дальше запускаем Python-скрипт локально. Вместо Git можно скачать официальный архив; Docker не требуется. На учебном стенде работаем с тестовыми записями: выгружать производственную базу только ради подтверждения находки обычно незачем.
Nuclei
Nuclei проверяет приложение по YAML-шаблонам. В шаблоне описано, какой запрос отправить и какой ответ считать признаком уязвимости. Из тысяч открытых проверок выбираем подходящие под технологии проекта.
Это удобно для повторных прогонов после обновлений. Локальный движок не ограничен облачной квотой, готовые сборки есть на GitHub. Также можно установить его через Go, без Docker.
Обновлять нужно и шаблоны, и сам сканер. В 3.8.0 от 18 апреля 2026 года исправили чтение локальных файлов через JavaScript-шаблоны и утечку переменных окружения при включённом флаге -ev. С версии 3.11.0 свои шаблоны с протоколом javascript: нужно подписывать командой nuclei -sign, иначе сканер их пропустит (официальные уже подписаны). Актуальная версия — 3.11.1. Ставим свежий стабильный релиз: проверять безопасность приложения старым уязвимым инструментом было бы обидно.
Полезный блок со скидкой
По промокоду: KOD (можно просто нажать) — вы получите скидку на все курсы Практикума.
Если захотелось заниматься защитой всерьёз, начните с курса Специалист по информационной безопасности — его проходят с нуля. Если интереснее проверять, чем защищать, и нравится искать, где приложение разрешает лишнее, подойдёт курс Инженер по тестированию. А для долгого пути в безопасность есть онлайн-магистратура Кибербезопасность с треками AppSec и DevSecOps.
Бесплатные вводные курсы в Практикуме тоже есть — по всем направлениям, от Python до аналитики.
Nmap
Nmap показывает доступные порты и службы на них. Начнём с разведки: сайт может работать нормально, пока рядом торчит база, которую открыли наружу для отладки и забыли закрыть.
Есть установщики и системные пакеты, программа работает локально без Docker. Например, если учебное приложение запущено на порту 3000:
# проверяем порт учебного приложения и определяем службу
nmap -sV -p 3000 127.0.0.1
-p задаёт порт, -sV включает определение службы и версии. Адрес 127.0.0.1 — наш компьютер: результат такого запуска ничего не говорит о доступности сервера из интернета.
В Nmap 7.99 обновили сигнатуры ОС для IPv4 и IPv6 и исправили замедление обратных DNS-запросов. Актуальная версия — 7.991.
ffuf
ffuf перебирает значения из словаря, подставляя их в запрос. Пригодится, если хотим найти пути, на которые уже нет ссылок в интерфейсе. Сняли страницу с меню — сервер от этого обслуживать её не перестал.
Сборки скачиваются с GitHub, есть установка через Go. Работает локально. Для API пригодятся бесплатные Assetnote Wordlists, например текстовый swagger-wordlist.txt. Файлы .kite оставляем Kiterunner.
Сохраним небольшой словарь в текущую папку как paths.txt:
# подставляем пути вместо FUZZ, отправляя до пяти запросов в секунду
ffuf -w paths.txt -u http://127.0.0.1:3000/FUZZ -rate 5
Смотрим, что нашлось, и проверяем ответы вручную: существующий адрес ещё не означает уязвимость.
Nikto
Nikto ищет типовые ошибки веб-сервера: забытые служебные файлы, устаревшие компоненты, лишние сведения в ответах. Пригодится после развёртывания, когда хочется проверить, что попало на сервер вместе с приложением.
Скачиваем исходники с GitHub и запускаем nikto.pl через Perl из папки program. Контейнер тоже есть, но можно обойтись без Docker Hub. Для локальной проверки облачный аккаунт не нужен.
Здесь важно читать саму находку. Если Nikto обнаружил панель администрирования, это ещё не значит, что в неё можно войти. А вот забытый диагностический скрипт может показывать сведения, которые посетителям сайта знать незачем. В отчёте потом разберётесь, что закрыть или убрать.
Wapiti
Wapiti обходит страницы приложения и проверяет входные данные на инъекции и другие уязвимости. Удобен для автоматических проверок через терминал.
Ставим пакет wapiti3 в отдельное Python-окружение; исходники тоже есть на GitHub. Docker Hub для такого запуска не нужен, но зависимости скачать придётся. По документации поддерживаются Python 3.12–3.14, для Windows предлагают WSL.
В версии 3.3.0 от 13 мая 2026 года появилась опция –jwt: она передаёт токен для авторизации через заголовок, чтобы попасть в закрытые разделы приложения. Перед сканированием проверьте, что вход сработал: пустой отчёт мало что скажет, если сканер всё время получал страницу «Войдите в аккаунт».
Strix
Strix — ИИ-агент для проверки безопасности. Получает адрес приложения или исходники, планирует действия и запускает инструменты. Найденную проблему пытается подтвердить работающим примером эксплуатации — proof of concept.
Открытая локальная версия бесплатна, но для работы нужны Docker и языковая модель. Установка описана в документации. Облачную модель подключаем своим API-ключом и учитываем стоимость запросов. Вместо ключа можно войти через подписку ChatGPT Plus или Pro, а локальную модель запустить, например, через Ollama. В России отдельно проверяем доступ к образу контейнера и выбранному API.
Strix запускаем на изолированном стенде и воспроизводим находки агента. Если дать ему только адрес без аккаунта, закрытая часть приложения может остаться неизученной, поэтому в отчёте смотрим, какие сценарии реально проверялись.
PT BlackBox Scanner
PT BlackBox Scanner — бесплатный облачный DAST-сервис Positive Technologies. Подойдёт для проверки сайта без установки программ: добавляем ресурс, подтверждаем владение и запускаем сканирование через браузер.
Это российский сервис, для работы не нужны Docker Hub и свой ключ к зарубежной модели. Сам сайт должен быть доступен облачному сканеру: приложение на домашнем ноутбуке за NAT он напрямую не увидит.
28 января 2026 года в сервис добавили собственную LLM. Она объясняет найденные проблемы и предлагает исправления с примерами кода и конфигураций. Проверяем, подходят ли рекомендации нашему приложению, вносим правку и повторяем тест, на котором обнаружилась ошибка.
Сравнение: какой инструмент под какую задачу
Выбираем сканер уязвимостей веб-приложений под задачу. Для оценки сложности считаем, что с HTTP мы уже знакомы.
| Инструмент | Этап пентеста | Установка | Доступность из РФ: что потребуется | Порог входа |
| ZAP | Обход, DAST | Установщик | Сайт/GitHub, обновления | Низкий для старта |
| Burp Community | Ручные проверки | Установщик | PortSwigger | Средний |
| sqlmap | SQL-инъекции | Git/архив, Python | GitHub/сайт | Средний |
| Nuclei | Проверки по шаблонам | Сборка или Go | GitHub, шаблоны | Средний |
| Nmap | Порты и сервисы | Установщик/пакет | Сайт/репозиторий | Низкий для старта |
| ffuf | Пути и параметры | Сборка или Go | GitHub, словари | Средний |
| Nikto | Настройки сервера | Git, Perl | GitHub, базы проверок | Средний |
| Wapiti | Веб-сканирование | Пакет Python | Пакет, зависимости | Средний |
| Strix | Проверки ИИ-агентом | CLI, Docker | Образ, модель/API | Высокий |
| PT BlackBox Scanner | Облачный DAST | Браузер | Российский сервис | Низкий для старта |
С чего начать, если вы никогда этого не делали
Пентест своими руками начнём с учебного стенда. Разбираться, как проверить сайт на уязвимости, проще там, где ошибки предусмотрены, а данные можно восстановить.
- Поднимаем стенд. Например, OWASP Juice Shop локально, без доступа из интернета. Для своего проекта готовим копию без данных клиентов. Определяем границы проверки. На этапе разведки применяем OSINT: изучаем опубликованные сведения о сервисе.
- Запускаем Nmap. Сравниваем порты с ожидаемыми. Доступность из интернета проверяем отдельно, с внешней машины по согласованному адресу.
- Проходим приложение через ZAP. Изучаем пассивные предупреждения, затем запускаем активное сканирование в границах стенда. Проверяем доступ к нужным страницам.
- Разбираем права в Burp. Создаём два тестовых аккаунта и сравниваем доступ к их объектам. Сохраняем запросы, на которых приложение разрешает лишнее.
- Добавляем Nuclei. Выбираем шаблоны под свой стек, воспроизводим находки и исправляем подтверждённые ошибки. После правок повторяем те же запросы: результат должен измениться.
Осторожно: Docker Hub и доступ из России
Docker может работать нормально, пока загрузка образа заканчивается ошибкой. Образ ещё нужно получить из реестра, например Docker Hub, а доступ к нему зависит от сети.
Сначала читаем ошибку: ответ 429 может означать превышение лимита запросов. Списывать любой сбой на блокировку рано.
Для большинства инструментов выше есть установка без контейнера. Если образ всё-таки нужен, проверяем альтернативный официальный реестр проекта или доверенное зеркало. У mirror.gcr.io есть ограничение: там кэшируется только часть публичных образов. За отсутствующим образом Docker снова пойдёт в Docker Hub — и проблема с доступом вернётся. Проверяем своё приложение в согласованных границах или чужое с письменного разрешения владельца.
Коротко
Начать можно с ZAP и учебного приложения. Дальше добавляем Burp для ручных проверок, а остальные бесплатные инструменты для пентеста — под вопросы к проекту. Пентест своего приложения доводим до повторной проверки: после исправления прежний запрос больше не должен давать лишнего доступа.
Частые вопросы
Законно ли пентестить своё приложение?
Да, если проверка остаётся в пределах ваших прав. Для рабочего проекта получаем письменное разрешение владельца, учитываем условия хостинга и определяем адреса и допустимые действия. Авторство кода не даёт права сканировать сервисы работодателя или провайдера. Для опытов удобнее отдельный учебный стенд.
Нужен ли VPN, чтобы пользоваться этими инструментами?
Большинство программ после установки работает локально, VPN для самого запуска не требуется. Но сначала нужно скачать установщик и зависимости, а затем получать обновления. Для Strix добавляется доступ к модели и образу контейнера. Доступность всех этих источников стоит проверять из своей сети.
Чем бесплатный сканер отличается от платного пентеста?
Сканер выполняет предусмотренные проверки. Пентестер дополнительно исследует логику приложения, проверяет права и связывает отдельные ошибки в сценарии атаки. Объём работы определяется договором. Бесплатные инструменты могут входить в его набор: оплачивают само исследование, а пустой отчёт сканера ещё не означает, что приложение безопасно.
С какого инструмента начать новичку?
С ZAP на учебном приложении: можно увидеть запросы, разобраться с предупреждениями и затем запустить активные проверки. Если хочется исследовать конкретное действие пользователя, добавляем Burp и меняем запрос вручную. Так пентест своего приложения постепенно превращается в понятный процесс, в котором каждая проверка отвечает на определённый вопрос.
Советуем дополнительно почитать
Вайбкодинг и безопасность: 3 кейса, когда ИИ создал дыру в продакшене — ключ API во фронтенде, базы без RLS и агент, который удалил прод. Примеры того, что потом ищут сканеры из подборки.
Защита API-ключей от утечек: чек-лист разработчика — переменные окружения вместо хардкода, Gitleaks, push protection и что делать, если ключ уже утёк (июль 2026). Пригодится тем, кто подключает Strix к облачной модели.
Как защитить сайт от хакерских скриптов — Content Security Policy на практике: какие источники разрешить и как настроить заголовок. Следующий шаг после того, как ZAP нашёл XSS.
Взломали аккаунт: что делать в первые 24 часа — как один взлом превращается в три атаки и что делать пользователю и компании (сентябрь 2026). Показывает цену уязвимости, которую пентест не нашёл.
Что такое социальная инженерия и при чём тут кибербезопасность — фишинг, whaling, атаки через флешки и история с XZ Utils. Напоминает, что половину атак сканер не увидит, потому что ломают людей.
Бонус для читателей
Если вам интересно погрузиться в мир IT и при этом немного сэкономить, держите наш промокод на курсы Практикума. Он даст вам скидку при оплате, поможет с льготной ипотекой или безлимитом на маркетплейсах. Ладно, окей, это просто скидка, без остального, но хорошая.
