我正在使用Suricata建立一个入侵检测系统(IDS)。我想要编写一个自定义规则,每当我的虚拟机出现失败的登录尝试时,该规则就会生成一个警报。
示例:
提醒tcp任何-> $HOME_NET 22 (msg:"SSH Brute Force尝试“;flow:to_server;content:”SSH“;nocase;偏移:0;depth:4;detection_filter:track by_src,计数2,秒2;sid:2005;rev:1;)
我尝试了各种SSH规则组合,但无法在Suricata部分看到任何警报,而SSH尝试多次失败。( =>使用无效密码生成警报的错误尝试)
请让我知道该怎么做。
发布于 2017-12-20 14:54:29
由于您确实试图查看加密的内容(这是身份验证和随后的失败消息的位置),因此Snort/suricata并不是以您描述的方式使用的理想工具。相反,日志监视将是一种更好的方法。
然而,还有其他的选择。您可以查看Fail2Ban,以便在IPTables级别进行自动阻塞。
如果您真的想要使用Snort/Suricata,可以使用警报阈值。例如:
alert tcp $EXTERNAL_NET any -> $HOME_NET 22 (msg:"Possible SSH brute forcing!"; flags: S+; threshold: type both, track by_src, count 5, seconds 30; sid:10000001; rev: 1;)
这会告诉Snort/Suricata在30秒内从单个源看到5个连接的阈值时,对入站连接(设置SYN的入站数据包)生成警报。阈值“两者”表示,在此阈值通过之前,它不会发出警报,并且它只会生成一个通知您的警报,而不是开始用警报淹没您。
注意,我已经将flags
标记为S+
。别只用SYN。请记住,ECN已经成为一个真正的“事物”,您可能会发现Snort/Suricata仍然称为“保留”的两个位是由于ECN协商而设置的。
https://stackoverflow.com/questions/47742405
复制相似问题