Пентест API: методика, типовые находки и что подготовить перед стартом

2026-09-04

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

У нас API только для своего фронтенда, публичного API нет. Это снижает риск?
Нет: «внутренний» API виден любому, кто открыл DevTools или поставил прокси между мобильным приложением и сервером. Атакующий работает с ним напрямую, минуя все проверки фронтенда. Такие API ломаются даже чаще публичных — на них экономят авторизацию, полагаясь на интерфейс.
Спецификации нет и никогда не было. Это проблема?
Рабочая ситуация: карту восстанавливаем из трафика (HAR, логи прокси, коллекции Postman) и разведкой. Займёт чуть больше времени, зато side-эффект — у вас появится актуальная инвентаризация собственного API, часто с сюрпризами.
Сколько занимает пентест API?
Типовой скоуп до 50 эндпоинтов с 2–3 ролями — 1,5–2 недели, включая отчёт. Ретест после исправлений входит в цену.
Пентест API со сплошной проверкой доступа

Ручная работа плюс сканер Izanagi: вся матрица «роль × объект» под парами учёток, PoC на каждую находку. От $1 900, смета за 24 часа.

Получить смету