熱線電話:13121318867

登錄
首頁精彩閱讀基于大數據分析的異常檢測方法及其思路實例
基于大數據分析的異常檢測方法及其思路實例
2017-11-05
收藏

基于大數據分析的異常檢測方法及其思路實例

1 概述

隨著人類社會信息化程度的不斷深入,信息系統產生的數據也在呈幾何級數增長。對這些數據的深入分析可以得到很多有價值的信息。由于數據量太大以及數據屬性的多樣性,導致經典的統計分析方法已經無法適用,必須采用以機器學習理論為基礎的大數據分析方法。目前,大數據分析的方法已經被廣泛用于商業智能(BI)領域,并取得了令人非常滿意的效果。這種方法同樣可以應用在信息安全領域,用于發現信息系統的異常情況(入侵和攻擊、數據泄露等)。利用大數據分析的方法發現異常事件,需要滿足幾個條件:1)行為日志在內容必須足夠詳細,可以從日志內容上區分正常行為和異常行為。也就是假定異常行為無論在表面上看多么正常,總是在細節上與正常行為有差異。2)針對不同的分析目標,選用恰當的分析算法。3)對行為描述進行合理的建模。

2 基于DNS日志分析的僵尸網絡檢測

2.1 DNS解析請求日志的格式及說明

不同的DNS系統及配置參數,生成DNS解析請求日志也不盡相同,這里僅用一種日志加以說明。

Default
Jul 22 10:59:59201307221059 GSLZ-PS-DNS-SV07-YanT '17 75 1374461999.999790 1307221059218.203.160.194 53 218.203.199.90 5826 dns 0,0,4692,0|4|5 1 www.baidu.com, 1,11 www.baidu.com,1,1,3,111.11.184.114'
1
Jul2210:59:59201307221059GSLZ-PS-DNS-SV07-YanT'17 75 1374461999.999790 1307221059218.203.160.194 53 218.203.199.90 5826 dns 0,0,4692,0|4|5 1 www.baidu.com, 1,11 www.baidu.com,1,1,3,111.11.184.114'

其中

1 2

其中,標記位各種取值的含義如下:

QR是1個bit位:0代表查詢報文,1代表相應報文

opcode是4個bit位字段:0代表標準查詢,1代表反向查詢,2代表服務器狀態請求

AA是1個bit位,是Authoritative Answer的縮寫,指明名字服務器是授權于該域的

TC是1個bit位,是Truncated的縮寫,意為可截斷的,指明在UDP中應答報文超過512字節時,只返回512字節

RD是1個bit位,是Recursion Desired的縮寫,意為期望遞歸,期望名字服務器必須處理這個查詢,而不是給出一個迭代查詢服務器的列表

RA是1個bit位,是Recursion Available的縮寫,意為可用遞歸,如果名字服務器支持遞歸查詢,這會將此位設置為1

zero是3個bit位,設置為0

rcode是4個bit位,表示名字差錯,0為無差錯,3為有差錯。當查詢中指定的域不存在的時候,就返回3

響應狀態

“NOERROR” => 0, 無錯誤條件.

“FORMERR” => 1, 因為一個格式錯誤,域名服務器無法解釋這個請求

“SERVFAIL” => 2, 在處理這個請求時域名服務器遇到一個內部錯誤。例如操作系統錯或轉發超時。

“NXDOMAIN” => 3, 某些域名應該存在而沒有存在。

“NOTIMPL” => 4, 域名服務器不支持這種指定的 Opcode.

“REFUSED” => 5, 出于策略和安全原因域名服務器拒絕執行特定的操作。

“YXDOMAIN” => 6, 某些域名不應該存在但是存在。

“YXRRSET” => 7, 某些RRset不應該存在但是存在。

“NXRRSET” => 8, 某些RRset應該存在但是不存在。

“NOTAUTH” => 9, 域名服務器對區域名沒有被授權

“NOTZONE” => 10, 在預查詢或更新段中一個域名沒有在區域段中記錄。

2.2正常與異常DNS解析請求的對比分析

