CC攻击防护最佳实践
大流量高频CC攻击
在大规模CC攻击中,单台傀儡机发包的速率往往远超过正常用户的请求频率。针对这种场景,直接对请求源设置限速规则是最有效的办法。推荐您使用WAF自定义防护策略功能的频率设置,配置限速策略,具体操作请参见设置自定义防护策略。
配置示例:您可以配置以下规则,当一个IP在30秒内访问当前域名下任意路径的次数超过1000次,则封禁该IP的请求10个小时。该规则可以作为一般中小型站点的预防性配置。
在大规模CC攻击中,单台傀儡机发包的速率往往远超过正常用户的请求频率。针对这种场景,直接对请求源设置限速规则是最有效的办法。推荐您使用WAF自定义防护策略功能的频率设置,配置限速策略,具体操作请参见设置自定义防护策略。
配置示例:您可以配置以下规则,当一个IP在30秒内访问当前域名下任意路径的次数超过1000次,则封禁该IP的请求10个小时。该规则可以作为一般中小型站点的预防性配置。
请求特征畸形或不合理
由于很多CC攻击请求是攻击者随意构造的,在仔细观察日志后,往往会发现这些请求有很多与正常请求不相符的畸形报文特征。常见的畸形报文特征包括:
user-agent异常或畸形:例如,包含Python等自动化工具特征、明显格式错乱的UA(例如Mozilla///)、明显不合理的UA(例如www.baidu.com)。如果存在以上请求特征,可以直接封禁请求。
user-agent不合理:例如,对于微信推广的H5页面,正常用户都应该通过微信发起访问,如果UA来自于Windows桌面浏览器(例如MSIE 6.0),则明显是不合理的。如果存在以上请求特征,可以直接封禁请求。
referer异常:例如,不带referer或referer固定且来自于非法站点,则可以封禁这种请求(访问网站首页或第一次访问页面的情形除外)。针对只能通过某个站内地址跳转访问的URL,您可以从referer角度分析行为异常,决定是否封禁。
cookie异常:正常用户往往会在请求中带上属于网站本身业务集的一些cookie(第一次访问页面的情形除外)。很多情况下,CC攻击的报文不会携带任何cookie。您可以从这个角度出发,封禁不带cookie的访问请求。
缺少某些HTTP header:例如,针对一些业务中需要的认证头等,正常用户的请求会携带,而攻击报文则不会。
不正确的请求方法:例如,本来只有POST请求的接口被大量GET请求攻击,则可以直接封禁GET请求。
配置示例:
拦截不带cookie的请求。
拦截不带authorization头的请求。
滥刷接口(登录、注册、短信、投票等)
对于网页环境(包括H5)中的一些关键接口,例如登录、注册、投票、短信验证码等,推荐您使用数据风控功能进行防护。
数据风控在关键接口页面中插入JS代码,采集用户在页面上的操作行为和环境信息,综合判断发送至关键接口的请求是否来自于真实的用户(而不是自动化工具脚本)。数据风控判定的依据主要来自于人机识别的结果,跟发送请求的频率、来源IP没有关系,针对一些低频、分散的攻击请求有很好的效果。
恶意扫描
大规模的扫描行为会给服务器带来很大压力,除了限制访问请求频率外,您还可以使用扫描防护功能来加强防护效果。扫描防护支持以下设置:
高频Web攻击封禁:自动封禁连续触发Web防护规则的客户端IP。
目录遍历防护:自动封禁在短时间内进行多次目录遍历攻击的客户端IP。
扫描工具封禁:自动封禁来自常见扫描工具或阿里云恶意扫描攻击IP库中IP的访问请求。
协同防御:自动阻断阿里云全球恶意扫描攻击IP库中IP的访问请求。
具体操作请参见设置扫描防护。
App攻击
针对App攻击,除上述频率设置、地域级IP黑名单、ACL访问控制等手段,您也可以接入云盾SDK进行防护。
SDK方案通过将SDK集成到App中,对请求进行安全签名和校验,并结合各种硬件信息,综合识别请求是否来自于合法的App。只要不是来自于官方App的合法请求,一概拦截。这是一种“白名单”思路,只放行合法的请求,而不用去分析非法请求的特征。
SDK防护需要开启App防护模块后才可以使用。具体操作请参见设置App防护。
常见的DDoS攻击包括以下几类:
网络层攻击
比较典型的攻击类型是UDP反射攻击,例如NTP Flood攻击。这类攻击主要利用大流量拥塞被攻击者的网络带宽,导致被攻击者的业务无法正常响应客户访问。
传输层攻击
比较典型的攻击类型包括SYN Flood攻击、连接数攻击等。这类攻击通过占用服务器的连接池资源从而达到拒绝服务的目的。
会话层攻击
比较典型的攻击类型是SSL连接攻击。这类攻击占用服务器的SSL会话资源从而达到拒绝服务的目的。
应用层攻击
比较典型的攻击类型包括DNS flood攻击、HTTP flood攻击(即CC攻击)、游戏假人攻击等。这类攻击占用服务器的应用处理资源,极大地消耗服务器计算资源,从而达到拒绝服务的目的。
DDoS攻击缓解最佳实践
建议阿里云用户从以下几个方面着手缓解DDoS攻击的威胁:
缩小暴露面,隔离资源和不相关的业务,降低被攻击的风险。
配置安全组
尽量避免将非业务必须的服务端口暴露在公网上,从而避免与业务无关的请求和访问。通过配置安全组可以有效防止系统被扫描或者意外暴露。
关于安全组的详细介绍,请参见创建安全组。
使用专有网络VPC(Virtual Private Cloud )
通过专有网络VPC实现网络内部逻辑隔离,防止来自内网傀儡机的攻击。
关于专有网络VPC的详细介绍,请参见什么是专有网络。
优化业务架构,利用公共云的特性设计弹性伸缩和灾备切换的系统。
科学评估业务架构性能
在业务部署前期或运营期间,技术团队应该对业务架构进行压力测试,以评估现有架构的业务吞吐处理能力,为DDoS防御提供详细的技术参数指导信息。
弹性和冗余架构
通过负载均衡或异地多中心架构避免业务架构中出现单点故障。如果您的业务在阿里云上,可以灵活地使用负载均衡服务SLB(Server Load Balancer)实现多台服务器的多点并发处理业务访问,将用户访问流量均衡分配到各个服务器上,降低单台服务器的压力,提升业务吞吐处理能力,这样可以有效缓解一定流量范围内的连接层DDoS攻击。
关于负载均衡的详细介绍,请参见入门概述。
部署弹性伸缩
弹性伸缩(Auto Scaling)是根据用户的业务需求和策略,经济地自动调整弹性计算资源的管理服务。通过部署弹性伸缩,系统可以有效的缓解会话层和应用层攻击,在遭受攻击时自动增加服务器,提升处理性能,避免业务遭受严重影响。
关于弹性伸缩的详细介绍,请参见开通和授权服务。
优化DNS解析
通过智能解析的方式优化DNS解析,可以有效避免DNS流量攻击产生的风险。同时,建议您将业务托管至多家DNS服务商,并可以从以下方面考虑优化DNS解析。
屏蔽未经请求发送的DNS响应信息
丢弃快速重传数据包
启用TTL
丢弃未知来源的DNS查询请求和响应数据
丢弃未经请求或突发的DNS请求
启动DNS客户端验证
对响应信息进行缓存处理
使用ACL的权限
利用ACL、BCP38及IP信誉功能
提供余量带宽
通过服务器性能测试,评估正常业务环境下所能承受的带宽和请求数。在购买带宽时确保有一定的余量带宽,可以避免遭受攻击时带宽大于正常使用量而影响正常用户的情况。
服务器安全加固,提升服务器自身的连接数等性能。
对服务器上的操作系统、软件服务进行安全加固,减少可被攻击的点,增大攻击方的攻击成本:
确保服务器的系统文件是最新的版本,并及时更新系统补丁。
对所有服务器主机进行检查,清楚访问者的来源。
过滤不必要的服务和端口。例如,对于WWW服务器,只开放80端口,将其他所有端口关闭,或在防火墙上设置阻止策略。
限制同时打开的SYN半连接数目,缩短SYN半连接的timeout时间,限制SYN、ICMP流量。
仔细检查网络设备和服务器系统的日志。一旦出现漏洞或是时间变更,则说明服务器可能遭到了攻击。
限制在防火墙外进行网络文件共享。降低黑客截取系统文件的机会,若黑客以特洛伊木马替换它,文件传输功能将会陷入瘫痪。
充分利用网络设备保护网络资源。在配置路由器时应考虑针对流控、包过滤、半连接超时、垃圾包丢弃、来源伪造的数据包丢弃、SYN阈值、禁用ICMP和UDP广播的策略配置。
通过iptable之类的软件防火墙限制疑似恶意IP的TCP新建连接,限制疑似恶意IP的连接、传输速率。
做好业务监控和应急响应。
关注基础DDoS防护监控
当您的业务遭受DDoS攻击时,基础DDoS默认会通过短信和邮件方式发出告警信息,针对大流量攻击基础DDoS防护也支持电话报警,建议您在接受到告警的第一时间进行应急处理。
关于配置告警消息接收人和语音告警方式,请参见设置黑洞告警通知。
云监控
云监控服务可用于收集、获取阿里云资源的监控指标或用户自定义的监控指标,探测服务的可用性,并支持针对指标设置警报。
关于云监控的详细介绍,请参见什么是云监控。
建立应急响应预案
根据当前的技术业务架构和人员,提前准备应急技术预案,必要时可以提前进行技术演练,以检验应急响应预案的合理性。
选择合适的商业安全方案。阿里云既提供了免费的基础DDoS防护,也提供了商业安全方案。
Web应用防火墙(WAF)
针对网站类应用,例如常见的HTTP Flood攻击,可以使用WAF可以提供针对连接层攻击、会话层攻击和应用层攻击进行有效防御。
关于WAF的详细介绍,请参见什么是Web应用防火墙。
工作原理
DDoS高防支持通过DNS解析和IP直接指向两种引流方式,实现网站域名和业务端口的接入防护。根据您在DDoS高防中为业务配置的转发规则,DDoS高防将业务的DNS域名解析或业务IP指向DDoS高防实例IP或CNAME地址进行引流。
来自公网的访问流量都将优先经过高防机房,恶意攻击流量将在高防流量清洗中心进行清洗过滤,正常的访问流量通过端口协议转发的方式返回给源站服务器,从而保障源站服务器的稳定访问。
DDoS原生防护
DDoS原生防护为云产品IP提供针对DDoS攻击的共享全力防护能力,即时生效。关于DDoS原生防护的详细介绍,请参见什么是DDoS原生防护(防护包)。
DDoS高级防护
针对大流量DDoS攻击,建议使用阿里云DDoS高防服务。关于DDoS高防的详细介绍,请参见什么是DDoS高防。