2022-03-28

DNS可能有什麼樣的資安風險?有什麼方式可以保護DNS不被入侵?

DNS可能有什麼樣的資安風險?有什麼方式可以保護DNS不被入侵?
自網際網路迅速發展的21世紀初,DNS域名系統一直都是非常核心的重要網路服務,近年來隨著各式各樣新穎的應用及服務快速增加,DNS的工作也變得更為吃重。因此DNS也被有心人士拿來大肆運用於網路犯罪或是產生出各種以DNS基礎的攻擊類型,包括DNS服務癱瘓攻擊、中間人攻擊、偽冒嫁接、反射/放大攻擊、殭屍網路、惡意程式、資料外洩等等。

這些人的攻擊目標除了DNS本身之外,多數也會利用DNS作為跳板或是暗藏的通道,進行針對第三方的攻擊。所以我們除了需要多思考DNS停擺時將對於整體網路服務運轉的影響衝擊,也必須非常清楚DNS資安問題可能衍生的威脅與傷害。

自2013年「Spamhaus」遭受大規模DDoS攻擊事件後,DNS的安全問題才日益獲得關注,尤其是該事件後的多起大規模DDoS攻擊事件,都是同樣採取的「DNS型態反射/放大攻擊」方式進行攻擊,各個企業的資安人員們不得不開始評估導入對外的DDoS防護方案來抵禦DNS DDoS攻擊,但這樣的策略並沒有成功根治問題。由於DNS系統本身在設計上就缺乏安全性的考量,再加上多數企業組織的當時的資安策略忽視了DNS系統環境的安全強化與組態調校,才形成「DNS是網路服務鏈中容易受攻擊與惡意利用的組件」這一重大的資安漏洞。


來自「內部」的DNS威脅
DNS攻擊型態的資安威脅,已經早早脫離只有外部的DNS攻擊型態,目前針對企業「內部」網路所發動的「Inside Out」攻擊事件,頻率也不斷的在上升,例如駭客可能會利用DNS較易穿越企業防火牆及入侵防禦閘道等防禦機制的特性,來結合各式各樣的攻擊方式,進而產生基於DNS型態的複合性威脅,交互套用於外部及內部DNS漏洞。

來自「外部」的DNS威脅
對於外部網路的DNS結構威脅,目前還是以「造成服務影響」的手法為主,為數最大的以DDoS癱瘓服務為首,或是DNS劫持(或稱「假冒/嫁接」)、Flooding洪水式攻擊等手法屢見不鮮,這些攻擊的主要目的都是以誘騙竊取資料為主。

不論資本大小,各領域的企業與組織遲早都必須提供相應的網路服務,對外的官方網站、電子信箱、電商、網路交易、行動服務、各種雲端服務以及物聯網的應用服務等都包含在內,在DNS需求日益增長、服務量大增的現今,攻擊方只要能影響到DNS的正常運作,對於我們都會產生顯著的傷害。

攻擊者會選擇以DNS作為攻擊目標,主要原因在於入門工具取得較簡單,現在只要任何有意圖犯罪的人,都能便宜的價格取得DDoS工具。


保護DNS的方式有哪些?
  1. TSIG
Transaction Signature簡稱TSIG,是一種可以保護2臺DNS伺服器之間資料傳輸的做法。
要啟用TSIG的功能,我們首先要透過DNS伺服器當中的內建工具產生一把金鑰,接著修改DNS伺服器的網域設定,接著以網址的解析結果以及資源記錄(Resource Record,RR)的設定,計算出一個獨一無二的雜湊值,經過加密成為憑證,一併傳送給另外一臺DNS伺服器,另一台伺服器解密後會比對接收資料的大小是否和雜湊值一致,以確認資料在傳送過程中是否經過竄改。

TSIG是採取對稱式加密的做法保護資料,所以我們必須將先前產生的金鑰部署到其他的DNS伺服器,但就實務面來說,將金鑰提供給DNS伺服器的管理者以及讓他們完成相關的設定都分常困難,因此目前網路上很少有資料是透過TSIG技術來保護DNS伺服器的,實際上比較容易部署TSIG的環境,多半是企業內部自行架設,或是可以完全控制的主、次要DNS伺服器的使用環境。

另外,DNS伺服器一旦遭受攻擊,或者金鑰因為各種原因不慎流到駭客手中,就會產生嚴重的風險,且TSIG的對於DNS伺服器的資料傳輸就不再具有保護功能,與之相比,能夠一併驗證DNS伺服器可信度的DNSSEC,在安全的保護上,就完整許多。
  1. DNSSEC
Domain Name System Security Extensions簡稱DNSSEC,中文譯做域名系統安全擴充,在西元2000年代由網際網路協會中的網際網路工程任務小組提出並開發成型,顧名思義的DNSSEC是一種DNS的解析技術,是在現有的DNS架構基礎上,加入數位簽章的機制,用以驗證DNS伺服器解析結果的真實性,進而避免各種DNS攻擊。

與TSIG相比,DNSSEC比較複雜,它所採用的技術是以非對稱的方式加密,也就是說DNSSEC是分為公、私2把金鑰進行加解密的處理,透過此技術也能使它更難被破解,不過相對的,DNSSEC也因此影響到伺服器效能,不能像TSIG一樣加密所有傳送給其他DNS伺服器的資料,作為替代,DNSSEC會將資料編譯出一組獨一無二的雜湊值,形成數位簽章之後,再一併傳送出去,當DNS伺服器接收到上層伺服器的回應資料後,就會使用另外一把的公鑰解密,比對資料大小是否和雜湊值完全一致來完成驗證的工作。