我正在寻找一种有效的方法来识别帐户暴力强制。 我的日志数据库包含验证日志条目。每个条目都有:
我想生成一份报告,指出哪些登录遭到攻击。攻击被定义为:在相同IP地址的N分钟(例如10)内成功登录尝试之后没有成功登录尝试。测试用例是:
我可以想象一个使用O(n * log(N))解决方案的解决方案:游标遍历每个记录,然后使用另一个游标进行查找以便以后记录来确定活动。效率很低。
DB无关紧要:SQL,MySQL,nosql等数据可以轻松转换。
答案 0 :(得分:2)
按5分钟的时间间隔对日志项进行分组。对于超过警报阈值一半的所有群体,执行更昂贵但完全正确的检查。
这可能会过滤掉几乎所有不是真正攻击的日志项。分组操作易于编程和快速执行。
答案 1 :(得分:0)
根据您愿意花在这个复杂事件处理上的工作量可能是一个选项。如果你使用Java,那么就像Esper这样的框架。
我们的想法是根据您的服务器日志(或SQL结果)创建一个事件流,并让Esper检查相关性。 See example query