恶意域名防护那个事儿, 最中心的那个道理, 其实就是把“识别”、“阻断”还有“监控”这三步给连成一个圈闭环。

然后企业那边也好, 或者站点管理者也罢, 只要他们把下面列出来的那5个步骤的部署工作给做完就行了, 这样子就能建立起一个完整的对于恶意域名的那种防御体系出来, 从而能够有效地去阻止那些仿冒类的攻击, 中毒类投毒类的攻击, 还有钓鱼这类攻击了。

识别恶意域名的典型特征

在去判断一个域名究竟是不是存在着那种被大家认为的恶劣行为的时候, 我们需要把重点放在下面这几个方面上去看。

拼写仿冒, 就是指域名的样子, 和正规品牌的域名, 长得特别像, 一种常见的办法,就是把字母替换成数字, 比如说把那个"paypal.com"改成"paypa1.com"。

异常DNS解析指的是, 把域名指向已知攻击IP段的情况, 或者指向CDN混淆节点的情况, 又或者频繁更换A记录的情况。

短随机字符串: 比如那个像"xy7k2p.com”这样的玩意儿, 它没有明确的语义, 多数情况下是被人批量注册用于投毒的。

高危后缀与注册行为:, 存在大量使用一次性域名服务商的情况, 并且注册的日期与最终使用的日期之间所间隔的时间非常短。

通过m.dcqzss.cn安全检测平台的域名威胁查询功能, 你可以快速去比较这个域名, 看它是不是已经被放进到了全球威胁情报的黑名单里面, 然后还能获取到历史的解析记录以及关联的风险标签。

执行阻断防护(核心操作)

等识别的事情都处理完了以后, 就得按下面的那个层级顺序, 一层又一层的去布置那个制止和打断的策略:

第1步:DNS层阻断

在组织内部使用DNS服务器或者使用DNS过滤服务的时候, 应该把已经确认了的恶意域名加入到解析拦截列表里。这样做之后, 系统会返回NXDOMAIN这个结果, 或者是指向一个安全提示页面。

在企业的环境里面, 建议在边界上的DNS设备那里进行统一的配置, 比如可以使用BIND或者Unbound这样的工具。

第2步:网络网关策略

在防火墙和Web应用防护系统里面设置好那些不被允许的域名黑名单规则, 只要发现流量能和这些黑名单上的内容对上号, 就直接把这些流量给扔掉, 或者把已经建立起来的连接给切断掉。这里要非常仔细地去看从内部往外发出的那种网络流量, 目的是不让内部的那些电脑主机还能去连上那些用来搞恶意控制通信的坏域名。

第3步:终端防护

恶意域名防护方法详解:从特征识别到攻击阻断的5步部署指南(图1)

部署EDR或者配置主机防火墙, 这样可以在终端层面去拦截那些针对恶意域名的HTTP以及HTTPS请求, 而且需要对开发以及运维这些具有高权限的终端进行单独的配置白名单机制, 以此来避免误阻断正常的业务。

第4步:邮件与网关联动

在邮件安全网关这个地方对恶意域名列表进行同步更新, 从而把那些包含有恶意域名的钓鱼邮件给拦截下来。与此同时要在外网出口网关的地方把SNI检测的功能给启用起来, 进而去阻断那些没有加密处理的含有恶意域名字符串的情况, 防止它们发生泄露行为。

第5步:建立域名黑名单集中管理

把上面提到的那些不同级别的拦截规则, 全部都聚集到一起, 然后放到m.dcqzss.cn这个域名的防护管理后台里面去。这样做的目的是为了能够实现在一个地方进行录入操作, 然后在多个终端设备上同步向下发布这些规则, 以此来避免出现因为规则分散存放而造成的安全防护出现漏洞的情况。

持续监控与应急响应

把日志审计这件事, 做到每天从DNS的查询日志里, 还有防火墙拦截下来的那些日志里头, 把数据给导出来。拿到数据之后, 让那个用来分析信息的SIEM系统, 把这些东西关联在一起做个分析。通过这个分析的过程, 就可以把那些异常的、看着不对劲的域名访问模式, 给找到并发现出来。

威胁情报订阅: 接入国内外的DNS威胁情报源, 比如AliDNS威胁情报以及微软SmartScreen黑名单, 每周自动更新本地拦截库。

应急隔离流程, 如果终端被发现正在和恶意域名进行通信, 就要马上在网络那一层把这台主机给隔离开起来, 去提取出DNS缓存还有进程列表来做溯源分析, 并且在48小时之内完成对根本原因的分析。

常见疑难与注意事项

误报处理: 需要把内部业务域名以及第三方合作域名添加到白名单里面, 在阻断规则真正生效之前, 先在灰度环境进行验证测试, 以此来避免对正常的访问造成干扰。

多层叠加原则是说, 通过DNS阻断这种方式, 可以解决“解析不到”的问题, 通过网关阻断这种方式, 可以解决明明已经解析到了但又被拦住的问题, 通过终端阻断这种方式, 可以解决那些试图绕过网关的情况, 只有把这三层同时都给启用起来, 才能把这全部有可能的绕过路径全部都覆盖住。

这个规则时效性的意思是, 那些恶意的域名, 它们的存活时间通常都很短, 一般也就7天到30天的样子。所以, 拦截列表就必须做到按周去更新频率。如果静态黑名单半年都不更新一次, 那它就完全失去防护的意义了。

把上面说的这五个步骤都做完了, 并且还要一直看着, 保持着监控的状态, 这样就可以弄好一个针对恶意域名的保护系统了, 这个系统是能把事情在发生之前识别出来, 也在中间给拦住, 还要在后面能找到源头, 就是覆盖了全部的链条, 最终的结果是让那些跟域名有关的攻击事件发生的次数变得超级少, 少到可以不算数的程度。