注册商与域名账号安全

域名被劫持是唯一能让你所有技术防线一次性归零的攻击——注册商账号怎么被打下来、域名锁是什么、转移锁与 DNSSEC 怎么配,以及一份 10 分钟能做完的加固清单。

作者 David更新于 第 3 篇(共 29 篇)

注册商与域名账号安全

这一章排在整个专栏最前面,理由很简单:

域名被劫持之后,你的 Nginx 配置、WAF 规则、CSP、参数化查询——一行都不会被执行。 用户访问的是攻击者的服务器,你的日志里一片安静。

这是唯一一类能让全部技术防线同时归零的攻击。而它的防御成本,大概是十分钟。

攻击者怎么拿到你的域名

真实案例里,路径高度集中在这几条:

路径具体做法
撞库你在别处泄露的密码,拿来试注册商账号。这是最常见的一条
邮箱沦陷攻破你的注册邮箱 → 走「忘记密码」流程 → 接管账号
社工客服伪造身份联系注册商人工客服,申请重置
域名过期忘记续费,被抢注(这不需要任何技术)
DNS 服务商账号域名没丢,但 DNS 托管方的账号被打下来,照样能改解析

注意第二条和第五条:你的域名安全,取决于注册邮箱的安全和 DNS 服务商账号的安全。链条比想象的长。

最容易被忽略的是「域名过期」。 它不是攻击,是运维失误,但后果一模一样——而且更难挽回,因为域名一旦被别人合法注册,你几乎要不回来。

有价值的域名会被抢注机器人盯着,过期当天就没了。一定要开自动续费,并且确认绑定的付款方式没过期——信用卡到期导致自动续费失败是真实且常见的翻车方式。

五道锁,逐个上

一、账号本身

  • 独立且随机的密码,密码管理器生成,绝不与任何其它站点复用。
  • 开二次验证,且尽量不用短信。短信可被 SIM 卡劫持(补卡攻击)。优先级:硬件密钥(FIDO2)> TOTP 应用 > 短信。
  • 注册邮箱单独用一个,这个邮箱本身也要开 2FA,且不用它订阅任何东西——减少它出现在泄露库里的机会。

二、注册商锁(Registrar Lock)

也叫 clientTransferProhibited,防止域名被转移到别的注册商。绝大多数注册商默认开启,但值得确认一次:

whois example.com | grep -i "status"

你想看到这些状态:

Domain Status: clientTransferProhibited
Domain Status: clientUpdateProhibited
Domain Status: clientDeleteProhibited

三个都在,意味着转移、修改、删除都需要先手动解锁——攻击者即使登进了后台,也要多迈一道坎。

三、注册局锁(Registry Lock)

比注册商锁更硬的一档:serverTransferProhibited 系列,改动需要注册局层面的人工核验(通常是电话确认)。

  • 需要单独申请,一般收费。
  • 对个人博客过度;对承载业务的核心域名值得。
  • 大公司的主域名基本都上了这一层。

四、DNSSEC

给 DNS 应答加数字签名,防止解析结果在传输途中被篡改。细节见下一章,这里只强调一点:DNSSEC 防的是解析链路被投毒,防不了「攻击者登录你的后台合法地改了记录」。两者要分清,别指望它替代账号安全。

五、变更告警

把「有人动了我的域名」变成一个能收到的通知:

  • 注册商后台开启变更邮件/短信通知。
  • 用外部服务监控 NS 与 A 记录变化。
  • 自己写个定时检查也行:
#!/usr/bin/env bash
# 存一份基线,每天比对 NS 记录有没有变
EXPECTED="ns1.example-dns.com ns2.example-dns.com"
ACTUAL=$(dig +short NS example.com | sort | tr '\n' ' ' | xargs)
if [ "$ACTUAL" != "$EXPECTED" ]; then
  echo "⚠️ NS 记录变了:$ACTUAL"   # 这里接你的告警通道
fi

为什么值得做:域名劫持的黄金处置窗口是最初几小时。等到用户来问「你网站怎么跳到赌博页了」,损失已经造成——搜索引擎可能已经把你标红。

一个真实的失效模式:管理员邮箱指向自己的域名

这是个很隐蔽的循环依赖:

example.com 的注册商账号
   → 注册邮箱是 admin@example.com
      → 这个邮箱的 MX 记录在 example.com 的 DNS 里

一旦域名解析被改,攻击者顺手把 MX 指向自己的邮件服务器,你的找回密码邮件直接落到他手上。你连申诉的通道都被切断了。

对策:注册邮箱一定要用另一个域名,最好是主流邮件服务商的独立地址(并单独开 2FA)。这个建议看起来琐碎,但它切断的是一条会让你彻底失去控制权的依赖环。

10 分钟加固清单

逐条打勾:

  • 注册商账号用独立随机密码
  • 注册商账号开 2FA(优先硬件密钥 / TOTP,避免纯短信)
  • 注册邮箱不在本域名下,且它自己也开了 2FA
  • whois 确认三个 client*Prohibited 状态都在
  • 自动续费已开,且付款方式未过期
  • 域名到期日已记进日历(不要只依赖自动续费)
  • DNS 服务商账号同样开 2FA
  • 开启域名变更通知,或配了 NS 记录监控
  • 核心业务域名评估是否上注册局锁

小结

  • 域名劫持是唯一能让全部技术防线一次性作废的攻击,且你的日志看不到。
  • 最常见的入口是撞库和注册邮箱沦陷,不是什么高深手法。
  • 域名过期造成的后果与被劫持等同,且更难挽回。
  • 注册邮箱绝对不要放在本域名下,那是一条会致命的循环依赖。

下一章讲 DNS 记录本身怎么加固。👉 DNS 加固:DNSSEC 与 CAA

本页目录