随机子域名攻击防护建议

一、背景概述

近日,金融行业客户和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:缓存服务器和授权服务器同时产生大量请求,一方面,进出流量突增,甚至超过带宽负荷,另一方面,服务器压力增大甚至宕机。

三、防护难点:

  1. 子域名不断变化的部分可能是任意级的前缀、中缀;
  2. 攻击有可能同时针对多个后缀,而且每个后缀的前缀变化次数和变化内容都不显著,而它们加起来的变化次数比较显著(指数级增加);
  3. 泛解析干扰:有些后缀配置了泛解析,则不管其前缀如何变化,均不能被认为是攻击;举个例子,攻击域名与正常域名属于相同的后缀,正常域名容易被误杀,如 bank.com 是攻击域名,而 ns.bank.com 是正常域名,当检测到后缀 bank.com 遭受攻击时,容易将 ns.bank.com 误杀。

四、随机子域名攻击防护建议

基于以上随机子域名攻击过程还原,从全面防护的角度来说,应该进行两级防护,即ISP的DNS缓存服务器侧和授权服务器侧都需要部署ADS(抗拒绝服务攻击系统)。

  • ISP:DNS缓存服务器侧部署

防护策略:

  1. ISP缓存服务器是对所有域名提供查询服务,域名的基数很大,因此使用域名白名单防护效果不明显,容易造成误防和漏防。
  2. 由于随机子域名攻击大多是通过发包工具伪造的,不具备正常DNS报文的属性特征,可通过ADS针对DNS报文的算法进行防护。
  3. 若攻击报文源IP能够通过算法,在ADS设备上可以进一步配合对IP行为控制功能进行限速或过滤。
  4. 如果进一步分析可以找到攻击包中的特征,例如域名的随机特征或者包头特征等,可以通过精细化防护对特征进行识别,从而丢弃攻击报文。
  • 客户本地:授权服务器侧部署

防护策略:

  1. 对于这种随机子域名攻击,由于流量的源IP全是合法缓存服务器,因此都能通过关于CNAME的算法,所以我们需要寻找其他的算法进行防护。从抓包来看,缓存服务器的数量并不多,但是由于缓存服务器也会有正常请求,因此不能使用加黑或者ACL等策略,否则会有误杀。随机子域名,很难寻找关键字特征等封堵攻击流量,同时对于合法域名存在误杀。
  2. 可采用CNAME + IP行为的过滤方式,通过CNAME的相关算法过滤非缓存服务器发起的攻击,通过IP行为控制策略,控制缓存服务器源IP的流量。
  3. 同时,我们也可以采取对DNS协议的相关算法,进行协议限速。可通过各个维度去控制流量,推荐使用源IP限速和目的IP限速。
  4. 同样,若随机子域名本身随机性不够,能够提取到攻击特征,可通过关键字过滤拦截。

策略优缺点对比:

策略优点缺点
CNAME+IP行为控制可以对缓存服务器和非缓存服务器的流量都进行防护由于只能限制源IP的速率,若被利用的缓存服务器过多,汇聚到授权服务器侧的流量依然很大。
协议限速能通过各个维度对流量进行调整,包括源IP和目的IP总流量等。对于非缓存服务器的流量,无法验证真实性,可能会造成漏杀。
关键字过滤直接精准过滤攻击流量提取难度大,且分析需要一定的时间,具有滞后性,且容易造成误杀。

Spread the word. Share this post!

Meet The Author

Leave Comment