🛡 Защищаем свои ресурсы. Часть 7: Контроль доступа и получение прав Всем привет 👋 Продолжаем образовательную рубрику про уязвимости, которые чаще всего приводят к реальным инцидентам.

Сегодня разберём контроль доступа и то, как из обычного пользователя внезапно получается администратор.

Если коротко: Broken Access Control - это когда система должна запрещать, но почему-то разрешает.

Без взлома. Без вирусов. Просто потому, что логика контроля доступа реализована криво.

Что такое контроль доступа

Контроль доступа - это правила, которые определяют:

• кто может видеть данные • кто может менять настройки • кто может выполнять опасные действия • какие роли что могут делать

Проблема начинается там, где:

➡️ правила есть ➡️ роли есть ➡️ а проверки работают не везде

Вертикальная эскалация привилегий

Самый опасный сценарий - вертикальная эскалация.

Это когда обычный пользователь получает доступ к функциям администратора.

Например:

• пользователь без прав открывает админ-панель • удаляет аккаунты • меняет настройки • получает доступ к данным других клиентов

С точки зрения бизнеса - катастрофа.

Как это выглядит на практике

Частый класс ошибок — расхождение в обработке URL.

Сервер может по-разному трактовать:

• регистр символов • слэш в конце • «расширения» у URL • дополнительные сегменты

В результате:

/ADMIN/DELETEUSER /admin/deleteUser.any /admin/deleteUser/

могут вести к одному и тому же эндпоинту, но проверки срабатывают не всегда.

Типичные сценарии из лабораторий На практике это выглядит так:

• robots.txt честно подсказывает путь к админке • в JS-файле в комментарии лежит URL панели управления • в cookie флаг isAdmin=false, который можно поменять • в JSON-запросе достаточно добавить roleId=2 • id=my меняется на id=carlos и данные открываются

Никакой магии. Просто сервер доверяет тому, что прислал клиент.

IDOR - самый частый грех

Insecure Direct Object Reference - классика.

Когда приложение напрямую использует переданные ID:

• пользователей • файлов • заказов • документов

и не проверяет, имеет ли пользователь право их видеть.

Иногда это выглядит ещё хуже:

• пользователя редиректит на login • но данные всё равно улетают в redirect-запросе • или в логах • или в ответе API

Почему это особенно опасно

Broken Access Control:

• не вызывает ошибок • не ломает сайт • не выглядит подозрительно

С точки зрения системы - всё работает корректно.

Поэтому такие уязвимости:

❌ живут годами ❌ находят после утечек ❌ приводят к штрафам и репутационным потерям

Почему так происходит

Самые частые причины:

• проверки только на первом шаге • доверие Referer или заголовкам • логика доступа размазана по фронту и бэку • «ну сюда же никто не зайдёт» • отсутствие негативных сценариев тестирования

Классическая фраза: «Мы же проверили доступ на основной странице» Как от этого защищаются Контроль доступа нельзя «прикрутить потом».

Работает только системный подход:

• проверка прав на каждом запросе • серверные проверки, а не фронтовые • единый механизм авторизации • тестирование IDOR и эскалаций • принцип минимальных привилегий

Хороший вопрос для команды:

«А что будет, если пользователь изменит этот параметр?»

Вывод

Broken Access Control - это не про хакеров. Это про ошибки в мышлении и архитектуре.

Система может быть:

• с HTTPS • без XSS • без SQL-инъекций

И при этом позволять обычному пользователю делать то, что должен делать только администратор.

Продолжение следует 👉 Загрузка файлов

#кибербезопасность #websecurity #b2b #accesscontrol

🛡 Защищаем свои ресурсы. Часть 7: Контроль доступа и получение прав
Всем привет 👋
Продолжаем образовательную рубрику про уязвимости, которые чаще всего приводят к реальным инцидентам | Сетка — социальная сеть от hh.ru