Распределенный подбор паролей к ssh

Dec 09, 2008 00:31


Раньше злоумышленники подбирали пароли к ssh довольно примитивными способами: каким-нибудь скриптом для expect, запускаемом на взломанном сервере.

Выглядит это очень шумно, примерно так:
Dec 7 12:44:17 iddater sshd[18400]: Address 218.28.20.135 maps to pc0.zz.ha.cn, but this does not map back to the address - POSSIBLE BREAK-IN ATTEMPT!
Dec 7 12:44:17 iddater sshd[18400]: (pam_unix) authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=218.28.20.135 user=root
Dec 7 12:44:19 iddater sshd[18400]: Failed password for root from 218.28.20.135 port 55820 ssh2
Dec 7 12:44:22 iddater sshd[18414]: Address 218.28.20.135 maps to pc0.zz.ha.cn, but this does not map back to the address - POSSIBLE BREAK-IN ATTEMPT!
Dec 7 12:44:22 iddater sshd[18414]: (pam_unix) authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=218.28.20.135 user=root
Dec 7 12:44:24 iddater sshd[18414]: Failed password for root from 218.28.20.135 port 56929 ssh2
Dec 7 12:44:29 iddater sshd[18434]: Address 218.28.20.135 maps to pc0.zz.ha.cn, but this does not map back to the address - POSSIBLE BREAK-IN ATTEMPT!
Dec 7 12:44:29 iddater sshd[18434]: (pam_unix) authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=218.28.20.135 user=root
Dec 7 12:44:31 iddater sshd[18434]: Failed password for root from 218.28.20.135 port 58785 ssh2
Dec 7 12:44:35 iddater sshd[18449]: Address 218.28.20.135 maps to pc0.zz.ha.cn, but this does not map back to the address - POSSIBLE BREAK-IN ATTEMPT!
Dec 7 12:44:35 iddater sshd[18449]: (pam_unix) authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=218.28.20.135 user=root
Dec 7 12:44:37 iddater sshd[18449]: Failed password for root from 218.28.20.135 port 60080 ssh2
Dec 7 12:44:41 iddater sshd[18469]: Address 218.28.20.135 maps to pc0.zz.ha.cn, but this does not map back to the address - POSSIBLE BREAK-IN ATTEMPT!
Dec 7 12:44:41 iddater sshd[18469]: (pam_unix) authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=218.28.20.135 user=root
Dec 7 12:44:43 iddater sshd[18469]: Failed password for root from 218.28.20.135 port 32979 ssh2
Защита от этого была тоже довольно простой: после определенного числа ошибок аутентификации подозрительный IP-адрес просто блокировался. Для этого использовался межсетевой экран, управляемый скриптом наподобие sshguard, swatch или модуль PAM, такой, как pam_abl (про их использование так же написано в FAQ по безопасности Linux).

Однако, на днях несколько исследователей сообщили, что обнаружили изменение в тактике подбора паролей: теперь атакующие используют ботнеты, каждый из ботов делает всего одну или две попытки подбора пароля, что недостаточно для срабатывания блокировки по IP, после чего управление передается следующему узлу ботнета, который делает еще пару попыток, и так далее.

Как мне кажется, для защиты от таких атак можно использовать три метода:

Или два более простых workaround'а:
  • перенести ssh на нестандартный порт;
  • использовать port knocking, установив fwknop, PortKnockO, или что-то аналогичное.

В общем, проблемы парольной аутентификации, видимо, не закончатся никогда. Конечно, надо стараться использовать стойкие пароли и установить pam_cracklib или pam_passwdqc на сервере, потому что надеяться на пользователей тяжело.

solaris, аутентификация, linux, attack, securid, openssh, botnet, пароли

Previous post Next post
Up