Bro 2.4.1 为 SSH 暴力攻击生成电子邮件通知

Bro 2.4.1 generating E-mail notice for SSH Bruteforce Attack

当有人试图使用 Bro (v2.4.1) 对我的服务器进行 ssh 暴力攻击时,我无法生成电子邮件通知。我有一个像这样的 Bro 脚本,它将最大登录尝试重新定义为每 24 小时 5 次:

@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 暴力破解攻击的电子邮件通知。

连接摘要、丢弃的数据包和无效的 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 次失败的登录尝试(我为测试此生成的)记录在 /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 的密码登录,所以也许没有私钥的登录尝试不会触发 Bro 中的 ssh_failed_login 事件? table 上方的 auth_success 列显示失败登录尝试的“-”,而成功登录显示 "T",因此也许应该是 "F",以便要触发的事件?

非常感谢任何帮助或建议!

由于 SSH 被加密,我们不得不求助于启发式方法来检测成功和不成功的身份验证。随着时间的推移,这些启发式方法得到了改进,但仍远非完美。如果 "auth_success" 列未设置,就像您提供的示例中那样,这意味着 Bro 无法猜测登录是否成功。

暴力破解检测脚本不起作用的原因是它从未检测到不成功的登录。你在问题末尾的怀疑是正确的。