Чтобы предотвратить атаки грубой силы, требуйте многофакторную аутентификацию при каждом входе в Интернет, ограничивайте количество неудачных попыток по учетной записи, IP-адресу и глобально, блокируйте взломанные пароли, сохраняйте хэши с помощью Argon2id или bcrypt и предупреждайте об аномальных неудачных попытках входа. Наслаивайте эти элементы управления, потому что никто не останавливает каждый вариант.
Откройте журнал аутентификации любого SSH-сервера через несколько часов после его подключения к сети, и вы увидите следующее:
3 октября, 02:14:07 web01 sshd [2231]: неверный пароль для root от 203.0.113.45, порт 51022 ssh2
3 октября, 02:14:09 web01 sshd [2233]: неверный пароль администратора от 198.51.100.17, порт 40318 ssh2
3 октября 02:14:11 web01 sshd[2236]: неверный пароль для Ubuntu с порта 192.0.2.88 33874 ssh2Три имени пользователя, три IP-адреса с разницей в две секунды. Никто не печатает. Боты проверяют каждую найденную страницу входа, порт SSH и конечную точку API, и единственное успешное предположение ведет прямо кзахват аккаунта. Ниже приведены девять элементов управления, ранжированных по степени воздействия, а также способы обнаружения и реагирования на происходящую атаку.
Как предотвратить атаки грубой силы: 9 элементов управления, ранжированных по степени воздействия
Включите многофакторную аутентификацию.Правильное предположение или утечка пароля больше не предоставляют доступ.
Ограничение скорости и ограничение входа в систему.Медленное угадывание со скоростью, делающей его бессмысленным.
Следуйте правилам паролей NIST SP 800-63B.Отдайте предпочтение длине, заблокируйте взломанные пароли, откажитесь от принудительной ротации.
Хешируйте пароли с помощью Argon2id или bcrypt.Украденная база данных не должна стать взломанной.
Выборочно добавляйте CAPTCHA и обнаружение ботов.Вызов только подозрительного трафика.
Укрепите логины SSH, RDP, CMS и API.Закройте службы, которые атакуют злоумышленники первыми.
Используйте репутацию IP, географические правила и WAF.Заблаговременно отключайте известный плохой трафик.
Отслеживайте и предупреждайте об ошибках аутентификации.Лови то, что ускользает от профилактики.
Проверьте свою собственную защиту.Убедитесь, что элементы управления работают до того, как это сделает злоумышленник.
Мало времени? Сначала выполните элементы управления 1, 2 и 8. MFA ограничивает урон, ограничение скорости замедляет атаку, а мониторинг сообщает вам, что это происходит.
Почему профилактика различается в зависимости от варианта

Каждый вариант останавливается разными элементами управления, поэтому знайте, с каким из них вы столкнулись.
Вариант | Как это работает | Подпись журнала | Лучший контроль |
|---|---|---|---|
Простой перебор | Множество догадок против одного аккаунта | Много неудач, одно имя пользователя | Регулирование, временная блокировка |
Распыление пароля | Несколько общих паролей для многих учетных записей | Один или два сбоя на аккаунт | Ограничения по IP и глобальные ограничения, MFA |
Вброс учетных данных | Воспроизведены утекшие пары имени пользователя и пароля | Большой объем, меняющиеся IP-адреса | МИД, проверка нарушений |
Офлайн-взлом | Гадание на украденных хешах | Нет в ваших системах | Argon2id или bcrypt, длинные пароли |
Распыление устраняет блокировки отдельных учетных записей, поскольку для каждой учетной записи почти не наблюдается сбоев. Офлайн-взлом вообще не оставляет следов, поэтому хеширование имеет значение, даже если ваша страница входа идеальна.
Способ 1: принудительное использование многофакторной аутентификации

MFA занимает первое место, поскольку для него недостаточно правильного пароля. Ранжирование по силе:
Пароли и ключи FIDO2.Устойчив к фишингу, поскольку учетные данные привязаны к реальному домену.
Приложение-аутентификатор TOTP.Верно, хотя действующий фишинговый прокси-сервер может передать код.
Нажмите с совпадением номеров.Блокирует слепое одобрение.
СМС-коды.Самый слабый, подвержен подмене SIM-карт. Используйте только как запасной вариант.
Противодействие усталости от MFA: злоумышленники рассылают спам-подсказки до тех пор, пока кто-нибудь не одобрит их, с сопоставлением номеров, ограничением количества запросов в час и оповещениями после неоднократных отказов. Развертывание по радиусу действия: панели администратора и облачные консоли, затем электронная почта, VPN и хостинг кода, а затем все остальные. Также заблокируйте путь восстановления. Никогда не позволяйте службе поддержки отключать MFA только по электронной почте.
Элемент управления 2: Ограничение скорости и попытки входа в систему регулирования

