背景
今天為大家推薦由360網路安全研究院-安全分析資深專家分享的議題《用DNS進行網路度量和安全分析》,本課題簡要闡述了DNS協議的歷史和發展現狀,在此基礎上,結合360網路安全研究院的多年分析DNS資料的經驗,介紹了我們利用DNS資料做過的一些關于大網方面的度量,并結合公司多維度的海量資料做的安全分析方面的一些作業,
1
DNS概述
DNS協議對互聯網的從業者來說并不陌生,它是互聯網的最古老也是最基礎和最核心的協議之一,簡單來說的話,它最主要的功能是完成域名和IP地址的映射,即互聯網的電話簿,
但DNS協議能夠完成的功能遠遠不止于完成域名和IP地址的映射,很多現代互聯網的基礎業務都要基于DNS協議才能夠完成,可以認為跟域名相關的業務幾乎都和DNS協議有關,根據dns-camel專案[1]統計,截止到2019年6月,共有150篇標準,建議,最佳實踐方面的RFC,共有2637頁,非常龐雜的內容,所以DNS協議實際的復雜度超出了大多數人對其的理解,
下圖顯示了DNS協議相關的RFC頁數從1984年到2019年的變化量,可以看到從1996年開始,幾乎以每四年500頁的速度在穩定增加,
也正因為如此基礎和復雜,幾乎所有的互聯網業務都會在DNS資料中留下痕跡,使用了DNS服務的惡意行為也不例外,對DNS資料進行安全分析,可以涵蓋絕大多數的惡意行為,
本文從使用DNS資料角度來介紹一下可以做的事情,主要是兩大類,分別為網路(業務的)度量和安全分析,
2
網路度量
DNS劫持情況
同大多數早期的互聯網協議類似,DNS協議在設計之初是以明文形式傳輸,支持TCP和UDP兩種傳輸協議,并且在實際使用程序中主要以傳輸協議主要以UDP為主,
所以到現在,大多數的DNS請求和應答仍然是基于UDP協議的明文形式進行傳輸,因此DNS劫持是DNS在實際環境中非常普遍的問題,為了對這個問題有個精確的度量,清華大學網路科學與網路空間研究院和360公司合作,對全球范圍內的DNS劫持情況做了一個定量的度量,測量方案通過請求隨機化子域名(避免快取服務器對請求域名的快取)在不同的公共DNS服務器,從不同的請求型別,頂級域以及協議等維度的方式來探測DNS劫持的情況,
測量結果表明:
1. 基于UDP的DNS資料包更容易遭到劫持,
2. A型別(IPv4地址)的DNS請求比其他型別稍高,
3. 全球的8.5%的自治域存在DNS劫持,其中包括像中國移動這種較大的ISP,
4. 推測DNS劫持的主要目的是為了減少財務結算和提高DNS相應的性能,
具體的測量詳細程序和完整結果參見這里[2],
小貼士:DNS加密傳輸的進展
針對DNS明文傳輸的問題,最近幾年,業界已經積極的推動起來了,客戶端方面大的瀏覽器廠商(Firefox,Chrome,360瀏覽器等)和作業系統廠商(包括windows和macOS)逐步開始支持DoT/DoH;在服務器方面包括360安全DNS[3]在內的公共DNS服務提供商都開始DoT/DoH服務,有條件的用戶可以嘗試一下,應該可以極大的緩解由于DNS劫持所引起的安全風險,
用DNS資料來度量NTP pool的使用情況
NTP pool成立于2003年,是一個由志愿者組織起來的,由聯網計算機的動態虛擬群集組成,可向全球數百萬個系統提供高度準確的時間同步服務,它是大多數主要Linux發行版和許多聯網設備的默認時間服務器,
由于它的特殊作業方式,在PDNS(參見下面的小貼士)中,它的域名和IP的映射關系在一定程度上是隨機的,特別像之前非常流行的僵尸網路躲避攻擊檢測和防封堵使用的Fastflux[4],
為了摸清楚NTP pool的實際作業情況,我們通過DNS資料對NTP pool做了一次度量,
主要有如下發現:
1. 服務器方面
NTP pool服務器大概在4000左右,其中IPv6的占比在25%,IPv4占75%,
NTP pool服務器遍布全球97個國家,不過主要主要集中在美、德、法、英、荷、加等發達國家,
國內的服務器只占總服務器個數2%,并且主要集中在香港,臺灣,廣東和北京,也是經濟較為發達的地區,
2. 子域名方面:
TP pool的子域名主要有三種劃分方式:按照大洲,按照國家/地區,按照供應商,
NTP pool的域名DNS請求中,大約3%的域名請求是無效的,主要是因為拼寫錯誤或者系統的bug導致的,
按照供應商訪問的NTP pool服務會在一定程度上暴露用戶發起請求的客戶端的型別,下圖是我們對不同供應商的DNS請求次數的統計:
3. 使用服務器效率方面:
a. NTP pool的在輪詢服務器方面理論上來說是均衡的
b. 在實際操作中,收到地理位置以及不同服務器服務能力,服務策略的不同導致不同的IP提供服務的機會并不均等,
c. TOP4000的RRset(約占總數的1%)即可占總記錄數的41.21%,不同RRset的CDF圖如下:
完整的文章請參閱:https://blog.netlab.360.com/look-at-ntp-pool-using-dns-data/
小貼士:被動DNS系統
與主動掃描(探測)不同,可以利用大量的被動DNS資料進行大規模的基于DNS資料的度量,所謂被動DNS也即PassiveDNS(PDNS) 資料庫是將歷史DNS記錄決議/融合/存盤的系統,通過被動的收集DNS流量,構建域名和Rdata(域名的決議結果)之間的全量歷史映射關系,實作域名和Rdata的互查,以及歷史DNS記錄的查詢,
360的PDNS系統(https://passivedns.cn)是國內第一家公開的P
其他的度量
利用PDNS可以完成很多其他的度量作業,比如:
1. 不同CDN廠商規模的評估
2. 黑灰色產業規模的評估
3. 新通用頂級域名(new gTLD)使用情況/(在現實使用中的)沖突情況的評估
4. 域名在注冊,備案以及決議尤其是涉及到批量的域名處理時的相關情況的評估
5. 國家(涉及域名方面)政策的執行情況的評估
6. ……
總之在網路測量方面,只要涉及到域名,DNS資料幾乎就是天然的基準資料,只要設計合理的測量方案,就能夠得到準確的結果,
3
安全分析
面向DNS的安全分析,大體可分為兩類:
· 針對DNS協議和系統本身的安全問題的分析
DNS投毒
DNS劫持
偽隨機前綴DoS攻擊
NXNSAttack攻擊
…
· 使用DNS資料來分析相關的安全事件
DNS隧道
DNS反射放大
DGA
Fastflux
…
DNSMon——基于DNS資料的威脅檢測和分析系統
在日常作業中,針對DNS協議和系統的攻擊在DNS資料中有一定的體現,但并不是利用DNS資料威脅發現的主要目標,如前所述,只要互聯網使用域名的業務就會在DNS資料中留下自身的痕跡,惡意程式也不例外,因此從威脅發現的角度來說,使用DNS資料檢測,分析和阻斷安全威脅是海量DNS資料發揮作用的主要場景,
為了能夠更加及時高效的發現安全事件,360公司開發了DNSMon系統,該系統以DNS資料在統計維度上的例外為出發點篩選初始域名,綜合web頁面資料,證書資料,whois資料,沙箱以及蜜罐等多維度的資料,并結合高質量的IOC和word2vec,LSTM等深度學習演算法,對發生例外的域名進行綜合判斷,標定其例外狀態,給出較為確定性的標簽,
對于標黑和高危域名可以錄入威脅情報庫供第三方使用,對于白和其他灰域名則錄入標簽庫供第三方查詢使用,
基本流程如下圖:
系統的優勢主要體現為如下三點:
· 準實時的處理和關聯海量的資料,目前在于能夠在百萬QPS的DNS請求的情況下,融合多維度的其他資料源進行處理,達到小時級別的輸出,
· 自動化程度高,每天能夠自動產生千級別的黑域名和高危域名,
· 無先驗知識的情況下可以大規模的阻斷黑,高危域名
永恒之藍挖礦蠕蟲及其系列變種
MSRAminer惡意挖礦程式及其系列變種
NuggetPhantom惡意程式及其系列變種
DGA.popad廣告網路挖礦程式
Mylobot僵尸網路
Godlua后門
Burimi挖礦蠕蟲
LSDMiner挖礦惡意程式
盜賊惡意SDK應用
惡意利用某大型互聯網廠商的評論系統漏洞刷廣告流量
Skidmap惡意程式
更多案例請參考:https://blog.netlab.360.com/tag/dnsmon/
安全分析的其他方面
在對PDNS資料進行深入分析之后,我們就會發現其實針對很多型別的攻擊如果從DNS資料入口就會非常簡單,能夠達到事半功倍的效果,
1. 比如傳統的采用DGA技術和fastflux技術的僵尸網路從DNS資料入手是非常容易的,
2. 再比如某些黑灰行業他們在不斷的改進自己的攻擊手法時,其所使用的基礎設施卻是不變的,以某一個或者幾個IP/域名為入口通過DNS資料能夠很快的將其他之前未發現的IOC關聯出來,
3. 再比如一些惡意程式在運行時,在時序上有著非常穩定的順序,這種非常強的關聯關系也會在DNS中留下非常顯著的特征,只要在時序上構建較好的模型,我們就能夠對域名進行聚類和擴展分析,從而有效的提高分析效率,
4. …
4
總結
近年來DNS協議正向著更注重隱私性,安全性方面快速發展,而針對DNS資料的分析則在對度量DNS協議發展情況,對依托于DNS資料所做的安全分析方面,尤其是在威脅情報的生產方面發揮著越來越重要的作用,
毫無疑問,DNS協議對未來互聯網的發展起著重要的作用,盡管我們還不知道它將走向何處,會給未來的網路帶來哪些影響,現在是體驗這個變化程序的最好時機,無論是對DNS資料做安全分析還是利用DNS做各種度量,DNS這個寶庫都值得深入探索和挖掘,
參考資料
1. https://powerdns.org/dns-camel/
2. https://www.usenix.org/system/files/conference/usenixsecurity18/sec18-liu_0.pdf
3. https://dns.360.cn/
4. https://en.wikipedia.org/wiki/Fast_flux#:~:text=Fast%20flux%20is%20a%20DNS,compromised%20hosts%20acting%20as%20proxies.
往期精彩回顧
封裝 axios 取消重復請求
常見登錄鑒權方案
360Stack裸金屬服務器部署實踐
360技術公眾號
技術干貨|一手資訊|精彩活動
掃碼關注我們
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/240950.html
標籤:AI