大多數僵尸主機在最初感染的惡意程序,只是一個下載器程序,真正能完成有害操作的惡意程序要從惡意程序分發服務器上下載。因此僵尸主機安裝下載器之后,首要的工作就是發起一系列域名解析請求,用來獲知惡意程序分發主機的IP地址以便完成惡意程序實體的下載。在完成實體惡意程序之后,僵尸主機還會發送域名查詢請求,以便獲知控制服務器的IP地址并與之建立聯系,等待控制服務器發送指令。為了避免分發服務器和控制服務器被網絡監管人員發現并摧毀,僵尸網絡的控制者采用了很多技術手段對這兩類關鍵服務器進行保護,諸如動態域名、Fast Flux技術等。還有一類DNS查詢請求本身就是僵尸主機發起的攻擊,其特征也與正常的查詢請求有很大區別??傊?,僵尸主機會發送大量的域名查詢請求,而且這些請求與正常的域名請求在諸多屬性有明顯的差異。

表2-1異常查詢請求與正常查詢請求的差異對比

3

2.3 相似性分析的一般過程

由于正常的域名查詢請求占絕大部分,且彼此之間具有明顯的相似性,而僵尸主機的域名查詢請求日志則有明顯的差異,因此非常適合采用相似性分析的方法進行區分。相似性分析的一般步驟是:1)確定被分析對象(源IP地址或域名)。2)確定分析的屬性。3)將屬性量化成可分析的數值。4)將數據寫入描述性矩陣。5)以描述性矩陣為輸入數據,代入相似性計算公式,計算被分析對象的相似關系。

相似性分析通常把每個數據對象看作多維空間中的一個點,對象之間的相似性可以用相似性系數或某種距離來表示。相似系數接近1或距離較近的對象性質較相似,相似系數接近0或距離較遠的對象則差異較大。不同的數據類型,適用不同的相似系數計算公式。常用的相似系數或距離計算公式有:

4

(2-1)

5

(2-2)

6


(2-3)

公式(2-1)是變量Xi和Xj 的空間距離計算公式。

公式(2-2)是相似系數計算公式。

公式(2-3)是Jaccard相似系數計算公式。通常杰卡德相似系數處理的都是非對稱二元變量。即假設A和B是兩個n 維向量,而且所有維度的取值都是0或1。非對稱的意思是指狀態的兩個輸出不是同等重要的,例如,疾病檢查的陽性和陰性結果。其中:

M11 表示A 與B 的對應維度都是1 的維度的個數,

M10 表示A與B的對應維度分別是1和0 的維度的個數

M01表示對應維度分別是0和1 的維度的個數。

M00表示A與B的對應維度都是0 的維度的個數。

習慣上將較重要的輸出結果也通常是出現幾率較小的結果編碼為1(例如HIV陽性),而將另一種結果編碼為0。在某些領域,認為正匹配(M11)比負匹配(M00)更有意義。負匹配的數量M00 認為是不重要的,可以在計算時忽略。

在分析域名查詢日志時,可以把發送查詢請求的主機IP地址作為對象,也可以把被查詢的域名作為對象??梢葬槍δ硞€屬性進行分析,也可以針對一組屬性進行分析。因此不同的對象和屬性組合在一起可以得到很多種描述性矩陣。下面以一個具體實例來說明相似性分析的過程。在這個實例中,以域名為對象,以域名被各IP地址查詢的次數作為屬性,可以得到一個描述性矩陣(如表2-2)。

表2-2域名請求行為描述矩陣

7

為簡單起見,將描述矩陣的數值代入公式(2-2),可以計算出各個域名之間的“距離”,從而得到相似性矩陣(如表2-3)。觀察發現,域名n與其它域名的相似度最低?;究梢耘卸ú樵冇蛎鹡的主機為僵尸主機。

表2-3域名請求行為的相似性分析結果

8

相似度分析的數據是一種對象-對象結構的矩陣,既可以單純使用域名或IP地址作為對象,也可以同時使用IP地址和域名來構建矩陣。

2.4聚類分析的一般過程

把每個域名解析請求的屬性作為一個變量,則這些屬性構成一個多維向量,如表2-4,每一行是一個多維向量。對這些多維向量進行聚類分析,可以發現那些游離于聚合之外的那些向量所對應的域名,就是異常域名。這些域名解析請求很可能就是僵尸程序或WebShell發出的??梢钥紤]采用的屬性包括:域名長度、域名相似性、TTL、域名層級數、請求發送時間間隔、請求源IP地址數、響應狀態、域名對應的IP地址數量、域名查詢類型。