Бот, пробующий 10 000 паролей в минуту, представляет собой угрозу. Удерживал 5 в минуту, это не так. Перед блокировкой регулируйте скорость, поскольку жесткая блокировка позволяет злоумышленникам отказать в обслуживании реальным пользователям.
Неисправности 1–3: без задержки
Неудачи начиная с 4-й версии: 1, 2, 4, 8 секунд, максимум 60
После 10 неудач: блокировка на 15 минут плюс электронное письмо владельцу аккаунта
Ограничение по трем измерениям, поскольку каждый вариант отличается от другого: для каждой учетной записи (10 сбоев в течение 15 минут), для каждого IP-адреса (20 попыток в минуту) и глобального (предупреждение о трех базовых сбоях).
нгинкс
limit_req_zone $binary_remote_addr зона=логин:10м ставка=5р/м;
местоположение/логин {
limit_req зона = вход в систему = 3 nodelay;
limit_req_status 429;
proxy_pass http://app_backend;
}Nginx видит только IP-адреса, поэтому используйте счетчики Redis или WAF для уровней учетной записи и глобального уровня. Примените те же ограничения к сбросу пароля, входу MFA (шестизначный код имеет только 1 000 000 комбинаций) и маршрутам входа в API.
Элемент управления 3: Установите правила для паролей на основе NIST SP 800-63B
NIST заменил старые правила сложности рекомендациями, основанными на догадках злоумышленников.
Требуется минимум 8 символов для MFA и 15 или более для учетных записей администратора. Разрешить 64 или более.
Откажитесь от принудительного сочетания символов и цифр.
правильный скоба для лошадиной батареибьетП@ссв0рд!.Проверяйте новые пароли с помощью API Have I Been Pwned Pwned Passwords, который использует k-анонимность, поэтому полный пароль никогда не покидает вашу систему.
Завершить запланированную ротацию. Принудительно выполнять сброс только при наличии признаков компрометации, например совпадения, найденного с помощьюдаркнет-мониторинг.
Разрешите вставку, чтобы менеджеры паролей работали.
Если аудитор по-прежнему требует ротации, задокументируйте обоснование NIST и применяйте более строгое правило только там, где этого требует структура.
Способ №4: хеширование паролей для предотвращения офлайн-атак
Ограничения скорости ничего не дают, если злоумышленник завладел вашей базой данных. Современный графический процессор проверяет миллиарды предположений MD5 в секунду, поэтому быстрые хэши занимают часы. Здесьпонимание того, как работает хешированиеокупается. Используйте медленный алгоритм, требовательный к памяти:
Аргон2ид.Текущая рекомендация OWASP.
сценарий.Сильная альтернатива.
bcrypt.Проверено в бою, коэффициент стоимости 12 или выше.
ПБКДФ2.Только там, где этого требует соблюдение требований, при 600 000 или более итерациях.
Никогда не используйте MD5, SHA-1 или SHA-256 отдельно. Библиотеки занимаются солением, поэтому никогда не пишите его самостоятельно. Настройте рабочий коэффициент примерно на 250–500 мс на хэш и повторите хэш при следующем входе в систему, когда настройки улучшатся.
питон
из argon2 импортировать PasswordHasher
ph = PasswordHasher(time_cost=2, Memory_cost=19456, параллелизм=1)
сохранено = ph.hash(пароль)
ph.verify(stored,password) # выдает ошибку при несовпаденииПеред отправкой проверьте параметры в соответствии с текущей шпаргалкой по хранению паролей OWASP.
Способ 5: Выборочное добавление CAPTCHA и обнаружения ботов
CAPTCHA создает трение, а не стену. Решающие сервисы дешево продают задачи, решаемые человеком, а модели искусственного интеллекта теперь решают многие ребусы с изображениями. Вызов проблем по риску: три или более сбоев, новое устройство или страна, IP-адреса хостинг-провайдера или автономные подписи браузера. Cloudflare Turnstile, hCaptcha и reCAPTCHA v3 незаметно оценивают риск. Соедините их со снятием отпечатков пальцев и анализом времени и предложите доступную альтернативу для пользователей, которые не могут решать визуальные задачи.
Способ 6. Укрепление безопасности служб, по которым атакуют больше всего
СШ.Уберите пароль и перебором уже нечего будет подбирать.
ПарольАутентификация нет
PermitRootЛогин нет
Разрешить развертывание администратора
MaxAuthTries 3Генерируйте ключи с помощьюssh-keygen -t ed25519, подтвердите вход с помощью ключа во втором сеансе, затем перезагрузитеsshd. Добавьте Fail2ban в качестве поддерживающего слоя. Изменение порта уменьшает шум журнала, но не является контролем.
РДП.Никогда не открывайте порт 3389. Размещайте его за VPN или шлюзом (узнайте, какZTNA и VPN соответствуют современным стратегиям безопасности), включите аутентификацию на уровне сети, требуйте MFA и установите политику блокировки на 5 сбоев на 15 минут.
WordPress и CMS.Ограничить попытки входа в систему, заблокировать/xmlrpc.php(этоsystem.multicallметод проверяет сотни паролей за запрос), ограничить/wp-login.phpпо IP и принудительно использовать MFA администратора.
API.Установите ограничения для каждого ключа и IP-адреса с помощью429ответы, использовать случайные ключи длиной 332 байта или больше, срок действия токенов истекает в течение часа и возвращать идентичные ошибки для неправильных имен пользователей и неправильных паролей.
Способ 7: используйте IP-репутацию, географические правила и WAF.
Краевая фильтрация — это предварительный фильтр, а не основная защита. Используйте каналы репутации, такие как AbuseIPDB и Spamhaus DROP, проверяйте диапазоны хостинг-провайдеров и выходные узлы Tor на маршрутах входа и применяйте географические правила там, где сконцентрированы ваши клиенты. Используйте повышающий MFA вместо жестких блоков, чтобы путешественники не были заблокированы. Разверните правила WAF на основе скорости (Cloudflare, AWS WAF или ModSecurity), начиная с режима подсчета, а затем переключайтесь на блокировку. Сети резидентных прокси-серверов меняют реальные домашние IP-адреса и избегают всего этого, поэтому MFA и регулирование отдельных учетных записей по-прежнему несут нагрузку.
Способ 8: Мониторинг и оповещение об ошибках аутентификации

