阅读: 1
一、背景概述
近日,金融行业客户和IDC租户相继反馈,遭遇随机子域名攻击。随机子域名攻击,RSD(random sub domain),也可称为 P(Pseudo)RSD,因为使用的随机算法是“伪随机算法”。 随机子域名攻击是一种针对ISP的DNS缓存服务器和针对客户本地的授权服务器的双重攻击策略,攻击者通过控制的主机大量发送非法子域名请求,不仅使 DNS缓存服务器和授权服务器产生大量进出流量,堵满带宽,同时耗尽DNS缓存服务器和授权服务器资源,导致宕机。对此,ADS技术团队结合实战经验,提出随机子域名攻击针对性解决方案。
二、还原随机子域名攻击过程
攻击者企图攻击某银行的授权服务器ns.bank.com,攻击者构造大量的虚假子域名请求,例如:
aaa1234.bank.com
bbb1234.bank.com
ccc1234.bank.com
ddd1234.bank.com
….
攻击过程如下:
Step1:攻击者通过被控主机,向ISP的DNS缓存服务器发起非法的随机子域名请求。
Step2:缓存服务器收到大量的请求报文后,查询本地域名记录,发现无对应的域名记录,即向位于机构的授权服务器递归查询。
Step3:授权服务器侧汇聚了大量来自各地的缓存服务器的域名查询请求。
Step4:缓存服务器和授权服务器同时产生大量请求,一方面,进出流量突增,甚至超过带宽负荷,另一方面,服务器压力增大甚至宕机。
三、防护难点:
- 子域名不断变化的部分可能是任意级的前缀、中缀;
- 攻击有可能同时针对多个后缀,而且每个后缀的前缀变化次数和变化内容都不显著,而它们加起来的变化次数比较显著(指数级增加);
- 泛解析干扰:有些后缀配置了泛解析,则不管其前缀如何变化,均不能被认为是攻击;举个例子,攻击域名与正常域名属于相同的后缀,正常域名容易被误杀,如 bank.com 是攻击域名,而 ns.bank.com 是正常域名,当检测到后缀 bank.com 遭受攻击时,容易将 ns.bank.com 误杀。
四、随机子域名攻击防护建议
基于以上随机子域名攻击过程还原,从全面防护的角度来说,应该进行两级防护,即ISP的DNS缓存服务器侧和授权服务器侧都需要部署ADS(抗拒绝服务攻击系统)。
- ISP:DNS缓存服务器侧部署
防护策略:
- ISP缓存服务器是对所有域名提供查询服务,域名的基数很大,因此使用域名白名单防护效果不明显,容易造成误防和漏防。
- 由于随机子域名攻击大多是通过发包工具伪造的,不具备正常DNS报文的属性特征,可通过ADS针对DNS报文的算法进行防护。
- 若攻击报文源IP能够通过算法,在ADS设备上可以进一步配合对IP行为控制功能进行限速或过滤。
- 如果进一步分析可以找到攻击包中的特征,例如域名的随机特征或者包头特征等,可以通过精细化防护对特征进行识别,从而丢弃攻击报文。
- 客户本地:授权服务器侧部署
防护策略:
- 对于这种随机子域名攻击,由于流量的源IP全是合法缓存服务器,因此都能通过关于CNAME的算法,所以我们需要寻找其他的算法进行防护。从抓包来看,缓存服务器的数量并不多,但是由于缓存服务器也会有正常请求,因此不能使用加黑或者ACL等策略,否则会有误杀。随机子域名,很难寻找关键字特征等封堵攻击流量,同时对于合法域名存在误杀。
- 可采用CNAME + IP行为的过滤方式,通过CNAME的相关算法过滤非缓存服务器发起的攻击,通过IP行为控制策略,控制缓存服务器源IP的流量。
- 同时,我们也可以采取对DNS协议的相关算法,进行协议限速。可通过各个维度去控制流量,推荐使用源IP限速和目的IP限速。
- 同样,若随机子域名本身随机性不够,能够提取到攻击特征,可通过关键字过滤拦截。
策略优缺点对比:
策略 | 优点 | 缺点 |
CNAME+IP行为控制 | 可以对缓存服务器和非缓存服务器的流量都进行防护 | 由于只能限制源IP的速率,若被利用的缓存服务器过多,汇聚到授权服务器侧的流量依然很大。 |
协议限速 | 能通过各个维度对流量进行调整,包括源IP和目的IP总流量等。 | 对于非缓存服务器的流量,无法验证真实性,可能会造成漏杀。 |
关键字过滤 | 直接精准过滤攻击流量 | 提取难度大,且分析需要一定的时间,具有滞后性,且容易造成误杀。 |