Представляю вашему вниманию очередную часть перевода OWASP Testing Guide. В данной статье речь пойдет о изучении ролей пользователей.

[spoiler title=’Предыдущие статьи’ style=’default’ collapse_link=’true’]

  1. Тестирование: введение и задачи
  2. Сбор информации с помощью поисковых систем
  3. Определение веб-сервера
  4. Поиск информации в метафайлах веб-сервера
  5. Определение веб-приложений на сервере
  6. Поиск утечек информации в комментариях и метаданных
  7. Определение точек входа веб-приложения
  8. Составление карты веб-приложения
  9. Определение фреймворка веб-приложения
  10. Определение веб-приложения
  11. Составление карты архитектуры веб-приложения
  12. Тестирование конфигурации инфраструктуры веб-приложения
  13. Изучение расширений файлов
  14. Поиск страрых версий веб-приложения, скрытых файлов и резервных копий
  15. Поиск административных интерфейсов
  16. Тестирование HTTP методов
  17. Тестирование HSTS
  18. Тестирование кросс-доменной политики

[/spoiler]


Резюме

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

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

Задачи тестирования

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

Как тестировать

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

Пример 1.

Роль ПраваОбъект Ограничения
Администратор ЧтениеДанные клиентов
Менеджер ЧтениеДанные клиентов Только записи относящиеся к его отделу
Персонал ЧтениеДанные клиентов Только данные выбранные менеджером
Клиент ЧтениеДанные клиентов Только собственные данные

Реальный пример матрицы можно увидеть в документации по WordPress[1], в которой определяются 6 ролей от супер администратора до подписчика.

Пример 2.

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

Инструменты

Наиболее тщательное и полное изучение возможно только вручную, но автоматизированные пауки также являются полезными. Необходимо для каждой роли запускать паука (не забывайте исключать ссылки на выход из веб-приложения из контекста паука).

Справочные материалы

Санация

Решение различных проблем может быть следующим:

  • детальная разработка ролей
  • ранжирование ролей
  • разделение обязанностей