- Что такое управление доступом и как его протестировать?
- Что такое управление доступом?
- Применение управления доступом
- Типы аутентификации пользователей
- Типы уязвимостей аутентификации
- Авторизация
- Типы пользовательского доступа
- Инструменты для тестирования управления доступом
- Лучшие практики управления доступом
- Атаки на систему контроля доступа
- Типы атак на систему контроля доступа
- Заключение
Что такое управление доступом и как его протестировать?
В связи со стремительным переходом на цифровые платформы компании сталкиваются с растущим числом угроз безопасности, которые ставят под вопрос защищенность их конфиденциальных данных и интеллектуальной собственности. По мере увеличения количества приложений и цифровых активов в организации возрастает и сложность управления доступом пользователей. Согласно отчету компании Verizon о расследовании утечек данных, 81% случаев несанкционированного доступа к данным происходит из-за совершения краж или слабых паролей. Эту проблему можно предотвратить с помощью управления доступом (access management). Практика управления доступом помогает сделать так, чтобы нужные лица имели соответствующий уровень доступа к цифровым активам в организации.
Что такое управление доступом?
Процесс обнаружения, мониторинга, регулирования и управления доступом отдельных лиц к платформе, приложению или любому другому IT-компоненту называется управлением доступом. Оно используется для аутентификации, авторизации и аудита доступа к приложениям и IT-системам; а также создает уровень безопасности между отдельными лицами, программными сервисами и данными.
Применение управления доступом
Вот некоторые примеры применения управления доступом:
- Помогает аутентифицировать, авторизовывать и проверять доступ к приложениям.
- Гарантирует, что у нужных пользователей есть доступ к нужным ресурсам.
- Помогает контролировать критическую информацию в организации.
Типы аутентификации пользователей
Чтобы пройти аутентификацию, необходимо подтвердить свою личность на сервере. Пользователи могут сделать это с помощью следующих инструментов:
- Пароль, пин-код, многофакторная аутентификация и т.д.
- Карта доступа, смарт-карта или физический ключ.
- Биометрия (отпечатки пальцев, сетчатка глаза или распознавание лица).
- Голосовой шаблон.
Типы уязвимостей аутентификации
Ошибки в коде или логике могут создавать уязвимости в процессе аутентификации, а уязвимости в процессе аутентификации вызывают множество проблем безопасности, приводя к появлению вредоносной активности в приложении.
Наиболее часто встречающимися проблемами аутентификации являются:
- Слабый пароль. Хакеры могут попробовать несколько комбинаций паролей (атаки со словарем), пока не подберут правильный. Приложение не должно позволять пользователям создавать слабые пароли, которые можно легко угадать.
- Слабая HTTP-аутентификация. Когда в приложении реализована простая веб-аутентификация, имя пользователя и пароль отправляются вместе с HTTP-запросом. Хакеры могут легко получить имя пользователя и пароль из параметров URL.
- SQL-инъекции. SQL-инъекции могут украсть информацию из базы данных, если она должным образом не защищена. Злоумышленники вместе с входными данными могут отправить вредоносный SQL-код, чтобы украсть важную информацию.
- Некорректная пользовательская сессия. Существуют различные уязвимости, связанные с плохим управлением сессиями, такие как отсутствие таймаутов сессии, куки сессии без HTTP-флага и плохая валидация сессии.
- Параметры в URL не зашифрованы. Когда создается пользовательская сессия, мы включаем конфиденциальную информацию, такую как идентификатор клиента, идентификатор предложения и т.д. в параметры URL. Нужно убедиться, что все эти значения в URL зашифрованы, поскольку хакеры могут использовать эту информацию и заменить ее случайными значениями.
Авторизация
Авторизация — это процесс, с помощью которого сервер определяет, есть ли у клиента разрешение на использование ресурса или доступ к файлу. Компания определяет, для каких ресурсов требуются авторизация. Большинство маркетинговых страниц в интернете не содержат авторизации. Авторизация применяется в сочетании с аутентификацией. Сначала пользователь проходит аутентификацию личности, а затем ему выдается разрешение.
Типы пользовательского доступа
- Авторизация на основе ролей: авторизация может быть предоставлена на основе роли пользователя и того, что нужно пользователю в приложении.
- Список управления доступом: ACL — это список правил, определяющих доступ к ресурсам для конечных пользователей. Он используется для фильтрации определенных пользователей и разрешения или запрета доступа к ресурсам в соответствии с правилом.
- Авторизация на основе токена: безопасная авторизация на основе токена может быть предоставлена пользователю для доступа к ресурсам в приложении. Ключ токена вместе с запросом отправляется на сервер, и после успешной проверки пользователь получает доступ к ресурсу.
- OpenID-авторизация: при такой авторизации для доступа к определенному ресурсу не требуется ни пароль, ни токен.
Инструменты для тестирования управления доступом
- ZAP. Инструмент с открытым исходным кодом, который используется для сканирования веб-приложений. Он поддерживает как активное, так и пассивное сканирование. Преимущества: в инструмент встроены проверки на нарушение контроля доступа и слабую аутентификацию. С помощью этих контрольных точек можно проверить все уязвимости безопасности, связанные с тестированием контроля доступа.
- Burp Suite. Этот инструмент используется для проведения тестирования безопасности веб-приложений. Он поддерживает весь процесс тестирования безопасности, от первоначального анализа и формирования вектора атак до поиска и эксплойтинга уязвимостей безопасности. Преимущества: с помощью этого инструмента можно проверить тысячи запросов на нарушение контроля доступа.
Лучшие практики управления доступом
Давайте рассмотрим некоторые из лучших практик, связанных с управлением доступом:
- Убедитесь, что войти в приложение могут только легитимные пользователи.
- Создайте процесс обнаружения и реагирования на уязвимые компоненты.
- Выполняйте проверки доступа для каждого запроса или функциональности, к которой осуществляется доступ.
- Централизуйте логику обработки ошибок доступа.
- Проверяйте приложение после прохождения аутентификации.
- Проверьте управление сессиями и перехват сессий.
Атаки на систему контроля доступа
Вот как злоумышленники могут брать под контроль доступ пользователей:
- Злоумышленники используют различные методы социальной инженерии, чтобы убедить пользователей предоставить конфиденциальную информацию.
- Социальная инженерия используется для манипулирования пользователем с целью получения контроля над компьютерной системой. Для получения доступа хакер может использовать телефон или электронную почту.
- Для получения доступа к программной системе они полагаются на ошибки, вызванные человеческим фактором.
Типы атак на систему контроля доступа
Ниже перечислены различные типы атак на контроль доступа, которые используют хакеры:
- Спуфинг (англ. spoofing) или фишинговые письма: фишинговые письма отправляются большому количеству пользователей с целью заставить их перейти по вредоносной ссылке или предоставить конфиденциальную информацию.
- Претекстинг: в этом случае злоумышленники могут притвориться кем-то другим и задать вопросы, чтобы получить конфиденциальную информацию.
- Подбор и взлом пароля: существуют различные методы, когда злоумышленники используют случайные пароли из словаря для получения доступа к системе. Это позволяет обойти защиту администратора, и в результате вся система может быть взломана.
Заключение
Атаки на системы контроля доступа могут нанести вред человеку в виде утечки важной информации или другого мошеннического использования информации, однако такие нарушения безопасности можно предотвратить, если реализовать тестирование нарушений контроля доступа.
Приглашаем всех желающих на открытый урок, посвященный тестированию требований. На этом занятии мы рассмотрим, как и зачем тестировщик тестирует требования, посмотрим на примеры требований. Узнаем, почему дешевле потратить время на тестирование требований, чем обойтись без него. Рассмотрим пример на практике. Урок пройдет в рамках онлайн-курса «QA Engineer. Basic» и подойдёт тем, кто хочет стать тестировщиком, а также тем, кто уже начал работу в QA.