Пентест API: методика, типовые находки и что подготовить перед стартом
API — главная поверхность атаки современного продукта: мобильное приложение, веб-фронт и интеграции ходят в один и тот же бэкенд, и ломают сегодня именно его. При этом пентест API устроен иначе, чем пентест «сайта»: интерфейса нет, а самые опасные дыры — не в коде, а в правах. Разбираем методику, типовые находки и то, как подготовиться, чтобы пентест прошёл быстрее и дал больше.
Чем пентест API отличается от пентеста веб-приложения
У API нет экранов и кнопок — есть контракт: эндпоинты, методы, параметры, роли. Поэтому работа строится не «кликаем и смотрим», а от спецификации: строится полная карта эндпоинтов, для каждого — матрица «какая роль что может», и дальше эта матрица проверяется запросами. Половина ценности пентеста API — в полноте карты: уязвимости живут в эндпоинтах, о которых забыли, а не в тех, что на виду.
Второе отличие — вес классов уязвимостей. В API почти не бывает XSS, зато царит контроль доступа: BOLA/IDOR (доступ к чужим объектам) — пункт №1 OWASP API Security Top-10 и самая частая находка в наших проектах. Инъекции и уязвимости конфигурации никуда не делись, но главные деньги атакующему приносят именно права.
Что проверяется: по мотивам OWASP API Security Top-10
- ◇Авторизация на уровне объектов (BOLA/IDOR): каждый эндпоинт с ID проверяется под чужой учёткой — читаются и меняются ли чужие заказы, документы, платежи.
- ◇Авторизация на уровне функций: доступны ли админские и служебные эндпоинты обычной роли; часто проверка роли есть в интерфейсе, но не в API.
- ◇Авторизация на уровне свойств (mass assignment): принимает ли API лишние поля — role, balance, is_verified — в запросах на создание и обновление.
- ◇Аутентификация: устойчивость токенов, их отзыв, время жизни, слабые схемы (JWT с alg=none, предсказуемые ключи API).
- ◇Бизнес-логика: обход шагов процесса, гонки (двойное списание бонусов), злоупотребление лимитами и промокодами.
- ◇Ресурсы и лимиты: отсутствие rate limiting и пагинации — выгрузка всей базы через легитимный эндпоинт списка.
- ◇Инвентаризация: старые версии (/v1 рядом с /v3), тестовые и внутренние эндпоинты наружу, расхождение спецификации с реальностью.
- ◇Инъекции и SSRF: классика никуда не делась — параметры, заголовки, загрузка файлов, вебхуки.
Что подготовить перед стартом
Пентест API идёт быстрее и глубже, если к старту есть: спецификация (OpenAPI/Swagger; если нет — коллекция Postman или HAR-трафик, по ним карта восстанавливается), тестовый стенд с данными, похожими на боевые, и учётки всех ролей — минимум по две на роль, чтобы проверять доступ к чужим объектам. Без второй учётки каждой роли половина проверок контроля доступа невозможна в принципе.
Стенд предпочтительнее прода: на стенде можно позволить агрессивные проверки (гонки, лимиты, изменение данных), которые на проде исключаются или требуют отдельных окон.
Ручная работа + сплошное покрытие
Наш подход — связка: ручной пентест закрывает глубину (цепочки, бизнес-логика, специфика продукта), а собственный сканер Izanagi — сплошное покрытие контроля доступа: он проходит по всем эндпоинтам спецификации парами учёток «атакующий/жертва» и находит BOLA/IDOR, которые при выборочной ручной проверке легко пропустить. Каждая находка — с доказательством: конкретный запрос, конкретный чужой объект в ответе.
Ориентир по цене: пентест API со скоупом до 50 эндпоинтов — $1 900–5 000 в зависимости от числа ролей и сложности логики. Смета с фиксированной ценой — в течение 24 часов после брифа.
FAQ
Ручная работа плюс сканер Izanagi: вся матрица «роль × объект» под парами учёток, PoC на каждую находку. От $1 900, смета за 24 часа.
Получить смету