如何在網(wǎng)絡(luò)中追蹤入侵者(二):高階模式
如何在網(wǎng)絡(luò)中追蹤入侵者(二):高階模式在低成本追蹤威脅系列的第一部分,我討論了被動(dòng)DNS 對(duì)于威脅追蹤工具的重要性。我詳述了一個(gè)組織如何建立傳感器來收集被動(dòng)DNS 數(shù)據(jù),以及一些使用這些數(shù)據(jù)的方法。
如何在網(wǎng)絡(luò)中追蹤入侵者(二):高階模式

在低成本追蹤威脅系列的第一部分,我討論了被動(dòng)DNS 對(duì)于威脅追蹤工具的重要性。我詳述了一個(gè)組織如何建立傳感器來收集被動(dòng)DNS 數(shù)據(jù),以及一些使用這些數(shù)據(jù)的方法。 在這些基礎(chǔ)建立起來之后,下一步就是從這些找到的數(shù)據(jù)中找到一些模式和惡意軟件信號(hào),以較低的誤判率,讓追蹤者得到一個(gè)深入挖掘未知威脅的起點(diǎn)。把重點(diǎn)放在異常值和其他模式很重要因?yàn)楣粽吆苋菀赘淖兯麄兊墓艋A(chǔ)設(shè)施并讓大部分的網(wǎng)絡(luò)IOC 無效。
在這個(gè)系列的第二部分,我會(huì)檢查這些信號(hào)并且討論它們?cè)诒粍?dòng)DNS 中可以怎樣使用來追蹤網(wǎng)絡(luò)中未知的惡意攻擊者。
快速流量
,快速流量是僵尸網(wǎng)絡(luò)最常用的技術(shù)。通常,一個(gè)全稱域名(FQDN )在一段較長(zhǎng)的時(shí)間內(nèi)決定一個(gè)相同的地址空間。

通過快速流量,一個(gè)FQDN 服務(wù)作為命令與控制服務(wù)器讓大量的IP 超時(shí),頻繁的交換數(shù)據(jù)流量。 這對(duì)于基于IP 的阻止列表增加回彈有影響,因?yàn)樽柚笽P 只有在FQDN 解析到那個(gè)IP 的很短的一個(gè)時(shí)間窗口有效果。這種模式本身不是惡意的,由于它的本意是良性的。 一個(gè)接收到大量流量的域名可能會(huì)解析到大量的IP 地址上。通常,良性的域名解析到相同的IP 空間,地址組,地理位置。 惡意的域名分布比較不均勻。這是第一高階模式:‘解析到大量IP 的域名以及IP 在所有權(quán)和地理位置上是多種多樣的’。舉個(gè)例子,在我們下面列出的域名樣本中尋找模式。VirusTotal 確認(rèn)它們確實(shí)是惡意軟件。
域名生成算法
域名生成算法(DGA ),惡意軟件使用一個(gè)算法每天隨機(jī)生成上千個(gè)域名然后嘗試連接到他們來與控制者通信。僵尸網(wǎng)絡(luò)每天注冊(cè)子域名來保持僵尸網(wǎng)絡(luò)的運(yùn)行,發(fā)現(xiàn)惡意軟件最終將會(huì)嘗試解析到已注冊(cè)的域名。一個(gè)眾所周知并且有效的阻止DGA
,惡意軟件的方法是在僵尸網(wǎng)絡(luò)之前將所有可能的域名注冊(cè)掉。這需要逆向大量的惡意樣本,這可能會(huì)很無聊。持續(xù)跟進(jìn)惡意軟件新的家族及其變種也很困難。所以如

何判斷被動(dòng)DNS 數(shù)據(jù)中的域名是通過DGA 生成的(沒有用所有可能的算法直接生成一個(gè)完整的DGA 域名列表),這將會(huì)是個(gè)非常困難的任務(wù)。幸運(yùn)的是,算法生成的域名有結(jié)構(gòu)特征這與良性的域名不同。良性域名一般都是通過選擇的因?yàn)樗麄兒芎糜浕蛘吒鶕?jù)各種各樣的語言反映常用詞。這就是我們的高階模式:‘有異常語法結(jié)構(gòu)的域名’。
一個(gè)相當(dāng)準(zhǔn)確的檢測(cè)DGA 域名的方法是提取特征比如輔音到元音的比例,長(zhǎng)輔音序列,熵,
常見的字典單詞等等,然后在隨機(jī)森林分類樹中分析它們。
數(shù)據(jù)科學(xué)方法檢測(cè)DGA 是非常有意義的實(shí)現(xiàn)。我們已經(jīng)提供了用于檢測(cè)的代碼。這個(gè)特別的分類器從通用英語單詞中檢測(cè)異常語法結(jié)構(gòu)??梢园凑障嗨频姆椒▉戆渌Z言和改善誤報(bào)率。
,當(dāng)塊列表適合于追蹤給定的快速流量僵尸網(wǎng)絡(luò),它就不是追蹤DGA 域名的合適技術(shù)。由于每天每個(gè)惡意軟件家族的域名數(shù)量,除了快速變化的惡意軟件樣本,靜態(tài)分析對(duì)于追蹤DGA 的分類器來說效果很差。還好,這里有一系列的數(shù)據(jù)科學(xué)技術(shù)——比如隨機(jī)森林分類——這非常適合于追蹤DGA 域名算法。
NXDOMAINs
DGA 域名有時(shí)候會(huì)包含英語單詞來欺騙DGA 分類器,此分類器使用域名的語法特征來檢測(cè)。一個(gè)這樣的DGA 家族的例子是Nivdort 。然而,DGA 惡意軟件有另一個(gè)更難隱藏的特征。由于惡意軟件生成上千個(gè)域名只有少部分會(huì)解析到主機(jī),大部分的DNS 請(qǐng)求返回錯(cuò)誤(代碼3)表示一個(gè)不存在的域名或者NXDOMAIN 。通常我們看到NXDOMAIN 由于拼寫錯(cuò)誤,復(fù)制粘貼錯(cuò)誤,瀏覽器取到畸形html 等等。比率不到5的DNS 請(qǐng)求。一個(gè)被DGA 家族惡意軟件影響的機(jī)器,這個(gè)比率大幅度上升?!哂谡5腘XDOMAIN 錯(cuò)誤’是下一個(gè)高階模式。評(píng)估NXDOMAI N 的比率是一個(gè)很好的方法因?yàn)樗懿东@所有的DGA 家族即使躲避了我們的DGA 分類器。
釣魚檢測(cè)
最近的釣魚網(wǎng)站到依賴于域名上的細(xì)微差別,或者讓它看起來是真實(shí)的。首先,釣魚域名在真的域名上做了細(xì)微的修改,保留的大部分相似之處。這是要追蹤的下一個(gè)高階模式:‘在流行域名上做了輕微修改的DNS 域名請(qǐng)求’。編輯距離或者來溫斯坦距離能夠幫助測(cè)量?jī)蓚€(gè)域名之間的相似度。編輯距離是兩個(gè)單詞之間的最小單字符編輯(例如insertions, deletions 或substitutions )需要將一個(gè)詞轉(zhuǎn)變成
,另一個(gè)。每個(gè)DNS 請(qǐng)求都可以分析它跟流行域名的編輯距離。一個(gè)潛在的釣魚嘗

