一、 应用需求

客户内网存在若干台异常主机,频繁向外网发送异常的DNS请求,此时有几种情况:

1)    上端运营商等机构发现客户处存在异常流量,要求客户处理。

2)    客户内网的态势感知平台或其他类似设备识别到类似异常,需要尽快处理。

在上述条件下,可使用全新NGFW对异常DNS流量进行过滤,称为DNS过滤或DNS清洗。

二、 部署需求

1、部署时大致拓扑如下:

     image.png

2、部署的其他要求:

    1)防火墙必须能够连接公网;

    2)防火墙必须已购买授权,且授权仍在有效期内;

    3)异常DNS流量必须经过防火墙;

特别说明:

        1、 DNS黑域名过滤功能仅限V5.2-R6.0平台版本使用

        2、 V5.2-R6.0平台版本在V5.2-R609.P0.t5-20200507版本之前(不含),默认出厂配置下设备与云端进行联动存在一定概率异常,如需要使用该功能,建议通过TFTP方式升级设备到V5.2-R609.P0.t5-20200507及以后版本,并导入升级前配置

三、 黑域名简介

            1、黑域名是什么? 

            “黑域名”一般指的是如下两种类型的域名:

                1)通过非正规渠道购买、来历不明的域名;

                2)恶意软件用于在僵尸网络中实现管理及控制等功能而使用的域名;

                一般情况下“黑域名”特指第二类,即恶意软件(如挖矿病毒、僵尸网络、勒索病毒等)通过“黑域名”实现被控制终端与控制服务器之间保持通信的域名。“黑域名”还可分为静态和动态两类。

                静态黑域名常用于挖矿、勒索病毒等网络攻击行为,动态黑域名常用于僵尸网络或C&C等网络攻击行为,常常使用DGA算法(Domain Generate Algorithm)生成。

                对恶意程序而言,固定的恶意IP地址极易被安全设备检测并阻断,无法实现隐蔽与有效的控制。所以,僵尸网络与C&C攻击在设置恶意软件时极力避免使用固定IP地址作为被控终端与服务器端的连接。在程序中常常使用DGA算法来生成随机域名(黑域名),以绕过常见的安全防护手段,实现对被控制端持续、有效的控制。

                通过DGA算法生成的黑域名在互联网中常常无法访问,因为恶意攻击者在恶意软件运行时,才对域名进行注册,所以我们发现的黑域名常常无法直接进行访问。

            2、黑域名与普通域名的区别有哪些?

                1)现用现注册:由于注册域名需要费用,故恶意攻击者常常在黑域名计划上线前才注册域名,在此时黑域名才可在互联网环境中访问。

                2)使用时间短:由于现有安全防护措施对网络流量中的行为进行检测,发现可疑请求后将上传云端安全管理中心。所以在黑域名生效使用后,现有检测、防护设备可快速识别并广播防护规则实现有效阻断,为了避免长时间动态域名的暴露,恶意攻击使用一个特定黑域名的时间都不长,通过在1-7天左右。

                3)同一款恶意软件硬编码多个黑域名:同一款恶意软件在制作时可能会内置多个黑域名,以提高成功连接僵尸网络的几率。

            3、黑域名的常见通信过程是怎样的?

                当下互联网环境中,常常使用黑域名来实现隐藏僵尸网络中主控端真实IP,因其使用域名的动态性,可绕过基于特征检测的安全防护设备防护功能。

                以动态黑域名为例,说明黑域名的使用场景及使用过程。

                image.png

                1)感染并生成随机域名:恶意人员通过恶意邮件、网络入侵等手段,向用户计算机投放恶意病毒,释放C&C被控端软件。被控端软件部署后,根据DGA算法生成伪随机域名。

                2)注册随机域名,被控端反向连接主控端:恶意攻击者可提前注册部分黑域名,在恶意程序感染终端后使用DGA算法生成伪随机域名池,使用池中域名逐一向DNS服务器请求对应的IP地址,直至成功获取IP地址后即进行C&C会话连接,进行反向连接。

    对于历史上发现的黑域名示例:

    l  zugzwang.me

    l  tr069.online

    l  tr069.tech

    l  tr069.support

    l  zvdhcktzjoz.biz

    l  1cgqypq2o9mf4d3pgt0100twa.net

    l  d7gdxaph63ks231iac1gfmf0i.biz

    l  pwmdyyj.info

    l  sxekhtn.net

    l  bbhxyjv.org

    l  ihbgynr.biz

    l  ywqksthri.net

    l  ……

            4、黑域名如何识别?

        一些第三方威胁情报公共平台可以进行黑域名的协助确认(以下截图以微步在线威胁情报社区为例):

        image.pngimage.png


四、防火墙黑域名过滤功能基本原理

                在防火墙进行DNS过滤过程中,防火墙需要与云端服务器进行交互,当第一次识别到某个域名(假设为域名A)的解析请求时,防火墙会在转发DNS报文的同时与云端确认域名分类,并记录在防火墙的缓存信息中。在缓存信息有效的前提下,第二次以及更多次请求识别到域名A的解析请求时防火墙可以直接进行处理。

                以防火墙对某个域名(假设为域名A)进行DNS过滤的工作流程的描述,可用下图简述:

                image.png

五、 配置要点

1)  用户基本上网配置;

2)  防火墙授权注册与激活;

3)  配置DNS过滤模板;

4)  配置SSL深度检测模板;

5)  安全策略中调用DNS过滤模板;

六、 配置步骤

