训练特征
网址
yezi1000告知了训练使用的特征,如下面列举的,基本涉及了应用层、会话层、传输层、网络层等几个网络层级,也包括了URI/METHOD等显著参数的分布数据,还有频率和流量基线,用到的特征很全面了
Raw Packet
TCP Session CTX
TLS Session CTX
HTTP Request CTX
記錄到我們的數據倉庫中用於深度學習並生成深度學習防禦模型
我們會通過學習得到
設備類型
OS資訊和癖好
Client資訊和癖好
TCP Session Flow生命週期內的
URI請求分布
Method類型分布
TCP Handshake Timing baseline
TLS Handshake Timing baseline
H2 Handshake Timing baseline
Rate baseline
Flow baseline
Retrans baseline
Multi-layer指紋
一些容易被干掉的情景
简单的用http库爬取数据,这种比较好辨认,因为很少有keepalive的,每次都要重新握手一遍
反代,虽然URI/Method的分布和真人接近,但tls/http指纹单一,且频率和流量基线明显不对
Flood流量,抵御Flood应该很拿手
容易被误伤的
这种模型依赖分布来保护大多数用户的使用,屏蔽掉在分布之外的小众(异常)流量。
如果不做特定的宽容政策,有些真人但用户量小的流量可能会被误伤,比如linux系统下的浏览器。也可能是因为linux浏览器多用于爬虫的原因。
小众浏览器,原因同上
难以预防的
无头浏览器,无头浏览器在上面提到的大部分特征上都与真人一致。仅仅Rate baseline/Flow baseline有可能有细微差别
为了抵抗无头浏览器,需要扩大时间窗口,增加记忆体储存。如果付出更大的代价,是可以预防的,但性价比不高
超级难以预防的
分布式的无头浏览器,降低单个ip的基线Rate baseline/Flow baseline,随机分布到若干个来源的ip。基本和真人无异了。
可以改进的
hostloc用的discuz3.4,从技术上讲属于比较久远的产品,请求返回的内容多是静态资源,动态的请求和交互占比很少。
这意味着,无头浏览器导航到一个url后的表现和真人差异很小
而一些现代框架的网站,大部分使用动态内容渲染,有很多通过用户交互后请求后端然后前端动态生成的内容
这种动态越多的框架,用户交互表现在流量上的特征越明显,也就更容易区分真实流量和机器人流量
如果加入一些简单的js,当用户滚动页面、点击内容、移动鼠标等等给后端简单发一些report的包,会增加很多特征,电商网站为了区分机器人抢购会使用类似手段。
转:https://clochat.com/t/topic/520