Примусовий перегляд
Незв’язана URL-адреса не є перевіркою дозволу.
Що таке Примусовий перегляд?
Маршрут існує, ніщо в інтерфейсі не посилається на нього, і він відповідає кожному, хто вгадає шлях. Секретність імені папки не є контролем доступу. Без облікового запису ви запустите список слів для виявлення вмісту на платформі людей і знайдете внутрішній маршрут експорту, що відповідає 200 OK із повним каталогом співробітників, файли cookie або ключ API не потрібні. Потім ви додаєте шлюз, якого він ніколи не мав, перевірку сеансу та ролі перед читанням окремого рядка та повторюєте запит до 403.
Що ви дізнаєтесь у Примусовий перегляд
- Відрізняйте примусовий перегляд від підвищення привілеїв: перший передбачає відсутність сеансу, другий передбачає неправильний сеанс
- Визнайте, що сегмент шляху, як-от <code>/internal/</code> або <code>/admin/</code>, є умовністю, а не елементом керування, обробником є ворота
- Зрозумійте, що інструменти виявлення вмісту (ffuf, dirbuster, gobuster) роблять секретність шляху марною за лічені хвилини
- Застосуйте перевірку наявності сеансу та ролі у верхній частині кожного обробника, який читає або записує конфіденційні дані
- Перевірте кодову базу на наявність маршрутів, які постачалися для одного інструменту, були замінені та ніколи не були видалені
Примусовий перегляд — Кроки навчання
-
Збільште розмір мішені
Боб є фінансово мотивованим нападником. Він знаходить компанії, які оприлюднили щось у загальнодоступному Інтернеті, а потім продає те, що виймає, або використовує це, щоб отримати їхні гроші. Сьогодні він націлений на Kelvara, платформу для людей, на якій компанії розраховують заробітну плату та HR. Він починає там, де будь-хто, на публічному сайті, оцінюючи компанію, перш ніж шукати шлях.
-
Зіставте дерево API
На публічному сайті немає нічого незвичайного: вхід, огляд продукту, сторінка підтримки. Але програма відповідає на набагато більше шляхів, ніж посилається. Все, що розробник залишив доступним, залишається доступним для всіх, хто шукає, тому Боб відображає кожен шлях, на який насправді відповідає API порталу.
-
Відкрити маршрут експорту
Єдиний шлях, який відповів без проблем, — це URL-адреса, як і будь-яка інша. Бобу для цього не потрібен інструмент: він вводить знайдений шлях прямо в браузер і натискає клавішу Enter, як відкриваючи будь-яку сторінку.
-
Весь каталог, без входу
Відповідь не є сторінкою помилки. Браузер відображає це вбудовано: увесь каталог співробітників Kelvara, тисячі записів, переданих на запит, який взагалі не передбачав входу.
-
Перевірка знань
Ви спостерігали, як вгадана URL-адреса повертає конфіденційні дані на запит без облікових даних. Зафіксуйте, чому кінцева точка була доступною.
-
Попередження DLP приземляється
Ви володієте порталом людей Kelvara. Вночі моніторинг втрати вихідних даних спрацював на відповідь, яка перенесла з мережі повний каталог співробітників, включаючи номери соціального страхування та зарплати. Відділ безпеки надіслав вам деталі електронною поштою.
-
Відкрийте обробник експорту
Вам потрібно змінити обробник, який створює експорт співробітників. Відкрийте його та подивіться, що він робить між надходженням запиту та виходом даних.
-
Знайдіть відсутні ворота
Обробник читає записи кожного працівника та повертає їх. Прочитайте його зверху вниз і знайдіть перевірку доступу. Між запитом і запитом немає нічого.
-
Перевірка знань
Ви бачили, як обробник виконується від запиту до даних без нічого між ними. Зафіксуйте те, що насправді зберігає конфіденційність такого маршруту.
-
Додайте перевірку доступу
Поставте справжні ворота у верхній частині ручки. Він розв’язує сеанс абонента, підтверджує, що він має роль hr_admin, і відхиляє все інше до того, як запит до бази даних буде виконано. Шлях залишається тим самим; Перевірка, а не назва папки, тепер захищає дані.
Охоплення стандартів безпеки
OWASP Top 10
- A01:2025 Broken Access Control
- A01:2021 Broken Access Control
CWE
- CWE-425 Direct Request ('Forced Browsing')
- 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