今天我們原本要來進行昨天我們昨天沒有做的TLS實作,但因為我的WSL出大包所以可能稍微延後了,對於期待TLS實作感到期待的人抱歉,等我修復好我的WSL後我就會把TLS的實作文章發出來。總而言之,今天我們先來學原本之後才要學的DNS安全。(今天這邊一樣只會講觀念,實作要等後續)
DNS(全名為Domain Name System)會把「域名」解析成「IP」,就像網際網路的電話簿。當你在瀏覽器輸入IZUMI.com,系統會問DNS:這個域名指向哪個IP?屬於一種全球式的分散系統
這邊將防護的方法分為對權威 DNS/zone以及對解析器/企業網路兩個部分
權威 DNS/domain owner
1.DNSSEC(Domain Name System Security Extensions)
用公/私鑰對 zone 資料簽章,讓 resolver 能驗證回應的完整性與來源可以有效阻止快取中毒與偽造回應
2.使用托管 DNS 的安全功能
3.監控與快照
監控zone的記錄是否被改變並使用certificate transparency /CT logs檢查可疑憑證
企業解析器/網路邊界
1.避免公開遞迴解析(Open Resolver)
公開遞迴會被濫用做 DDoS amplification
2.啟用DNS over TLS/DNS over HTTPS(DoT/DoH)
用來保護client resolver的查詢隱私(避免被觀察或攔截)
3.Response Policy Zone(RPZ)
在recursive resolver上做策略阻擋/重新導向(例如把惡意domain指到內部sinkhole)
4.Rate limiting/Query logging/Anomaly detection
對大量子域請求、短時間大量同源查詢要 rate-limit;對suspected tunneling(extremely long subdomain labels或高頻查詢)要alert
今天的文章只有單純的介紹基本的DNS安全,其他的實作真的要等到把WSL修好才有辦法繼續動工,如果明天WSL有修好那我會把TSL實作跟DNS的實作補給大家,如果還沒修好我們就會先介紹IDP跟IPS