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