В связи с ростом использования API, появлением теневых сервисов и ускорением публикации сервисов на первый план выходит инвентаризация. Организации должны понимать какие эндпойнты и для кого опубликованы, какие функции и параметры они используются для работы. При этом инвентаризации на периодической основе, например, с помощью сканнера, уже недостаточно – ее необходимо делать в режиме реального времени. Это связано с широким использованием автоматических средств обнаружения сервисов и уязвимостей в сети Интернет. Фактически вас начинают атаковать в первый день после публикации API, а первые сканирования могут затронуть сервис в течение нескольких минут. Например, популярный сервис мониторинга опубликованных ресурсов Censys утверждает, что выполняет скан всего адресного пространства сети Интернет не реже чем раз в сутки. Если инвентаризация API содержит информацию о чувствительных данных и о наличии или отсутствии аутентификации, вы быстро сможете выявить и остановить нежелательные публикации эндпойнотов.
Вторым важным фактором в защите является наличие описания API. Одним из наиболее популярных стандартов считается Open API Specification (OAS). Такое описание содержит перечень методов, URL, параметров и кодов ответов, которые могут использоваться в API. Благодаря такому описанию организации могут валидировать все запросы и ответы на соответствие и останавливать то, что отсутствует в спецификации, таким образом значительно снижая поверхность атаки.
Третьим рубежом защиты должны стать лимиты на количество обращений к эндпойнтам. Это позволяет останавливать такие атаки как:
• Неограниченное потребление ресурсов (например, отправку кодов подтверждения по смс);
• Переборы паролей и/или логинов пользователей;
• Массовую выгрузку данных при наличии уязвимости Insecure Direct Object Reference (IDOR), эксплуатация данной уязвимости как правило требует отправки множества запросов с различным идентификатором объекта (например таких: get /user/card/1, get /user/card/2, get /user/card/3, …)
И наконец, никто не отменял классические уязвимости такие как SQL Injections, Code Injections, SSRF, XSS, XXE, Path Traversal, … Атаки, эксплуатирующие данные виды уязвимостей, хорошо детектируются сигнатурными методами. Соответствующие правила предоставляют Web Application Firewall (WAF) или специализированные решения по защите API