注册商与域名账号安全
域名被劫持是唯一能让你所有技术防线一次性归零的攻击——注册商账号怎么被打下来、域名锁是什么、转移锁与 DNSSEC 怎么配,以及一份 10 分钟能做完的加固清单。
注册商与域名账号安全
这一章排在整个专栏最前面,理由很简单:
域名被劫持之后,你的 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