Порушена авторизація на рівні об’єкта

Порушена авторизація на рівні об’єкта

Змініть один ідентифікатор в URL-адресі та прочитайте запис незнайомця.

Що таке Порушена авторизація на рівні об’єкта?

Порушена авторизація на рівні об’єкта, яку також називають BOLA або IDOR, є найпоширенішою вразливістю API. Кінцева точка повертає об’єкт, названий ідентифікатором у запиті, не перевіряючи його належність до абонента. Жетон чесний. Ви зміните одне число в URL-адресі by-id, прочитаєте запис незнайомця, а потім уведете послідовні ідентифікатори в груповий збір. Виправлення порівнює власника запису з автентифікованим сеансом і повертає 404, а не 403, тому неможливо підтвердити існування відхиленого ідентифікатора.

Що ви дізнаєтесь у Порушена авторизація на рівні об’єкта

Порушена авторизація на рівні об’єкта — Кроки навчання

  1. Звичайний вершник

    Larkway — це програма для замовлення поїздок, яка дозволяє будь-якому пасажиру ввімкнути особистий API Trips для експорту власних квитанцій про поїздки для звітів про витрати. Боб зареєструвався як звичайний гонщик, з одноразовою ідентичністю, і ввімкнув його. У його обліковому записі немає нічого особливого: звичайне крісло водія з токеном, на якому вказано його власні поїздки. Він відкриває консоль розробника, щоб побачити, що дає йому API.

  2. Ідентифікатори поїздок – це лише цифри

    Власні поїздки Боба перераховані з їхніми ідентифікаторами, а посилання на API показує, як отримати будь-яку окрему квитанцію про поїздку за її ідентифікатором. Дві речі виділяються в цих ідентифікаторах.

  3. Привезти свою подорож

    Спочатку Боб викликає кінцеву точку так, як вона призначена для використання: він запитує одну зі своїх власних поїздок за її ідентифікатором, маючи власний маркер водія в заголовку авторизації, як це робить додаток.

  4. Його поїздка, як і очікувалося

    Сервер повертає саме те, що повинен: власну подорож Боба, тому що ідентифікатор, який він запитав, належить йому.

  5. Змініть одне число

    Боб надсилає той самий запит із тим же маркером і змінює лише ідентифікатор, на один нижче його власного. Якщо сервер перевіряє, що поїздка належить абоненту, це не має повертати нічого. Якщо він лише перевірить, чи його сеанс дійсний, він відповість.

  6. Чужий проїзд

    Воно відповіло. Власний токен водія Боба щойно зробив поїздку, яка не має до нього нічого спільного.

  7. Пройдіть послідовність

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

  8. Кожен вершник, у масштабі

    Ідентифікатори запускаються послідовно, і кожен відповідає. Це перетворює один витік на врожай.

  9. Перевірка знань

    Ви щойно спостерігали, як дійсний водій читає подорожі незнайомців, змінюючи ідентифікатор в URL-адресі. Зафіксуйте чому.

  10. Тривога приземляється

    Ви володієте API Trips для пасажирів від Larkway. Протягом ночі моніторинг помітив один токен користувача, який виконував тисячі поїздок, які не належали йому. Відділ безпеки надіслав вам деталі електронною поштою.

Охоплення стандартів безпеки

OWASP API Top 10

  • API1:2023 Broken Object Level Authorization

CWE

  • CWE-639 Authorization Bypass Through User-Controlled Key
  • CWE-862 Missing Authorization

CIS Controls

  • CIS 16 Application Software Security

NIST CSF

  • PR.AT-02 Individuals in specialized roles are provided with awareness and training so that they possess the knowledge and skills to perform relevant tasks with cybersecurity risks in mind
  • PR.PS Platform Security