ОГЛЯД ВРАЗЛИВОСТІ ПОРУШЕННЯ КОНТРОЛЮ ДОСТУПУ (BROKEN ACCESS CONTROL) У ВЕБ ДОДАТКАХ
14.05.2024 15:40
[1. Інформаційні системи і технології]
Автор: Шикеринець Степан Тарасович, аспірант, ПВНЗ «Європейський університет»; Улічев Олександр Сергійович, кандидат технічних наук, доцент, ПВНЗ «Європейський університет»
Веб-додатки є важливою складовою сучасного різноманіття цифрових сервісів, включаючи фінансові та державні послуги, а також соціальні мережі та засоби комунікації. Вразливості, пов'язані з порушенням контролю доступу до об’єкту (Broken Access Control) [1], становлять значний ризик для цієї еко-системи, оскільки вони дозволяють зловмиснику обійти надані дозволи та права та здійснювати дії, на які він не має права [2]. Даний науковий документ містить огляд вразливості порушенням контролю доступу та методів її виялення веб-додатках.
Контроль доступу, який іноді називають авторизацією, являє собою те, як веб-додаток надає доступ до вмісту та функцій одним користувачам, а іншим ні. Ці перевірки виконуються після автентифікації та визначають, що дозволено робити «авторизованим» користувачам. Контроль доступу звучить як проста проблема, але її надзвичайно важко правильно реалізувати. Модель контролю доступу веб-додатку тісно пов’язана з вмістом і функціями, які надає сайт. Крім того, користувачі можуть входити до кількох груп або ролей з різними привілеями. Більшість відомих веб-додатків вразливі до даної вразливості. Навіть якщо веб-додаток є повністю статичним, при неправильному налаштованні, зловмисник може отримати доступ до конфіденційних файлів або модифікувати його [3].
94% веб-додатків із понад 318 тисяч, що були протестовані, є вразливими до певної форми порушенням контролю доступу. Існує багато різних форм даної вразливості, які спричиняють порушення контролю доступу до інформації. Серйозність вразливості може варіюватися в широкому діапазоні залежно від контексту, в якому працює веб-додаток, типу конфіденційної інформації, яка розкривається, і переваг, які вона може надати зловмиснику [4].
Типові форми даної вразливості [1]:
• Порушення принципу найменших привілеїв або заборони за замовчуванням, де доступ має надаватися лише для певних можливостей, ролей або користувачів, але доступний для всіх.
• Обхід перевірок контролю доступу шляхом зміни URL-адреси (підробка параметрів), внутрішнього стану програми чи сторінки HTML або використання інструменту атаки, що змінює запити API.
• Дозвіл на перегляд або редагування чужого облікового запису шляхом надання його унікального ідентифікатора (незахищені прямі посилання на об’єкти).
• Доступ до API із відсутніми елементами керування доступом (CRUD) для POST, PUT і DELETE.
• Підвищення або пониження привілеїв.
• Маніпуляція метаданими. Повторне відтворення або підробка маркера керування доступом JSON Web Token (JWT), або маніпуляції cookie або прихованими полями для підвищення привілеїв або використання недійснісного JWT.
• Неправильна конфігурація CORS, що дозволяє отримати доступ до API з неавторизованих/ненадійних джерел.
• Переглядати автентифікованої веб-сторінки як неавтентифікований користувач або привілейованої сторінки як звичайний користувач.
У зв’язку із постійним збільшенням кількості веб-додатків та складності їхньої бізнес-логіки постає проблема підвищення ефективності та швидкості автоматичного пошуку вразливоті порушенням контролю доступу.
Хоча сканери вразливостей є популярним інструментом для виявлення недоліків у веб-додатках та можуть швидко надавати результати, вони мають обмеження у виявленні нових векторів атак, що потребують глибокого розуміння бізнес-логіки та інтуїції.
Помилки в бізнес-логіці виникають, коли дизайн, реалізація або внутрішні процеси програми не відповідають очікуваному способу використання. Це може включати, наприклад, замовлення від’ємної кількості продукту або повторне використання того самого коду знижки. Навіть у такому простому прикладі стає очевидним, що сканери вразливостей має обмеження щодо порушення контролю доступу. Він не здатний розпізнати заплановану поведінку програми. З точки зору сканера, від’ємне число лишається числом, і повторне використання певної функції не обов'язково є хибним. На відміну від інших вразливостей, таких як міжсайтовий скриптінг (XSS) та SQL-ін’єкція, сканер не може просто надавати вхідні дані та шукати попередньо визначений шаблон у відповіді програми, щоб визначити, чи може щось бути вразливим.
Застосування нових підходів і методологій обумовлено новими проблемами та безпековими викликами. Динамічний розвиток методів атак та проникнень вимагає перехіду до більш комплексних методологій автоматизованого сканування, що виходять за рамки оцінювання на поверхневому рівні та враховують даталі й складові елементи механізмів контролю доступу. Крім того, застосування методів динамічного тестування, які імітують реальні сценарії та взаємодію користувачів, можуть давати цінну інформацію про досліджувану вразливість.
Список використаних джерел:
1. OWASP Top 10:2021. A01:2021 – Broken Access Control. URL: https://owasp.org/Top10/A01_2021-Broken_Access_Control.
2. Ahmed Anas Salwa Elgamal Basheer Youssef. Survey on detecting and preventing web application broken access control attacks. International Journal of Electrical and Computer Engineering (IJECE). 2024. Vol. 1, no. 14. P. 772–781.
3. OWASP Community. Broken Access Control. URL: https://owasp.org/www-community/Broken_Access_Control.
4. CWE-200: Exposure of Sensitive Information to an Unauthorized Actor. URL: https://cwe.mitre.org/data/definitions/200.html.