隱藏私人網站 DNS 名稱有多難?
| | 3 | |
昨天分享了 Ngnix 沒設好,導致外界可透過 IP 連上網站得知未公開 DNS 名稱的風險,從讀者們的留言又學到不少新知識(謝謝各位讀者老師,在此就不一一致謝了),再整理一篇筆記。
過去我有個錯誤認知,私用未公開發表的 DNS 名稱,由於 DNS 伺服器不會主動提供已註冊的主機名稱清單,理論上只有通曉內情的人或服務才知道這些 DNS 名稱。例如,我註冊了一個 my-linebot-callback.my-domain.net 給 LINE 呼叫,全天下應該只有 DNS 伺服器、LINE 跟我知道這台主機的 DNS 名稱... 嗎?
答案是:錯!!
(你看不到我 你看不到我 你看不到我)
第一種會導致 DNS 名稱外流的技術叫 Passive DNS。
Passive DNS (被動 DNS) 是 Florian Weimer 於 2004 年提出一種用於收集和分析 DNS 查詢結果的技術,概念是大型遞迴 DNS 伺服器或網路邊界部署監聽程式蒐集大家查詢過哪些 DNS,偷偷記錄下來。它常被應用在資安分析,用來追蹤惡意域名、分析 APT 攻擊、惡意軟體溯源、識別釣魚/仿冒網站,或監測仿冒網名。
目前比較有名的 Passive DNS 資料庫,以 Farsight Security(現為 DomainTools 旗下公司)所提供的 DNSDB 最具代表性,其與 ISP 及 DNS 營運單位合作,在全球部署了大量被動 DNS 感測器,不分日夜蒐集 DNS 查詢及回應內容,涵蓋超過 13 年的歷史紀錄並持續更新。其他服務(如 VirusTotal、SecurityTrails 等)雖然也提供部分被動 DNS 查詢功能,但資料完整度、歷史深度與查詢彈性都不及 DNSDB。
DNSDB 是訂閱服務,試用需要申請及審核,我只是業餘研究,知道豬會走路即可,到此打住。但目前至少釐清一件事,沒對外聲張的 DNS 名稱,除了你知道、我知道,Passive DNS 也知道。
第二種洩露 DNS 名稱的來源風險就高得多了。
當今網站要對外營運,TLS 憑證是必備要求,瀏覽器遇到 HTTP 會標註網站不安全,整合第三方服務提供 Callback 網址時,不是 HTTPS 根本沒人理你。而一旦向公開 CA 申請了 TLS 憑證,你的 DNS 名稱便已不再是祕密。
這一切源自於 CA CT Log(Certificate Authority Certificate Transparency Log,憑證授權中心憑證透明度日誌)。
2011年,DigiNotar CA 遭駭客入侵並簽發大量惡意憑證,暴露傳統憑證頒發流程的漏洞。為了讓憑證頒發過程更加公開透明,Google 於 2012 年提出了 Certificate Transparency (CT) 的概念,CT Log 是一種公開、不可竄改、可稽核的日誌,所有 CA 頒發的 TLS/SSL 憑證都必須記錄於此。這讓任何人都能查詢、監控憑證頒發狀況,及時發現未經授權或異常的憑證,進而提升網路安全。
時至今日,所有主流 CA 都已提供 CT Log,瀏覽器端也開始將憑證是否有列在 CT Log 視為信任與否的依據。
想當然爾,網路上已有現成的免費服務蒐集好全世界 CT Log,最有名的當屬由 Sectigo 維護的 Certificate Search。它允許任何人查詢全球公開信任的 SSL/TLS 憑證發行紀錄,並以簡單的介面檢索、分析與監控憑證資訊。
https://crt.sh
網頁介面主要開放以名查詢,但它也提供 PostgreSQL 查詢,讓惡意攻擊者有機會海撈新域名進行騷擾或刺探。
簡單結論:基本上只曾向公開 CA 申請過憑證,DNS 名稱就不再是祕密,且唾手可得。不公開 DNS 名稱或許可以減少一些騷擾,但千萬別指望藉由不公開資料獲得安全,落實網站本身的安全防護,避免出現漏洞弱點才是真正的安全之道。
而講到這點,我馬上想到前陣子為何悠遊卡這麼容易被破解,連高中生也會?提到的,悠遊卡用的 MiFARE Classic 技術之所以毫無安全可言,其最大敗筆便在於採取 Security by Obscurity 策略 - 寄望藉由不公開資訊得到安全。因此,考量網站安全時,也別以為不公開 DNS 名稱就可高枕無憂,這點認知很重要。
This post explores the risks of DNS name exposure through Passive DNS and CT Logs. Even undisclosed DNS names can be discovered via such methods. To ensure security, focus on robust protection rather than relying on obscurity.
Comments
# by six
s/而請到這點/而講到這點
# by Jeffrey
to six, s/$/謝謝/
# by Johnny
挺有趣的,有點像黑暗森林法則