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

Рейтинг по API OWASP публикует с 2019 года. Недавно OWASP представила обновленный список.
Мы решили затронуть эту тему и рассказать подробнее о потенциальных угрозах при реализации 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 от этой уязвимости, необходимо:

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

 

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 на защищенность – важный аспект разработки. Если не позаботиться об этом заранее, то в дальнейшем будет достаточно сложно защитить продукт. Поэтому важно понимать какие именно пункты тестировать и какие стратегии следует использовать.

Поиск
Мы в соцсетях
Рассказываем об информационной безопасности и актуальных ИТ-решениях, делимся своими кейсами и новостями ИТ: Telegram-канал компании «Рубикон»
Дзен-канал компании «Рубикон»
Услуги

Подпишитесь на получение новостей

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

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

Принять