99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

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

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

1 概述

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

2 基于DNS日志分析的僵尸網(wǎng)絡(luò)檢測

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

不同的DNS系統(tǒng)及配置參數(shù),生成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

其中,標(biāo)記位各種取值的含義如下:

QR是1個bit位:0代表查詢報文,1代表相應(yīng)報文

opcode是4個bit位字段:0代表標(biāo)準(zhǔn)查詢,1代表反向查詢,2代表服務(wù)器狀態(tài)請求

AA是1個bit位,是Authoritative Answer的縮寫,指明名字服務(wù)器是授權(quán)于該域的

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

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

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

zero是3個bit位,設(shè)置為0

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

響應(yīng)狀態(tài)

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

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

“SERVFAIL” => 2, 在處理這個請求時域名服務(wù)器遇到一個內(nèi)部錯誤。例如操作系統(tǒng)錯或轉(zhuǎn)發(fā)超時。

“NXDOMAIN” => 3, 某些域名應(yīng)該存在而沒有存在。

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

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

“YXDOMAIN” => 6, 某些域名不應(yīng)該存在但是存在。

“YXRRSET” => 7, 某些RRset不應(yīng)該存在但是存在。

“NXRRSET” => 8, 某些RRset應(yīng)該存在但是不存在。

“NOTAUTH” => 9, 域名服務(wù)器對區(qū)域名沒有被授權(quán)

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

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

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

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

3

2.3 相似性分析的一般過程

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

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

4

(2-1)

5

(2-2)

6


(2-3)

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

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

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

M11 表示A 與B 的對應(yīng)維度都是1 的維度的個數(shù),

M10 表示A與B的對應(yīng)維度分別是1和0 的維度的個數(shù)

M01表示對應(yīng)維度分別是0和1 的維度的個數(shù)。

M00表示A與B的對應(yīng)維度都是0 的維度的個數(shù)。

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

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

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

7

為簡單起見,將描述矩陣的數(shù)值代入公式(2-2),可以計算出各個域名之間的“距離”,從而得到相似性矩陣(如表2-3)。觀察發(fā)現(xiàn),域名n與其它域名的相似度最低。基本可以判定查詢域名n的主機為僵尸主機。

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

8

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

2.4聚類分析的一般過程

把每個域名解析請求的屬性作為一個變量,則這些屬性構(gòu)成一個多維向量,如表2-4,每一行是一個多維向量。對這些多維向量進(jìn)行聚類分析,可以發(fā)現(xiàn)那些游離于聚合之外的那些向量所對應(yīng)的域名,就是異常域名。這些域名解析請求很可能就是僵尸程序或WebShell發(fā)出的。可以考慮采用的屬性包括:域名長度、域名相似性、TTL、域名層級數(shù)、請求發(fā)送時間間隔、請求源IP地址數(shù)、響應(yīng)狀態(tài)、域名對應(yīng)的IP地址數(shù)量、域名查詢類型。

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

9

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

聚類分析的數(shù)據(jù)是一組對象-屬性結(jié)構(gòu)的多維向量,以域名為對象,以其查詢請求的屬性為屬性。

3 基于大數(shù)據(jù)分析的內(nèi)部異常行為檢測

3.1 內(nèi)部信息系統(tǒng)行為概述

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

3.2 對內(nèi)部行為進(jìn)行大數(shù)據(jù)分析的原理基礎(chǔ)

早期的信息安全措施側(cè)重對外部攻擊的防護(hù),而對內(nèi)部的異常行為往往不夠重視也缺少檢測手段。大量信息安全實踐使得內(nèi)部異常行為檢測的重要性在業(yè)內(nèi)達(dá)成了共識。尤其是近年被披露的眾多APT攻擊事件,主要的攻擊過程是發(fā)生在內(nèi)部網(wǎng)絡(luò)和信息系統(tǒng)上。通常內(nèi)部異常行為都是非常隱蔽的,攻擊者會可以隱藏自己的攻擊行為,通常單個行為看上去都是正常的,但是一些行為關(guān)聯(lián)在一起以后,這種關(guān)聯(lián)的組合非常少,且行為主體不具有別的特殊性,則這種行為很可能是異常。或者某些內(nèi)部行為已經(jīng)被判定為異常,那么與之關(guān)聯(lián)的行為也是異常的概率就會大大增加。

3.3 關(guān)聯(lián)分析的一般過程

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

10

圖3-1 行為鏈的構(gòu)建

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

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

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

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

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

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

TID: 每一個行為鏈都與一個唯一的標(biāo)識符對應(yīng)。

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

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

11

圖3-2 關(guān)聯(lián)分析的幾個基本概念

表3-1內(nèi)部行為記錄庫

12

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

表3-2頻繁項集C1

13

假設(shè)最小支持度要求為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),然后對每個非空真子集組合的關(guān)聯(lián)規(guī)則計算置信度,即支持度(B)/支持度(S),若比值大于假設(shè)的最小置信度值,則輸出S(B-S),即認(rèn)為S 與(B-S)關(guān)聯(lián)。

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

18

表3-6關(guān)聯(lián)規(guī)則

17

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

3.4關(guān)聯(lián)分析方法應(yīng)用舉例

一個信息系統(tǒng)中,正常訪問行為應(yīng)該是絕大多數(shù),因此異常行為的占比非常低,所以在關(guān)聯(lián)分析的算法中,我們對支持度的要求不是大于某個數(shù)值,而是大于0且小于某個數(shù)值。

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

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

4 結(jié)束語

基于互聯(lián)網(wǎng)的B/S架構(gòu)的信息系統(tǒng)在運行過程中會產(chǎn)生大量各種類型的日志,如安全設(shè)備告警、操作系統(tǒng)日志、數(shù)據(jù)庫日志、終端行為日志、網(wǎng)絡(luò)流量日志、Web訪問日志、DNS請求日志、外網(wǎng)訪問日志等等。這些日志具有豐富的信息,只要采用恰當(dāng)?shù)姆治鏊惴?,一定可以獲得很有價值的分析結(jié)果。除了本文描述的兩個應(yīng)用場景以外,大數(shù)據(jù)分析還可以用于拒絕服務(wù)攻擊檢測、安全情報分析、態(tài)勢感知、網(wǎng)頁篡改發(fā)現(xiàn)、應(yīng)用層攻擊檢測、惡意文件檢測等安全分析的場景。

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

除了分析算法以外,可視化也是一種非常重要且有效的分析手段。可視化既可以作為分析工具,直接以圖形方式呈現(xiàn)數(shù)據(jù)之間的關(guān)系,提高數(shù)據(jù)可讀性,又可以作為分析結(jié)果的呈現(xiàn)工具,使分析結(jié)果更加直觀。受篇幅的限制,本文沒有對可視化呈現(xiàn)給出描述,希望后續(xù)有機會做出補充。


數(shù)據(jù)分析咨詢請掃描二維碼

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

數(shù)據(jù)分析師資訊
更多

OK
客服在線
立即咨詢
客服在線
立即咨詢
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進(jìn)行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個參數(shù)驗證碼對象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺檢測極驗服務(wù)器是否宕機 new_captcha: data.new_captcha, // 用于宕機時表示是新驗證碼的宕機 product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說明請參見:http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計時完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }