UEWAF免费月系列:如何防御恶意BOT流量?(上)

百家 作者:Ucloud 2017-07-07 09:56:10

互联网安全公司 Imperva Incapsula 公布的2016年Bot Traffic Report(bot流量报告)显示,恶意bot流量占整体网络流量的比例高达 28.8% 。

恶意bot流量会造成服务不可用、可用性降低、用户体验降低、数据被爬、网站漏洞安全问题、业务故障,导致企业数据被爬、接口被刷、CC攻击等,将给企业带来极高的风险和难以估计的损失。

为了保障网站平台的正常运行,企业要如何防御恶意bot流量?本文将分别从运营人员、技术人员各自采用的方案来做详细介绍。

运营人员采用的方案

作为网站运营人员,当网站受到恶意bot攻击时,例如爬虫、扫描类行为,通常有以下两种解决方法:

  • 查看请求日志,如apache的access日志,人工扫描分析日志内容并发现异常,可识别出恶意bot。

  • 限制源IP的请求速度。虽然方案简单,但对阈值的设置要求很高,不适用于以下4种场景:

    1)秒杀、抢购等业务导致的瞬间请求激增;

    2)代理模式,诸如大多数高校机构、手机运营商的网关;

    3)存在大量资源文件的页面,会导致请求该页面时的关联请求激增;

    4)复杂业务本身会提供一些接口给其他服务,速率的浮动范围很大;

    因此,在没有理想阈值的条件下,限制源IP请求速度会导致较高的误报率,相比恶意 bot带来的危害,高误报引起的后果对企业而言或许更加严重。

  • 钓鱼。正常的bot会请求robots.txt文件,然后遵循robots.txt描述进行后续的bot行为(robots.txt是一种君子协议,对允许和不允许bot访问的内容进行标记)。借用此机制,如果在robots.txt中将一个不存在的url标注为拒绝,然后在网页中内嵌这个隐藏的url连接,意味着human不会点击到这个连接,但恶意bot则有很大访问概率。

    不过,如此一来事情就简单很多,只需在日志里过滤访问这个url的IP即可。但这种防御方法只能对抗低级的恶意bot,攻击者绕过此检测机制,也仅需一行代码控制bot不请求上述url即可。

  • IP 白名单。攻击者一般会将ua伪造成正常搜索引擎的ua或者普通浏览器的ua。白名单机制对前一种伪造方式有效果,建立起一套ua和IP白名单库,即可识别出伪造的ua。但成本会提高很多,需要维护ua和IP的白名单库,而且对第二种伪造的普通ua无效。

优点:成本低廉,操作简单,能抵御绝大多数低级的恶意 bot 。

缺点:适用性较差。

技术人员采用的方案

技术人员采用的方法则多依赖技术特征的局限性生效,一般有以下5种技术解决方案:

1、 cookie支持

bot是一个网络程序,如果这个程序写的简单,它通常不支持cookie,但cookie是浏览器支持的特性。利用这个特性可以在服务端写入cookie,然后检查请求所带来的cookie 方式以查证是否为bot,而由于让bot支持cookie的时间成本很低,所以该方法的效果比较有限。

2、javaScript支持

由于cookie门槛低,所以比较容易想到浏览器支持的js技术。如果一个普通的bot程序支持js,问题虽然会复杂许多,但也可以实现。

3、设备指纹技术(浏览器指纹)

设备指纹技术是计算关于浏览器的50+以上属性参数的hash值,甚至更高级收集客户端的动作,比如鼠标点击信息、返回等。近期流行的画布(canvas)指纹技术,其基本含义就是调用设备接口生成一个复杂定义的图像,由于硬件配置、软件版本等因素影响,生成的图像在像素级别存在一定区别,可作为一种指纹。

bot支持js,而不是浏览器,或者bot的ua和指纹不匹配,都很容易识别。但对于一些高级bot,这个方案也有局限性:

  • 很多bot作为浏览器插件方式工作,或者通过修改浏览器而实现,因此同样会返回正确的设备指纹来伪造成一个真实的浏览器或者移动终端;

  • bot篡改指纹信息返回,服务器端无法校验指纹信息的伪造性。这种机制很容易被开发bot的团队绕过,因为目前ssl体系主要使用服务器身份校验,绝大多数网站还没使用https,要引入非对称体系的加密通信或客户端身份校验,在现阶段还无法实现。当然,如果有一天客户端身份都能被验证,安全问题就简单多了,许多公司拥有专门爬虫团队和反爬虫团队,用于爬取竞争对手数据和反竞争对手爬自己的数据;

  • 设备指纹冲突概率较高,代理机器很多是云主机或者其他方式统一装机的机器。完全相同的硬件、操作系统版本、软件版本导致算出来的指纹是一样的,因此会使误报率增高。

4、 行为分析技术

上面提到bot会使用浏览器插件模拟人的请求行为,例如鼠标点击,单纯的判断鼠标是否点击不足以判断恶意bot,恶意bot最终都会请求web服务。“恶意”是表现在“行为”上,行为是一个抽象概念,因此难度也很高。

恶意bot访问目标的url资源,以及它提交的这些参数构成本质上的“恶意行为”,上面提到许多恶意bot的技术都是为此目标服务的。越来越多的移动终端对服务请求的表现本身已经不是浏览器行为,如果不使用行为分析技术,就都会触发误报。

行为分析技术一般是安全类公司的实现方案,具体方案上还存在一定区别,包括简单分析客户点击节奏、时间等属性,也有比较复杂的学习模型。作为乙方公司,通常难以实现到行为分析模型这一级别,主要出于成本、技术的考量。

5、 IP情报技术

IP情报的价值在于一个简单的道理:正常IP(客户端)在相近时间范围内表现出的活动多为正常,异常IP则相反。例如,被用来发起ddos攻击或者cc攻击的代理或“肉鸡”,并不会只发起一次攻击,而是长期到处发起攻击。

IP威胁情报多作为辅助技术使用,不仅方便,而且对发现的潜在威胁,结合IP情报信息会使判断更准确。对于网络恶意bot而言,攻击方几乎都是使用代理或者“肉鸡”来请求数据,情报是非常有价值的。

攻击方使用自己关联的IP容易被追踪,从而遭到法律起诉。目前依据国内法律和起诉经验,爬数据一类案件能够胜诉则需要被爬方保留足够的证据,同时外加一部分运气。




关注公众号:拾黑(shiheibook)了解更多

[广告]赞助链接:

四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/

公众号 关注网络尖刀微信公众号
随时掌握互联网精彩
赞助链接