К содержимому
DDoS·Protect
Атаки

Атаки на API

API стал главной точкой входа в современные сервисы: через него работают мобильные приложения, личные кабинеты и интеграции. Он же стал удобной целью — запросы к API проще автоматизировать, чем действия в браузере.

Основные сценарии

  • Перегрузка. Многократный вызов методов поиска, выгрузки и генерации отчётов.
  • Перебор идентификаторов. Последовательный запрос объектов по номерам: заказов, пользователей, документов.
  • Злоупотребление логикой. Массовая проверка промокодов, регистрация аккаунтов, бронирование без оплаты.
  • Обход клиентских ограничений. Запросы в обход интерфейса, который ограничивает действия пользователя.

Признаки в журналах

  • Большая доля ответов 404 и 403 у одного клиента — признак перебора.
  • Запросы без заголовков, которые всегда отправляет ваше мобильное приложение, или со старой версией приложения, которую давно никто не использует.
  • Неестественно ровные интервалы между запросами.
  • Вызовы методов в порядке, невозможном для интерфейса: например, оформление заказа без просмотра корзины.
  • Рост времени ответа отдельных методов — поиска, выгрузок, отчётов — при обычном общем трафике.

Атака или легитимная нагрузка

API нагружают и честные клиенты: синхронизация после выхода новой версии приложения, ночная выгрузка партнёра, интеграция, которую разработчик запустил с ошибкой в цикле. Отличие — в источнике и форме запросов: легитимный клиент приходит с известным ключом, известного приложения и с понятным набором методов. Поэтому лимиты лучше считать по ключу и пользователю, а не только по адресу: так ошибка одного партнёра не затронет остальных, а атака без ключа упрётся в самые строгие ограничения.

Ущерб

  • Утечка данных через перебор идентификаторов — самое тяжёлое последствие.
  • Перегрузка базы тяжёлыми методами, из-за которой не работают ни сайт, ни приложение.
  • Прямые расходы: SMS, платные внешние API, которые ваш метод вызывает на каждый запрос.

Защита

Для API работают лимиты по ключу, пользователю и методу, проверка схемы запросов, подпись запросов мобильного приложения и отдельные лимиты на тяжёлые методы. Подробно — на странице защиты API; общие принципы лимитов — в разделе об ограничении скорости.

Вопросы и ответы

Нужна ли отдельная защита для GraphQL?

Да: в GraphQL один запрос может развернуться в огромную выборку. Нужны ограничения глубины и сложности запросов.

Можно ли включить проверку браузера для API?

Для запросов из браузера — да: проверка проходит на странице, и затем запросы к API идут с полученным токеном. Мобильные приложения и серверные интеграции проверку браузера не пройдут, для них используются ключи, подпись запросов и лимиты.

Помогает ли спрятать документацию API?

Немного: адреса методов всё равно видны в трафике приложения. Надёжнее исходить из того, что атакующему известны все методы, и проверять права и лимиты на каждом.

Ранний доступ

Подключим ваш сайт одним из первых

Сервис готовится к запуску. Оставьте заявку: проверим, от чего нужно защищать ваш проект, и подключим его в числе первых на условиях раннего доступа.