严重程度:高危DNS 与邮件安全
Subdomain takeover:它是如何发生的,以及如何预防
当一条 DNS 记录(通常是 CNAME)仍指向你已不再使用的第三方服务时,就会发生 subdomain takeover。攻击者重新注册那个资源,就能在你的子域名上开始提供他们自己的内容。
这是什么
你通过 CNAME 把 blog.yourdomain.com 指向某个托管服务,随后删除了托管资源,却忘了那条 DNS 记录。这条记录现在「悬空」了——它指向一个任何人都能认领的空位。
常见目标包括 GitHub Pages、S3 bucket、Heroku 应用、Azure 站点、Shopify,以及其他允许新用户认领曾被使用过的主机名的类似平台。
为什么重要
谁认领了那个资源,谁就控制了你真实域名上的一个页面。这非常适合用来钓鱼、窃取限定于你域名的 cookie,以及绕过那些信任你源的保护。
由于内容位于你合法的子域名上,用户乃至某些安全工具都会不假思索地信任它。
如何修复
移除悬空的 DNS 记录
审查你的 DNS,检查指向外部服务的 CNAME/ALIAS 记录。如果目标资源已不存在,就删除该记录。
按正确顺序下线
当你退役一个托管资源时,先(或同时)移除 DNS 记录,而不是之后再移除。删除资源与删除记录之间的这段时间就是脆弱期。
需要时重新认领
如果你仍想要这个子域名,就在该服务上重新配置资源,让主机名解析到你所控制的东西。
常见问题
我怎么知道自己是否存在这个风险?
找出那些 CNAME 指向的服务会返回「未认领」或「没有这个应用」页面的子域名。AppSafe 会自动识别这些特征。
A 记录也会有风险吗?
通常风险较小,因为 IP 不像有名字的服务空位那样可以随时被重新分配——但云 IP 可能被复用,所以退役的记录仍应移除。