当具有高权重的域名遭遇到的劫持行为的时候, 搜索引擎优化权重、品牌资产以及用户流量, 这一些东西是会在很短的几个小时以内就变成零的。而关于这个问题的防护的核心逻辑其实是只包括一个方面的内容,那就是要把域名的控制权从仅仅依靠单一的账号和密码这个情况, 升级为通过多种技术手段来进行锁定的状态。
下面给大家列出的5项防护措施是按照重要的优先级来排列的, 如果你能够一项一项地把它们给落实好, 那么就一定可以形成一套非常完整的防御体系。
开启注册商转移锁定(ClientTransferProhibited)
用户需要在浏览器中登录域名注册商的管理后台, 然后找到域名管理页进行相关操作, 把“转移锁定”的状态设为开启, 该锁定的设置对应着ICANN规定的域名状态标签ClientTransferProhibited, 等到生效后任何一方第三方都不能够发起请求来转移域名。
这是成本最低的防劫持手段, 这也是效果最直接的办法, 所以所有高权重的域名必须默认开启这一设置, 只有在主动迁移注册商的时候临时关闭一下, 在迁移工作完成之后, 就要立即重新锁定它。
启用DNSSEC域名签名
在注册商的网站管理界面上, 给这个域名去办那个用来验证身份的数字公钥的手续, 然后把叫KSK还有DSKEY的那个信息记名条块, 交给上面管着它的域那边去登记。
DNSSEC这东西呢, 是靠着用那些加密算出来的签字来确认收到的那些答话到底对不对的, 所以就算有坏蛋把人家的查询路线给截了胡了, 或者是把半道上的数据传输路给拦住了, 他们也没办法凭空捏造出来这个名字对应的真实地址结果。
系统部署完毕以后, 推荐你在验证终端执行名为 dig +dnssec example.com 的命令来确认返回的签名是有效的。对于具有高权重的域名, DNSSEC的覆盖比例应该达到百分之百的标准。至于子域名的相关设置, 则可以进行分批次逐步推进。
转移密码定期轮换与隔离存放
域名注册商后端的域名转移密码, 这个又被称作授权代码或者EPP代码的东西, 是那些搞网站劫持的人员最喜欢的用来作为证据的物品。正确的处理方法应该把查看这个转移密码的权限, 和日常管理的权限分开, 给不同的账号去控制。
同时, 这个密码本身需要存放在像1Password或者是HashiCorp Vault这样的大公司级别密码管理工具里面去。另外还需要每隔九十天强制轮换一次密码。在密码泄露之后, 最初的72小时属于劫持行为高发的阶段, 而进行轮换操作, 则能够大幅度压缩这一时间窗口。
管理账号多因素认证与最小权限
为了符合规范要求, 我们的账户需要开启TOTP或者是硬件密钥这一种双因素认证的方式, 这样做的原因是不能让任何人仅仅通过使用密码就完成登录行为。
同时必须遵循最小权限的基本原则, 在日常进行运维工作的环节中只给操作人员授予能够编辑DNS解析记录这样的权限, 不要开放那些被标记为高危的操作权限, 这里的高危操作指的包括但不限于域名注册商转移以及删除域名等具体的业务动作。
如果需要进行这些属于高危范畴的操作的话, 流程上必须先走内部的审批流程, 并且在最终执行的时候由管理员级别的账号来实施操作。咱们可以通过像gname.xin这样的域名安全管理平台, 还有它们的集中监控面板, 去实时查看各个子账号的操作日志和权限变更情况, 只要发现了不正常的操作, 就会立刻进行告警。
WHOIS与注册信息异常监控
每周执行自动化任务去拉取域名的WHOIS信息, 然后对注册人、管理联系人、技术联系人以及DNS服务器这四项字段进行比对操作, 一旦发现其中任何一项在未经过审批的情况下发生了变更, 就会立即触发最高级别的安全事件响应流程, 并且建议将监控脚本部署在独立的服务器上运行, 让告警通道通过邮件加上短信这两种方式组成双链路来发送通知, 从而避免因为域名管理的同一账号体系被坏人一并攻陷而导致安全预警失效。
提出以下关于落地节奏的建议情况:在第一周, 去把措施一和措施四给完成掉;接着到了第二周的时候, 要把措施二以及措施三也给完成;等到第三周, 再去让措施五里面的那个自动监控功能正式上线。当这五个方面的措施全部都得到落实后, 域名被劫持所使用的技术路径基本上就已经处于被切断的状态了。
在此之后, 每一个半年周期, 都要去搞一次攻防方面的演练活动, 具体的模拟场景可以选择转移密码出现泄露、DNS记录遭遇篡改等情况, 通过这种方式来检验各个层面的锁定状态是否依然还在发挥有效的作用。


