最近百度云防护升级了CC防御功能,其中重点是增加了JA3指纹特征拦截,主机帮一直在研究这个功能,原因是这个功能太好用了!简直是拦截网络爬虫利器。
我们都知道现在的网络爬虫、CC攻击工具都是可以通过不断的更换IP、更换浏览器UA来躲过防火墙拦截。而JA3指纹却是无法通过更换IP和浏览器UA来改变的。
A3 是什么?
JA3 是 2017 年由 Salesforce 提出的一种 TLS 指纹算法。它把客户端在 TLS 握手阶段发出的 Client Hello 报文中五个字段(TLS 版本、Cipher Suites、Extensions、椭圆曲线、点格式)按固定顺序拼接后按固定顺序拼接后做 MD5,得到 32 位哈希——就是 JA3。同一款攻击框架(httpx、Go-httpx、Python-requests、Nim-HTTPToolkit)在默认编译参数下,JA3 几乎不变;而真人浏览器每次升级大版本才会变动,于是 JA3 成了“客户端 DNA”。
为什么它让黑产头疼?
1.代理池只能换 IP,改不了 TLS 握手字节;
2.UA 字符串随便写,对 JA3 毫无影响;
3.随机化 Cipher 需要重编 TLS 库,攻击脚本成本瞬间从“几行代码”上升到“重新发行版”。
结果:百万 IP、千套 UA,在百度云面前只等于“同一个 JA3”,一秒内请求超过阈值即被集体拉黑。
百度云防护怎么用JA3指纹拦截?
控制台→Web防护→CC 防护→新增“添加规则”:
规则名称:JA3指纹拦截
防护类型:精准自定义CC
匹配条件: JA3 等于多值之一
输入黑客工具的JA3指纹(如果不知道多少的这个看后面)
统计信息:IP
统计时长:10秒 阈值:2 处置时长:3600秒
选定域名》确定即可。

如何知道黑客工具的JA3指纹?
我们可以通过把黑客的某一个IP用百度云防护拦截,再进入攻击日志查看,就可以知道对方指纹多少了。
如下图操作:

进入百度云防护攻击详情,找到CC防护,搜索被拦截的IP

点击查看攻击详情,即可看到这个IP的JA3指纹,然后我们复制下来,保存到上面的拦截指纹规则中即可。

小结
IP 会漂、UA 会撒谎,但 TLS 握手字节不会说谎。百度云这次把 JA3 拉进 CC 防御,相当于给防火墙装上了“指纹锁”——换多少壳,都认得你。主机帮亲测:一旦用上,就再也回不去“纯 IP 时代”了。