通过拦截UA实现防盗刷
很多攻击者使用伪造的UA(User-Agent)访问加速域名资源,可以通过日志分析和筛选出这些UA信息,然后拦截这部分UA的访问。
什么是UA
用户代理(User Agent,UA)是客户端向服务器标识自身软硬件配置的特殊字符串,包含操作系统、浏览器版本、渲染引擎等信息,以便服务器适配不同页面布局或功能。UA的格式通常如下:
User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36
- 浏览器默认以Mozilla/5.0开头
- PC端和移动端
- PC端一般携带Windows NT、Macintosh、Linux等系统标识。
- 移动端一般携带Android、iPhone/iPad、Mobile等标识。
- 浏览器内核一般有Chrome、Safari 、Edge、Firefox
识别攻击UA
相比于正常UA,攻击者伪造的UA可能有以下的问题:
- User-agent异常或畸形:这类UA包含Python等自动化工具特征、明显格式错乱的UA(例如Mozilla///)、明显不合理的UA(例如www.example.com)。
- User-agent不合理:例如,对于微信推广的H5页面,正常用户都应该通过微信发起访问,如果UA来自于Windows桌面浏览器(例如MSIE 6.0),则明显是不合理的。
通过CDN提供的日志和报表能力,分析和提取异常UA。可以通过以下几种方式分析和筛选异常UA:
- 分析离线日志:通过查看对应时段的离线访问日志,分析HTTP请求信息,识别异常IP地址、防盗链等信息,以便针对性设置防护规则。详细信息请参考通过日志分析恶意访问地址。
- 分析实时日志:如果在发生攻击行为之前,域名已经接入实时日志,可以通过实时日志分析更多客户端信息,如X-Forwarded-For字段、请求时间等。
- 可通过LTS为CDN定制的仪表盘分析日志信息,详见CDN仪表盘模板。
- 也可以登录LTS服务控制台,选择华北-北京四region,在页面单击对应的日志组或日志流名称,分析该日志组中相关日志详情。
- 查看运营报表:CDN支持定制热门URL、热门Referer、热门UA和热门客户端IP等报表,如果在发生攻击前被攻击的域名已经定制了运营报表,可以下载攻击时段的报表分析相关信息,详见运营报表。
实时日志和运营报表均需要提前配置,如果因攻击产生高额账单时未配置这两项功能,只能通过离线日志分析历史数据。
拦截UA
分析出异常UA后,可以通过以下方式拦截异常UA访问。
- 配置UA黑名单过滤可疑User-Agent。
- 登录CDN控制台。
- 在左侧菜单栏中,选择。
- 在域名列表中,单击需要修改的域名或域名所在行的“设置”,进入域名配置页面。
- 选择“访问控制”页签。
- 在User-Agent黑白名单配置模块,打开开关,进入“编辑User-Agent黑白名单”页面。
可根据业务需要勾选拒绝空User-Agent访问
规则:输入筛选的异常UA,本文以www.example.com为例图1 配置User-Agent黑白名单
- 通过配置规则引擎功能,实现IP访问拦截。
- 登录CDN控制台。
- 在左侧菜单栏中,选择。
- 选择“规则引擎”页签,单击创建规则,进入配置界面。
运算符:选择包含任意一个
值:输入已分析出异常UA,本文以www.example.com为例
区分大小写:关闭
执行动作:选择访问控制,类型选择拒绝
图2 配置规则引擎
- 开通边缘安全防护:可以使用边缘安全服务提供的精准访问防护能力,阻断异常UA访问,达到防盗刷效果。
