Топ-10 OWASP API Security: грядущие изменения, о которых нужно знать

Топ-10 OWASP API Security: грядущие изменения, о которых нужно знать

Рейтинг по API OWASP публикует с 2019 года. Недавно OWASP представила обновленный список.

Мы решили затронуть эту тему и рассказать подробнее о потенциальных угрозах при реализации API.

Было / стало

Эта таблица представлена в исходнике. Мы выделили для наглядности те пункты, которые изменились в этом году.

2019

2023

API01

Ошибка авторизации на уровне объекта

Ошибка авторизации на уровне объекта

API02

Ошибка аутентификации пользователя

Ошибка аутентификации

API03

Чрезмерный доступ к данным неработающего объекта

Авторизация на уровне свойств

API04

Нехватка ресурсов и ограничение скорости

Неограниченное потребление ресурсов

API05

Ошибка авторизации на уровне функций

Ошибка авторизации на уровне функций

API06

Массовое назначение

Подделка запросов на стороне сервера

API07

Неправильная конфигурация безопасности

Неправильная конфигурация безопасности

API08

Инъекция

Отсутствие защиты от автоматизированных угроз

API09

Ненадлежащее управление активами

Неправильное управление запасами

API10

Недостаточное ведение журнала и мониторинг

Небезопасное использование API

Чтобы понять, насколько новый топ-10 API может повлиять на тестирование защищенности инфраструктуры, следует рассмотреть его немного подробнее.

Значения уязвимостей

API 01: Ошибка авторизация на уровне объектов (API1:2023 Broken Object Level Authorization).

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

Один из способов защиты от этой уязвимости - реализация надежной системы аутентификации и авторизации. Необходимо убедиться, что каждый запрос к API проходит проверку прав доступа, чтобы гарантировать выполнение действий с доступными объектами авторизированными пользователямит. Важно регулярно проверять наличие потенциальных уязвимостей, которые могут позволить злоумышленникам обойти проверки доступа.

Уязвимость Broken Object Level Authorization стала первой в списке потому, что неверная проверка доступа на уровне объектов может привести к серьезным нарушениям безопасности ресурса. Возможность несанкционированного доступа к конфиденциальной информации или выполнения операций, на которые пользователи не имеют права, может иметь огромные негативные последствия, такие как утечка данных, неправомерное изменение, повреждение ресурсов или даже эксплуатация пользователей.

API 02: Ошибка аутентификации (API2:2023 Broken Authentication).  

Уязвимость включает в себя проблемы, связанные с взаимодействием микросервисов и объединением различных служб с использованием API. Стоит отметить, что угроза касается не только пользовательсткой стороны.

Если службы не обеспечивают должный уровень безопасности при передаче учетных данных и проверке подлинности, злоумышленники могут получить несанкционированный доступ к системе.  Рассмотрим примеры.

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

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

API 03: Авторизация на уровне свойств неработающего объекта (API3:2023 Broken Object Property Level Authorization).

Это важное изменение в списке уязвимостей, которое обращается к проблемам безопасности разработки.

Давайте представим, что у нас есть приложение, которое позволяет пользователям редактировать свои профили. При попытке обновления личных данных происходит отправка запроса к  API. Система должна таким образом проверить - имеем ли мы право менять поля, которые хотим.

Этим могут воспользоваться злоумышленники. Например,  отправить запрос с URL- адресом другого пользователя и изменить его профиль, к которому у них нет доступа.  Это объединяет предыдущие проблемы, когда данные пользователей раскрывались или им назначались неправильные права доступа. Важно, чтобы разработчики системы исправили эту проблему и обеспечили безопасность информации.

API 04: Неограниченное потребление ресурсов (API4:2023 Unrestricted Resource Consumption).

Уязвимость означает, что злоумышленники могут использовать интерфейс программирования приложений (API) без ограничений в скорости. Это может привести к  задержке работы приложения или даже его поломке. У нарушителей появляется возможность скрывать вредоносную деятельность, так как недостаточный мониторинг может не распознать подозрительные действия.

Например, что у вас есть интернет-магазин, который использует специальную технологию для обработки запросов данных, называемую GraphQL. Злоумышленник может воспользоваться этой технологией, отправляя большое количество запросов прямо к вашему API. Таким образом возникает большая нагрузкана систему, что может привести к задержкам в обработке запросов или даже полному отказу в обслуживании приложением. В случае отсутсвия подробного мониторинга безопасности злоумышленник может использовать этот способ для скрытия своей вредоносной деятельности. OWASP подчеркивает эту проблему и рекомендует ограничивать использование API и организовать тщательный мониторинг.

API 05: Ошибки авторизации на уровне функций (API5:2023 Broken Function Level Authorization).

Уязвимость, связанная с неправильной авторизацией на уровне функций в API. В этом случае API может допускать ошибки в реализации проверки и контроля доступа пользователя к определенным функциям.

Представьте, что у вас есть приложение, которое предоставляет доступ к различным функциям через API. Например, функция "изменить пароль" требует, чтобы пользователь был аутентифицирован и имел соответствующие права доступа. Однако, из-за неправильной авторизации на уровне функций, злоумышленник может обойти эту проверку и использовать  "изменить пароль" без необходимых прав доступа. Это может привести к утечке конфиденциальных данных или нарушению безопасности аккаунтов пользователей.

