DNS Wildcard: когда твой домен открывает двери посторонним

DNS Wildcard: когда твой домен открывает двери посторонним

Май 19, 2026 dns security github pages domain hijacking web hosting best practices dns configuration cybersecurity

Когда ваш домен становится песочницей для чужих: DNS wildcards и GitHub Pages

Вы в путешествии по Африке, связь нестабильная. Вдруг приходит уведомление от Google Search Console: кто-то зарегистрировал поддомен на вашем домене.

Ситуация реальная. Один разработчик разместил статический сайт на GitHub Pages — визуализатор 3D-точек. Пока он был оффлайн, кто-то занял kafka.immersivepoints.com и начал размещать там свой контент. Обнаружили проблему только спустя недели.

Как всё было настроено

GitHub Pages удобен тем, что не нужно настраивать серверы. Достаточно указать DNS-записи на IP-адреса GitHub, и сайт начинает работать.

Разработчик настроил wildcard-запись (*.immersivepoints.com), которая направляла весь трафик поддоменов на GitHub. Простое и элегантное решение, но с уязвимостью.

Предположение было простым: «Раз я владею доменом, значит, контролирую все его поддомены». Но GitHub Pages работает иначе.

Почему это стало возможным

GitHub принимает CNAME-файл из любого репозитория и начинает обслуживать его содержимое, если DNS-записи указывают на их сервера. Проверки владения доменом при этом нет.

Другой пользователь создал репозиторий с CNAME-файлом, указывающим на kafka.immersivepoints.com, 并开始托管他们的内容. 甚至从私密仓库操作, 开发人员无法直接发现和报告问题。

Wildcard-запись в DNS означает, что трафик на все поддомены направляется на один сервис. Это удобно, но удаляет тонкий контроль. В сочетании с отсутствием проверки на GitHub, это создает риск: каждый с аккаунтом на GitHub может «забрать» поддомен под вашей wildcard-записью.

本次事件中, 恶意用户托管了赌博网站, 导致域名在搜索引擎中被贬低.

Как обнаружили злоупотребление

Разработчик благодаря Google Search Console обнаружил проблему. 没有这个工具, 赌博站点可能会继续索引在他们的域名下 indefinitely.

这 illustrates 监控的重要性: 它是安全工具, 而不仅仅是性能 метрика.

GitHub's Half-Lösung

GitHub имеет feature 域名验证, 但它埋在账户设置中, 而不是在 репозиториях. 很少用户发现或了解需要它.

GitHub should:

  1. 显示警告在 репозиториях设置, 当域名不验证时
  2. 要求域名验证在允许CNAME文件服务之前
  3. 实现挑战机制, 如 DNS TXT records

开发人员报告了恶意仓库, 但没有确认响应. 响应时间和透明度不足.

Как защитить себя

Если вы используете GitHub Pages с custom domain, here's your checklist:

✓ Избегайте wildcard DNS records за исключением абсолютной необходимости. Используйте конкретные A records или CNAME records для exact subdomains.

✓ Verify your domain через GitHub's account settings.

✓ Используйте DNS TXT records для подтверждения ownership.

✓ Monitor your domain с Google Search Console или аналогичными сервисами. 设置 alerts для new pages.

✓ Regularly audit your GitHub Pages configuration.

✓ Consider not using GitHub Pages для production critical projects.

The Broader Lesson

这 incident illustrates 为什么开发人员需要理解 DNS configuration — не только设置, 而是为什么它 matters. A wildcard DNS record 像给予 GitHub a master key 至你的 entire subdomain structure. 它 convenient 直到它 isn't.

平台需要更好 security defaults. GitHub Pages 应改善 feature discoverability 和 security warnings. Burying 域名 verification 应在 front-and-center в repository setup flow.

The good news? 这 is all preventable. With proper DNS configuration 和 domain verification, 你的 GitHub Pages projects 保持 secure.

Just don't forget to set up monitoring.

Read in other languages:

BG EL CS UZ TR SV FI RO PT PL NB NL HU IT FR ES DE DA ZH-HANS EN