Loading
0

探索如何防御恶意bot流量

5.ip情报技术
IP 情报的价值在于一个简单的道理:正常的 IP(客户端)在相近时间范围内表现出的活动多为正常的,异常的 IP 则相反。例如被用来发起 ddos 攻击或者 cc 攻击的代理或者肉鸡,并不会只发起一次攻击,而是会长期的到处发起攻击。
国内方面,微步在线作为一个威胁情报提供商。 IP 威胁情报多作为辅助技术使用,而且很方便, 对于发现的潜在威胁,结合 IP 情报信息使判断更准确。对于网络恶意 bot 而言,攻击方几乎都是使用代理或者肉鸡来请求数据,情报的价值是非常有用的。
攻击方使用自己关联的 IP ,容易被追踪而导致法律起诉的问题,目前依据国内法律和此方面的起诉经验,爬数据这类能够胜诉需要被爬方保留足够的证据外加一些运气成分。
三.UCloud的解决方案
UCloud 安全中心产品 UEWAF 的 bot 检测引擎作为向外输出的安全方案,使用基于机器学习技术的行为分析技术 + 创新的信息熵检测机制 + IP 威胁情报技术 。 目前基于机器学习的分析模型是bot检测最有前景的方向。 UCloud 假定客户访问不仅仅是通过浏览器,移动端的非浏览器的终端同样兼容。bot 行为,不论正常或者恶意,相对于人为操作的行为而言,都是一种“异常”。从过去的经验看,人不会触发这些 bot 行为。
1.行为分析技术
“行为”是有时间维度上属性的,发生的行为是一系列动作在时间维度上的偏序关系,动作是客户端发起的请求的抽象。行为分析模型首先会动态追踪活动的会话,模型会智能的选择合适的检测时机触发评估逻辑。
例如一个爬虫 bot ,不论它做深度优先还是广度优先的遍历,或者改进的针对特定模式 url 的爬虫时,不论它访问频率是高是低,请求资源表现出的偏序关系是异常的。这种偏序关系里即包含了“异常”的来源。

将访问的 url 看成随机变量,大家知道 http referer 表示当前页面是从哪个页面链接过来的。因此直观上,url 的转换是一阶马尔科夫过程。也可以当做多阶马尔科夫过程,本质上是多阶马尔科夫过程,但是为了简单化,一阶也足够。
形象化描述就是比如一个购物网站,用户访问的路径可能为先登录,或者不登录直接进入主页搜索商品,或者逛街一样的浏览首页上的商品,查看类似商品选择购买或者不购买,最后退出。这就是一个合理的访问。假如一个访问一直在访问某类商品的价格,它是一个不合理的访问。如何度量这种合理和不合理呢?隐马尔科夫的预测问题即可描述。
隐马尔科夫原理图示:

url 通过抽象泛化为标识,如果不泛化会导致观测状态数量巨大,降低模型速度同时也会导致过拟合。隐马尔科夫的学习过程是无监督的,极大的方便了行为模型基线的建立,此学习过程是随着时间持续进行的。
在学习过程中,有异常数据混入怎么办?其实这并不影响基线数据的建立,基线最终的阈值可以使用数学方法进行去除异常点。正常的东西总是很相近,但是异常的东西之间存在很大差异,模型基线的建立是允许有噪音数据的。模型用于异常检测,并不是直接输出 bot 的标识,后续还有异常的分类识别。
行为分析采取的技术可不限于隐马尔科夫模型,例如贝叶斯网络,马尔科夫随机场这种学习的概率模型都可以完成这个任务。概率模型的一个巨大优势是计算性能高,可以将识别过程实时化处理。
UCloud 结合HMM 检测模型,资源泛化模型,会话追踪技术和评估智能触发算法成功的将行为模型在工程上实践应用,并且达到优异效果。实测搜索引擎的 bot 检测中,准确率达到98.6%。机器学习的误报和漏报是不可避免的,下面讲解到的熵检测机制和 IP 情报技术正用于此目的。
2. 创新的信息熵检测机制
信息熵可以用来衡量离散随机事件的出现概率。对于网络资源的访问,这里被当成一个离散事件。网络 bot 请求资源时,时间间隔上存在不同:人是依据主观需求对目标资源进行点击触发,而 bot 是程序设定好的,例如间隔多久,或者伪造随机时间触发等。
人在请求资源的时候,下一个请求和上一个请求是否存在关联?答案是肯定的,因为正常的人不会随机乱请求 url 资源。因此这也会导致时间间隔随机变量和上一个值也是存在关联性。本质上,至少是一阶马尔科夫过程。如果认为当前的请求和前面的多个请求都有关系,那就是多阶马尔科夫过程。
UCloud 使用创新的信息熵算法来检测会话的异常值度量。如果攻击者 bot 使用伪随机的时间间隔发起请求,该算法还能检测出来么?答案是的。大家可能疑惑,随机请求肯定会导致熵的增加,代表着系统的规律信息的减少。但是我们的熵算法也是会学习进化的,同样能检测出这种 bot 的请求。请看下面测试数据:

上图是检测出的恶意 bot 的会话的熵值,右图是正常人访问的熵值,纵坐标表示熵值,横坐标是迭代次数。很容易区分这两者的区别。不仅在值上区别明显,而且模式上也有很显著的区分度。重点说明,左图下面的 3 条线分别对应着完全随机 bot 30s/20s/10s 随机的时间间隔发起请求的熵值,算法取得了很好的效果。(涉及技术算法保密性问题,这里不透露具体实现细节)
攻击者需要绕过这两种检测方法比较困难。极大的提高 bot 的成本,也是 bot 检测的目标之一。

分页阅读: 1 2 3
【声明】:8090安全小组门户(https://www.8090-sec.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们:邮箱hack@ddos.kim,我们会在最短的时间内进行处理。