Ваш додаток витікає даними

IDOR (Insecure Direct Object Reference) — це вразливість, яка виникає, коли розробники прив'язують дії до ідентифікаторів, які контролюються користувачем, без перевірки їхнього доступу за допомогою механізму авторизації. Це дозволяє зловмисникам змінювати ідентифікатори у запитах і отримувати доступ до об'єктів, які їм не належать, обходячи систему контролю доступу.

IDOR може приховуватися не лише в URL-адресах або RESTful-ендоїнтах, але й у таких місцях, як мобільні API, десктопні додатки, що використовують ненадійні внутрішні API, або інструменти для імпорту/експорту даних для адміністраторів, які не обмежують доступ до записів. Деякі з типових помилок, що призводять до IDOR, включають:
- Використання ідентифікаторів, наданих користувачем, у фонових роботах або cron-завданнях.
- Відсутність правильного обмеження доступу до даних для багатокористувацьких систем.
- Ненадійна перевірка користувача через JWT (JSON Web Token) або інші авторизаційні механізми.
- Надмірна довіра до клієнтських фільтрів UI замість перевірки правил на сервері.

Існує кілька тактик, за допомогою яких зловмисники можуть експлуатувати IDOR. Наприклад, вони можуть використовувати GraphQL для зловживання інтерспекцією (introspection), що дозволяє отримувати доступ до даних без належної авторизації. Інші методи включають відбиття токенів у повідомленнях про помилки, порівняння API-відповідей для виявлення розбіжностей у ролях, а також відтворення попередньо підписаних URL-адрес.

Щоб запобігти експлуатації цієї вразливості, слід впроваджувати кілька превентивних заходів:
1. Перевірка доступу на основі ідентифікатора (ID), щоб переконатися, що користувач має доступ до ресурсів, які він запитує.
2. Забезпечення правильного обмеження доступу для кожного запиту в залежності від ролі користувача.
3. Використання авторизації на рівні полів для запобігання несанкціонованому доступу до чутливих даних, таких як роль користувача чи адміністративні нотатки.

Розробникам слід бути обережними навіть із сучасними фреймворками, такими як Django, Laravel або Rails, які можуть бути ненадійними, якщо ігнорувати логіку доступу для "швидкого прототипування". Крім того, для виявлення і усунення IDOR існують спеціальні інструменти безпеки, такі як Burp Suite, ZAP (OWASP), JWT Inspector і інші, що дозволяють перевіряти API на наявність вразливостей.

Необхідно звертати увагу на кожен запит, який надходить від користувача, щоб переконатися, що він має права на доступ до даних, що запитуються. IDOR — це не просто технічна помилка, а серйозна вразливість, яка може призвести до порушення безпеки даних і втраченого довіри з боку користувачів.

Перекладено з: Your App Is Bleeding Data