黑灰产攻防对抗--中睿天下代理秒拨IP防护研究

01 网络攻击代理现状

随着攻击者防溯源和绕过防护意识的加强,攻击者进行网络攻击时常使用代理IP进行攻击,防止非法攻击时被追踪到身份信息。目前常见的代理方式有socks代理、HTTP/HTTPS代理、VPN、秒拨等。

对于企业来说,通过SOAR类平台可实现无人值守自动拦截,传统的代理方式在节点有限的情况下无法突破防御。所以秒拨、商业代理、自建IP池等技术越来越受攻击者青睐,此类技术一般基于大量IP的代理池通过socks、HTTP、HTTPS方式频繁的切换代理IP,IP资源可谓取之不尽用之不竭。即使被攻击单位能够对攻击IP进行自动封禁,但是面对海量IP的攻击,该防护方式依旧会显得十分被动;在秒拨技术的加持下,对攻击者来说,被攻击目标单位的拦截阻断策略相当于“失效”。

目前代理技术可达到

1、 代理ip无法访问目标ip时自动切换ip;(对抗自动封禁);

2、 完成一次HTTP会话后自动切换ip;(对抗阈值类安全策略);

3、 产生定量的TCP会话后自动切换ip;(对抗阈值类安全策略);

4、 自定义时间周期切换ip;(对抗摸索到安全策略阈值的防护);