Предотвращение в конечном итоге терпит неудачу, и без мониторинга успешный вход в систему методом перебора выглядит нормально. Хорошомониторинг кибербезопасностиначинается с правильных журналов: идентификаторы событий Windows 4625, 4624 и 4740; СШжурнал аутентификацииВсплески 401 при входе в Интернет и журналах входа поставщика удостоверений. Никогда не регистрируйте пароли.
Запишите по одному обнаружению для каждого варианта:
Грубая сила:более 10 сбоев на одном аккаунте за 5 минут
Распыление:один IP-адрес не работает с более чем 15 именами пользователей за 30 минут
Начинка:объем входов в систему превышает базовый уровень в 3 раза с высоким коэффициентом отказов
Компромисс:успешный вход в систему после сбоя. Позвоните кому-нибудь по этому поводу.
Злоупотребления МИД:три или более отклоненных push-запроса
индекс = Wineventlog EventCode = 4625
| bin _time промежуток = 30 м
| статистика dc(TargetUserName) как пользователей по _time, IpAddress
| где пользователи > 15Wazuh — бесплатная отправная точка со встроенным SSH и правилами перебора. Запускайте оповещения в режиме только отчетов в течение недели и настраивайте их в соответствии с собственными базовыми показателями.
Контроль 9: Проверьте свою собственную защиту
Непроверенный контроль – это предположение. Тестируйте только те системы, которыми вы владеете или имеете письменное разрешение на тестирование, используя специальную тестовую учетную запись. Hydra, Medusa и Burp Intrumer охватывают формы входа и сервисы, а Hashcat тестирует устойчивость к автономному режиму с помощью копии ваших собственных хэшей в лаборатории. Если сложить это в более широкоетестирование на проникновение и оценка уязвимостейпрограмма держит его по расписанию.
Убедитесь, что 15 быстрых сбоев вызывают задержки, один пароль для 30 учетных записей срабатывает при обнаружении спрея, правильный пароль без MFA отклоняется, SSH отклоняет пароли, а на ваш пейджер доходит серия ошибок, за которой следует успех. Проверка оповещения имеет такое же значение, как и проверка блокировки. Повторяйте тестирование ежеквартально и после любого изменения аутентификации.
Что делать во время активной атаки
Подтвердите объем.Определите целевые учетные записи, исходные IP-адреса и любые успехи после серии сбоев.
Заблокируйте источник.Используйте правила брандмауэра или WAF или блокируйте с помощью ASN или шаблона запроса, если IP-адреса меняются. Переключите правила режима подсчета на блокировку.
Блокируйте скомпрометированные учетные записи.Сбрасывайте пароли, отзывайте сеансы и подтверждайте право собственности на MFA через другой канал.
Временно затяните.Снизьте пороговые значения и потребуйте усиления MFA, а затем отмените меры после атаки.
Выслеживайте посткомпромиссную деятельность.Ищите новые устройства MFA, правила переадресации почтовых ящиков, ключи API и разрешения OAuth.
Документ.Запишите, какой элемент управления должен был остановить это, и устраните пробел. Проверьте сроки уведомления о нарушении, если к данным был осуществлен доступ.
Контрольный список для предотвращения грубой силы
Сделайте сегодня
Перечислите все входы в Интернет
Включите MFA для учетных записей администратора, электронной почты и облака
Отключите пароли SSH и закройте общедоступный RDP.
Сделать на этой неделе
Добавьте ограничения скорости входа в систему, сброса и ограничения скорости конечной точки MFA
Проверяйте пароли по спискам нарушений
Установите оповещения об успехе после всплесков сбоев
Сделать в этом квартале
Запустите авторизованный тест для каждого элемента управления
Настройте пороги оповещений
Повторно протестировать факторы работы хеширования
Итог
Атаки грубой силы автоматизированы и постоянны, поэтому защита тоже должна быть автоматической. Отдайте приоритет MFA, многоуровневому ограничению скорости, надежному хешированию с проверкой нарушений и оповещениям об успехе после сбоя. Вместе они увеличивают стоимость атаки на вас сверх суммы, которую потратит большинство ботов.
Следующий шаг сегодня:перечислите все входы в Интернет и отметьте, в каких из них отсутствует MFA и ограничение скорости. Сначала исправьте панели администратора, электронную почту и удаленный доступ.
Часто задаваемые вопросы
Какой самый эффективный способ предотвратить атаки грубой силы?
Устойчивые к фишингу MFA, такие как ключи доступа или ключи FIDO2. Это делает правильный пароль недостаточным, что нейтрализует угадывание, подстановку и фишинг учетных данных вместе. Соедините это с ограничением скорости.
Блокировка учетной записи останавливает атаки грубой силы?
Он предотвращает угадывание одной учетной записи, но злоумышленники могут активировать блокировку, чтобы заблокировать реальных пользователей, и он ничего не делает против распыления паролей. Используйте прогрессивные задержки, а также ограничения для каждого IP и глобальные ограничения.
Сколько времени занимает подбор пароля?
Это зависит от длины, набора символов и типа хеша. Длина имеет наибольшее значение, а быстрые хэши, такие как MD5, рушатся гораздо быстрее, чем Argon2id. Проверяйте свои собственные хэши в лаборатории, а не доверяйте общим цифрам.
Может ли VPN или изменение порта по умолчанию остановить атаки грубой силы?
VPN исключает публичность, поэтому злоумышленникам необходимо сначала пройти аутентификацию. Изменение порта только снижает шум сканера и обнаруживается за считанные минуты.
В чем разница между брутфорсом и вбросом учетных данных?
Брутфорс угадывает пароли. Заполнение учетных данных воспроизводит настоящие утекшие пары, делая ставку на повторное использование. Уникальные пароли, проверка на взлом и MFA предотвращают вброс.
Как мне узнать, подвергают ли меня грубому принуждению?
Обращайте внимание на всплески неудачных входов в систему, сбой одного IP-адреса для многих имен пользователей, использование одного пароля для многих учетных записей и потоки блокировок. Успех сразу после провала — самый серьезный признак.
Достаточно ли Fail2ban для защиты SSH?
Нет. Распределенные атаки остаются ниже его порогов. Отключите аутентификацию по паролю и требуйте ключи, а Fail2ban оставьте в качестве вспомогательного уровня.
