chaitin / SafeLine

serve as a reverse proxy to protect your web services from attacks and exploits.
https://waf.chaitin.com
GNU General Public License v3.0
12.07k stars 749 forks source link

[suggestion] Is it possible to implement interception based on behavioral characteristics? #953

Open Ascetic2023 opened 3 months ago

Ascetic2023 commented 3 months ago

背景与遇到的问题

例如: 1、虽然访问地址正常,但不断变化User-Agent。 2、大量访问某一些特殊的地址

建议的解决方案

频率限制基于配合规则。

Lvshujun0918 commented 3 months ago

根据地址,用黑名单拦截一下,或者把人机验证打开.

Ascetic2023 commented 3 months ago

这些地址偶尔访问是正常的,但是持续大量访问(对方有控制频率)就是恶意抓取了。

Lvshujun0918 commented 3 months ago

那可以用人机验证啊。精准的控制频率似乎无法实现。

Ascetic2023 commented 3 months ago

那不能一访问就出现人机验证吧,那对正常用户影响有点大。

我们现在频率限制是基于地址的吧 ,如果增加定义一个规则,符合条件才进入频率计算,可以吗?

binaryYuki commented 3 months ago

852 提出的 ja3指纹 似乎可以比较好的解决这个问题

cc @Lorna0

Ascetic2023 commented 3 months ago

好像是,这个有推进了吗

Lorna0 commented 2 months ago

@Ascetic2023 那不能一访问就出现人机验证吧,那对正常用户影响有点大。

我们现在频率限制是基于地址的吧 ,如果增加定义一个规则,符合条件才进入频率计算,可以吗?

频率限制 不会一访问就人机的。只要在限频 “限制结果” 里选 “人机验证” 就可以了。直接配自定义规则才会一访问就人机。

1、虽然访问地址正常,但不断变化User-Agent。

这种得缓存一段时间的所有请求的 UA,持续进行对比,变化超过阈值之后拦截。开发成本和性能压力都会比较高。看看大家啥意见。

2、大量访问某一些特殊的地址

这个跟下面这两个反馈相似,建议集中到已有 issue 中点赞讨论:

Ascetic2023 commented 2 months ago

@Lorna0 感谢回复。如果能做到基于自定义规则进行频率限制检查,然后进行策略选择,应该能解决此问题场景。