Порушена авторизація функціонального рівня

Порушена авторизація функціонального рівня

Ви ввійшли не те саме, що дозволено. Охороняйте маршрути адмін.

Що таке Порушена авторизація функціонального рівня?

API підтверджує, що абонент увійшов, а потім запускає будь-яку функцію, яку він запитує, не перевіряючи, чи може його роль викликати її. Привілейовані елементи керування приховані в інтерфейсі, тоді як самі кінцеві точки не перевіряють ролі, тому будь-який дійсний маркер досягає їх. Ви будете використовувати чесний токен аналітика лише для читання, щоб отримати повний реєстр клієнтів і поставити в чергу велику виплату, на кожен запит відповідатиме 200. Потім ви надсилатимете захисника authorize('admin') на рівні маршрутизатора, який повертатиме 403, тож поверхня адміністратора буде заборонена за замовчуванням, а нові маршрути успадковуватимуть перевірку.

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

Порушена авторизація функціонального рівня — Кроки навчання

  1. Місце лише для читання

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

  2. Функції адміністратора на видноті

    Місце Боба доступне лише для читання, тому елементи керування адміністратора приховані від нього в інтерфейсі. Однак посилання на API не приховано, і в ньому перераховані всі функції лише для персоналу поруч із тими, які йому дозволено викликати.

  3. Що говорить токен

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

  4. Чесний аналітик

    Сервер підтверджує саме те, що очікував Боб. Його токен справжній, і він чітко говорить про те, хто він.

  5. Виклик функції адміністратора

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

  6. Весь список, до аналітика

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

  7. Перемістіть гроші

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

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

    Також діяла функція переміщення грошей. Ні адміністратора, ні схвалення, ні спеціальних облікових даних.

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

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

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

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

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

OWASP API Top 10

  • API5:2023 Broken Function Level Authorization

CWE

  • CWE-285 Improper Authorization
  • 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