表2-4域名屬性多維向量

9

可以考慮采用分區法或K-均值算法對域名屬性多維向量進行聚類分析。由于異常域名的屬性值通常都與正常域名的屬性有明顯的差異,因此采用聚類方法通??梢垣@得較高的聚類質量,將異常域名從正常域名的聚類中分離開來。

聚類分析的數據是一組對象-屬性結構的多維向量,以域名為對象,以其查詢請求的屬性為屬性。

3 基于大數據分析的內部異常行為檢測

3.1 內部信息系統行為概述

業內將內部信息系統的行為(以下簡稱內部行為)分為主機(包括服務器和終端)行為和網絡行為兩大類:一是主機行為,即主機本地的行為,例如創建帳號、創建文件、修改注冊表、內存屬性(讀寫、執行)變化、進程變化(啟動、停止)等等。如果物理主機上運行著多個虛擬主機,主機行為還應包括一些虛擬化系統的行為。二是網絡行為,即與網絡訪問相關的行為,例如域名解析請求、HTTP訪問請求、ARP廣播、收發郵件、即時消息、文件上傳和下載、數據庫訪問等等。

3.2 對內部行為進行大數據分析的原理基礎

早期的信息安全措施側重對外部攻擊的防護,而對內部的異常行為往往不夠重視也缺少檢測手段。大量信息安全實踐使得內部異常行為檢測的重要性在業內達成了共識。尤其是近年被披露的眾多APT攻擊事件,主要的攻擊過程是發生在內部網絡和信息系統上。通常內部異常行為都是非常隱蔽的,攻擊者會可以隱藏自己的攻擊行為,通常單個行為看上去都是正常的,但是一些行為關聯在一起以后,這種關聯的組合非常少,且行為主體不具有別的特殊性,則這種行為很可能是異常?;蛘吣承﹥炔啃袨橐呀洷慌卸楫惓?,那么與之關聯的行為也是異常的概率就會大大增加。

3.3 關聯分析的一般過程

對內部行為的分析也適用相似性分析,但為了避免重復,這里采用關聯分析算法對內部行為進行分析,來舉例說明該方法的實際運用。關聯分析的一般步驟是:1)以行為主體作為被分析對象(通常為IP地址或身份標識)對內部行為日志進行解析,將描述各種行為的異構日志轉換成適合分析比較的行為鏈(如圖2-4所示)。2)將行為鏈數據代入關聯分析算法,計算出各種可能的關聯關系。3)根據一定的判斷規則,從計算出的多個關聯關系中找出異常行為的組合。

10

圖3-1 行為鏈的構建

關聯分析的目標是從數據中找到關聯規則。所謂關聯規則是形如 X → Y 的蘊涵式,表示通過 X 可以推導“得到”Y,其中 X 和 Y 分別稱為關聯規則的前提和結果。在滿足最小支持度和最小置信度的條件下才能認為“通過 X 可以推導‘得到’Y”成立。在理解算法之前,首先需要了解幾個基本概念:

支持度: 指的是事件X和事件Y同時發生的概率,即支持度=P(XY)

置信度: 指的是發生事件X的基礎上發生事件Y的概率,置信度= P(Y|X) = P(XY)/P(X)

項集: B={B1, B2,……, Bm}是項的集合。

行為鏈記錄庫: D={t1, t2,……, tn}

行為鏈: 行為鏈t由多個項組成,t是B的非空子集

TID: 每一個行為鏈都與一個唯一的標識符對應。

頻繁項集:滿足最小支持度閾值的項集

為了更好的理解上面的概念,圖1-1給出了更形象的描述。圓角矩形表示全部項的集合I,橢圓中藍圓點表示X事件,菱形中綠三角表示Y事件。

11

圖3-2 關聯分析的幾個基本概念

表3-1內部行為記錄庫

12

為敘述簡單但又不失一般性,這里用9個行為主體和5種行為(記作B1~B5)組成的項集作為實例來說明關聯分析算法的原理。如表3-1,行為記錄庫中有9條行為鏈記錄,涉及了B1~B5等5種行為。有過某種行為,記作1,沒有記作0。首先掃描記錄庫,得當頻繁項集C1(表3-2)

