Защита сервера ldap от блокировки учетных записей, вызванной атаками методом перебора
Во время тестирования сервера ldap на bruteforce с использованием patator ldap_login я выяснил, что проверенная учетная запись блокируется после обхода ограничений разрешенных попыток входа в систему. Используя этот инструмент, злоумышленник может заблокировать все учетные записи в компании. Как лучше всего защититься от такой блокировки?
1 ответ
Если вы спрашиваете, как вы можете использовать такой инструмент для проверки паролей, достаточно сложных без блокировки всех ваших учетных записей, клонируйте свой каталог в другом месте. Установите политику паролей на сервере каталогов клонов, чтобы не блокировать учетные записи с использованием неверных паролей, а затем запустите инструмент в каталоге клонов.
Если вы спрашиваете, как вы можете смягчить действия против кого-либо, использующего этот тип инструмента для блокировки всего каталога пользователей... Я удивлен, что эта атака встречается не так часто, особенно потому, что требования безопасности, такие как PCI, требуют блокировки учетной записи, поэтому есть большая вероятность, что каталог заблокирует идентификатор после довольно небольшого количества неверных паролей.
Я ограничиваю доступ к серверам каталогов LDAP с помощью брандмауэра ОС и, для серверов LDAP, которые предоставляют такую функцию, контроль доступа на уровне приложений. Это делает больше работы для группы поддержки каталогов, потому что каждое новое приложение должно быть настроено на доступ к LDAP, но какой-то случайный человек не может просто запустить инструмент на своем рабочем столе и заблокировать весь каталог. Один из авторизованных серверов все еще может быть использован в качестве источника атаки, но я могу отбросить доступ с этого IP при обнаружении атаки.
Ограничение доступа к серверу каталогов LDAP/LDAPS не мешает случайному человеку использовать утвержденное приложение для отправки запросов на аутентификацию (например, что-то вроде "curl - user username: NotThePassword https://businessapp.domain.gtld/ " или POSTing the username/NotThePassword на правильный URL авторизации имеет утвержденный сервер, который выполняет вызов LDAP от моего имени). Существует множество способов смягчения атак такого рода:
У меня были приложения, включающие период охлаждения, когда они начинают получать серию плохих паролей - 6 плохих паролей блокируют учетную запись на стороне каталога, но приложение дает вам десятиминутный тайм-аут, когда вы не можете попытаться снова выполнить аутентификацию при 2 или 3 неверных пароля за 5 минут. Или выдает подтверждение "ты действительно человек".
Вы можете настроить политику паролей для блокировки учетных записей в течение X минут после Y неправильных паролей. Это означает, что злоумышленнику потребуется длительная атака на определенный идентификатор, чтобы он был заблокирован в течение значительного периода времени. Несмотря на то, что злоумышленник может заблокировать весь каталог, влияние на пользователей сводится к минимуму. X минутная пауза делает атаки методом перебора паролей довольно неэффективными и обычно получает одобрение от типов безопасности.
Наличие пользовательских идентификаторов, которые нелегко найти в алгоритме, немного помогает. Например, я работал в компании, где идентификаторы пользователей были статическими буквами, за которыми следовали пять цифр. Прохождение всего пространства имен их возможных идентификаторов пользователей было тривиальным, и любой, кто работал там, знал формат идентификатора. Пространство имен идентификаторов с большим количеством возможных итераций затрудняет блокировку значительной части пользователей (т. Е. Требуется больше времени для обхода всех возможных комбинаций букв и цифр длиной от трех до двадцати символов {и большая часть атак выполняется против учетных записей, которые не существуют}, чем требуется для обхода пространства имен X#####).
Убедитесь, что все приложения возвращают одинаковую ошибку и для неверного имени пользователя или пароля - если вы укажете "недопустимое имя пользователя", когда идентификатор не найден, и "неверный пароль", если пароль не пройден, злоумышленник может быстро обойти любые несуществующие идентификаторы, Возвращая "неверное имя пользователя или пароль", им приходится тратить время на попытки заблокировать несуществующие идентификаторы.
Для более крупной сети можно использовать систему обнаружения вторжений (IDS), которая включает сетевой трафик и анализ журналов. Но данные журнала сервера каталогов можно анализировать с помощью платформы мониторинга или пользовательских сценариев. Я генерирую оповещения, когда происходит ненормальное количество блокировок - работая в довольно крупной компании, я вижу около ста блокировок в обычные рабочие часы и одну или две в ночное время. Если в рабочие часы мы наблюдаем больше, чем за несколько часов, или даже за тысячу, источник блокировки получит уведомление о расследовании. И если блокировки начинают становиться особенно чрезмерными, мы можем позвонить, чтобы удалить исходный IP-адрес из списка доступа к серверу каталогов, пока команда приложения не выяснит, что происходит.