Brute-force атака (атака полным перебором) — метод взлома, при котором злоумышленник систематически перебирает все возможные комбинации паролей, ключей или токенов до нахождения верного. Автоматизированные инструменты позволяют проверять тысячи вариантов в секунду.
Как работает
Базовый brute-force проверяет все комбинации символов. Для пароля из 8 символов (буквы + цифры) это 62^8 ≈ 218 триллионов вариантов. Современные GPU проверяют 10+ миллиардов хешей в секунду — такой пароль взламывается за несколько часов. Поэтому требование минимальной длины 12+ символов с спецсимволами обязательно.
Словарные атаки (dictionary attack) используют списки популярных паролей, утечек из баз данных (Have I Been Pwned содержит 10+ млрд скомпрометированных паролей) и модифицированных вариаций. Credential stuffing — автоматическая проверка логин-пароль пар из утечек на других сервисах.
Цели атак
- SSH — перебор паролей к root и другим пользователям. Стандартный порт 22 сканируется ботами непрерывно.
- Веб-формы — admin-панели WordPress (wp-login.php), phpMyAdmin, корпоративные порталы.
- FTP, RDP, Telnet — сетевые сервисы с парольной аутентификацией.
- API-endpoints — перебор токенов и сессионных ключей в заголовках запросов.
История
Термин «brute force» в криптографии использовался с 1970-х. Первые автоматизированные инструменты для взлома паролей появились в 1990-х. Hydra (1999) и Medusa (2006) стали стандартными инструментами пентестеров и злоумышленников. Выпуск Rockyou.txt — списка из 14 миллионов паролей из взлома RockYou в 2009 году — установил стандарт словаря для атак на следующие 15 лет.
Защита
Многоуровневая защита:
- Fail2ban — блокирует IP после N неудачных попыток. Читает
/var/log/auth.log, добавляет iptables-правила. Стандарт для SSH-защиты. - Rate limiting — Nginx ограничивает количество запросов к /wp-login.php, /admin/, /api/auth.
- MFA — многофакторная аутентификация делает перебор паролей бесполезным.
- Смена SSH-порта — не защита, но снижает шум в логах.
- UFW — разрешить SSH только с конкретных IP.
- SSH-ключи — отключить парольную аутентификацию в
sshd_config:PasswordAuthentication no.
На что обращать внимание
Slow brute-force атаки делают по 1-2 попытки в час с разных IP — не попадают в Fail2ban с дефолтными настройками. Злоумышленники используют прокси и Tor для смены IP. IPS-системы с поведенческим анализом лучше справляются с распределёнными атаками. Credential stuffing не брутфорс в классическом смысле — пароль угадывать не нужно, достаточно утечки.
Мониторинг попыток взлома
Команды для анализа атак в реальном времени:
# Количество неудачных SSH-попыток по IP
grep "Failed password" /var/log/auth.log | awk '{print $11}' | sort | uniq -c | sort -rn | head
# Активные соединения на SSH
ss -tn src :22
# Логи через journalctl
journalctl -u sshd --since "1 hour ago" | grep "Failed"
Grafana с node_exporter отображает rate неудачных аутентификаций в реальном времени. Алерт на превышение порога (> 10 неудач/мин) позволяет реагировать до исчерпания ресурсов.