Большинство веб-приложений проверяют права доступа на уровне функций, прежде чем сделать эту функцию доступной для пользователя. Однако, если те же проверки контроля доступа не выполняются на сервере, хакеры могут проникнуть в приложение без надлежащей авторизации.
Давайте разберемся с этими факторами с помощью простой диаграммы: агенты угроз, векторы атак, слабость в безопасности, техническое воздействие и влияние на бизнес.
пример
Вот классический пример отсутствия контроля доступа на уровне функций —
Хакер просто форсирует целевые 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 — Давайте войдем в систему как менеджер аккаунта, сначала пройдя по списку пользователей и их привилегиям доступа.
Шаг 2 — Попробовав различные комбинации, мы можем обнаружить, что Ларри имеет доступ к менеджеру аккаунта ресурса.
Механизм аутентификации должен запрещать любой доступ по умолчанию и предоставлять доступ к определенным ролям для каждой функции.
В приложении на основе рабочего процесса проверьте состояние пользователей, прежде чем разрешить им доступ к любым ресурсам.