背景信息
当您发现CDN流量或请求数异常增高,怀疑遭遇流量盗刷或恶意攻击时,若能通过日志分析锁定攻击请求具有特定的User-Agent (UA)特征,可使用CDN的UA黑白名单功能,快速、精准地拦截这些恶意访问。
UA概念说明
和Referer不同,UA是针对请求者的设备信息,所以判断是否是合法请求时相对Referer会更难判断,我们判断UA是否正常可以区分成几个场景
浏览器和非浏览器
浏览器UA默认都会以
Mozilla/5.0开头(历史兼容原因)PC端和移动端
移动端一般会携带
Mobile、Android、iPhone、iPad等字段PC端一般会携带
Windows NT、Macintosh、Linux等桌面操作系统标识浏览器内核
常见的浏览器内核:
谷歌浏览器:Chrome/
火狐浏览器:Firefox/
Safari浏览器:Version/
Edge浏览器(新版):Edg/
微信内置浏览器(X5 内核):MicroMessenger/
通过这些信息来判断是否和您的正常业务比较相符,例如业务如果主要是微信小程序,那么浏览器PC端的访问就是异常请求,可以针对PC端的UA特征进行拦截。
识别流量盗刷特征
基础查询:离线日志
通过下载离线日志,查看相关时间段的访问日志,分析HTTP请求的详细信息,识别可疑的IP地址、User-Agent等。离线日志字段数据相对较少,如果您想查看更多数据,可使用实时日志功能。
获得离线日志文件后,您可以使用命令行工具来快速解析日志文件,提取访问量TOP10的IP地址或User-Agent等信息,详情请参见CDN访问日志的分析方法。
进阶查询:实时日志
如果您想查询更多日志信息,例如Referer和URI等信息,需要开通日志服务SLS,将采集到的实时日志实时推送至日志服务。开启实时日志,并成功投递日志后,根据实时日志条数产生计费。
参考配置实时日志推送为需要分析用户访问数据的CDN加速域名配置实时日志推送。
在实时日志功能页面找到需要分析日志的Project名称,单击日志分析。

进入日志分析页面,在右上角过滤时间段,单击左侧原始日志页签,找到
user_agent字段,您可以看到由高到低排列的UA信息。
拦截策略
User-Agent极易伪造,仅通过UA进行拦截是一种辅助性安全手段。
配置不当的UA拦截规则可能导致正常用户无法访问(误拦截),造成业务中断。在配置前,请务必充分分析访问日志,确认拦截目标的准确性。建议分阶段进行灰度测试,并持续监控业务指标。
拦截非法UA
登录CDN控制台。
在域名管理页面,找到目标域名,单击操作列的管理。
在指定域名的左侧导航栏,单击访问控制。
单击UA黑/白名单页签。
在UA黑/白名单页签下,单击修改配置。
类型设置为黑名单,内容填写相应的非法UA。例如:
空UA:请求中不包含任何UA信息,
this-is-empty-ua。虽然部分浏览器隐私模式或特定应用可能产生空UA请求,但它也常被恶意扫描器或爬虫利用。特定程序库:如
python-requests、Java/、Apache-HttpClient、Go-http-client等。如果您的业务不涉及通过这些程序库进行的服务端调用,那么大量此类UA的请求极有可能是恶意的。常见扫描器或工具:如
sqlmap、Nmap、Wget、curl等。与业务场景严重不符的UA:例如,您的业务仅提供移动端App服务,但日志中出现大量
Windows NT、Macintosh等PC端浏览器UA,则这些访问可能为异常请求。

控制访问频次
如果无法确认Refere是否合法,无法设置Referer黑名单,此时可以使用ESA的频次控制功能限制访问频次,减少恶意流量。
在ESA控制台,选择站点管理,单击目标站点操作列的。
在左侧导航栏,选择。
在WAF页面,选择频次控制规则,单击新增规则,根据界面提示填写规则信息。
主机名为指定的域名,统计项为客户端IP,频次为您实际业务访问的频率阈值(建议可以设置成实际访问阈值的1.2-2倍),执行操作选择仅对超过频次的请求执行和拦截。

单击确定。