Перевод: Безопасность API
@Ent_TranslateIBПочему это важно?
Согласно недавнему отчету CloudFlare, в период с февраля 2021 года по декабрь 2021 года наблюдается увеличение трафика API с 52 до 54%.
Аналогично, темпы роста за этот период составили 20%. Это самый высокий показатель по сравнению с другими видами интернет-трафика.
Согласно отчету Gartner, к 2022 году злоупотребления API превратятся из нечастого в наиболее частый вектор атак, что приведет к утечке данных из корпоративных веб-приложений.
Согласно последнему отчету Wallarm, во втором квартале было зарегистрировано 186 уязвимостей по сравнению с 50 уязвимостями в первом квартале 2022 года.
Понимание API
API использует
- Архитектуру клиент/сервер.
- Протокол HTTP
Как правило, API-шлюз используется для управления API-запросами. Также он выступает в качестве единой точки входа для запросов API.

Пользователи API не обращаются к бэкенду напрямую, а получают доступ к ресурсам через конечные точки. Существует два основных типа API
RESTful API
REST определяет 6 ограничений
- Единый интерфейс, интерфейс должен быть одинаковым независимо от устройства пользователя (например, мобильный телефон, браузер).
- Клиент/сервер, он должен иметь архитектуру клиент/сервер
- Stateless, Коммуникация должна быть без статических данных
- Кэшируемость, ответ должен указывать, является ли он кэшируемым или нет.
- Многоуровневая система, REST позволяет использовать архитектуру многоуровневой системы, где вы развертываете API на сервере A, храните данные на сервере B и аутентифицируете запросы на сервере C.
- Код по запросу (необязательно), можно свободно отправлять исполняемый код
Запрос REST API имеет метод, конечную точку, версию HTTP, заголовки. Ответ REST API имеет версию HTTP, код ответа, кэш-контроль, тело (с данными).
В REST API пользователю необходимо отфильтровать данные.
GraphQL
Это язык запросов для API. Данные хранятся в графовой структуре данных. Клиент может запросить именно то, что ему нужно. Не больше, чем REST API
OWASP API Top 10
Теперь, вооружившись знаниями о компонентах, давайте посмотрим на десятку лучших API OWASP.
Последняя обновленная версия - от 2019 года, я не знаю, почему? Если кто-то знает, пожалуйста, прокомментируйте. В любом случае, давайте перейдем к списку топ-10
API1:2019 Broken Object Level Authorization, обычно называемая BOLA. Возникает, когда провайдер позволяет пользователю получить доступ к ресурсу без проверки авторизации.
API2:2019 Broken User Authentication, Возникает, когда аутентификация пользователя не реализована или реализована неправильно самим провайдером.
API3:2019 Excessive Data Exposure, Возникает, когда возвращается больше данных, чем было запрошено.
API4:2019 Lack of Resources and Rate Limiting, возникает, когда нет ресурсов для ответа на запрос, такое может произойти, когда нет ограничения скорости (ограничение количества запросов, которые может сделать пользователь в течение определенного времени).
API5:2019 Broken Function-Level Authorization, возникает, когда пользователи одной функции могут получить доступ к данным другой функции без авторизации.
API6:2019 Mass Assignment, возникает, когда пользователь может изменять параметры, которые ему не должны быть доступны. Это происходит, когда провайдер не проверяет входные данные, предоставленные пользователем.
API7:2019 Security Misconfiguration, общая неправильная конфигурация провайдеров, которая может привести к использованию злоумышленниками.
API8:2019 Injection, так же как и для веб-приложений. Если провайдер не выполняет проверку кода, то это может привести к SQL или другой инъекции.
API9:2019 Improper Assets Management, происходит, когда закрываются непроизводственные API, которые еще не защищены, или устаревшие, содержащие уязвимости. Это происходит при отсутствии инвентаризации API в среде или при отсутствии процесса жизненного цикла API.
API10:2019 Insufficient Logging and Monitoring, когда отсутствует достаточное протоколирование или мониторинг. Управление инцидентами должно быть интегрировано в мониторинг/оповещение.
На рынке существуют такие поставщики, как salt security, Noname security, Imperva (Cloudvector) и Traceable (и это лишь некоторые из них) для обеспечения безопасности API.
Оригинал статьи - здесь.
Поддержите автора хлопками на Medium.
Перевод статьи был выполнен проектом перевод энтузиаста:
- 📚 @Ent_TranslateIB - Телеграмм канал с тематикой информационной безопасности
- 🔥 @Ent_Translate - Инстаграм проекта