OWASP подчеркивает важность правильного ведения журнала мониторинга для обнаружения и предотвращения таких ошибок авторизации. Если ведение журнала мониторинга не настроено правильно или отсутствует, то вы не сможете заметить или определить возможное нарушение безопасности.

API 06: Подделка запросов на стороне сервера (API6:2023 Unrestricted Access to Sensitive Business Flows).

Эта уязвимость связана с возможностью злоумышленников манипулировать запросами на стороне сервера. Есть ряд современных подходов к разработке приложений, которые позволяют  использовать URL, предоставленные клиентом, для получения данных на стороне сервера. Однако, в таких случаях не всегда ведется регистрация и отслеживание этих запросов на сервере.

Давайте представим, что у вас есть веб-приложение для онлайн-банкинга, которое позволяет клиентам осуществлять финансовые операции через API. Злоумышленник может подделать запрос на сервере, чтобы получить доступ к чужому банковскому счету и совершить мошеннические транзакции. Если сервер не следит за такими запросами и не обнаруживает неправомерное вмешательство, преступнику будет намного легче совершить преступление и избежать ответственности.

Чтобы защитить систему от подделки запросов на стороне сервера, необходимо регулярно мониторить и анализировать запросы, проверять их подлинность и контролировать доступные бизнес-процессы.

API 07: Неправильная конфигурация безопасности (API7:2023 Server Side Request Forgery).

Эта уязвимость проявляется, когда API неправильно настроено в отношении запросов на стороне сервера. Суть в том, что разные сервера в цепочке HTTP могут обрабатывать входящие запросы по-разному и злоумышленники могут использовать это для своих целей.

Например,  веб-приложение использует API для отправки запросов на другие серверы. Если настройки безопасности не правильно сконфигурированы, злоумышленник может отправить поддельный запрос, притворяясь этим приложением. Это может привести к утечке конфиденциальных данных или выполнению несанкционированных операций на других серверах.

OWASP подчеркивает важность правильной конфигурации безопасности API и использования промежуточных устройств, таких как шлюзы API (API gateways) и веб-приложений защиты (WAF), для защиты от атак на серверной стороне запроса (SSRF). Чтобы защитить свою систему от неправильной конфигурации безопасности API, необходимо правильно настроить систему безопасности и использовать промежуточные устройства для контроля и фильтрации входящих запросов.

API 08: Отсутствие защиты от автоматизированных угроз (API8:2023 Security Misconfiguration).

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

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

  • атаки перебора;

  • флуд-атаки;

  • атаки на перехват и перенаправление.

Чтобы защитить API от этой уязвимости, необходимо:

1. Реализовать механизмы контроля доступа, чтобы предотвратить несанкционированный доступ к API.

2. Внедрить систему обнаружения атак, которая сможет идентифицировать и блокировать подозрительную активность, связанную с автоматизированными угрозами.

3. Использовать капчи или другие механизмы, которые проверяют, является ли отправитель запроса человеком или ботом.

4. Применять ограничения на количество запросов от одного источника за определенный период времени для предотвращения флуд - атак.

API 09: Неправильное управление запасами (API9:2023 Improper Inventory Management).

Это проблема, связанная с управлением запасами товаров или ресурсов. В данном случае, обновлены соответствия между версией программного интерфейса и конечной точкой. Неправильное использование или несоответствие версий API может привести к уязвимости. В документации и слепых зонах данных API есть информация, которая может показать эти уязвимости.

Например, у вас есть онлайн-магазин, где необходимо отслеживать складские запасы товаров. Если использовать неправильную версию API или неправильно настроенные конечные точки, это может привести к ошибкам в управлении запасами. Например, магазин может не знать точное количество товаров на складе или не обновлять информацию о наличии вовремя, что может привести к неправильным заказам или исчерпанию ресурсов. Этоимеет негативное влияние бизнес и удовлетворенность клиентов.

API 10: Небезопасное использование API (API10:2023 Unsafe Consumption of APIs).

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

Давайте представим, что вы пользуетесь популярным приложением для заказа еды. Оно использует API другого сервиса для обработки и передачи вашего заказа ресторану. Однако, разработчики этого приложения не приняли меры безопасности и доверяют всем внешним данным, получаемым через API.

Злоумышленник обнаруживает это слепое доверие и взламывает стороннюю службу, вмешивается в процесс обработки заказов. В результате может изменить ваш заказ или даже скомпрометировать личную информацию, например адрес или данные кредитной карты.

Важно, чтобы разработчики приложений применяли строгие меры безопасности при использовании API и не доверяли всем внешним данным.

Подытожим

Новый список уязвимостей API от OWASP меняется, и это хорошо. Расширение списка угроз напоминает о том, что угрозы именно по API важны не меньше угроз web-приложений (OWASP Top 10). Тестирование API на защищенность - важный аспект разработки. Если не позаботиться об этом заранее, то в дальнейшем будет достаточно сложно защитить продукт. Поэтому важно понимать какие именно пункты тестировать и какие стратегии следует использовать.

Изображение:
OWASP TOP-10 API безопасность персональных данных защита веб-ресурсов защита информации предотвращение хакерских атак утечка данных
Alt text

Ваш провайдер знает о вас больше, чем ваша девушка?

Присоединяйтесь и узнайте, как это остановить!

rcngroup

Компания «Рубикон» — IT-предприятие, основное направление деятельности которого – информационная безопасность. Мы занимаемся решением задач по аудиту, созданию и оптимизации IT-инфраструктур.