Учебники

Отсутствует контроль доступа на уровне функций

Большинство веб-приложений проверяют права доступа на уровне функций, прежде чем сделать эту функцию доступной для пользователя. Однако, если те же проверки контроля доступа не выполняются на сервере, хакеры могут проникнуть в приложение без надлежащей авторизации.

Давайте разберемся с этими факторами с помощью простой диаграммы: агенты угроз, векторы атак, слабость в безопасности, техническое воздействие и влияние на бизнес.

missing_fn_level_access_control

пример

Вот классический пример отсутствия контроля доступа на уровне функций —

Хакер просто форсирует целевые URL. Обычно для доступа администратора требуется проверка подлинности, однако, если доступ к приложению не подтвержден, пользователь, не прошедший проверку подлинности, может получить доступ к странице администратора.

' Below URL might be accessible to an authenticated user
http://website.com/app/standarduserpage

' A NON Admin user is able to access admin page without authorization.
http://website.com/app/admin_page

Руки вверх

Шаг 1 — Давайте войдем в систему как менеджер аккаунта, сначала пройдя по списку пользователей и их привилегиям доступа.

missing_fn_level_access_control1

Шаг 2 — Попробовав различные комбинации, мы можем обнаружить, что Ларри имеет доступ к менеджеру аккаунта ресурса.

Механизм аутентификации должен запрещать любой доступ по умолчанию и предоставлять доступ к определенным ролям для каждой функции.

В приложении на основе рабочего процесса проверьте состояние пользователей, прежде чем разрешить им доступ к любым ресурсам.