5、 根据目标ip/域名/url 的不同使用不同ip代理池和切换策略;(用精细化的方式对抗集中管控类安全防护策略,如api网关。

02 安全防护现状

针对网络攻击的防护一般是通过WAF和防火墙等串联设备对攻击IP进行封禁,WAF通过应用层数据检测,发现攻击行为,从而对此次攻击行为进行单次TCP会话阻断或对攻击IP进行封禁;传统的防火墙通过录入IP的方式从网络层对IP进行封禁,目前安全建设做的较好的单位可以通过其他安全检测设备联动防火墙对攻击IP进行自动封禁。

无论是WAF还是防火墙,对于封禁IP的数量是有一定限制的,因为封禁IP数量越多对设备造成的性能压力会越大。该防护情况下,如果攻击者使用秒拨技术进行攻击,每攻击一次换一个IP,拦截设备不停的对IP进行封禁,很快就会到达性能瓶颈,失去防护能力。

03 传统代理攻击防护

针对代理攻击,目前市面上常见的防护手法为通过验证码、浏览器用户行为、User-Agent头、访问频次、IP黑名单等方式,基本为黑白名单加真人/机器人识别的组合方式,策略的最终落脚点目标为IP,具体防护方法如下:

01 验证码识别真人用户

通过图片验证码对用户进行真人校验。该方式可有效拒绝非真人用户的访问,但是对于简单的图片验证码,可通过脚本实现自动化的识别进行绕过,而复杂验证码则会影响用户体验。并且验证码是基于IP判断的,对于能频繁更换IP的秒拨无效。

02 用户行为分析

在前端和后端对用户访问行为进行建模分析,发现异常访问行为并警示或阻断。例如通过判断客户端是否加载运行JavaScript代码判断是否为人为浏览器访问;特定页面需要某个入口才能访问,如果用户没有经过入口直接访问该页面,则判定访问行为异常。该方式需要针对业务系统进行定制化的分析建模,且有一定的开发量,对于业务系统较多且复杂的单位来说实现难度较大。

03 基于IP属性和情报研判

通过原IP属性和情报,定位访问用户的身份。例如原IP近期被标记为僵尸网络IP,原IP为IDC机房固定IP,则判断为代理IP访问。该方式对IP的属性和情报的时效性和可信度有较高的要求,容易出现误判。

04 访问者身份标识

传统的身份识别方式多数是基于账号或者IP识别的。由于IP的动态性和共用性,导致通过IP识别身份极为不准确;账号识别虽然相较于IP识别准确度较高,但是对于无需登陆的访问行为则无法识别访问者身份。

通过浏览器指纹追踪技术,基于访问者客户端信息对访问者进行身份锁定,则可以很好的识别访问者身份。

04 新型代理攻击防护

对于具备团队作案和编程能力的攻击者组织来说,结合业务防护的特性编写定制化切换代理的黑客工具,可有效绕过上述的防护措施,所以如何高性价比的提高攻击者成本,是对抗代理ip攻击的核心目标。

通过客户端信息生成用户浏览器指纹绑定用户身份的方式,非IP或者账号绑定,进行用户身份锁定,即使用户更换IP后,依旧可以通过客户端信息识别到用户身份,从而针对有威胁行为的用户进行访问控制。

对于无法识别身份的用户,定性为非真人用户,异常访问,则可以进行访问控制。

01

通用指纹锁定用户ID身份进行无感拦截

02

概述

互联网绝大多数服务都是web服务,用户访问web服务都是通过浏览器进行访问。可通过javascript采集用户浏览器信息(包括无头浏览器)、操作系统信息、硬件信息、网络信息等,包括浏览器类型、浏览器版本、浏览器插件信息、操作系统版本、硬件供应商、屏幕分辨率、屏幕亮度、cpu型号、硬盘大小、互联网IP、时区等。

每个用户的上述信息不尽相同,结合这些信息通过一定算法可生成唯一用户ID对用户身份进行锁定。

03

防护方式

JavaScript是所有网站都会使用的开发语言,该语言可以在用户的浏览器运行,利用JavaScript运行在客户端的特性,可以使用该语言对用户的浏览器信息、操作系统信息和硬件信息进行采集,然后根据采集的信息进行运算,得到一个用户标识,该标识会一直对其对应的用户进行绑定。即使攻击者使用秒拨技术不停的更换IP、浏览器头,甚至更换脚本语言,只要攻击者无法破解生成用户ID的算法(或者破解该算法的成本过高), 即可以锁定该攻击者身份。

采集指纹的JavaScript可以配合应用层waf、负载均衡、api安全网关或者Envoyproxy之类的技术进行无感嵌入,该技术同样适用于嵌入CDN服务商作为增值服务,直接通过业务网站返回到用户的浏览器,也可通过反向代理的方式。

采集指纹的JavaScript到达用户浏览器后会自动执行,将采集的信息回传至服务端,此时服务端根据采集到的信息进行运算生成唯一用户ID,然后和当前已有的唯一身份ID对比,如果命中,则说明此次访问的用户以前访问过该业务系统;否则将其当作新用户访问,生成新的唯一身份ID,供后续该用户访问时进行身份识别。此时就实现了用户身份绑定。

实现用户身份绑定后,可以结合网络攻击行为检测,对有攻击行为的用户ID进行标识,此时即使攻击者更换IP依旧可识别其攻击者身份,配合串联的应用层代理设备进行应用层的阻断拦截,从而达到攻击者无限更换IP也无法继续访问的效果。

04

实践案例

在公网服务器搭建用户身份追踪系统,分别切换代理IP、浏览器User-Agent和浏览器无痕模式进行访问,最终得到的身份ID是固定不变的。

序号

切换客户端信息

身份ID

1

IP:36.xx.xx.43

72CCXQOEPFhe5yed2K7S

2

IP:34.xx.xx.71

72CCXQOEPFhe5yed2K7S

3

浏览器UA:Chrome

72CCXQOEPFhe5yed2K7S

4

浏览器UA:IE 10

72CCXQOEPFhe5yed2K7S

5

浏览器UA:WP 8

72CCXQOEPFhe5yed2K7S

6

无痕模式

72CCXQOEPFhe5yed2K7S

表 测试结果

图 实践案例演示

05 其他同类型技术解决方案

01远程浏览器隔离技术(RBI)

RBI 系统的核心功能是将浏览器数据从远程浏览器流式传输到用户的本地端点,RBI 系统需要处理用户事件(击键、滚动、鼠标点击等),将它们与相应的网页元素匹配,检测打开的标签页的变化,并以视频或经过消毒的网页的形式发送给用户,目前市面对应用常用于防止企业内部人员点击恶意链接类(如钓鱼网站、水坑攻击),同时也可以反向用于对外服务网站的保护,在原有的远程浏览器流式传输的基础上加上JavaScript的重新渲染,从根本上解决可交互参数引发的漏洞、爬虫、越权等问题。但由于该技术导致的服务端性能成本高、可扩展性差和用户体验下降等问题尚未较好解决,目前还未有成熟的大规模推广。

02利用JavaScript进行真人识别

利用JavaScript的反爬虫技术判断请求是由真实的浏览器发起,还是由脚本或者bot发起,目前主流的有三种方式:

基于User-Agent:最简单的检测爬虫方法是检测请求HEADER中的User-Agent,防御方需要收集所有的爬虫,脚本语言,扫描器对应的User-Agent指纹,这种方法非常容易被绕过,几乎没有增加攻击成本。

基于JS-Injection:稍微进阶的爬虫检测方法,就是注入js,这个方法也是目前业界广泛使用的,在第一次访问请求时,返回注入的js,js执行一些计算逻辑,并将其放入cookie,再次发起请求验证,验证成功后,server向client发放一个token放在cookie里,以后的所有请求都需要携带该cookie标识已认证为非bot身份,同时也可以结合验证码认证。这种检测方法基于大部分非浏览器爬虫无法执行js脚本这个前提,攻击者如果分析注入的js的执行逻辑,然后用脚本去实现该逻辑运算,通过这种方法可以提供攻击成本,过滤很多不专业的工具/脚本攻击者。

基于Machine-Learning:通过机器学习,对访问请求进行建模,根据访问频率,访问路径,判断是否是爬虫行为,这种检测方法延迟较高,无法及时去主动防御,多数结合安全运营进行阶段性告警回溯。

上述的方法从技术原理来说和本次讨论的通过javascript收集用户信息通过算法进行唯一性指纹运算基本一致。

不同点分为三点

①是对于身份唯一id的生成在服务端运行,对攻击者来说算法不可见,绕过和破解难度更大;

②未来收集一定量访问的客户端信息后,可结合人工智能优化精确唯一身份的算法,更大程度提高了攻击成本,形成攻防不对等的局面;

③在安全开发阶段,可利用此技术将Web用户身份管理形成标准,嵌入开发流程,实现可跨系统,可分业务的用户画像追踪,解决收费账户共享、用户访问追踪的问题,也可以为后续的业务安全大数据计算提供数据支撑。