当您的域名因被恶意攻击或流量被恶意盗刷,产生了突发高带宽或者大流量消耗,导致产生高于日常消费金额的高额账单。因恶意攻击或流量盗刷产生的高额账单无法免除/退款,为尽量避免此类风险,本文为您介绍这一类情况的应对办法。
背景
近年来随着互联网行业的飞速发展,互联网流量盗刷的安全事件呈现逐渐上升的趋势。由于DCDN业务本身是为了提升用户体验,加速资源访问效率的一种解决方案,其计费逻辑是根据客户资源下载流量进行计费的一种服务,即下载量和客户侧付费金额正相关,对攻击者带来了直接恶意攻击的机会点。
恶意访问对DCDN流量进行高频次、长时间的下载,导致用户DCDN费用激增。不仅增加了正常客户的业务运营成本,造成了客户资损失,更会影响客户的业务发展。
场景描述
盗刷场景通常涉及多种恶意请求,以下是一些常见的DCDN恶意攻击的方式以及应对措施:
攻击类型 | 攻击原理 | 攻击特征 | 应对措施 |
伪造User-Agent攻击 | 攻击者通过伪造User-Agent字段发送大量请求,试图绕过安全检查。 | 伪造的User-Agent一般有以下几种:
| 配置User-Agent白名单或黑名单,拒绝非正常的User-Agent请求。例如,拒绝空User-Agent或不符合规范的随机字符串。 |
伪造Referer攻击 | 攻击者在请求头中伪造Referer字段,以假冒合法的引用来源,进行恶意请求。 | Referer 头信息中的URL与被请求资源没有合理的关系、Referer与UA不一致等。 | 配置Referer黑白名单,允许合法的Referer访问,拒绝带有恶意Referer的请求。例如,允许来自你自己的域名的Referer访问。 |
频繁请求同一资源 | 同一IP或用户在短时间内频繁请求同一资源(如API接口),导致服务器负载过高、资源消耗和费用增加。 | 高频次请求来自同一个或同几个IP。 | 配置频率限制策略,控制同一IP或同一用户在单位时间内的请求数量。例如,同一IP每秒钟最多允许10次请求。 或者通过配置IP黑白名单,限制访问源IP。将常见的攻击IP列入黑名单,将可信的IP列入白名单。 |
恶意爬虫和抓取 | 恶意爬虫工具大量抓取网站内容,不仅会造成带宽和资源的浪费,还可能导致数据泄露。 | 针对同一个资源进行高频请求、请求访问的特征以固定规律等。 | 通过DCDN的Bot防护功能,检测并拦截异常请求和恶意爬虫。可以通过分析请求特征(如频次、请求模式等)来自动识别和阻止恶意行为。 |
针对性措施
您可以根据攻击源的特征类型来选择合适的应对措施。在实际您异常分析时,有可能会匹配到多种攻击特征,您可以同时为您的DCDN服务配置多种防护策略实现全方位的防护。
配置方法一:通过访问控制的功能进行拦截
配置方法二:配置WAF防护规则拦截恶意请求
异常排查
DCDN为您提供了日志以及报表功能,您可以离线日志、实时日志、运营报表等方式,对突发流量的时段的数据进行分析并根据异常类型来选择采取的防护策略。
日志报表获取
其次,您也可以通过定制和订阅运营报表功能分析TOP域名、Referer、URL、客户端IP等。
重要需要注意的是,运营报表只能分析开启报表后的访问行为,开启报表之前的行为无法监测。
特征分析
当您获取到了日志或报表数据后,您可以通过数据特征来分析攻击类型。通常您可以分析Top信息(Top IP、Top URL、Top User-Agent、Top Referer等)提取特征。
IP集中度:通过Top IP来分析IP的地址范围,识别攻击者IP,针对IP做访问控制拦截。
请求的资源:通过Top URL来分析攻击者针对的资源对象,针对资源做访问控制。
客户端特征:通过Top User-Agent来分析攻击者客户端特征,针对客户端特征做访问控制拦截。
爬虫识别:通过请求频次、请求模式来匹配是否为恶意爬虫,针对爬虫做Bot防护。
针对离线日志您可以参照下述流程来进行攻击特征分析。
离线日志分析
上传日志文件至本地Linux系统服务器。
登录本地Linux系统服务器,统计文件中的行数,即请求总次数。
wc -l [$Log_Txt]
按小时统计访问量。
awk -F' ' '{print \$4}' [$Log_Txt] | sed 's/^\[\(.*\/.*\/.*\):\(.*\):.*$/\1 \2:00/' | sort | uniq -c | sort -nr | head -n 10
统计出来请求总数,确认请求量异常。
重要以下配置需要参考业务的真实请求,谨慎操作,以免影响您正常用户。
执行如下命令,查询访问量前十的IP。
cat [$Log_Txt] | awk '{print $3}' |sort|uniq -c|sort -nr |head -10
限制可疑IP访问,配置IP黑白名单。
执行如下命令,查询访问量前十的User-Agent。
grep -o '"Mozilla[^"]*' [$Log_Txt] | cut -d'"' -f2 | sed 's/ ANCHASHI-SCAN[^)]*)//g' | sort | uniq -c | sort -nr | head -n 10
过滤可疑User-Agent,配置User-Agent黑白名单。
执行如上命令,查询访问量前十的路径。
grep -oP '"https?://[^"]+"' [$Log_Txt] | sort | uniq -c | sort -nr | head -n 10
防护案例
游戏类用户安装包盗刷
背景
游戏客户A在两年前推出某款游戏B,该游戏在推出两年内均保持稳定运行。近期出现高额的DCDN账单。
异常识别
通过配置实时日志投递进行流量监控和日志分析,发现多次出现高频次下载安装包请求。在1小时内的PC端下载量高达31万次,1小时内的安卓端下载量高达1.8万次。
开启实时日志,并成功投递日志后,根据日志投递条数产生计费。
分析下载安卓端请求包时,在请求中可以发现异常请求中User-Agent非安卓端信息而是典型的PC端信息。
从一般用户现阶段的访问习惯来看,通过手机直接下载apk包的用户占绝大多数,目前很少有用户使用PC下载然后再通过USB方式传输到手机上进行安装。因此从User-Agent可以基本判定相关的下载信息是由攻击者产生的。
从频率和请求的资源来分析,单IP每分钟300多次访问(APK包),每分钟5100多次(exe包)业务明显异常。
解决措施
主要可以通过访问控制方式来识别用户身份以及对资源下载频率做防护。
网站资源被盗用
背景
电商客户A网站保持稳定运行。近期发现网站的上图片内容被其他的网站在短时间内高频次请求盗用。
异常识别
通过配置实时日志投递进行流量监控和日志分析,发现日志中发现有伪造Referer信息。
使用SQL域名查询了 refer_domain伪造数量在十几分钟内访问了1万多次。
从refer_domain判断,refer_domain和domain不一致,应该是盗取资源。同时通过SQL查看访问量,判定为不仅仅是盗取资源,还是恶意攻击。
解决措施
Referer防盗链:设置黑名单将和domain不一致的refer_domain加入到黑名单中。具体请参见配置User-Agent黑白名单。
后续防护
设置实时监控
设置对DCDN产品下指定域名的带宽峰值监控,达到设定的带宽峰值后将会给管理员发送告警(短信、邮件和钉钉),便于更加及时地发现潜在风险。详情请参见设置报警。
设置费用预警
您可以在控制台右上方菜单栏费用选择用户中心,通过设置以下这三个功能来更好地控制账户的消费额度,避免产生过高的账单。
可用额度预警:您可以设置账户余额低于一定金额的时候就给您发送短信告警。
启用延停额度:您可以选择关闭该功能,这样在账号欠费时会立即关闭业务,以避免产生更多消费。更多信息,请参见延期免停权益。
高额消费预警:您可以开启预警,设置产品日账单大于预警阈值时将会发送短信告警。
为了保证计量数据统计的完整性,确保账单的准确性,DCDN产品需要在记账周期结束后大约3个小时才能生成实际的账单,因此实际扣款时间与对应的资源消费时间存在一定的时延,无法通过账单来实时反馈资源消耗情况,这是由DCDN产品自身的分布式节点特性决定的,每个DCDN服务商都采用类似的处理办法。