洪 飛,廖光忠
(1.武漢科技大學 計算機科學與技術學院,湖北 武漢 430081;2.武漢科技大學 智能信息處理與實時工業系統湖北省重點實驗室,湖北 武漢 430081)
網絡技術的快速發展[1]帶來了新的安全挑戰,網絡安全是網絡空間中正常運行的基石,通過數據挖掘方法從大量的安全日志數據中分析研究黑客的攻擊行為及其畫像成為當下研究熱點。一方面在網絡日志分析上取得一定的成果,其中李剛等設計了一套基于日志分析的電力網絡安全預警系統[2],張勝等指出了現有日志分析存在的問題,并改進了分析方法[3],王琴琴等通過惡意代碼的傳播日志發現分區后Mirai網絡中域名資源具有明顯的差異性和相似性[4],趙春曄等提出一種基于用戶行為日志分析的云安全審計解決方案[5]。另一方面用戶畫像技術也在眾多領域取得了不俗的成果,主要應用于社交視頻領域以及推薦系統等方面,通過分析各個群體之間的特征,以達到商業營銷或科研的目的。盡管用戶畫像在許多領域已經有了較為成熟的應用與實踐,但是在分析黑客行為上的研究成果仍相當有限。
因此本文通過對安全日志數據進行數據挖掘和特征分析,提取合適維度構建黑客畫像,使用K-Means算法改進后的K-Means++算法和K-Medoide算法進行聚類,選取合適的算法和簇數構建黑客群體畫像,同時分析每個簇的主要特征,并根據攻擊手段給出相應的預防措施,最后設計一套基于黑客群體畫像的預警模型,以此針對網絡攻擊事件提供可行性預防建議。
常見的網絡安全預警模型是基于策略型的預警模型,通過對網絡攻擊數據進行處理分析,提取攻擊特征,分析攻擊手段,評估威脅程度,匹配相應的響應模塊,輸出預警策略,如圖1所示。

圖1 網絡安全預警模型
其網絡安全預警模型,主要是針對網絡安全事件本身的特征進行分析,并沒有充分考慮到網絡攻擊行為背后黑客的具體特征對我們預警策略的影響。
本文主要是基于黑客群體畫像構建網絡安全預警模型,該模型是通過分析黑客的具體特征來進行預警,它是現有網絡安全預警模型的一個很好的補充,對完善預警策略具有一定意義,圖2為模型的具體結構。

圖2 預警模型
(1)黑客群體畫像的構建是在黑客畫像的基礎上面聚類得到的,黑客畫像是通過分析武漢軍運會期間某網站的130 497條安全日志數據,從中提取出攻擊者IP共1628個,然后以攻擊者IP為主鍵,將每個攻擊事件的攻擊時間、攻擊目標、攻擊行為記錄到同樣以攻擊者IP為主鍵的表中,選擇每個攻擊者IP主要的攻擊時間段、攻擊目標、攻擊手段構成黑客畫像,然后對黑客畫像進行數據的歸一化處理和聚類分析,將其分成若干個簇,構建黑客群體畫像,逐個分析每個簇的主要特征,然后根據每個簇的攻擊方式,給出預防手段。
(2)攻擊事件畫像是通過對網絡攻擊事件進行攻擊時間段標簽、攻擊目標標簽、攻擊手段標簽進行提取得到的。
(3)工作流程:網絡攻擊事件出現時,通過提取事件的時間維度、攻擊目標維度以及攻擊手段維度,構建攻擊事件畫像,然后讓攻擊事件畫像與安全日志數據構成的黑客群體畫像中的每個簇的中心點進行相似度的計算,判斷該攻擊事件屬于哪一個簇,輸出這個簇的主要攻擊時間、攻擊目標、攻擊手段以及響應措施。
通過此模型可以更加全面、高效應對網絡安全事件,提高系統的安全性能。
構建上述模型主要的難點是黑客畫像維度特征的獲取以及黑客群體畫像聚類算法的選擇,由于本文的數據集是基于網絡安全日志數據,因此本文將以網絡攻擊事件中的攻擊者IP為主鍵,提取每個攻擊事件中的攻擊時間段、攻擊目標以及攻擊方式,構成黑客畫像的攻擊時間維度、攻擊目標維度和攻擊方式維度。對于聚類算法的選擇,本文使用K-Means算法改進后的K-Means++算法和K-Medoide算法分別對黑客畫像進行聚類,通過輪廓系數法判斷聚類效果,從而選取合適的算法與簇的個數構建黑客群體畫像。
本節主要內容是構建基于安全日志數據的黑客群體畫像,其內容主要分為3個步驟:數據的采集和處理、黑客畫像構建、黑客群體畫像構建。
本文是通過syslog日志系統來采集安全設備的相關日志數據的,數據集是軍運會期間,9月15日到11月5日某網站被攻擊的安全日志信息,一共130 497條攻擊記錄,其中攻擊者IP個數1628個,攻擊方式一共12種,對于部分數據存在奇異值或者缺失的情況,需要根據實際情況對數據進行補全或者刪除,日志數據整理后結構見表1。

