DNS是什么,它如何運行?DNS漏洞有哪些?
域名系統(DNS)是Internet的基礎之一,但是網絡之外的大多數人可能沒有意識到他們每天都在使用它來完成工作,查看電子郵件或在智能手機網上沖浪。
系統域名是互聯網的一項服務。它作為將域名和IP地址相互映射的一個分布式數據庫,能夠使人更方便地訪問互聯網。DNS使用TCP和UDP端口53。當前,對于每一級域名長度的限制是63個字符,域名總長度則不能超過253個字符。
DNS服務器如何工作
域名系統(Domain Name System,DNS)是Internet上解決網上機器命名的一種系統。就像拜訪朋友要先知道別人家怎么走一樣,Internet上當一臺主機要訪問另外一臺主機時,必須首先獲知其地址:
TCP/IP中的IP地址是由四段以“.”分開的數字組成,記起來總是不如名字那么方便,所以,就采用了域名系統來管理名字和IP的對應關系。
雖然因特網上的節點都可以用IP地址惟一標識,并且可以通過IP地址被訪問,但即使是將32位的二進制IP地址寫成4個0~255的十位數形式,也依然太長、太難記。
因此,人們發明了域名(Domian Name),域名可將一個IP地址關聯到一組有意義的字符上去。用戶訪問一個網站的時候,既可以輸入該網站的IP地址,也可以輸入其域名,對訪問而言,兩者是等價的。
例如:微軟公司的Web服務器的IP地址是207.46.230.229,其對應的域名是www.microsoft.com,不管用戶在瀏覽器中輸入的是前者還是后者,都可以訪問其Web網站。
一個公司的Web網站可看作是它在網上的門戶,而域名就相當于其門牌地址,通常域名都使用該公司的名稱或簡稱。
例如上面提到的微軟公司的域名,類似的還有:IBM公司的域名是www.ibm.com、Oracle公司的域名是www.oracle.com、Cisco公司的域名是www.cisco.com等。
當人們要訪問一個公司的Web網站,又不知道其確切域名的時候,也總會首先輸入其公司名稱作為試探。但是,由一個公司的名稱或簡稱構成的域名,也有可能會被其他公司或個人搶注。
甚至還有一些公司或個人惡意搶注了大量由知名公司的名稱構成的域名,然后再高價轉賣給這些公司,以此牟利。
像Internet本身一樣,該目錄分布在世界各地,存儲在域名服務器(通常簡稱為DNS服務器)上,這些域名服務器都非常定期地相互通信以提供更新和冗余。
按照ISO-3166標準制定的國家域名,一般由各國的NIC(Network Information Center,網絡信息中心)負責運行。我國域名體系分為類別域名和行政區域名兩套。
形式:權威DNS服務器與緩存域名服務器
域名服務器通常會有兩種形式:權威域名服務器,以及緩存域名服務器。
當您的計算機要查找與域名關聯的IP地址時,它首先向遞歸DNS服務器(也稱為遞歸解析器)發出請求。
權威域名服務器
下列情況需要有權威域名服務器:想要向全世界提供DNS信息,并對請求給出權威應答。注冊了類似 exampleorg的域,而需要將IP指定到其下的主機名上。
某個IP地址塊需要反向DNS項(IP 到主機名)。備份服務器,或常說的從(slave) 服務器,會在主服務器出現問題或無法訪問時來應答查詢請求。
緩存域名服務器
下列情況需要有緩存域名服務器:本地的DNS服務器能夠緩存,并比直接向外界的域名服務器請求更快地得到應答。當有人查詢www.FreeBSDorg時,解析器通常會向上級ISP的域名服務器發出請求,并獲得回應。
如果有本地的緩存DNS服務器,查詢只有在第一次被緩存DNS服務器發到外部。其他的查詢不會發向局域網外,因為它們已經有在本地的緩存了。
DNS如何提高效率
DNS按層次結構進行組織,有助于使事情快速,順暢地運行。為了說明這一點,讓我們假設您訪問某xxx.com。
如上所述,對IP地址的初始請求是向遞歸解析器發出的。遞歸解析器知道需要使用哪些其他DNS服務器來解析具有其IP地址的站點(xxx.com)的名稱。
該搜索將導致一個根服務器,該服務器了解有關頂級域名的所有信息,例如.com,.net,.org以及所有國家/地區域名,例如.cn(中國)和.uk(英國)。
根服務器遍布世界各地,因此系統通常會將您引導到地理位置最接近的服務器。
請求到達正確的根服務器后,它會轉到頂級域(TLD)名稱服務器,該服務器存儲第二級域的信息,即到達co.org.net前的二級子域名。
然后,將請求轉到域名服務器,該服務器保存有關站點及其IP地址的信息。一旦發現IP地址,它將被發送回客戶端,客戶端現在可以使用它來訪問網站。
所有這些僅需幾毫秒。由于DNS已經使用了30多年,因此大多數人都將其視為理所當然。構建系統時也沒有考慮安全性,因此黑客充分利用這一點,從而產生了各種攻擊。
攻擊一:DNS反射攻擊
DNS反射攻擊用來自DNS解析器服務器的大量郵件淹沒受害者。攻擊者使用DNS解析器,然后請求大型DNS文件來淹沒受害者的IP。
所以當解析程序做出響應時,受害者會收到大量未請求的DNS數據,這些數據淹沒了他們的計算機。
攻擊二:DNS緩存中毒
可將用戶轉移到惡意網站。攻擊者設法將錯誤的地址記錄插入DNS中,因此當受害者請求中毒站點的地址解析時,DNS會使用由黑客控制的另一個站點的IP地址進行響應。
一旦進入這些假冒網站,受害者可能會被誘騙放棄密碼或遭受惡意軟件下載。
攻擊三:DNS資源耗盡
因此,如果遞歸解析器無法提供與站點名稱關聯的IP地址,它將詢問受害者的名稱服務器。
(圖片轉自Docin,非商業用途僅供交流,勿轉)
攻擊者針對其域生成大量請求,并將其扔向不存在的子域以進行引導,這導致大量解析請求被攻擊到受害者的名稱服務器,從而使請求不堪重負。
攻擊四:SIGRed可蠕蟲攻擊的DNS漏洞
最近,人們發現Windows DNS服務器中的漏洞可能會導致DNS的各種混亂,稱為SIGRed的潛在安全漏洞需要復雜的攻擊鏈,但可以利用未打補丁的Windows DNS服務器在客戶端上安裝和執行惡意代碼。
該漏洞利用程序是“可蠕蟲化的”,這意味著它可以在計算機之間傳播,而無需人工干預。該漏洞足夠令人震驚,以至于美國聯邦機構反應過來時,也只有幾天的時間來火速安裝補丁。
前面說了這么多關于DNS的運行原理和被攻擊的原理,那么DNS將如何被防護呢?接下來介紹一種DNS的防護措施和原理:
防護措施:DNSSec
互聯網名稱與數字地址分配機構意識到DNS頂級,二級和三級目錄服務器之間的通信存在漏洞,可能使攻擊者劫持查找。
這將使攻擊者可以使用惡意站點的IP地址響應對合法站點的查找請求。這些網站可能會將惡意軟件上傳給用戶,或者進行網絡釣魚和欺騙攻擊。
DNSSec的保護方式則是通過讓每個級別的DNS服務器對其請求進行數字簽名來解決此問題,從而確保最終用戶發送的請求不會接收到攻擊者的欺瞞性命令。這將創建信任鏈,以便在查找的每個步驟中,都可以驗證請求的完整性。
此外,DNSSec可以確定域名是否存在,如果不存在,則不會將該欺詐性域名交付給尋求解析域名的無辜請求者。