2016-11-11 2 views
0

У меня возникли проблемы с созданием уведомления по электронной почте, когда кто-то пытается атаковать ssh bruteforce на моем сервере с помощью Bro (v2.4.1). У меня есть сценарий Братан, как это который переопределяет максимальный вход на 5 attemps за 24 часа:Bro 2.4.1 генерация уведомления по электронной почте для SSH Bruteforce Attack

@load protocols/ssh/detect-bruteforcing 

redef SSH::password_guesses_limit=5; 
redef SSH::guessing_timeout=1440 mins; 

hook Notice::policy(n: Notice::Info) 
    { 
    if (n$note == SSH::Password_Guessing && /192\.168\.178\.16/ in n$sub) 
      add n$actions[Notice::ACTION_EMAIL]; 
    } 

где 192.168.178.16 это локальный IP моего сервера, и я убедился, что сценарий загружается, включив его в $ PREFIX/site/local.bro. Вывод broctl scripts показывает, что скрипт загружается просто при запуске. Тем не менее, я никогда не получаю уведомления по электронной почте о атаках ssh bruteforcing.

Замечания о соединении, упавшие пакеты и недопустимые уведомления сертификата ssl отправляются по электронной почте только в порядке, так что это не проблема с настройкой электронной почты. Когда я проверяю выход журнала SSH как так:

sudo cat /opt/bro/logs/current/ssh.log | bro-cut -d ts uid id.orig_h id.orig_p id.resp_h id.resp_p version auth_success direction client server cipher_alg 

6-входа не удалось attemps (что я сгенерировал для проверки этого) регистрируются только штрафом в /opt/bro/logs/current/ssh.log:

2016-11-11T14:45:08+0100  CRoENl2L4n5RIkMd0l  84.241.*.* 43415 192.168.178.16 22  2  -  INBOUND SSH-2.0-JuiceSSH  SSH-2.0-OpenSSH_6.7p1 Raspbian-5+deb8u3 aes128-ctr 
2016-11-11T14:45:13+0100  CMflWI2ESA7KVZ3Cmk  84.241.*.* 43416 192.168.178.16 22  2  -  INBOUND SSH-2.0-JuiceSSH  SSH-2.0-OpenSSH_6.7p1 Raspbian-5+deb8u3 aes128-ctr 
2016-11-11T14:45:17+0100  CZuyQO2NxvmpsmsWwg  84.241.*.* 43417 192.168.178.16 22  2  -  INBOUND SSH-2.0-JuiceSSH  SSH-2.0-OpenSSH_6.7p1 Raspbian-5+deb8u3 aes128-ctr 
2016-11-11T14:45:20+0100  CC86Fi3IGZIFCoot2l  84.241.*.* 43418 192.168.178.16 22  2  -  INBOUND SSH-2.0-JuiceSSH  SSH-2.0-OpenSSH_6.7p1 Raspbian-5+deb8u3 aes128-ctr 
2016-11-11T14:45:25+0100  CHqcJ93qRhONQC1bm4  84.241.*.* 43419 192.168.178.16 22  2  -  INBOUND SSH-2.0-JuiceSSH  SSH-2.0-OpenSSH_6.7p1 Raspbian-5+deb8u3 aes128-ctr 
2016-11-11T14:45:28+0100  CdV0xh1rI4heYaFDH2  84.241.*.* 43420 192.168.178.16 22  2  -  INBOUND SSH-2.0-JuiceSSH  SSH-2.0-OpenSSH_6.7p1 Raspbian-5+deb8u3 aes128-ctr 

Однако я никогда не получаю уведомления об этом по электронной почте. Единственная причина, по которой я могу думать, - это пароль для входа в систему с отключенным ssh, поэтому, возможно, вход в систему без закрытого ключа не запускает события ssh_failed_login в Bro? Столбец auth_success в приведенной выше таблице показывает «-» для неудачных попыток входа в систему, тогда как успешный логин показывает «Т», так что, возможно, это должно быть «F» для того, чтобы событие срабатывало?

Любая помощь или предложения приветствуются!

ответ

1

Из-за шифрования SSH нам приходилось прибегать к эвристике для обнаружения успешных и неудачных аутентификаций. Эти эвристики улучшились во времени, но все еще далеки от совершенства. Если столбец «auth_success» не установлен, как в приведенных вами примерах, это означает, что Bro не смог сделать предположение, если логин был успешным или нет.

Причина, по которой сценарий обнаружения грубой силы не работает, заключается в том, что он никогда не обнаруживает неудачный логин. Ваше подозрение в конце вашего вопроса верное.

+0

Ну ладно, это справедливо. Спасибо за ваш быстрый ответ, спасая меня от нескольких мучительных часов! Поскольку я единственный, кому разрешен доступ через SSH, и он обнаруживает мои успешные логины, я напишу обработчик события ssh_auth_result и проведу любые другие результаты, кроме succesfull, в качестве альтернативного решения. – lange

+0

кроме этого также срабатывает при сканировании в обычном порту. – lange

Смежные вопросы