1、 用户基本上网配置:

    根据实际需求,将防火墙部署到网络中,实现基本上网需求,具体步骤可参考典型场景配置--路由模式--单线上网 章节。

    部署完成后,需满足:

    1)未开启虚拟域功能的情况下,设备管理地址需要能够与外网正常通信,包括域名解析与主动向外的访问;

    2)在开启虚拟域功能的情况下,设备管理域中的管理地址需要能够与外网正常通信,包括域名解析与主动向外的访问;

2、 防火墙授权注册与激活:

    按照防火墙授权注册流程完成注册与激活,激活完成后确保当前设备仍处在授权有效期内,如下图所示:

    image.png

3、 配置DNS过滤模板:

    通过Web 进入 对象配置--DNS过滤模板,设备默认已有DNS模板“default”,可点击右上角的增加按钮,新增一个模板,如本例增加的模板“dns_filter”:

    image.png

    image.png

    配置选项说明:

    阻断发送到botnet C&C的DNS请求:防火墙设备在导入授权后,会将云端的Botnet地址库、C&C地址库下载到本地;开启此功能后,当DNS请求的域名在Botnet地址库或C&C库中,DNS请求将直接阻断,不会进行后续处理;

    基于安全中心分类的过滤器:将DNS请求的域名发送到云端,云端会返回请求的域名的分类信息,用户可基于分类结果,对不同的分类执行不同的动作;

    静态域过滤器-域过滤:可手工定义一个域名列表,人为指定对特定域名的处理动作;

    静态域过滤器-外部IP阻断清单:与域过滤类似,可手工定义一组IP列表,当域名解析出的地址在该地址列表范围内,人为指定处理动作;

    可选项-当发生网址分类错误时允许DNS请求:开启此功能后,当请求的域名发送给云端,云端暂未对其进行分类,或者防火墙与云端无法正常通信时,用户的DNS解析报文可正常转发;关闭此功能后,如出现域名没有分类,或云端连接异常时,DNS报文将不进行转发。

    可选项-记录所有DNS查询及相应日志:开启此功能后,可同时记录DNS的请求与回复内容。

    推荐必须开启的功能选项:阻断发送到BotnetC&C的DNS请求,基于安全中心分类的过滤器(务必根据实际需要对特定分类的动作进行修改与确认),可选项-当发生网址分类错误时允许DNS请求。

4、 配置SSL深度检测模板

在防火墙6.0软件版本上,为了提高安全性,在安全策略开启UTM功能时,要求必须选择SSL/SSH深度检测模板。设备默认已内置SSL深度检测模板,但默认模板中都会对SSL、SSH协议进行代理检测,在实际应用中可能导致出现业务异常。因此如实际场景中没有SSL加密内容的解密需求,需要重新设置一个不加密检测的SSL模板。

配置方法:通过WEB方式进入 对象配置--SSL/SSH深度检测模板,点击右上角新建按钮,创建一个新的SSL/SSH深度检测模板,如下图新建的SSL/SSH深度检测模板“no_ssl”:

            image.png

新建的模板中,将“检查所有端口”以及“HTTPS”等协议后的开启选项全部关闭即可。

5、 安全策略中调用DNS过滤模板

通过Web界面,在策略设置--IPv4策略中,对现有策略进行调整。如下图所示,在对上网上网的“安全配置”进行设置后,调用DNS过滤模板“dns_filter”以及SSL/SSH深度检测模板“no_ssl”:

            image.png

七、 效果检验

    通过防火墙下PC尝试解析黑域名,查看防火墙阻断效果,在防火墙上通过查看日志以及内外网接口抓包方式确认效果。

    本案例中使用3个域名进行测试,分别为“v.y6h.net”“lpp.ackng.com”“loseyourip.com”。首先需要通过工具确认域名的属性(本案例使用VirusTotal进行测试,实际场景中可使用其他工具):

            image.png

            image.png

            image.png

    在确认域名存在风险后,可继续进行下述测试:

    1、PC端DNS解析情况:

        image.pngimage.pngimage.png

            测试说明:

            1)参数“-qt=A”为nslookup的补充参数,意为强制进行IPv4的域名解析;

            2)命令最后的地址,意为强制使用该地址作为DNS服务器;

            3)每次测试前,均使用命令“ipconfig /flushdns”清空DNS缓存,避免缓存影响测试结果。

    2、 防火墙端日志:

        image.png

        image.png

        image.png

    测试说明:

            1)动作为“block”且消息字段显示“Domain belongs to a denied category in policy”,表明该DNS报文是通过DNS分类手段被阻断;

            2)动作为“block”且消息字段显示“Domain was blocked by dns botnet C&C”表明该DNS报文是匹配到本地的Botnet C&C库被阻断。

 

八、 其他注意事项

    1、 DNS黑域名过滤功能仅限V5.2-R6.0平台版本使用

    2、  V5.2-R6.0平台版本在V5.2-R609.P0.t5-20200507版本之前(不含),默认出厂配置下设备与云端进行联动存在一定概率异常,如需要使用该功能,建议通过TFTP方式升级设备到V5.2-R609.P0.t5-20200507及以后版本,并导入升级前配置;

    3、 DNS域名过滤中有多种方式,优先级为:静态域名过滤 > Botnet C&C库 > 云端分类库;

    4、 当防火墙设备没有授权时,云端分类库将无法使用

    5、 如公网DNS服务器已对部分域名的对应关系进行安全性处理(比如将黑域名的记录关系对应到127.0.0.1或其他私有地址),对于此类的域名解析依赖于云端库分类进行过滤将失效,此时可在使用云端库分类的同时结合静态域名过滤的方式实现。