Тестирование безопасности API – Отсутствие защиты от автоматизированных угроз |
22.10.2025 00:00 |
В этой серии статей я обращусь к уязвимостям из списка топ-10 OWASP, посвященного безопасности API. В каждой статье я покажу вам, как экспериментировать с API, тестируя уязвимость, и обсужу свои выводы. В качестве подопытных я буду использовать разные API. Все они демонстрационные – в реальной жизни и публичных приложениях они не используются. Следовательно, все обсуждаемые уязвимости абсолютно безвредны, если вообще не внедрены специально. Вот весь список топ-10:
Что такое «отсутствие защиты от автоматизированных угроз»?API страдает от уязвимости, называемой «Отсутствие защиты от автоматизированных угроз» (Unrestricted Access to Sensitive Business Flows, UASBF), если пользователь с недобрыми намерениями может использовать API системы для выполнения нежелательных действий в бизнес-процессах, реализованных системой, предоставляющей API. Цель такого пользователя — либо перегрузить или повредить систему, либо получить нежелательную или незаконную выгоду. Например, рассмотрим ситуацию, когда в продажу поступает ограниченный тираж товара — это могут быть билеты на концерт, коллекционные предметы, билеты на спортивное событие и т.п. Если ваша система или платформа, продающая эти товары, предоставляет возможность покупки через API, стоит убедиться, что никто не сможет злоупотребить этим для получения прибыли, так как это может нанести ущерб вашей репутации как надежного и справедливого поставщика товаров или услуг. Тестирование на нарушения UASBF Рассмотрим как пример гипотетический магазин игр, который в основном продаёт обычные игры, скажем, Mario Kart. Заказ создаётся на сервере через HTTP POST запрос к эндпойнту /order с телом: { Для обычных товаров магазин не ограничивает количество копий, которые может купить один клиент. Если клиент хочет 5 копий игры, то тело будет таким: { Однако иногда магазин получает ограниченный запас коллекционных товаров, и чтобы получить как можно больше довольных клиентов и уменьшить шансы перепродажи (скальпинга), устанавливается лимит — не более 1 копии на одного клиента: { Попытка заказать несколько копий Gamma Attack, как мы делали с Mario Kart в примере, приводит к сообщению об ошибке: { Пока всё хорошо. Но возможно ли заказать несколько копий этого ограниченного издания, для которого действует правило «только 1 копия на человека», другими способами? Оказывается, да! Хотя нельзя заказать несколько копий Gamma Attack в одном заказе, не существует ограничения на количество заказов Gamma Attack, которые может оформить один клиент. Это позволяет им перепродавать все копии, просто создавая множество заказов, каждый на одну копию, как только Gamma Attack поступает в продажу. Как предотвратить нарушения UASBF? Самое важное и эффективное, что вы можете сделать, чтобы защитить API от уязвимости UASBF — это выполнить четыре шага до того, как начнёте реализовывать и выпускать API:
В идеале шаги с 1 по 3 выполняются до начала реализации API и бизнес-логики. Я рекомендую обсуждать это с разработчиками, тестировщиками и продукт-менеджерами, чтобы минимизировать риск, что чувствительные бизнес-процессы и способы несанкционированного доступа к ним останутся незамеченными. Снижение рисков нарушения UASBF UASBF занимает 6-е место в рейтинге OWASP API Security Top 10 за 2023 год не случайно: когда злоумышленники регулярно могут злоупотреблять чувствительными бизнес-процессами, например, перепродавать ограниченные товары или загружать систему множеством заказов и бронирований, это серьёзно вредит имиджу вашего бизнеса и подрывает доверие пользователей к вашей честности и надежности. Вот некоторые технические меры, которые помогут минимизировать риск уязвимости UASBF:
Дополнительные примерыБольше примеров нарушений UASBF можно найти на странице OWASP API Security Top 10, посвящённой этой теме. Курсы API Security Fundamentals и OWASP API Security Top 10 and Beyond на платформе API Sec University содержат ещё больше примеров. |