Akamai的形成与风控分析:聚焦Akamai 3.0
## Akamai的形成与发展
Akamai Technologies成立于25年前,最初是为了解决互联网拥塞问题而创建的。公司通过创新性的数学调度算法,提前将用户流量部署到最近的节点,从而改变了内容交付格局,有效缓解了互联网拥塞问题 <mcreference link="https://www.365master.com/show-11-12444-1.html" index="1">1</mcreference>。经过多年发展,Akamai已经构建了全球最大的内容分发网络(CDN),拥有:
- 1000Tbps的容量
- 4000+边缘入网点
- 1200+网络
- 750+个城市
- 130个国家/地区的覆盖
Akamai的业务范围从最初的内容交付网络(CDN)逐步扩展到网络安全领域。十多年前,Akamai进入安全领域,建立了全球最广泛的分布式DDoS防护平台,并逐步拓展到应用层防护、API防护和Bot爬虫欺诈管理
近年来,随着云计算场景的发展,Akamai又积极进军云计算市场,推出了Akamai Connected Cloud,提供简单、开发人员友好、透明价格的公有云方案。
## Akamai的风控系统
Akamai的风控系统是其核心竞争力之一,特别是其反爬虫系统,被广泛应用于保护网站避免遭受攻击以及保障API数据安全 。
### Akamai风控的防护手段
Akamai的防护主要有两个方面:
1. **HTTPS请求层面的防护**:通过检测ja3指纹等技术识别非正常浏览器请求
2. **浏览器信息收集与风控拦截**:收集当前浏览器信息,进行风控分析和拦截
### Akamai 3.0版本的风控特点
Akamai 3.0是其反爬虫系统的最新版本,相比之前的版本有显著的升级:
1. **数据采集机制优化**:sensor_data的键值表示方式由原先的数字标识转变为更为灵活的字符键
2. **用户体验优化**:移除了原有的canvas验证步骤,提升用户体验
3. **数据处理增强**:系统成功采集了两组庞大的数据数组,长度分别为23位和30位,增强了数据处理的准确性和效率
4. **Cookie集成**:v3版本明确使用cookie数据进行加密,增强了每个payload的安全性和唯一性
5. **脚本依赖哈希**:与v2不同,v3加密严重依赖实时JavaScript文件哈希,使静态逆向工程更加复杂
6. **复杂性和安全性**:整体加密复杂性大幅提高,提供了更强的自动化攻击防护
### Akamai 3.0的加密与解密流程
Akamai 3.0采用了复杂的两步加密算法:
1. **元素洗牌**:
- JSON负载数据首先转换为冒号分隔的字符串
- 字符串中的元素使用伪随机数生成器(PRNG)进行洗牌,该生成器使用从Akamai JavaScript中提取的唯一文件哈希进行初始化
2. **字符替换**:
- 洗牌后,字符串中的每个字符都会被替换为另一个字符
- 这种替换使用另一个PRNG,该PRNG使用cookie派生的哈希(通常来自bm_sz cookie)作为种子
### sensor_data参数分析
Akamai 3.0的核心是sensor_data参数,这是一个包含浏览器环境信息的加密参数。通过分析,sensor_data参数是由58长度的数组进行拼接加密生成的。
主要包含的信息有:
```json
{"ver":"hYLXImDOnRR5eDAgk63ANnTyi5pMbcxsxh3tyRozcUc=", "fpt":"-1","fpc":"94", "ajr":"45921|31341", "din":[{"wow":2560},{"nap":"Gecko"},{"nal":"zh-CN"},{"ucs":"8102"},{"ran":"0.476463975238"},{"she":1440},{"ua":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"},{"swi":2560},...]} <mcreference link="https://blog.csdn.net/wh00011/article/details/145028737" index="1">1</mcreference>
```
其中,canvas指纹和运动轨迹是最重要的参数,特别是canvas指纹不能随机伪造,需要收集真实浏览器的指纹进行替换 <mcreference link="https://www.cnblogs.com/xiaoweigege/p/17455532.html" index="2">2</mcreference>。
### Akamai风控验证流程
Akamai的风控验证主要通过_abck这个cookie值来进行校验:
1. 请求HTML文档会返回一段JS链接,使用GET请求获取实时的JavaScript代码
2. 使用获取到的代码生成加密参数sensor_data
3. 使用POST请求提交sensor_data到JS链接
4. 如果参数正确,返回的set-cookie中的_abck值中间为0,表示获取到正确的cookie
5. 如果参数错误,返回的是-1
获取到有效的_abck后,就可以请求网站的内容,但_abck是有时效的,被403拦截后需要重新请求生成。
## Akamai的反机器人工具
Akamai提供了专业的反机器人工具,用于区分好机器人和恶意机器人:
- **好机器人**:执行有用任务的机器人,如聊天机器人、监控机器人、搜索引擎机器人等
- **恶意机器人**:用于恶意目的的机器人,如社交媒体机器人、下载机器人、库存囤积机器人、票务机器人、垃圾邮件机器人等
Akamai Bot Manager是其主要的反机器人解决方案,它可以在恶意机器人和僵尸网络流量对客户信任造成侵蚀之前阻止它们,同时允许好机器人执行必要的任务
## 应对Akamai风控的挑战
对于需要绕过Akamai风控的场景,主要面临以下挑战:
1. **TLS检测**:需要通过TLS检测,否则并发时会出现问题
2. **真实浏览器环境**:需要使用真实的浏览器环境,不能简单随机,包括canvas、ua、webgl数据等
3. **行为数据模拟**:必须带上行为数据,PC端需要模拟鼠标轨迹和键盘事件,移动端需要螺旋仪、触摸事件等
4. **风控级别差异**:不同网站的风控级别不同,可以通过某些站点不代表可以通过所有站点
5. **经验积累**:风控是在长久对抗中才能摸清门路的,主要靠经验
## 总结
Akamai从内容交付创新到安全防护,再到云计算多云化和边缘化创新,已经形成了一个基于云的三位一体方案,涵盖内容产生、计算、存储、交付和保护,为用户提供全方位的数字化运营支持
Akamai 3.0作为其最新的反爬虫系统版本,通过更复杂的加密算法、更全面的浏览器信息收集和更智能的风控策略,为网站提供了强大的安全保障。对于需要与Akamai系统交互的开发者来说,理解其工作原理和应对策略至关重要。

浙公网安备 33010602011771号