洪 飛,廖光忠
(1.武漢科技大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,湖北 武漢 430081;2.武漢科技大學(xué) 智能信息處理與實(shí)時(shí)工業(yè)系統(tǒng)湖北省重點(diǎn)實(shí)驗(yàn)室,湖北 武漢 430081)
網(wǎng)絡(luò)技術(shù)的快速發(fā)展[1]帶來了新的安全挑戰(zhàn),網(wǎng)絡(luò)安全是網(wǎng)絡(luò)空間中正常運(yùn)行的基石,通過數(shù)據(jù)挖掘方法從大量的安全日志數(shù)據(jù)中分析研究黑客的攻擊行為及其畫像成為當(dāng)下研究熱點(diǎn)。一方面在網(wǎng)絡(luò)日志分析上取得一定的成果,其中李剛等設(shè)計(jì)了一套基于日志分析的電力網(wǎng)絡(luò)安全預(yù)警系統(tǒng)[2],張勝等指出了現(xiàn)有日志分析存在的問題,并改進(jìn)了分析方法[3],王琴琴等通過惡意代碼的傳播日志發(fā)現(xiàn)分區(qū)后Mirai網(wǎng)絡(luò)中域名資源具有明顯的差異性和相似性[4],趙春曄等提出一種基于用戶行為日志分析的云安全審計(jì)解決方案[5]。另一方面用戶畫像技術(shù)也在眾多領(lǐng)域取得了不俗的成果,主要應(yīng)用于社交視頻領(lǐng)域以及推薦系統(tǒng)等方面,通過分析各個(gè)群體之間的特征,以達(dá)到商業(yè)營(yíng)銷或科研的目的。盡管用戶畫像在許多領(lǐng)域已經(jīng)有了較為成熟的應(yīng)用與實(shí)踐,但是在分析黑客行為上的研究成果仍相當(dāng)有限。
因此本文通過對(duì)安全日志數(shù)據(jù)進(jìn)行數(shù)據(jù)挖掘和特征分析,提取合適維度構(gòu)建黑客畫像,使用K-Means算法改進(jìn)后的K-Means++算法和K-Medoide算法進(jìn)行聚類,選取合適的算法和簇?cái)?shù)構(gòu)建黑客群體畫像,同時(shí)分析每個(gè)簇的主要特征,并根據(jù)攻擊手段給出相應(yīng)的預(yù)防措施,最后設(shè)計(jì)一套基于黑客群體畫像的預(yù)警模型,以此針對(duì)網(wǎng)絡(luò)攻擊事件提供可行性預(yù)防建議。
常見的網(wǎng)絡(luò)安全預(yù)警模型是基于策略型的預(yù)警模型,通過對(duì)網(wǎng)絡(luò)攻擊數(shù)據(jù)進(jìn)行處理分析,提取攻擊特征,分析攻擊手段,評(píng)估威脅程度,匹配相應(yīng)的響應(yīng)模塊,輸出預(yù)警策略,如圖1所示。
圖1 網(wǎng)絡(luò)安全預(yù)警模型
其網(wǎng)絡(luò)安全預(yù)警模型,主要是針對(duì)網(wǎng)絡(luò)安全事件本身的特征進(jìn)行分析,并沒有充分考慮到網(wǎng)絡(luò)攻擊行為背后黑客的具體特征對(duì)我們預(yù)警策略的影響。
本文主要是基于黑客群體畫像構(gòu)建網(wǎng)絡(luò)安全預(yù)警模型,該模型是通過分析黑客的具體特征來進(jìn)行預(yù)警,它是現(xiàn)有網(wǎng)絡(luò)安全預(yù)警模型的一個(gè)很好的補(bǔ)充,對(duì)完善預(yù)警策略具有一定意義,圖2為模型的具體結(jié)構(gòu)。
圖2 預(yù)警模型
(1)黑客群體畫像的構(gòu)建是在黑客畫像的基礎(chǔ)上面聚類得到的,黑客畫像是通過分析武漢軍運(yùn)會(huì)期間某網(wǎng)站的130 497條安全日志數(shù)據(jù),從中提取出攻擊者IP共1628個(gè),然后以攻擊者IP為主鍵,將每個(gè)攻擊事件的攻擊時(shí)間、攻擊目標(biāo)、攻擊行為記錄到同樣以攻擊者IP為主鍵的表中,選擇每個(gè)攻擊者IP主要的攻擊時(shí)間段、攻擊目標(biāo)、攻擊手段構(gòu)成黑客畫像,然后對(duì)黑客畫像進(jìn)行數(shù)據(jù)的歸一化處理和聚類分析,將其分成若干個(gè)簇,構(gòu)建黑客群體畫像,逐個(gè)分析每個(gè)簇的主要特征,然后根據(jù)每個(gè)簇的攻擊方式,給出預(yù)防手段。
(2)攻擊事件畫像是通過對(duì)網(wǎng)絡(luò)攻擊事件進(jìn)行攻擊時(shí)間段標(biāo)簽、攻擊目標(biāo)標(biāo)簽、攻擊手段標(biāo)簽進(jìn)行提取得到的。
(3)工作流程:網(wǎng)絡(luò)攻擊事件出現(xiàn)時(shí),通過提取事件的時(shí)間維度、攻擊目標(biāo)維度以及攻擊手段維度,構(gòu)建攻擊事件畫像,然后讓攻擊事件畫像與安全日志數(shù)據(jù)構(gòu)成的黑客群體畫像中的每個(gè)簇的中心點(diǎn)進(jìn)行相似度的計(jì)算,判斷該攻擊事件屬于哪一個(gè)簇,輸出這個(gè)簇的主要攻擊時(shí)間、攻擊目標(biāo)、攻擊手段以及響應(yīng)措施。
通過此模型可以更加全面、高效應(yīng)對(duì)網(wǎng)絡(luò)安全事件,提高系統(tǒng)的安全性能。
構(gòu)建上述模型主要的難點(diǎn)是黑客畫像維度特征的獲取以及黑客群體畫像聚類算法的選擇,由于本文的數(shù)據(jù)集是基于網(wǎng)絡(luò)安全日志數(shù)據(jù),因此本文將以網(wǎng)絡(luò)攻擊事件中的攻擊者IP為主鍵,提取每個(gè)攻擊事件中的攻擊時(shí)間段、攻擊目標(biāo)以及攻擊方式,構(gòu)成黑客畫像的攻擊時(shí)間維度、攻擊目標(biāo)維度和攻擊方式維度。對(duì)于聚類算法的選擇,本文使用K-Means算法改進(jìn)后的K-Means++算法和K-Medoide算法分別對(duì)黑客畫像進(jìn)行聚類,通過輪廓系數(shù)法判斷聚類效果,從而選取合適的算法與簇的個(gè)數(shù)構(gòu)建黑客群體畫像。
本節(jié)主要內(nèi)容是構(gòu)建基于安全日志數(shù)據(jù)的黑客群體畫像,其內(nèi)容主要分為3個(gè)步驟:數(shù)據(jù)的采集和處理、黑客畫像構(gòu)建、黑客群體畫像構(gòu)建。
本文是通過syslog日志系統(tǒng)來采集安全設(shè)備的相關(guān)日志數(shù)據(jù)的,數(shù)據(jù)集是軍運(yùn)會(huì)期間,9月15日到11月5日某網(wǎng)站被攻擊的安全日志信息,一共130 497條攻擊記錄,其中攻擊者IP個(gè)數(shù)1628個(gè),攻擊方式一共12種,對(duì)于部分?jǐn)?shù)據(jù)存在奇異值或者缺失的情況,需要根據(jù)實(shí)際情況對(duì)數(shù)據(jù)進(jìn)行補(bǔ)全或者刪除,日志數(shù)據(jù)整理后結(jié)構(gòu)見表1。
表1 日志數(shù)據(jù)結(jié)構(gòu)
在大數(shù)據(jù)時(shí)代背景下,用戶畫像可以理解成是海量數(shù)據(jù)的標(biāo)簽化,通過提取用戶的網(wǎng)絡(luò)行為特征,形成特定的標(biāo)簽,從而構(gòu)成一個(gè)人在網(wǎng)絡(luò)空間上的虛擬畫像。用戶畫像是用戶建模的直觀體現(xiàn),分為定量畫像和定性畫像兩種,定性畫像包括基本屬性特征、興趣偏好特征以及網(wǎng)絡(luò)行為特征等,定量畫像則是一系列可量化的數(shù)據(jù)特征,同時(shí)用戶畫像的構(gòu)建需要滿足特定的業(yè)務(wù)需求,因此用戶畫像構(gòu)建時(shí)的側(cè)重點(diǎn)有所不同,例如在電子商務(wù)領(lǐng)域用戶畫像側(cè)重于顧客的消費(fèi)習(xí)慣,而本文則側(cè)重于黑客行為中的攻擊時(shí)間、攻擊目標(biāo)和攻擊手段。
將預(yù)處理后的安全日志數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫(kù)Statistic表中,同時(shí)建立時(shí)間段表(Time)、攻擊目標(biāo)表(Attack)、攻擊手段表(Means)以及匯總表(End)。其中匯總表的屬性包括ID、攻擊者IP(ip)、主要攻擊時(shí)間段(time)、主要攻擊目標(biāo)IP(attack)和主要攻擊方式(means)。
2.2.1 時(shí)間特征維度的提取
通過觀察Statistic表中的數(shù)據(jù),將攻擊事件按照攻擊時(shí)間進(jìn)行歸類,統(tǒng)計(jì)攻擊者的攻擊時(shí)間,將一天劃分為8個(gè)時(shí)間段,其中0點(diǎn)和24點(diǎn)表示同一點(diǎn),見表2。
表2 攻擊時(shí)間段
SQL語(yǔ)句連接Statistic表和Time表,按順序選擇 Statistic表中的一條數(shù)據(jù),當(dāng)這條數(shù)據(jù)對(duì)應(yīng)的攻擊者IP與Time表中的攻擊者IP相等時(shí),那么這條數(shù)據(jù)處于哪個(gè)時(shí)間段就將Time表中相同IP對(duì)應(yīng)時(shí)間段下的數(shù)據(jù)加1。
2.2.2 攻擊目標(biāo)維度的提取
通過分析Statistic表中的數(shù)據(jù),將攻擊事件按照攻擊目標(biāo)進(jìn)行歸類,統(tǒng)計(jì)攻擊者的攻擊目標(biāo),本數(shù)據(jù)集中黑客的攻擊目標(biāo)主要是5個(gè)門戶網(wǎng)站,見表3。
表3 攻擊目標(biāo)網(wǎng)站
SQL語(yǔ)句連接Statistic和Attack表,按順序選擇 Statistic表中的一條數(shù)據(jù),當(dāng)這條數(shù)據(jù)對(duì)應(yīng)的攻擊者IP與Attack表中的攻擊者IP相等時(shí),那么這條數(shù)據(jù)的攻擊目標(biāo)是什么就將Attack表中相同IP對(duì)應(yīng)的攻擊目標(biāo)下的數(shù)據(jù)加1。
2.2.3 攻擊方式維度的提取
通過觀察Statistic表中的數(shù)據(jù),將攻擊事件按照攻擊方式進(jìn)行歸類,統(tǒng)計(jì)攻擊者的攻擊方式,一共發(fā)現(xiàn)了12種攻擊方式,表4列出了8種主要攻擊方式。
表4 攻擊方式
SQL語(yǔ)句連接Statistic表和Means表, 按順序選擇 Statistic表中的一條數(shù)據(jù),當(dāng)這條數(shù)據(jù)對(duì)應(yīng)的攻擊者IP與Means表中的攻擊者IP相等時(shí),那么這條數(shù)據(jù)的攻擊手段是什么就將Means表中相同IP對(duì)應(yīng)的攻擊手段下的數(shù)據(jù)加1。
2.2.4 黑客畫像
將Time表、Attack表和Means表中的數(shù)據(jù)以攻擊者IP為唯一標(biāo)識(shí),把數(shù)據(jù)導(dǎo)入End表中,對(duì)于3個(gè)表中一個(gè)攻擊者IP對(duì)應(yīng)多個(gè)數(shù)據(jù)的現(xiàn)象,我們?nèi)∑渲械淖畲笾担纾篢ime表中一個(gè)攻擊者IP有兩個(gè)時(shí)間段都存在值,其中time_1的值為100,time_2的值為10,那么在相同攻擊者IP情況下,End表中time的值就是time_1,以攻擊次數(shù)最多的時(shí)間段代表此攻擊者IP的攻擊時(shí)間段特征,同理Attack表和Means表中的數(shù)據(jù)也按照這樣的規(guī)則填入End表的attack和means屬性中,如表5所示部分?jǐn)?shù)據(jù)。
表5 單用戶畫像
黑客群體畫像是在黑客畫像基礎(chǔ)上通過聚類得到的,本節(jié)主要包括4個(gè)部分:數(shù)據(jù)的規(guī)范化、相似度計(jì)算公式、聚類算法步驟、評(píng)估算法。其中數(shù)據(jù)規(guī)范化使用的序列類型規(guī)范化公式,相似度算法采用的是歐式距離來計(jì)算相似度,由于本文的數(shù)據(jù)集是純數(shù)據(jù)類型,對(duì)于此類數(shù)據(jù)的用戶畫像聚類最常用的聚類算法是K-Means算法,其優(yōu)點(diǎn)包括原理簡(jiǎn)單、容易實(shí)現(xiàn)和解釋性較強(qiáng)等,缺點(diǎn)也十分明顯,首先是聚類簇?cái)?shù)的選擇沒有明確方法,其次是樣本噪音點(diǎn)和異常點(diǎn)對(duì)聚類結(jié)果影響較大,最后是樣本必須是純數(shù)據(jù)樣本,聚類效果依賴于聚類中心的初始化,對(duì)于非凸數(shù)據(jù)集聚類效果不好,會(huì)產(chǎn)生局部最佳。因此本文將使用K-Means++算法和K-Medoide算法對(duì)數(shù)據(jù)集進(jìn)行聚類,再用輪廓系數(shù)法判斷聚類效果好壞,最后聚類模型是用準(zhǔn)確率進(jìn)行效果評(píng)估。
2.3.1 數(shù)據(jù)的規(guī)范化
本文采用的是序列類型規(guī)范化方法,取值具有一定的順序性,以本文數(shù)據(jù)集為例,時(shí)間段可以分為8類,攻擊目標(biāo)網(wǎng)站可以分成5類,攻擊方式可以分為12類,從而轉(zhuǎn)化為[0,1]之間的離散型數(shù)值,如式(1)所示
x=(2i-1)/2n
(1)
根據(jù)式(1),當(dāng)n為5時(shí)的規(guī)范化值分別是0.1000、0.3000、0.5000、0.7000以及0.9000,因此得到表6。
表6 用戶畫像數(shù)據(jù)規(guī)范化
2.3.2 相似度計(jì)算
常見的距離算法有很多,其中包括歐幾里得距離(Euclidean distance)、曼哈頓距離(Manhattan distance)和切比雪夫距離(Chebyshev distance)等,由于我們已經(jīng)將數(shù)據(jù)進(jìn)行了歸一化處理變?yōu)榧償?shù)據(jù)類型,因此本文使用歐幾里得距離來計(jì)算相似度,如式(2)所示,兩個(gè)n維數(shù)據(jù)x和y的距離
(2)
2.3.3 聚類算法步驟
算法1:K-Means++算法的優(yōu)點(diǎn)是解決了初始化異常的問題,在選擇初始中心點(diǎn)時(shí)首先選擇一個(gè)點(diǎn)作為第一個(gè)初始簇的中心點(diǎn),然后通過距離計(jì)算選擇離該點(diǎn)最遠(yuǎn)的點(diǎn)作為第二個(gè)初始簇的中心點(diǎn),以此類推,直至選出k個(gè)初始中心點(diǎn)。它的步驟如下:①隨機(jī)選取一個(gè)樣本作為第一個(gè)聚類中心;②計(jì)算每個(gè)樣本(已選為聚類中心的樣本除外)與當(dāng)前已有的聚類中心的距離,這個(gè)值越大,表示被選取作為聚類中心的概率較大;③重復(fù)步驟②,直到選出k個(gè)聚類中心;④計(jì)算數(shù)據(jù)集中每一個(gè)樣本到已選的k個(gè)聚類中心的距離,判斷與哪個(gè)聚類中心距離最近,該樣本便屬于這個(gè)聚類中心所在的簇;⑤針對(duì)每個(gè)簇,通過平均值重新計(jì)算聚類中心;⑥重復(fù)上述④和⑤兩個(gè)步驟,直到聚類中心趨于穩(wěn)定不再發(fā)生變化。
算法2:K-Medoide算法是在K-Means算法上面進(jìn)行改進(jìn)的,主要是解決K-Means算法對(duì)噪音和異常點(diǎn)敏感的問題,其與K-Means算法主要的不同集中在聚類中心點(diǎn)的選擇上面,K-Means算法是通過計(jì)算每個(gè)簇中所有樣本的平均值,以此作為聚類中心,而K-Medoide算法是在每個(gè)簇中依次選取樣本,計(jì)算每個(gè)樣本與其同簇中其它樣本距離之和,取距離最小的樣本作為聚類中心。
2.3.4 評(píng)估算法
本文采用輪廓系數(shù)法來評(píng)估聚類算法的效果,采用準(zhǔn)確率來測(cè)試預(yù)警模型效果。
輪廓系數(shù)法的核心指標(biāo)是輪廓系數(shù)(silhouette coefficient),那么某個(gè)樣本點(diǎn)xi的輪廓系數(shù)計(jì)算方式如式(3)所示
(3)
其中,a表示xi的凝聚度,是通過計(jì)算該樣本與其同簇中其它樣本距離之和的平均值得到的,b表示xi的分離度,是通過計(jì)算該樣本與最近簇中所有樣本距離之和的平均值得到的。而最近簇的定義是如式(4)所示
(4)
其中,p表示簇ck中的一個(gè)樣本,計(jì)算xi到除其所在簇外其余每個(gè)簇中所有樣本距離之和的平均值,選擇平均值最小的那個(gè)簇作為最近簇。
計(jì)算所有樣本的輪廓系數(shù)之和的平均值,平均輪廓系數(shù)越大,聚類效果越好,當(dāng)平均輪廓系數(shù)最大時(shí),它的k值便是最佳的聚類簇?cái)?shù)。
準(zhǔn)確率p用來測(cè)試聚類模型的響應(yīng)效果,其中分子表示正確響應(yīng)的個(gè)數(shù),分母表示測(cè)試樣本總數(shù),式(5)如下
(5)
實(shí)驗(yàn)1:通過輪廓系數(shù)法對(duì)K-Means++和K-Medoide算法的聚類效果進(jìn)行評(píng)估,其中k的取值范圍為[2,10],X軸為k的取值范圍,Y軸是計(jì)算的輪廓系數(shù),節(jié)點(diǎn)為圓點(diǎn)表示K-Means++算法隨著k值的變化所得到的輪廓系數(shù)值,節(jié)點(diǎn)為三角形表示K-Medoide算法隨著k值的變化所得到的輪廓系數(shù)值如圖3所示。
由圖3可知當(dāng)k取值范圍為[2,10],K-Means++算法k為7時(shí)輪廓系數(shù)值最大,K-Medoide算法k為8時(shí)輪廓系數(shù)值最大,但是K-Means++算法輪廓系數(shù)最大值小于K-Medoide算法輪廓系數(shù)最大值,因此就上述兩種聚類算法而言,本數(shù)據(jù)集的聚類算法為K-Medoide算法,聚類簇?cái)?shù)為8時(shí)效果最佳。
圖3 實(shí)驗(yàn)結(jié)果對(duì)比
實(shí)驗(yàn)2:取10 000條、30 000條和50 000條測(cè)試數(shù)據(jù)對(duì)聚類模型進(jìn)行測(cè)試所得的響應(yīng)準(zhǔn)確率結(jié)果見表7。
表7 模型效果
表8為8種主要攻擊手段所對(duì)應(yīng)的響應(yīng)表,表9為每個(gè)簇的主要特征及其預(yù)防手段,其中預(yù)防手段所對(duì)應(yīng)的數(shù)字為表8中每個(gè)攻擊方式所對(duì)應(yīng)的響應(yīng)手段,例如:簇0預(yù)防手段為7,代表著攻擊方式為目錄穿越時(shí)的響應(yīng)手段。
表8 攻擊手段響應(yīng)
表9 簇特征及其響應(yīng)手段
本次實(shí)驗(yàn)結(jié)果表明,當(dāng)簇?cái)?shù)的取值在[2,10]之間時(shí),本數(shù)據(jù)集使用K-Medoide算法進(jìn)行聚類效果最好,簇?cái)?shù)為8時(shí)聚類結(jié)果最優(yōu),同時(shí)給出了主要的攻擊方式的預(yù)防手段,以及各個(gè)簇的主要特征,為預(yù)警模型的構(gòu)造提供了必要的條件,通過50 000條數(shù)據(jù)進(jìn)行測(cè)試,聚類預(yù)警模型的響應(yīng)準(zhǔn)確率達(dá)到98.3%以上,驗(yàn)證此模型的可行性較高。
本文通過對(duì)軍運(yùn)會(huì)期間某網(wǎng)站安全日志數(shù)據(jù)進(jìn)行統(tǒng)計(jì)分析與數(shù)據(jù)挖掘,構(gòu)建黑客畫像,通過K-Medoide聚類算法構(gòu)建黑客群體畫像,并以此設(shè)計(jì)了一套安全預(yù)警模型,給出了相應(yīng)的預(yù)防手段,對(duì)網(wǎng)站的安全防護(hù)有一定的借鑒意義。
當(dāng)然本文設(shè)計(jì)的黑客群體畫像仍然具有一定的局限性,首先僅僅只是網(wǎng)站的安全日志,無法提煉出更多的維度信息,數(shù)據(jù)量少,數(shù)據(jù)的周期短,后續(xù)不僅可以結(jié)合武漢市軍運(yùn)會(huì)期間多個(gè)區(qū)域安全日志數(shù)據(jù)一起進(jìn)行分析,還可以結(jié)合外網(wǎng)防火墻、內(nèi)網(wǎng)防火墻、態(tài)勢(shì)感知數(shù)據(jù)一起分析,使黑客畫像的構(gòu)建更為全面準(zhǔn)確,其次是聚類的效果仍然不是很好,每個(gè)簇特征過多,后續(xù)可以進(jìn)行二次聚類,同時(shí)與現(xiàn)有的預(yù)警模型相結(jié)合,以期達(dá)到更好的預(yù)警效果。