Небезопасная прямая ссылка на объект

Небезопасная прямая ссылка на объект (англ. Insecure direct object reference, IDOR) — это разновидность уязвимости контроля доступа в области цифровой безопасности[1]. В современной классификации OWASP API Security уязвимость обозначается как Broken Object Level Authorization (BOLA). При этом термин IDOR описывает вектор атаки, а BOLA — суть проблемы. Основным идентификатором для данной уязвимости в словаре CWE является CWE-639[2][3][4].

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

Атака типа обхода каталогов (англ. directory traversal, CWE-22) является частью общего понятия IDOR, но не выступает подмножеством CWE-639[4].

Данная уязвимость считается настолько значимой, что традиционно занимает лидирующие позиции в рейтингах проекта OWASP (англ. Open Web Application Security Project): в OWASP Top 10 (2025) она входит в категорию A01:2025 (Broken Access Control), занимающую первое место, а в OWASP API Security Top 10 (2023) выделена отдельно как API1:2023 (BOLA), также находясь на первой строчке[2][5][6].

Для борьбы с этой проблемой возможно заменить последовательные идентификаторы на «тёмные ключи» (англ. Dark Keys) с помощью ряда техник[7].

Природа уязвимости и обнаружение

[править | править код]

Уязвимости класса BOLA (Broken Object Level Authorization) или IDOR классифицируются как архитектурный недостаток (англ. Design Flaw). Это обусловлено прямым раскрытием объектов в stateless-архитектуре API, а также децентрализацией логики авторизации, при которой проверки контроля доступа распределены по различным сервисам[8].

Согласно классификации OWASP API Security Top 10, выделяют различие между уязвимостями BOLA и BOPLA (Broken Object Property Level Authorization). При BOLA злоумышленник получает несанкционированный доступ к объекту целиком, тогда как при BOPLA пользователь имеет легитимный доступ к объекту, но система не проверяет его права на чтение или изменение отдельных свойств и полей внутри него[9][10].

Подобные уязвимости трудно обнаружить с помощью статических анализаторов кода. IDOR представляет собой нарушение бизнес-логики, а не синтаксическую ошибку, и для выявления проблемы требуется понимание контекста выполнения, к которому статические сканеры не имеют доступа[11][12].

Использование ИИ-ассистентов для написания кода привело к росту числа архитектурных уязвимостей, включая IDOR. ИИ-модели обучаются на публичных репозиториях и могут воспроизводить небезопасные паттерны, генерируя код с недостатками безопасности на уровне проектирования[13][14].

В ноябре 2020 года компания Silent Breach обнаружила уязвимость IDOR на сайте Министерства обороны США и уведомила об этом через Программу раскрытия уязвимостей министерства. Ошибка была исправлена путём добавления механизма пользовательских сессий в систему учётных записей, что потребовало обязательной аутентификации на сайте[15].

Сообщалось, что социальная сеть Parler использовала последовательные идентификаторы сообщений, что позволило в январе 2021 года осуществить массовое извлечение (скрапинг) тербайт данных из этой службы. Однако исследователь, ответственный за данный проект, заявил, что это утверждение является неточным[16].

В 2024—2025 годах уязвимость BOLA во внутреннем API чат-бота для найма McDonald's McHire позволила получать доступ к чужим данным путём изменения идентификатора кандидата. Это привело к утечке до 64 миллионов записей соискателей. Проблема была устранена отключением скомпрометированных учётных записей и исправлением уязвимости в API[17][18][19].

В плагине для WordPress OneClick Chat to Order была обнаружена критическая уязвимость (CVE-2025-13526), позволявшая изменять параметр order_id в URL без проверки прав доступа. Ошибка была исправлена в версии 1.0.9 путём добавления проверки прав в функцию wa_order_thank_you_override[20][21].

В 2025 году была выявлена уязвимость в микросервисах Volkswagen MyVW: API проверял аутентификацию пользователя, но не проверял принадлежность запрашиваемого VIN-номера[22].

В 2026 году из-за использования последовательных идентификаторов произошло массовое извлечение персональных данных пользователей из французского государственного сервиса France Titres (ANTS)[23].

Примечания

[править | править код]
  1. Insecure direct object references (IDOR) | Web Security Academy. portswigger.net. Дата обращения: 27 августа 2026.
  2. 1 2 IDOR vs BOLA Guide. GitHub Pages. nrshafi. Дата обращения: 27 августа 2026.
  3. BOLA Vulnerability. xhack.io. Дата обращения: 27 августа 2026.
  4. 1 2 CWE-639: Authorization Bypass Through User-Controlled Key. MITRE CWE. MITRE. Дата обращения: 27 августа 2026.
  5. Insecure Direct Object Reference. OWASP. OWASP. Дата обращения: 27 августа 2026.
  6. Insecure Direct Object Reference. SentinelOne. SentinelOne. Дата обращения: 27 августа 2026.
  7. Contieri, Maximiliano Refactoring 028 - Replace Consecutive IDs with Dark Keys. Clean Code Cookbook (17 мая 2025). Дата обращения: 27 августа 2026.
  8. BOLA/IDOR: Why WAFs Fail and How to Fix the Design Flaw. Levo.ai. Дата обращения: 27 августа 2026.
  9. OWASP API Top 10: Broken Object Property Level Authorization. Indusface. Дата обращения: 27 августа 2026.
  10. OWASP API3:2023 Broken Object Property Authorization (BOPLA). Ammune.ai. Дата обращения: 27 августа 2026.
  11. Лаборатория IDOR: почему уязвимость трудно обнаружить. Spikatel.ru. Дата обращения: 27 августа 2026.
  12. IDOR Vulnerability Explained: How to Prevent Insecure Direct Object Reference. Aikido.dev. Дата обращения: 27 августа 2026.
  13. AI Generated Code Security Risks: Why Vulnerabilities Increase 2.74x and How to Prevent Them. Softwareseni. Дата обращения: 27 августа 2026.
  14. AI Security Vulnerabilities: The Hidden Risks of AI-Generated Code. Cycode. Дата обращения: 27 августа 2026.
  15. Cimpanu, Catalin Bug hunter wins 'Researcher of the Month' award for DOD account takeover bug (англ.). ZDNet. Дата обращения: 27 августа 2026.
  16. Greenberg, Andy An Absurdly Basic Bug Let Anyone Grab All of Parler's Data (12 января 2021). Дата обращения: 27 августа 2026. Архивировано 12 января 2021 года.
  17. Lessons from McDonald's Chatbot Breach. Salt Security. Дата обращения: 27 августа 2026.
  18. McDonald’s AI hiring tools exposes data of 64M applicants. CSO Online. Дата обращения: 27 августа 2026.
  19. McDonald's AI Hiring Breach: Non-Human Identity. Oasis Security. Дата обращения: 27 августа 2026.
  20. CVE-2025-13526 Detail. National Vulnerability Database. NIST. Дата обращения: 27 августа 2026.
  21. IDOR in the Wild: What CVE-2025-13526 Really Teaches Security Engineers. Penligent AI. Дата обращения: 27 августа 2026.
  22. BOLA/IDOR уязвимость: полное руководство по Broken Object Level Authorization (от теории до эксплуатации). Codeby.net. Дата обращения: 27 августа 2026.
  23. France Titres (ANTS) Identity Portal Breach: Massive IDOR Vulnerability Exposes Millions of French Citizen Records in 2026. Rescana. Дата обращения: 27 августа 2026.

Категории