表1 日志數據結構
在大數據時代背景下,用戶畫像可以理解成是海量數據的標簽化,通過提取用戶的網絡行為特征,形成特定的標簽,從而構成一個人在網絡空間上的虛擬畫像。用戶畫像是用戶建模的直觀體現,分為定量畫像和定性畫像兩種,定性畫像包括基本屬性特征、興趣偏好特征以及網絡行為特征等,定量畫像則是一系列可量化的數據特征,同時用戶畫像的構建需要滿足特定的業務需求,因此用戶畫像構建時的側重點有所不同,例如在電子商務領域用戶畫像側重于顧客的消費習慣,而本文則側重于黑客行為中的攻擊時間、攻擊目標和攻擊手段。
將預處理后的安全日志數據導入數據庫Statistic表中,同時建立時間段表(Time)、攻擊目標表(Attack)、攻擊手段表(Means)以及匯總表(End)。其中匯總表的屬性包括ID、攻擊者IP(ip)、主要攻擊時間段(time)、主要攻擊目標IP(attack)和主要攻擊方式(means)。
2.2.1 時間特征維度的提取
通過觀察Statistic表中的數據,將攻擊事件按照攻擊時間進行歸類,統計攻擊者的攻擊時間,將一天劃分為8個時間段,其中0點和24點表示同一點,見表2。

表2 攻擊時間段
SQL語句連接Statistic表和Time表,按順序選擇 Statistic表中的一條數據,當這條數據對應的攻擊者IP與Time表中的攻擊者IP相等時,那么這條數據處于哪個時間段就將Time表中相同IP對應時間段下的數據加1。
2.2.2 攻擊目標維度的提取
通過分析Statistic表中的數據,將攻擊事件按照攻擊目標進行歸類,統計攻擊者的攻擊目標,本數據集中黑客的攻擊目標主要是5個門戶網站,見表3。

表3 攻擊目標網站
SQL語句連接Statistic和Attack表,按順序選擇 Statistic表中的一條數據,當這條數據對應的攻擊者IP與Attack表中的攻擊者IP相等時,那么這條數據的攻擊目標是什么就將Attack表中相同IP對應的攻擊目標下的數據加1。
2.2.3 攻擊方式維度的提取
通過觀察Statistic表中的數據,將攻擊事件按照攻擊方式進行歸類,統計攻擊者的攻擊方式,一共發現了12種攻擊方式,表4列出了8種主要攻擊方式。

表4 攻擊方式
SQL語句連接Statistic表和Means表, 按順序選擇 Statistic表中的一條數據,當這條數據對應的攻擊者IP與Means表中的攻擊者IP相等時,那么這條數據的攻擊手段是什么就將Means表中相同IP對應的攻擊手段下的數據加1。
2.2.4 黑客畫像
將Time表、Attack表和Means表中的數據以攻擊者IP為唯一標識,把數據導入End表中,對于3個表中一個攻擊者IP對應多個數據的現象,我們取其中的最大值,例如:Time表中一個攻擊者IP有兩個時間段都存在值,其中time_1的值為100,time_2的值為10,那么在相同攻擊者IP情況下,End表中time的值就是time_1,以攻擊次數最多的時間段代表此攻擊者IP的攻擊時間段特征,同理Attack表和Means表中的數據也按照這樣的規則填入End表的attack和means屬性中,如表5所示部分數據。

表5 單用戶畫像
黑客群體畫像是在黑客畫像基礎上通過聚類得到的,本節主要包括4個部分:數據的規范化、相似度計算公式、聚類算法步驟、評估算法。其中數據規范化使用的序列類型規范化公式,相似度算法采用的是歐式距離來計算相似度,由于本文的數據集是純數據類型,對于此類數據的用戶畫像聚類最常用的聚類算法是K-Means算法,其優點包括原理簡單、容易實現和解釋性較強等,缺點也十分明顯,首先是聚類簇數的選擇沒有明確方法,其次是樣本噪音點和異常點對聚類結果影響較大,最后是樣本必須是純數據樣本,聚類效果依賴于聚類中心的初始化,對于非凸數據集聚類效果不好,會產生局部最佳。因此本文將使用K-Means++算法和K-Medoide算法對數據集進行聚類,再用輪廓系數法判斷聚類效果好壞,最后聚類模型是用準確率進行效果評估。
2.3.1 數據的規范化
本文采用的是序列類型規范化方法,取值具有一定的順序性,以本文數據集為例,時間段可以分為8類,攻擊目標網站可以分成5類,攻擊方式可以分為12類,從而轉化為[0,1]之間的離散型數值,如式(1)所示
x=(2i-1)/2n
(1)
根據式(1),當n為5時的規范化值分別是0.1000、0.3000、0.5000、0.7000以及0.9000,因此得到表6。

