域名安全防护检测的核心目标, 其实是去排查那五类经常出现的风险问题, 这些问题分别是DNS解析劫持、域名生命周期异常、SSL证书失效、注册信息泄露, 以及未授权子域名暴露的情况,这五个步骤是按优先级的顺序来排列的域名安全防护检测, 从头到尾完整地走一轮检测流程下来, 大概需要花费30分钟的时间。

DNS解析劫持检测

你首先需要登录到域名注册商的管理后台去, 然后仔细核对现在的那个NS记录, 是不是和我们预期中的那个DNS服务商保持了一致的这样一种关系, 因为如果我们发现了有不知道的NS服务器存在的话, 那就说明这个域名很有可能被那种恶意的行为进行了篡改这一状况的发生, 同时我们还必须要来验证一下关于DNSSEC签名的这样一个状态到底怎么样, 具体你可以选择在gname.xin的这个平台上面, 找到域名安全工具这一项内容进去进行输入操作, 之后可以通过一个键检测的方式来明确知道DNSSEC DS记录是否已经成功生效, 以及那条签名链的整体完整性是否得到了保证这样一个信息情况。

另外, 使用 dig 命令对关键记录进行查询操作, 这些关键记录包括 A 记录、AAAA 记录、MX 记录以及 CNAME 记录, 来对解析结果进行确认, 保证解析的结果与业务所期待的状况是保持一致的, 并且不存在异常的回源情况。

域名生命周期检测

要去检查一下那个域名的到期时间到底是什么时候, 然后确定自己已经把自动续费这个功能给开起来了。

在这里面, 需要把目光重点放在三种可能出现的异常情况上面, 分别是, 域名正好处在被锁定的状态里, 也就是我们说的"clientHold"或者"serverHold"这样的代码表示的锁定状态, 或者是注册商那边的账户里面钱不够了, 导致续费没办法继续进行下去, 又或者是那些一起进行批量管理的域名当中有部分已经到达了过期日期。

最后还要强烈建议使用一下设定提醒的功能, 把这个提醒的时间安排成在到期日子之前的三十天、十四天以及三天这几个具体的时间点, 这样做的原因就是为了避免出现不小心错过掉去续费的那个时间段的情况发生。

SSL/TLS证书检测

访问 https://你的域名 这个地址, 确认浏览器里没有出现证书警告。用 openssl s_client 命令检查证书链的完整性, 也就是根证书指向中间证书再指向叶子证书这个过程要正确。

确认协议版本支持 TLS 1.2 及以上的版本。关注证书的剩余有效期, 如果低于30天了就应该续签。若使用通配符证书, 需确认 SAN 列表覆盖了所有的子域名。

注册信息泄露检测

域名安全防护检测怎么做?5个步骤排查全部漏洞(图1)

你去查那个域名的注册人信息, 看邮箱、电话还有地址有没有开启隐私保护功能, 也就是看看RDAP也好还是WHOIS Privacy也好, 反正就是那个隐私保护, 如果没有开启的话, 这些信息就会让那些爬虫给批量抓走, 然后被用来搞钓鱼或者社会工程攻击, 你最好是在注册商的后台把隐私保护给打开, 然后再每个季度去复查一下谁是谁输出的内容, 这样能防止因为注册商那边策略变了导致你的信息又再次暴露出来了。

未授权子域名与泛解析检测

可以使用子域名枚举工具, 例如subfinder和Amass来扫描所有存活的子域名。接下来需要把结果跟业务清单进行对比, 从而标记出那些未登记的子域名。还要检查是否存在泛解析记录, 也就是星号A记录是否指向了外部IP地址。

如果发现这种情况, 一定要立即将其删除。因为没有被业务使用的子域名区域, 是攻击者用来挂载恶意页面的高发地带, 所以必须对这些子域名进行逐一清理, 或者把它们纳入到受控的DNS管理当中去。

补充注意事项

检测这件事, 应该把它放回到那种日常的、长期的流程里去进行。建议是每个月执行一次完整的五步检测。然后在那些重要的版本正式上线之前的那个时间点, 再来额外追加做一次这样子的检测动作。

所有的检测结果都得留下来, 并且做成记录, 把这些东西整理好, 形成一个关于域名安全的台账, 这样做主要是为了方便以后进行追溯, 也方便进行审计。

一旦你发现发生了DNS劫持或者证书被人偷走了这种情况, 你要在第一时间内赶紧去联系那个注册商把域名给锁定住, 具体的做法就是设置clientLock这个内容, 然后接着再去慢慢排查导致这次入侵的那些路径。

把对域名的管理权限收回来, 限制在两个人或者更少的人手里, 把二次验证功能给打开, 这样一来, 就能够降低因为内部人员操作失误而导致的风险。

把这上面提的五步事情全部都做好了以后, 针对一线生产环境里头那些核心威胁的地方,在域名安全防护检测这事儿上就算是大范围覆盖到了。只要定期地把这些事情执行到位域名安全防护检测,并且把相关的记录给好好留下来存着大城群众说事, 那就能大幅度降低因为域名层发生故障而导致业务中断以及数据泄露的这种可能性的出现几率了。