張景文 上海交通大學網絡空間安全學院
本文研究的背景基于中小企業的背景特點,即自身因素受到制約,服務器數量較多,并由于歷史原因,種類復雜,環境安全特征各異,并且維護和安全成本投入受限。在這種情況下,通常的安全防御軟硬件和安全策略往往捉襟見肘,對于能夠突破通常安全軟件或防護的攻擊行為,無力應對。為了更好的應對這些問題,從技術開發的角度提出了這個課題。
本系統的研究過程,主要通過對Web服務器上的Web日志、文件系統文件變更、系統安全日志、服務器流量數據包信息等數據進行收集分析,并通過機器學習解決自動化判斷問題。
為了應對復雜環境,并建立統一分析和預警的基礎。系統本身分為服務器端和數據統計端。服務器端根據操作系統和版本的不同,可定制開發,參數也可各不相同,但是收集規則以及整理清洗后的數據格式需要統一。對于統一分析端,則要借助機器學習的使用,來進行可疑行為的定義和預警。
主要的工作流程是通過服務器端,收集信息,進行數據清洗形成信息快照,將信息快照傳遞到統計分析端,通過分析后最終給出報警信息。主要研究進展如下:
對于部署在服務器上的服務器端,檢測了流量數據包的信息,通過IP和端口的白名單過濾規則從中篩選出異常IP,通過web日志篩選注入漏洞等包含攻擊企圖的關鍵字,通過系統安全日志,結合工作時間范圍,定義異常的帳號訪問情況,通過監測關鍵目錄的系統文件的變化,結合目錄名和文件名的白名單設置,來篩選非正常的文件創建或更新。這部分的關鍵問題在于數據維度選擇和準確性。
信息快照的構造問題。主要考慮保留數據特征的情況下,降低數據波動對快照大小的影響,及減少資源消耗。所以對于數據流量包的信息和系統安全日志信息要進行歸納統計,對于其余兩個數據來源取關鍵字段。
為了滿足報警分析及機器學習的需要,主要考慮兩點,一是流量數據包的信息,二是系統文件變化的信息。對于數據流量包的信息,先依據端口和IP白名單進行過濾。對于過濾后的異常IP,結合捕獲的時間形成二維數據。為了機器學習的需要,將IP轉換為不帶分隔符的數字。方法可以采用轉換為32為二進制代碼后,再轉換為10進制數字,轉換后的IP地址參數和截獲的時間間隔中的起始時間,作為一組二維數據作為流量數據包的分析用數據。
對于系統文件變化的信息,同樣先依據目錄白名單獲取目錄中的文件變化,將文件名和所在目錄作為關鍵字段。按照首字母a-z,以每3個字母為分割,排序為1-9。然后將盤符,命名為順序整數,例如C盤為1,D盤為2。轉換內容包括盤符、目錄、后綴名。以此方法,任何目錄和文件都可轉換為整數帶小數部分,分布也將較有規律的分布在數個整數為單位,結合時間維度的二維空間中。例如:C:/windows/system32/perfc009.dat可以轉換為:1.8762。
當數據來到統計分析端,首先利用機器學習的聚類算法(本文使用K-Means聚類算法),對信息快照中收集到的數據進行聚類,在K-Means聚類數目參數的選擇上。以實際試驗環境為主,需要積累數周的數據,以天為單位,疊加后進行分析。通過聚類形成的樣本集,通過人工辨識進行標注,之后可用于行為分類的訓練集。通過機器學習的分類算法(本次研究使用NaiveBayes分類算法),可自動將之后發生的行為數據自行分類判定,并給出相應警示。
可疑行為的定義問題上。行為判斷框架分為兩層結構,基礎層提供二級警報,來源是觸發單個信息源警報閥值的情況,記錄但不進行實際提醒。一級警報將通過二級警報的數據進行分析匯總。舉例如下:(數據來源的閥值參數X單項權重)累計總和=用于綜合閥值比較的參數。
目前,這個研究課題正在進行中,從中期進展來看,機器學習上的算法選擇和樣本集定義,主要依賴于之前相關課程研究中積累的經驗和實際工作中總結的經驗。機器學習的最終效果依賴于通過測試數據對參數和算法進一步的調優。數據收集和信息快照的構成及傳輸則達到預期目標。