天天看點

基于DNS的PRZ 建構安全防護系統

作者:科技混兒

1、導論

DNS:不在贅述,請檢視之前的文章。

PRZ:響應政策區域(RPZ:response policy zones)是一種讓你控制你的查詢者可以和不可以使用遞歸DNS伺服器進行查詢的方法。通過了解客戶正在查詢域名的信譽,你可以确定當遞歸伺服器收到對某些特定域名的查詢或在DNS響應中看到指向這些惡意伺服器的資訊時應采取的行動。

A response policy zone (RPZ) is a mechanism to introduce a customized policy in Domain Name System servers, so that recursive resolvers return possibly modified results.

2、RPZ基礎知識

RPZ工作的總體思路是,你可以為如何處理特定的查詢(或響應)建立政策,并選擇采取一些可能的行動。可能采取的行動的例子包括将用戶端重定向到一個内部安全頁面。您可以将這些政策存儲在你的DNS伺服器上的特别權威區域中,您還可以通過将 RPZ 區域從 DNS 伺服器傳輸到 其他DNS 伺服器來共享它們。

從威脅情報提供者那裡獲得RPZ資料(他們是該區域的主要提供者,而你是次要提供者);或者你可以自己建立這些區域(這時你是該區域的主要提供者)。當你自己建立RPZ時,它通常被稱為 "本地RPZ"。通常包含你的組織認為至關重要的白名單和黑名單條目。在本地RPZ中包含的這些條目,可以防止其他來源的RPZ改變你本地 RPZ的通路政策,進而確定你認為關鍵網站的阻止或通路。

3、作用

RPZ的主要作用是用于保護使用者免受網際網路上已知惡意域名、IP、nameserver等的不良影響。例如:

· 對于已知的惡意域名,RPZ可以攔截使用者對它的通路

· 對于已知的惡意IP,RPZ可以攔截指向這些IP的域名解析響應

· 對于已知的惡意nameserver,RPZ可以過濾掉這些惡意NS的解析響應

4、原理

4.1、惡意域名和站點的工作原理

基于DNS的PRZ 建構安全防護系統

惡意域名和站點的工作原理

4.2DNS RPZ工作原理

基于DNS的PRZ 建構安全防護系統

(1) 不法分子通過電子郵件或即時通訊軟體, 将包含惡意軟體或者域名的連結發送給使用者.

(2) 使用者點選收到的連結, 終端裝置首先要做的就是進行DNS解析. 将DNS請求發送至DNS解析伺服器.

(3) 具有RPZ功能的DNS解析伺服器, 向其他系統同步RPZ規則, 判斷目前請求解析的域名是否為惡意域名, 或者解析到的IP是否為惡意IP, 若是, 則會進行幹預, 幹預的結果則是由使用者下發的規則決定的.

(4) 在RPZ的防護下, DNS請求無法獲得正常結果, 或者獲得由ISP提供的警告頁面結果, 進而成功阻止了使用者通路惡意站點.

.RPZ規則下發階段的資料, 一般由ISP通過多種方式進行收集, 包括但不限于惡意域名檢測系統、被舉報的賭博網站、色情網站、釣魚網站以及其他被監管機構禁止的站點.

5、政策

5.1、管控規則

RPZ管控規則有6種,以下結論由pdns-recursor 4.1.16實驗得出。

5.1.1、NXDOMAIN

基于DNS的PRZ 建構安全防護系統

當RPZ存在一個域名CNAME記錄指向根域(.)的話,recursor不會向上遊DNS進行查詢,直接傳回NXDOMAIN,即域名不存在。

5.1.2、NODATA

基于DNS的PRZ 建構安全防護系統

當RPZ存在一個域名CNAME記錄指向通配符頂級域名,recursor不會向上遊DNS進行查詢,直接傳回NODATA,即空傳回。

5.1.3、PASSTHRU

基于DNS的PRZ 建構安全防護系統

ok.example.com CNAME記錄指向rpz-passthru.,會正常傳回查詢結果,盡管example.com子域下其他域名會傳回NXDOMAIN。

5.1.4、DROP

基于DNS的PRZ 建構安全防護系統

當RPZ存在一個域名CNAME指向rpz-drop.,recursor會直接丢棄查詢請求,查詢用戶端無法得到正确響應。

5.1.5、TCP-Only

基于DNS的PRZ 建構安全防護系統

當RPZ存在一個域名CNAME指向rpz-tcp-only.,recursor會引導客戶的重新以TCP協定再次發起域名查詢。

5.1.6、Local Data

基于DNS的PRZ 建構安全防護系統

除了前5種特别的管控規則,RPZ也支援常見的解析記錄傳回(就像域名解析劫持)。

需要注意的是,通常情況下通配符*不可以用在解析目标中,但在RPZ的Local Data管控規則中使用通配符*會産生字尾追加的特殊效果。

5.2、觸發條件

RPZ的觸發條件有5中,以下結論由pdns-recursor 4.1.16實驗得出。

5.2.1、Client IP Address

基于DNS的PRZ 建構安全防護系統
RPZ可以按照DNS請求用戶端IP位址進行規則觸發判斷。RPZ約定IP觸發條件需要逆序書寫。
           

例如常見IP位址寫法為B1.B2.B3.B4/prefix,在RPZ中則記為prefix.B4.B3.B2.B1.rpz-client-ip。

同時要求原IP prefix掩碼後面不可以有0。舉例為8.2.0.0.10.rpz-client-ip就不是一個合法的觸發條件,原因是10.0.0.2在8位掩碼後的面存在非零值。

5.2.2、QNAME

基于DNS的PRZ 建構安全防護系統
同4.1.1節描述,QNAME觸發條件比對查詢域名,同時也支援通配符寫法。
           

5.2.3、Response IP Address

基于DNS的PRZ 建構安全防護系統

該觸發條件用于比對未經修改的DNS響應中針對A/AAAA記錄的answer段的RDATA内容。IP書寫規則遵循4.2.1節描述。

實驗發現,www.baidu.com正常情況下會傳回如下記錄

基于DNS的PRZ 建構安全防護系統

按4.2.3節中觸發條件,比對到180.101.49.0/24IP段後,www.baidu.com将會傳回NXDOMAIN。

5.2.4、NSDNAME

基于DNS的PRZ 建構安全防護系統
該觸發條件會比對DNS資源記錄的資料路徑中出現的nameserver。
           

需要注意的是,nameserver觸發條件不一定會如預期進行,因為DNS Server不總是會以Trace的方式從root NS開始查詢。

5.2.5、NSIP

基于DNS的PRZ 建構安全防護系統
如4.2.4中描述,該規則比對nameserver的IP。IP書寫規則遵循4.2.1節描述。
           

6、資源

目前開源的BIND9、PowerDNS都已經支援。

DNS作為網際網路的基礎設施,安全性方面理應值得高度關注。也希望RPZ盡早走入RFC規範,成為業界最佳實踐之一。

7、RFC

[1] Mockapetris P. RFC1034: Domain names: Concepts and facilities. Fremont: IETF, 1987.
[2] Mockapetris P. RFC1035: Domain names: Implementation and specification. 1987.
[3] Romain F, Konstantin R. IDC 2020 global DNS threat report. West Chester, 2020.

https://dnsrpz.info/

繼續閱讀