表3-2頻繁項集C1

13

假設最小支持度要求為2,則所有頻繁項集都入選成為一階最大項集。以B1~B5的排列組合作為二階頻繁項,掃描記錄庫,得到二階頻繁項集C2(表3-3)

表3-3 二階頻繁項集C2

14

去掉支持度小于2的項集,得到二階最大項集L2(表3-4)

表3-4 二階最大項集L2

15

對L2的項集元素排列組合來生成三階的頻繁項集合,由于頻繁項集的子集也必須是頻繁的,所以要從劃去那些子集不頻繁的組合,最后只剩下兩個支持度大于2的最大頻繁項集{B1,B2,B3}和{B1,B2,B5}(表3-5)。

表3-5 滿足最小支持度的最大頻繁項集

16

對每個頻繁項集B生成其所有的非空真子集S(見表3-5),然后對每個非空真子集組合的關聯規則計算置信度,即支持度(B)/支持度(S),若比值大于假設的最小置信度值,則輸出S(B-S),即認為S 與(B-S)關聯。

表3-5 頻繁項集的非空子集

18

表3-6關聯規則

17

至此我們得到了三個關聯規則,即{B1,B5}à{B2}、{B2,B5}à{B1}和{B1}à{B2,B5}。同樣對最大頻繁項集{B1,B2,B5}也進行類似的計算,還可以得到相應的一組關聯規則。

3.4關聯分析方法應用舉例

一個信息系統中,正常訪問行為應該是絕大多數,因此異常行為的占比非常低,所以在關聯分析的算法中,我們對支持度的要求不是大于某個數值,而是大于0且小于某個數值。

例如,一個普通的客戶端主機對其它IP地址的掃描顯然是一種異常行為,如果利用關聯分析的方法,發現這些有掃描行為的主機都查詢過相同或高度相似的域名,那么這個域名查詢請求也是一種異常行為,很可能是終端主機感染木馬程序后的回聯行為。

再例如,一個普通的客戶端主機存在高頻并發域名查詢的行為,如果利用關聯分析的方法,發現這些終端的主機的系統函數調用行為特征非常接近,或者這些終端主機都有訪問本地敏感文件(密碼文件、配置文件等)的行為。則這些系統函數調用或本地敏感文件訪問也是異常行為。

4 結束語

基于互聯網的B/S架構的信息系統在運行過程中會產生大量各種類型的日志,如安全設備告警、操作系統日志、數據庫日志、終端行為日志、網絡流量日志、Web訪問日志、DNS請求日志、外網訪問日志等等。這些日志具有豐富的信息,只要采用恰當的分析算法,一定可以獲得很有價值的分析結果。除了本文描述的兩個應用場景以外,大數據分析還可以用于拒絕服務攻擊檢測、安全情報分析、態勢感知、網頁篡改發現、應用層攻擊檢測、惡意文件檢測等安全分析的場景。

成功的大數據分析依賴于三個主要因素:數據、思路和算法。面向安全的大數據分析所使用的數據主要是各種系統日志和行為。本文試圖用比較接近實際的案例來介紹面向安全的大數據分析思路??晒?a href='/map/dashujufenxi/' style='color:#000;font-size:inherit;'>大數據分析使用的算法有很多,但不是都適用于面向安全的應用場景。原因是系統日志和行為日志都屬于低維度數據,面向高維度數據的算法基本不適用。因此只有相似性分析、關聯分析、聚類等。分類算法在有足夠訓練數據的情況下也可以使用,但通常訓練數據比較難獲得,所以使用分類算法可能會受一定限制。

除了分析算法以外,可視化也是一種非常重要且有效的分析手段??梢暬瓤梢宰鳛榉治龉ぞ?,直接以圖形方式呈現數據之間的關系,提高數據可讀性,又可以作為分析結果的呈現工具,使分析結果更加直觀。受篇幅的限制,本文沒有對可視化呈現給出描述,希望后續有機會做出補充。


數據分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數據分析師資訊
更多

OK
客服在線
立即咨詢
日韩人妻系列无码专区视频,先锋高清无码,无码免费视欧非,国精产品一区一区三区无码
客服在線
立即咨詢