試可能會(huì)跟一個(gè)流行的域名有很低的編輯距離,特別是當(dāng)他們有不同的登記人的時(shí)候。

在另一個(gè)例子中,一個(gè)釣魚域名包含一個(gè)受歡迎的品牌來做得像真的一樣。這是另一個(gè)高階模式:‘包含受歡迎品牌的DNS 域名請(qǐng)求’。 一個(gè)知名域名和品牌名的后綴可能成規(guī)模的出現(xiàn),對(duì)每個(gè)DNS 請(qǐng)求匹配最長(zhǎng)的子串。 一旦發(fā)現(xiàn),變可以通過WHOIS 記錄來驗(yàn)證這些異常值。
DIY 異常檢測(cè)
還有很多模式能夠利用被動(dòng)DNS 數(shù)據(jù)來幫助你的追蹤。一個(gè)追蹤的基礎(chǔ)原則是在你的數(shù)據(jù)集中查找并標(biāo)識(shí)異常數(shù)據(jù)。這樣做能夠有效的分析網(wǎng)絡(luò)數(shù)據(jù)中的異常。下面是追蹤技術(shù)的一些總結(jié):
1. 選擇一個(gè)或多個(gè)DNS 流量的特征
2. 找到那些特征正常范圍的值
,3. 找到那個(gè)特征偏離正常范圍的記錄
讓我們舉一個(gè)請(qǐng)求類型的例子。首先我們發(fā)現(xiàn)請(qǐng)求類型的分布。我們觀察到93的A 類型請(qǐng)求,6的NS 記錄,1的MX 記錄。如果我們突然觀察到更高比例的M X 請(qǐng)求,我們就得到了一個(gè)需要調(diào)查的異常。這是最后一個(gè)高階模式:‘?dāng)?shù)據(jù)中偏離正常分布的特征’。這表示有惡意軟件的影響導(dǎo)致發(fā)送垃圾信息。相似的,如果我們得到一個(gè)TLD 請(qǐng)求的分布然后發(fā)現(xiàn)大量的TLD 請(qǐng)求偏離正常分布,我們就得到了一個(gè)需要進(jìn)一步分析的異常。
需要注意的是,對(duì)于任何異常的檢測(cè),都有可能有一些誤差。追蹤過程中的一部分是理解對(duì)于你的組織什么是正常的然后結(jié)合這些信息進(jìn)行分析。
結(jié)論
使用被動(dòng)DNS 來追蹤入侵是一個(gè)很有意義的經(jīng)驗(yàn),能夠讓你理解網(wǎng)絡(luò)和它的獨(dú)特性,找到能夠躲避基于常規(guī)IOC 搜索的威脅(比如APT )。這里有許多已知的表示惡意行為的模式和信號(hào)。這些高階模式可以給網(wǎng)絡(luò)追蹤的新手一些啟發(fā)。如下所示: l 域名解析到大量的IP 而這些IP 的所有者和地理位置是多種多樣的
l 有異常語法結(jié)構(gòu)的域名
l NXDOMAIN 錯(cuò)誤高于正常的比例
l 域名的DNS 請(qǐng)求在知名域名上做輕微的修改
l 域名的DNS 請(qǐng)求包含知名品牌名稱
l 特征偏離數(shù)據(jù)的正常分布
,還有一些其他的模式。更多的,定量分析也能夠檢測(cè)異常,基于已知的正常行為,比如請(qǐng)求類型。這些都是固定的,開放源碼的第一步是在網(wǎng)絡(luò)上開始追蹤。
網(wǎng)絡(luò)不是唯一可以追蹤的地方。事實(shí)上,在你的終端上有更豐富的數(shù)據(jù)集來訓(xùn)練追蹤操作。在這個(gè)系列的最后一部分,我們會(huì)講述在主機(jī)層面的追蹤。
*參考來源:endgame