Уязвимость Broken Function Level Authorization (BFLA): что это и как предотвратить

Авторка: Kateryna Ivanenko, Invicti Brand manager

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

Что такое Broken Function Level Authorization?

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

Например, если обычный пользователь отправляет запрос на доступ к административным функциям (например, удаление других пользователей или изменение ролей), а сервер обрабатывает его, не проверяя привилегии пользователя, это типичный случай BFLA.

Почему Broken Function Level Authorization так опасна?

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

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

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

Как предотвратить Broken Function Level Authorization

  • Система авторизации должна придерживаться политики “отказ по умолчанию”, предоставляя доступ только через разрешения, назначенные определенным ролям для каждой функции.
  • Обеспечение того, чтобы административные контроллеры наследовались от абстрактного административного контроллера (AbstractAdminController), обеспечивающего проверку авторизации в соответствии с группой или ролью пользователя.
  • Проверка того, что административные функции в пределах обычных контролеров включают проверки авторизации на основе ролей и групп.
  • Проведение регулярного тестирования безопасности (как вариант, с помощью DAST).

К примеру, платформа Invicti, объединившая возможности Netsparker и Acunetix, предлагает расширенные конфигурации сканирования, предоставляющие аутентификацию под различными учетными записями пользователей, помогая обнаруживать больше уязвимостей BFLA.

Вывод

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

Бесплатно попробовать платформу и получить отчет OWASP Top 10 API Security от Invicti

Подписаться на новости