不知大家是否還有印象,去年3月國際反垃圾郵件組織網站Spamhaus遭受了有史以來最大一次DDoS攻擊,攻擊流量峰值達到300Gbps,而此次攻擊的入口便是DNS!通過利用開放式DNS服務器,進行放大式的DDoS攻擊,這也充分說明:DNS存在安全漏洞。
DNS定義及攻擊原理
那么究竟什么是DNS?DNS攻擊的原理又是什么呢?其實,DNS是域名系統Domain Name System的縮寫,作為因特網的一項核心服務,它將便于記憶的域名和IP地址相互映射,使人們更方便的訪問互聯網,而省去了記憶那些被機器直接讀取的IP數串。
DNS的重要性體現在兩方面:一是,互聯網絕大多數應用的實際尋址方式,域名技術的再發展、以及基于域名技術的多種應用,豐富了互聯網應用和協議;二是,域名是互聯網上的身份標識,是不可重復的唯一標識資源,互聯網的全球化使得域名成為標識一國主權的國家戰略資源。
DNS之所以成為黑客攻擊的首選目標,原因主要有三:首先,服務角色決定了DNS具有穩定性和公開性,加之緩存影響導致地址不能經常變化,故在遭到攻擊時,DNS服務器不能更換和隱藏IP地址;其次是匿名性,DNS服務使用UDP協議,黑客可以很好地隱藏自己不被追溯;最后就是集中性,通常情況下DNS服務器都會為多個網站或者用戶提供服務,攻破一個服務器影響范圍非常大,也使得攻擊效率大大提高。
DNS攻擊主要方式
DNS是網絡實現互聯的基礎,通過DNS域名系統用戶可以在互聯網上輕松的找到自己想要的相關信息。同時,也因為DNS自身具有穩定與公開等特性,使得攻擊者在實施攻擊時更易于隱藏自己而不被追溯,關于DNS的攻擊方式有很多,這里為大家介紹幾種DNS最常見的六種攻擊方式。
方式一:DNS緩存感染
攻擊者使用DNS請求,將數據放入一個具有漏洞的的DNS服務器的緩存當中。這些緩存信息會在客戶進行DNS訪問時返回給用戶,從而把用戶客戶對正常域名的訪問引導到入侵者所設置掛馬、釣魚等頁面上,亦可通過偽造的郵件或其他的server服務獲取用戶口令信息,導致客戶遭到進一步的攻擊。
方式二:ARP欺騙
通過偽造IP地址和MAC地址可實現ARP欺騙,能夠在網絡中產生大量的ARP通信量使網絡阻塞,攻擊者只要持續不斷的發出偽造的ARP響應包就能更改目標主機ARP緩存中的IP-MAC條目,造成網絡中斷或中間人攻擊。
方式三:基于DNS服務器的DDoS攻擊
DDoS攻擊借助客戶/服務器技術,將多個計算機聯合起來作為攻擊平臺,對一個或多個目標發動DoS攻擊,從而成倍地提高拒絕服務攻擊的威力。這也是目前最常見同時影響力最大的DNS攻擊。
方式四:DNS重定向
DNS重定向就是使所設置的域名不通過DNS服務器解析域名,直接訪問域名對應的IP地址,攻擊者如果將DNS名稱查詢重定向到惡意DNS服務器,那么被劫持域名的解析就完全至于攻擊者的控制之下。
方式五:DNS信息劫持
攻擊者在DNS服務器之前將虛假的響應交給用戶,從而欺騙客戶端去訪問惡意的網站。假設當提交給某個域名服務器的域名解析請求的數據包被截獲,然后按截獲者的意圖將一個虛假的IP地址作為應答信息返回給請求者。此時,原始請求者就會把這個虛假的IP地址作為它所要請求的域名而進行連接,顯然它被欺騙到了別處而根本連接不上自己想要連接的那個域名。
方式六:本機劫持
本機的計算機系統被木馬或流氓軟件感染后,也可能會出現部分域名的訪問異常,如訪問掛馬或者釣魚站點、無法訪問等情況,本機DNS劫持方式包括hosts文件篡改、本機DNS劫持、SPI鏈注入、BHO插件等方式,雖然并非都通過DNS環節完成,但都會造成無法按照用戶意愿獲得正確的地址或者內容的后果。
如何防范DNS攻擊
面對多種不同方式的DNS攻擊,如何做到提前防御呢?其實,時時監控你的DNS數據就是判定網絡是否被攻擊的最好方法,例如一個可疑的DNS流量,這很可能預示著你的網絡設備成為僵尸網絡目標。在眾多DNS監控方法中,目前比較行之有效的大概有三種:域名年齡、可疑域名和DNS故障。
域名年齡是編寫Whois查詢和監控所有第一次穿過網關的域名,還特別關注所創建的字段的日期。例如,有一個域名是兩天前創建的,那么它會阻止流向該域名的任何流量,直到進一步檢查后再執行。
其實很難界定“可疑”域名的界限,例如我們上網時常使用google.com這個域名,但是goole.co1.123.abc卻很罕見,倘若你注意到流向某域名的流量不正常,那么這時你就需要格外小心謹慎了。
DNS故障,如果有很多DNS查找故障信息進入你的網絡,那么你很可能已經成為攻擊者利用域名生成算法(DGA)的受害者了,因為很少有人會利用DGA創建數千個域名來進行通信,與真實域名通信就是機器通過相應的C2節點來控制機器的過程。
此外,提高服務器抗攻擊能力,加強DNS防護能力,以及提升程序解析速度也是非常有必要的,加之實時監測DNS數據,以及行而有效的解決方案,幫助我們更好的防御來自攻擊者惡意的DNS攻擊。
下一篇:Hacker是這樣寫JS的