0

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

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

4

1 回答 1

1

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

蛮力检测脚本不起作用的原因是它永远不会检测到不成功的登录。您在问题末尾的怀疑是正确的。

于 2016-11-11T14:26:32.267 回答