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

时间:2016-11-11 14:18:20

标签: security ssh bro

当有人尝试使用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

在/opt/bro/logs/current/ssh.log中记录了6次失败的登录尝试(我为测试它而生成的):

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事件?上表中的auth_success列显示失败的登录尝试的“ - ”,而成功的登录显示“T”,所以也许应该是“F”以便事件触发?

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

1 个答案:

答案 0 :(得分:1)

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

强力检测脚本无法正常工作的原因是因为它从未检测到不成功的登录。您在问题结束时的怀疑是正确的。