← Cloudflare API Shield / api-shield / security
Обнаружение уязвимостей класса «Нарушение авторизации на уровне объектов»
Уязвимость Broken Object Level Authorization (BOLA) возникает, когда приложение или API не проверяет должным образом, есть ли у пользователя право доступа к конкретным данным.
Ошибки в приложении или API позволяют злоумышленникам обходить проверки авторизации и получать доступ к потенциально конфиденциальной информации, подбирая и перебирая идентификаторы объектов (например, ID пользователей или заказов).
Уязвимости могут возникать в любой момент, в том числе уже при первоначальном развертывании приложения. Однако их также могут вызывать изменения или обновления политик аутентификации и авторизации.
Уязвимости BOLA так же опасны, как захват аккаунта. Успешная эксплуатация уязвимости BOLA позволяет злоумышленнику получать доступ к данным, на которые у него нет прав, или изменять их.
Cloudflare помечает конечные точки риском BOLA, если обнаруживает два отдельных признака, характерных для атак, эксплуатирующих BOLA: Загрязнение параметров и Перечисление.
Перечисление
Cloudflare отслеживает, как каждая сессия взаимодействует с каждой конечной точкой, и помечает сессии, которые успешно запрашивают значительно больше уникальных элементов данных, чем базовый уровень для этой конечной точки.
Пример перечисления
Конечная точка: GET /api/v1/users/{userId}/credit-cards
- Нормальное поведение: пользователи запрашивают данные банковских карт, используя только свой собственный
userId. - Поведение атаки: злоумышленники запрашивают сотни
userIdзначений за сессию путём перебораuserIdsнайденных другими способами. - Результат: если для этой конечной точки нарушена политика авторизации источника, злоумышленник получает данные банковской карты по каждой учётной записи, которую запросит.
Загрязнение параметров
Cloudflare обнаруживает успешные запросы, в которых значение параметра, найденное в ожидаемом месте (path, query string, header или cookie), дублируется в неожиданном, но похожем месте. Такое поведение может указывать на попытки злоумышленников запутать систему авторизации API и обойти меры защиты.
Пример загрязнения параметров
Конечная точка: GET /api/v1/orders/{orderId}
- Нормальное поведение:
orderIdпередаваемое в переменной пути, напримерGET /api/v1/orders/12345 - Поведение злоумышленника:
orderIdтакже передаётся как параметр запроса, что запускает старый недокументированный код, который ищет заказы в этом параметре и, как оказывается, не проверяет авторизацию:GET /api/v1/orders/12345?orderId=67890 - Результат: передавая фиктивный заказ или заказ, которым владеет сам злоумышленник (
12345), они могут запустить старый, недокументированный код и получить доступ к заказу, который им не принадлежит (67890)
Процесс
API Shield обнаруживает атаки BOLA, изучая шаблоны трафика посетителей и выявляя аномальный доступ к отдельным объектам. Затронутые конечные точки автоматически помечаются следующей метки риска:
cf-risk-bola-enumeration: добавляется автоматически, если на конечной точке фиксируются успешные ответы с резкими различиями в числе уникальных элементов, запрашиваемых разными пользовательскими сессиями.cf-risk-bola-pollution: добавляется автоматически, если конечная точка получает успешные ответы, в которых параметры встречаются сразу в нескольких местах запроса, хотя схема API этого не предполагает.
Если вы видите одну из этих меток на конечных точках вашего API, проверьте её политику авторизации вместе с командой разработки, чтобы выявить возможные ошибки авторизации. Вы также можете обратиться в Cloudflare за отчётом с идентификаторами атакующих, чтобы оценить масштаб и последствия атаки.
Информацию об атаках BOLA можно найти в Security Overview, Security Analytics, а также Сведения о конечной точке.
Security Overview
Если на ваших конечных точках обнаружены уязвимости BOLA, вы можете просмотреть сводку атаки и рекомендации по её устранению в панели управления Cloudflare.
-
На панели управления Cloudflare перейдите к разделу Безопасность страницу.
Перейдите в Обзор ↗ -
Перейдите в Злоупотребление API или Все рекомендации.
-
В зависимости от типа атаки выберите Просмотр трафика при потенциальной атаке перечисления BOLA или Просмотр трафика при потенциальной атаке с загрязнением параметров чтобы просмотреть подробности атаки и рекомендуемые действия.
-
Выберите Просмотр всех затронутых конечных точек или Просмотр сведений на конкретной конечной точке, чтобы просмотреть подозрительные сессии в Web Assets.
Cloudflare анализирует запросы ваших сессий на предмет атак перебора (enumeration) и загрязнения параметров (parameter pollution) и предоставляет список конечных точек под угрозой, а также количество аномальных сессий, в которых была обнаружена атака. Вы можете воспользоваться предложенными действиями, чтобы устранить уязвимости BOLA и предотвратить будущие атаки на ваши конечные точки.
Security Analytics
В панели управления Cloudflare можно просматривать аналитику по профилю трафика вашей зоны, а также подозрительные запросы, связанные с атаками enumeration и parameter pollution.
Перейдите в Аналитика ↗Отфильтруйте запросы по типу атаки, обнаруженной в вашей зоне, включая хешированные ID сессий, найденные в ходе атаки, и соответствующую метку риска уязвимости BOLA, чтобы увидеть анализ активности запросов за последние семь дней. Этот фильтр охватывает весь трафик от сессий с подозрением на атаку, поэтому вы можете оценить, какие ещё действия они предпринимают против вашей зоны.
Фильтрация по конкретным конечным точкам при этом не выполняется.
Просмотрите основную статистику и подробные сведения об управляемых конечных точках API, путях и значениях, на которые нацелена атака, а также об IP-адресах, user agent и отпечатках источников.
Проверьте профиль трафика на предмет необычных паттернов, например всплесков запросов к уникальным объектам или нетипичного расположения параметров.
Сведения о конечной точке
Вы можете развернуть подробную информацию о конечной точке в Web Assets, чтобы увидеть данные об активности подозрительных сессий на ней, включая детали атак перебора и атак загрязнения параметров.
Перейдите в Web assets ↗В разделе Обзор безопасности, выберите Просмотр атаки чтобы просмотреть затронутые сессии с соответствующими IP-адресами и отпечатками JA4 (отпечатками TLS-клиента, которые помогают определить программное обеспечение, отправившее запрос).
Вы можете экспортировать .csv файл со всеми IP-адресами и отпечатками JA4 для всех сессий или только для одной указанной.
В деталях указываются затронутый параметр, количество сессий, вовлечённых в атаку, и степень отклонения их поведения от базового уровня.
Если к параметру был получен несанкционированный доступ, оцените его возможное влияние на приложение, пользователей и данные. Рекомендуется обсудить ситуацию с разработчиками вашего приложения и API, чтобы подтвердить факт несанкционированного доступа, проверив в логах источника API IP-адрес и отпечаток JA4 сессий, связанных со злоупотреблением.
Просмотреть данные об атаках можно в Security Analytics.
Перейдите в Аналитика ↗Управляемый эндпоинт будет автоматически отфильтрован в активности запросов за последние семь дней. Вы также можете фильтровать по подозрительным IP-адресам и отпечаткам, указанным в деталях атаки.
Доступность
Обнаружение уязвимостей Broken Object Level Authorization доступно только клиентам с планом Enterprise. Если вы клиент Enterprise и хотите использовать этот продукт, обратитесь к своей команде по работе с аккаунтом.