Надмірний доступ до даних
Екран приховує поля. Відповідь API не відповідає.
Що таке Надмірний доступ до даних?
Кінцева точка серіалізує весь збережений запис і довіряє клієнтській програмі відображати лише безпечні поля. Абоненти читають необроблену відповідь, а не відтворений інтерфейс. Ви відкриєте картку профілю з іменем і містом, зафіксуєте дзвінок за нею та знайдете електронну адресу, телефон, дату народження та домашні координати в корисному навантаженні, а потім повторите це в каналі відкриття для тисяч людей. Виправлення — це явна проекція дозволеного списку на стороні сервера. Виправлена кінцева точка все ще відповідає 200, лише з меншою кількістю полів.
Що ви дізнаєтесь у Надмірний доступ до даних
- Зрозумійте надмірну кількість даних: кінцева точка повертає більше полів, ніж потрібно клієнту, оскільки вона серіалізує весь об’єкт і покладається на клієнта для фільтрації, тому необроблена відповідь пропускає конфіденційні поля, які екран ніколи не показує
- Зрозумійте, що клієнт не є межею безпеки: абоненти читають необроблену відповідь, а не відтворений інтерфейс користувача, тому будь-яке поле корисного навантаження доступне незалежно від того, що відображає програма
- Відрізняйте його від порушеної авторизації на рівні об’єкта (досягнення об’єкта іншого користувача за ідентифікатором) і порушеної авторизації на рівні функції (виклик функції вище вашої ролі); тут абоненту дозволено читати ресурс, а недоліком є повернення набору полів
- Застосуйте виправлення: створюйте відповіді з явного дозволеного списку на стороні сервера або проекції загальнодоступних полів, ніколи не серіалізуйте збережений запис оптом і обрізайте спільні серіалізатори один раз, щоб закрити кожен маршрут, який їх використовує
- Зрозумійте, що надмірна експозиція не є помилкою керування доступом: фіксована кінцева точка все ще відповідає 200, вона просто повертає менше полів, тому блокування запиту помилково порушить загальнодоступну функцію
- Перевірте кожну кінцеву точку, яка серіалізує повну модель, особливо канали списків і відкриттів, де один серіалізатор надмірного спільного доступу стає масовим експортом даних
Надмірний доступ до даних — Кроки навчання
-
Загальнодоступна сторінка ранера
Сьогодні Боб націлений на Trailkin, соціальну програму для бігу, щоб збирати особисті дані своїх учасників у великих масштабах. Він зареєструвався як звичайний учасник з одноразовою ідентифікацією. Профілі Trailkin є загальнодоступними: кожен може знайти будь-якого бігуна. Боб відкриває сторінку цілі, на якій відображається публічна картка бігуна та стрічка інших бігунів поблизу.
-
Тільки безпечні поля на екрані
Профільна картка навмисне розріджена. Це те, що мають бачити всі, і це не показує нічого, що зловмисник міг би використати, щоб знайти або видати себе за цю особу.
-
Бігуни поруч з вами
Під карткою та сама сторінка показує стрічку відкриттів Trailkin: інші учасники бігають поруч. Як і в профілі, кожна картка тут відображає лише загальнодоступні відомості.
-
Слідкуйте за запитами
Картка та канал були зібрані з даних, отриманих програмою через API. Боб відкриває мережеві інструменти веб-переглядача та один раз перезавантажує сторінку, фіксуючи обидва виклики, які програма робить для її створення.
-
Два дзвінки, і все, що приховала картка
Мережеві інструменти зафіксували перезавантаження. Обидва дзвінки, здійснені сторінкою, знаходяться в списку запитів, і Боб відкриває відповідь на перший, виклик профілю.
-
Відкрийте найближчий виклик
Один профіль – одна жертва. Виклик стрічки прямо тут у списку. Боб натискає його, щоб прочитати, що повернув запит бігунів поруч із вами.
-
Витік, у масштабі
Найближчим реагуванням є той самий витік, помножений на весь канал.
-
Перевірка знань
Ви щойно спостерігали, як простий обліковий запис учасника читає особисті дані, які програма ніколи не відображає. Зафіксуйте чому.
-
Тривога приземляється
Ви володієте сервісом профілю спортсмена Trailkin. Протягом ночі моніторинг помітив обліковий запис одного учасника, який збирав повні записи для тисяч користувачів через публічний профіль і найближчі кінцеві точки. Служба безпеки надіслала вам подробиці електронною поштою.
-
Відкрийте профіль маршрутизатора
Відкрийте маршрутизатор спортсмена та подивіться, як він перетворює збережений запис у відповідь.
Охоплення стандартів безпеки
OWASP API Top 10
- API3:2019 Excessive Data Exposure
CWE
- CWE-213 Exposure of Sensitive Information Due to Incompatible Policies
- CWE-200 Exposure of Sensitive Information to an Unauthorized Actor
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