表6 用戶畫像數據規范化
2.3.2 相似度計算
常見的距離算法有很多,其中包括歐幾里得距離(Euclidean distance)、曼哈頓距離(Manhattan distance)和切比雪夫距離(Chebyshev distance)等,由于我們已經將數據進行了歸一化處理變為純數據類型,因此本文使用歐幾里得距離來計算相似度,如式(2)所示,兩個n維數據x和y的距離
(2)
2.3.3 聚類算法步驟
算法1:K-Means++算法的優點是解決了初始化異常的問題,在選擇初始中心點時首先選擇一個點作為第一個初始簇的中心點,然后通過距離計算選擇離該點最遠的點作為第二個初始簇的中心點,以此類推,直至選出k個初始中心點。它的步驟如下:①隨機選取一個樣本作為第一個聚類中心;②計算每個樣本(已選為聚類中心的樣本除外)與當前已有的聚類中心的距離,這個值越大,表示被選取作為聚類中心的概率較大;③重復步驟②,直到選出k個聚類中心;④計算數據集中每一個樣本到已選的k個聚類中心的距離,判斷與哪個聚類中心距離最近,該樣本便屬于這個聚類中心所在的簇;⑤針對每個簇,通過平均值重新計算聚類中心;⑥重復上述④和⑤兩個步驟,直到聚類中心趨于穩定不再發生變化。
算法2:K-Medoide算法是在K-Means算法上面進行改進的,主要是解決K-Means算法對噪音和異常點敏感的問題,其與K-Means算法主要的不同集中在聚類中心點的選擇上面,K-Means算法是通過計算每個簇中所有樣本的平均值,以此作為聚類中心,而K-Medoide算法是在每個簇中依次選取樣本,計算每個樣本與其同簇中其它樣本距離之和,取距離最小的樣本作為聚類中心。
2.3.4 評估算法
本文采用輪廓系數法來評估聚類算法的效果,采用準確率來測試預警模型效果。
輪廓系數法的核心指標是輪廓系數(silhouette coefficient),那么某個樣本點xi的輪廓系數計算方式如式(3)所示
(3)
其中,a表示xi的凝聚度,是通過計算該樣本與其同簇中其它樣本距離之和的平均值得到的,b表示xi的分離度,是通過計算該樣本與最近簇中所有樣本距離之和的平均值得到的。而最近簇的定義是如式(4)所示
(4)
其中,p表示簇ck中的一個樣本,計算xi到除其所在簇外其余每個簇中所有樣本距離之和的平均值,選擇平均值最小的那個簇作為最近簇。
計算所有樣本的輪廓系數之和的平均值,平均輪廓系數越大,聚類效果越好,當平均輪廓系數最大時,它的k值便是最佳的聚類簇數。
準確率p用來測試聚類模型的響應效果,其中分子表示正確響應的個數,分母表示測試樣本總數,式(5)如下
(5)
實驗1:通過輪廓系數法對K-Means++和K-Medoide算法的聚類效果進行評估,其中k的取值范圍為[2,10],X軸為k的取值范圍,Y軸是計算的輪廓系數,節點為圓點表示K-Means++算法隨著k值的變化所得到的輪廓系數值,節點為三角形表示K-Medoide算法隨著k值的變化所得到的輪廓系數值如圖3所示。
由圖3可知當k取值范圍為[2,10],K-Means++算法k為7時輪廓系數值最大,K-Medoide算法k為8時輪廓系數值最大,但是K-Means++算法輪廓系數最大值小于K-Medoide算法輪廓系數最大值,因此就上述兩種聚類算法而言,本數據集的聚類算法為K-Medoide算法,聚類簇數為8時效果最佳。

圖3 實驗結果對比
實驗2:取10 000條、30 000條和50 000條測試數據對聚類模型進行測試所得的響應準確率結果見表7。

表7 模型效果
表8為8種主要攻擊手段所對應的響應表,表9為每個簇的主要特征及其預防手段,其中預防手段所對應的數字為表8中每個攻擊方式所對應的響應手段,例如:簇0預防手段為7,代表著攻擊方式為目錄穿越時的響應手段。

表8 攻擊手段響應

表9 簇特征及其響應手段
本次實驗結果表明,當簇數的取值在[2,10]之間時,本數據集使用K-Medoide算法進行聚類效果最好,簇數為8時聚類結果最優,同時給出了主要的攻擊方式的預防手段,以及各個簇的主要特征,為預警模型的構造提供了必要的條件,通過50 000條數據進行測試,聚類預警模型的響應準確率達到98.3%以上,驗證此模型的可行性較高。
本文通過對軍運會期間某網站安全日志數據進行統計分析與數據挖掘,構建黑客畫像,通過K-Medoide聚類算法構建黑客群體畫像,并以此設計了一套安全預警模型,給出了相應的預防手段,對網站的安全防護有一定的借鑒意義。
當然本文設計的黑客群體畫像仍然具有一定的局限性,首先僅僅只是網站的安全日志,無法提煉出更多的維度信息,數據量少,數據的周期短,后續不僅可以結合武漢市軍運會期間多個區域安全日志數據一起進行分析,還可以結合外網防火墻、內網防火墻、態勢感知數據一起分析,使黑客畫像的構建更為全面準確,其次是聚類的效果仍然不是很好,每個簇特征過多,后續可以進行二次聚類,同時與現有的預警模型相結合,以期達到更好的預警效果。