本申請涉及計算機技術,特別涉及一種日志審計方法及平臺。
背景技術:
隨著云計算、移動互聯(lián)、虛擬化等新技術的應用日益廣泛,用戶面臨的安全威脅越來越多。網(wǎng)絡中的主機、服務器、網(wǎng)絡設備、安全設備、數(shù)據(jù)庫以及各種應用服務系統(tǒng)在運行過程中會產生大量的日志和事件,管理人員面對數(shù)量如此巨大的信息,由于缺乏分析手段,因為無法及時準確定位網(wǎng)絡故障和真正的安全隱患所在。
在傳統(tǒng)的計算機網(wǎng)絡環(huán)境下,安全廠商會將集群內日志數(shù)據(jù)的收集、存儲、分析、報警、歸檔、報表等功能集成到一個定制的硬件設備中,通過部署該硬件設備到客戶的計算機集群環(huán)境中,以完成離線的日志審計功能。
但是在云計算環(huán)境下,因為虛擬化技術和網(wǎng)絡虛擬化,無法采用傳統(tǒng)的硬件盒子的方式來解決日志審計問題,眾多的云產品運行在復雜的平臺上,這些產品自身以及相互調用會有大量的操作,產生大量的日志和事件,需要實時地對日志進行審計,以便于及時處理各類事件,因此,現(xiàn)有的離線審計方式已不適用于云環(huán)境下的日志審計需求。
而現(xiàn)有的云環(huán)境下目前暫時沒有好的技術方案解決該問題。
技術實現(xiàn)要素:
本申請實施例提供一種日志審計方法及平臺,用以實現(xiàn)云環(huán)境下的日志實時審計。
本申請實施例提供的具體技術方案如下:
一種日志審計方法,包括:
審計平臺從云端的各類平臺分別采集相應的系統(tǒng)日志,并將獲得的系統(tǒng)日志緩存至分布式異步隊列中;
審計平臺確定滿足預計的觸發(fā)條件時,從所述分布式異步隊列中讀取符合所述觸發(fā)條件的系統(tǒng)日志;
審計平臺基于規(guī)則模型對獲得的系統(tǒng)日志進行審計,其中,所述規(guī)則模型是基于歷史審計數(shù)據(jù)進行機器學習訓練后生成的。
可選的,審計平臺從云端的任意一平臺采集相應的系統(tǒng)日志,包括:
基于設定的篩選條件,實時從所述任意一平臺采集符合所述篩選條件的系統(tǒng)日志。
可選的,所述審計平臺確定滿足預計的觸發(fā)條件時,從所述分布式異步隊列中讀取符合所述觸發(fā)條件的系統(tǒng)日志,包括:
從所述分布式異步隊列中讀取滿足第一訂閱內容的系統(tǒng)日志;或者,
從所述分布式異步隊列中讀取緩存時長滿足第一設定閾值的系統(tǒng)日志;或者,
從所述分布式異步隊列中讀取緩存數(shù)據(jù)量滿足第二設定閾值的系統(tǒng)日志。
可選的,所述審計平臺基于規(guī)則模型對獲得的任意一條系統(tǒng)日志進行審計,包括:
讀取所述任意一條系統(tǒng)日志后,基于所述任意一條日志包含的主機字段、路徑字段和參數(shù)字段獲取相匹配的規(guī)則模型;
采用獲得的規(guī)則模型對所述任意一條系統(tǒng)日志進行檢測,計算所述任意一條系統(tǒng)日志基于所述規(guī)則模型輸出的概率;
將所述概率與預設的門限值進行比較,確定所述概率低于所述門限值時,確定所述任意一條系統(tǒng)日志為異常日志,確定所述概率不低于所述門限值時,確定所述任意一條日志為正常日志。
可選的,進一步包括:
審計平臺對應符合事件特征的系統(tǒng)日志及相應的審計結果進行索引構建。
可選的,進一步包括:
審計平臺對應滿足第二訂閱內容的系統(tǒng)日志進行系統(tǒng)日志初始索引構建;或/和,
審計平臺對應滿足第三訂閱內容的系統(tǒng)日志進行保存。
一種日志審計平臺,包括:
采集模塊,用于從云端的各類平臺分別采集相應的系統(tǒng)日志,并將獲得的系統(tǒng)日志緩存至分布式異步隊列中;
分發(fā)模塊,用于確定滿足預計的觸發(fā)條件時,從所述分布式異步隊列中讀取符合所述觸發(fā)條件的系統(tǒng)日志;
審計模塊,用于基于規(guī)則模型對獲得的系統(tǒng)日志進行審計,其中,所述規(guī)則模型是基于歷史審計數(shù)據(jù)進行機器學習訓練后生成的。
可選的,從云端的任意一平臺采集相應的系統(tǒng)日志時,所述采集模塊具體用于:
基于設定的篩選條件,實時從所述任意一平臺采集符合所述篩選條件的系統(tǒng)日志。
可選的,基于確定滿足預計的觸發(fā)條件時,從所述分布式異步隊列中讀取符合所述觸發(fā)條件的系統(tǒng)日志時,所述分發(fā)模塊具體用于:
從所述分布式異步隊列中讀取滿足第一訂閱內容的系統(tǒng)日志;或者,
從所述分布式異步隊列中讀取緩存時長滿足第一設定閾值的系統(tǒng)日志;或者,
從所述分布式異步隊列中讀取緩存數(shù)據(jù)量滿足第二設定閾值的系統(tǒng)日志。
可選的,基于規(guī)則模型對獲得的系統(tǒng)日志進行審計時,所述審計模塊具體用于:
讀取所述任意一條系統(tǒng)日志后,基于所述任意一條日志包含的主機字段、路徑字段和參數(shù)字段獲取相匹配的規(guī)則模型;
采用獲得的規(guī)則模型對所述任意一條系統(tǒng)日志進行檢測,計算所述任意一條系統(tǒng)日志基于所述規(guī)則模型輸出的概率;
將所述概率與預設的門限值進行比較,確定所述概率低于所述門限值時,確定所述任意一條系統(tǒng)日志為異常日志,確定所述概率不低于所述門限值時,確定所述任意一條日志為正常日志。
可選的,進一步包括:
構建模塊,用于對應符合事件特征的系統(tǒng)日志及相應的審計結果進行索引構建。
可選的,進一步包括:
構建模塊,用于對應滿足第二訂閱內容的系統(tǒng)日志進行系統(tǒng)日志初始索引構建;或/和,
存儲模塊,用于保存滿足第三訂閱內容的系統(tǒng)日志。
本發(fā)明實施例中,審計平臺從云端的各類平臺分別采集相應的系統(tǒng)日志,并將獲得的系統(tǒng)日志緩存至分布式異步隊列中,以及在確定滿足預計的觸發(fā)條件時,從該分布式異步隊列中讀取符合上述觸發(fā)條件的系統(tǒng)日志,并基于規(guī)則模型對獲得的系統(tǒng)日志進行審計,其中,規(guī)則模型是基于歷史審計數(shù)據(jù)進行機器學習訓練后生成的。這樣,便通過分布式的審計平臺達到了實時讀取、分析云端各類平臺的系統(tǒng)日志的目的,并且,基于歷史審計數(shù)據(jù)建模形成的規(guī)則模型相較于現(xiàn)有技術下單一的規(guī)則,更能夠描述出復雜的審計條件,便于挑選出因復雜預警事件而產生的系統(tǒng)日志,從而便于管理人員及時發(fā)現(xiàn)并進行管理。
附圖說明
圖1為本申請實施例中日志審計系統(tǒng)架構圖;
圖2為本申請實施例中日志審計流程圖;
圖3為本申請實施例中HMM模型建立示意圖;
圖4為本申請實施例中機器學習過程示意圖。
具體實施方式
為了實時云環(huán)境下的日志文件實時審計,本申請實施例中,重新設計了一套新的審計平臺,該審計平臺采用分布式結構,其中,采集模塊實時地從云環(huán)境下采集日志傳送至分發(fā)裝置,分發(fā)模塊根據(jù)按照預設的觸發(fā)條件,將獲得的日志文件發(fā)往審計模塊,審計模塊根據(jù)預設的規(guī)則對日志文件進行審計。
下面結合附圖對本申請優(yōu)選的實施方式進行詳細說明。
參閱圖1所示,以分布式結構重新設計審計平臺,該審計平臺至少包括采集模塊10、分發(fā)模塊11和審計模塊12;其中,采集模塊10用于從云環(huán)境下采用系統(tǒng)日志,而分發(fā)模塊11用于緩存采集的系統(tǒng)日志,并按照設定的觸發(fā)事件發(fā)往審計模塊12,審計模塊則會基于預設事件規(guī)則對系統(tǒng)日志進行審計,獲得審計結果。
基于上述日志審計系統(tǒng),參閱圖2所示,本申請實施例中,進行日志審計的具體流程如下:
步驟200:采集模塊10從云端的各類平臺分別采集相應的系統(tǒng)日志,并將獲得的系統(tǒng)日志緩存至分布式異步隊列中。
如圖1所示,實際應用中,不同類平臺可以通過應用程序編程接口(Application Programming Interface,API)或者代理(Agent)接入采集模塊10,這樣可以方便日志源擴展;采集模塊10可以定期從各類平臺采集相應的系統(tǒng)日志,以任意一平臺A為例,假設平臺A通過API接入采集模塊10,那么,采集模塊10可以隨時從平臺A讀取相應的系統(tǒng)日志,可選的,采集模塊10可以一次性讀取平臺A上所有的系統(tǒng)日志,或者,為了節(jié)省系統(tǒng)資源,采集模塊10可以對系統(tǒng)日志進行初步篩選,例如,根據(jù)預設的篩選條件(如,設定日志格式,設定日志屬性、設定日志日期等等)從平臺A中讀取出符合上述篩選條件的系統(tǒng)日志。
以篩選條件為設定日志格式為例,采集模塊10基于設定的標準格式,進 行系統(tǒng)日志篩選,若采集的系統(tǒng)日志不符合標準格式,則會丟棄,不轉發(fā)到分發(fā)模塊11,從而提升系統(tǒng)日志采集的準確率和有效性。例如,具體格式標準如表1所示:
表1
另一方面,采集模塊10從云端的各類平臺讀取系統(tǒng)日志后,不立即進行存儲,而是對其進行標準化處理后,以標準消息格式緩存至分布式異步隊列中,所謂分布式異步隊列是指構建在分布式環(huán)境中的消息隊列,具有高可用、高并發(fā)、易擴展等特性,這樣做的好處是能降低系統(tǒng)模塊之間的耦合;同時在云環(huán)境下,極可能出現(xiàn)日志出現(xiàn)高并發(fā)寫入,給系統(tǒng)帶來瞬間的壓力,分布式異步隊列具有較高的靈活性和峰值處理能力,提升系統(tǒng)的健壯性。
步驟210:分發(fā)模塊11確定滿足預計的觸發(fā)條件時,從上述分布式異步隊列中讀取符合上述觸發(fā)條件的系統(tǒng)日志。
本申請實施例中,步驟210的執(zhí)行方式有多種方式,包含但不限于以下幾種:
1、采集模塊10從分布式異步隊列中讀取滿足第一訂閱內容的系統(tǒng)日志。
第一訂閱內容是審計模塊12配置的,這樣,采集模塊10可以采用訂閱- 發(fā)送方式下發(fā)系統(tǒng)日志,從而令審計模塊12及時獲得訂閱平臺的最新的系統(tǒng)日志。
2、采集模塊10從分布式異步隊列中讀取緩存時長滿足第一設定閾值的系統(tǒng)日志。
采用這種方式,可以在短時間內累積一定數(shù)量的系統(tǒng)日志再讀取,從而避免因為頻繁數(shù)據(jù)交互而造成的系統(tǒng)資源浪費,上述第一設定閾值可以設置得較短,這樣,審計模塊12同樣可以實時地得到所需的系統(tǒng)日志。
3、采集模塊10從分布式異步隊列中讀取緩存數(shù)據(jù)量滿足第二設定閾值的系統(tǒng)日志。
采用這種方式,同樣可以累積一定數(shù)量的系統(tǒng)日志再讀取,從而避免因為頻繁數(shù)據(jù)交互而造成的系統(tǒng)資源浪費,上述第二設定閾值可以設置得較少,這樣,審計模塊12同樣可以實時地得到所需的系統(tǒng)日志。
步驟220:審計模塊12基于規(guī)則模型對獲得的系統(tǒng)日志進行審計,其中,該規(guī)則模型是審計模塊12基于歷史審計數(shù)據(jù)進行機器學習訓練后生成的。
主要根據(jù)隱馬爾科夫算法模型(Hidden Markov Model,HMM)對海量歷史審計數(shù)據(jù)進行機器學習訓練后,輸出規(guī)則模型。再將該規(guī)則模型應用于審計模塊12,用于檢測異常的系統(tǒng)日志。
例如,以url日志為例,大多數(shù)正常的url日志的格式都非常類似,具體如下:
http://xxx.com/index.html?id=123&user=abc&query=手套
http://xxx.com/index.html?id=124&user=apple&query=手表
http://xxx.com/index.html?id=133&user=edfc&query=冰箱
http://xxx.com/index.html?id=135&user=xxxx&query=洗衣機
而異常的url日志的格式往往都不大相同,具體如下:
http://xxx.com/index.html?id=1'union select id,name,SCHEMA_NAME from
User_information
http://xxx.com/index.html?id=%3Cscript%3Ealert('XSS')%3C/script%3E
http://xxx.com/index.html/$%7B@print(md5(acunetix_wvs_security_test))%7D
因此,基于海量正常的url日志可以建立多個HMM模型。
具體的,正常的url日志的格式中,均包括有主機字段(如,http://xxx.com)、路徑字段(如,/index.html?)和參數(shù)字段(如,id=%3Cscript%3Ealert('XSS')%3C/script%3E),在針對一條url日志建立HMM模型時,是對url日志中參數(shù)字段內包含的所有參數(shù)進行映射處理,建立相應的HMM模型,再通過該url日志中主機字段和路徑字段鏈接至該HMM模型.
例如,參閱圖3所示,在建立HMM模型時,將一條url日志的中每個參數(shù)的值由可見狀態(tài)按照以下規(guī)則映射為隱藏狀態(tài):a~z→A(Alphabet);0~9→N(Number);中文→C(Chinese);其他的特殊符號不進行映射;從而建立HMM模型。
在機器學習階段,使用正常的url日志作為輸入數(shù)據(jù),避免污染模型,正常的url日志來源于通過正則表達式匹配的數(shù)據(jù));然后,按照url日志的主機字段+路徑字段進行分組,在每一組中再分別按照不同url日志包含的參數(shù)分別建立相應的HMM模型;接著,設定異常概率門限值:H=Min(概率)-ε,ε=Min(概率)/100。
參閱圖4所示,通過歷史數(shù)據(jù)集中提取的數(shù)據(jù)進行機器學習后,建立了多種類型的HMM模型,那么,在檢測階段,再提取到新的url日志時,可以按照url日志的主機字段+路徑字段+參數(shù)字段提取相應的HMM模型進行檢測,經(jīng)檢測,若概率<H,則表示相應的url日志屬于異常日志,其中,所謂的概率表示url日志按照相應的HMM模型表征的參數(shù)輸出的概率值,取值越低,表示url日志的格式越異常,有可能為非法的url日志;若概率≥H,則表示相應的url日志屬于正常日志,可以作為新數(shù)據(jù)添加到歷史數(shù)據(jù)集中,作為下一次機器學習訓練使用。
而現(xiàn)有的規(guī)則是通過正則表達式表示的,采用正則表達式檢測異常的系統(tǒng)日志,存在性能和靈活性較差的問題,因為只能逐條檢測系統(tǒng)日志是否與正則表達匹配,無法做到關聯(lián)分析,基于機器學習的規(guī)則模型可以根據(jù)歷史數(shù)據(jù)中的前后系統(tǒng)日志的內容進行關聯(lián)分析,進而檢測出異常。
參閱圖1所示,在審計平臺中,進一步地,還可以包括構建模塊13和存儲模塊14,這兩者也可以訂閱相關的系統(tǒng)日志,同理,分發(fā)模塊11也會將滿足構建模塊13設置的第二訂閱內容的系統(tǒng)日志實時發(fā)往構建模塊13,以便于構建模塊13對應各個系統(tǒng)日志構建相應的初始索引,或/和,分發(fā)模塊11出會將滿足存儲模塊14設置的第三訂閱內容的系統(tǒng)日志實時發(fā)往存儲模塊14進行保存,可選的,存儲模塊14可以將系統(tǒng)日志存儲至特定的存儲介質,如,開放結構化數(shù)據(jù)服務(Open Table Service,OTS)開放結構化數(shù)據(jù)服務]、Hadoop數(shù)據(jù)庫(Hbase[Hadoop Database],Hbase)等),同時可根據(jù)不同規(guī)格配置,將超過一定存儲時長的系統(tǒng)日志歸檔至開放數(shù)據(jù)處理服務ODPS[(Open Data Processing Service,ODPS)開放數(shù)據(jù)處理服務]中。
本申請實施例中,可選的,日志審計系統(tǒng)根據(jù)構建模塊13和存儲模塊14的訂閱內容進行系統(tǒng)日志下發(fā),這是因為,不是所有系統(tǒng)日志都需要進行初始索引構建以及保存,有時海量的臨時的系統(tǒng)日志經(jīng)審計無特殊價值后可以直接丟棄,以保證系統(tǒng)的存儲空間,因此,日志審計系統(tǒng)只會根據(jù)訂閱內容向構建模塊13和存儲模塊14下發(fā)相應的系統(tǒng)日志。
另一方面,進一步的,審計模塊12對系統(tǒng)日志進行審計后,會將符合事件特征的系統(tǒng)日志及相應的審計結果(即事件描述內容)發(fā)往構建模塊13進行索引構建,這是為了在系統(tǒng)日志和相應審計結果之間建立關聯(lián),以便后續(xù)查詢;那么,構建模塊13接收到系統(tǒng)日志和相應的審計結果后,會判斷是否訂閱了相關系統(tǒng)日志并已構建了初始索引,若是,則基于系統(tǒng)日志和相應的審計結果對相應的初始索引進行更新,這樣,系統(tǒng)日志和審計結果之間便建立了關聯(lián)關系,以便于后續(xù)的事件查詢洄溯;否則,直接基于系統(tǒng)日志和相應的審計 結果構建索引,即建立關聯(lián)關系,便于后續(xù)的事件查詢洄溯。
本申請實施例中,審計平臺從云端的各類平臺分別采集相應的系統(tǒng)日志,并將獲得的系統(tǒng)日志緩存至分布式異步隊列中,以及在確定滿足預計的觸發(fā)條件時,從該分布式異步隊列中讀取符合上述觸發(fā)條件的系統(tǒng)日志,并基于規(guī)則模型對獲得的系統(tǒng)日志進行審計,其中,規(guī)則模型是基于歷史審計數(shù)據(jù)進行機器學習訓練后生成的。這樣,便通過分布式的日志審計系統(tǒng)達到了實時讀取、分析云端各類平臺的系統(tǒng)日志的目的,并且,基于歷史審計數(shù)據(jù)建模形成的規(guī)則模型相較于現(xiàn)有技術下單一的規(guī)則,更能夠描述出復雜的審計條件,便于挑選出因復雜預警事件而產生的系統(tǒng)日志,從而便于管理人員及時發(fā)現(xiàn)并進行管理。進一步地,本申請實施例中,將系統(tǒng)日志和審計結果(即審計后確定發(fā)生的事件)建立關聯(lián)關聯(lián),之間,可以通過搜索引擎及時進行關聯(lián)檢索,方便管理人員進行關聯(lián)分析。
本申請描述的整套系統(tǒng)基于云產品搭建,和各類云平臺兼容,易部署,具有高擴展性,方便接入各式各樣的審計日志源。
本領域內的技術人員應明白,本申請的實施例可提供為方法、系統(tǒng)、或計算機程序產品。因此,本申請可采用完全硬件實施例、完全軟件實施例、或結合軟件和硬件方面的實施例的形式。而且,本申請可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(包括但不限于磁盤存儲器、CD-ROM、光學存儲器等)上實施的計算機程序產品的形式。
本申請是參照根據(jù)本申請實施例的方法、設備(系統(tǒng))、和計算機程序產品的流程圖和/或方框圖來描述的。應理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結合??商峁┻@些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理設備的處理器以產生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理設備的處理器執(zhí)行的指令產生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
這些計算機程序指令也可存儲在能引導計算機或其他可編程數(shù)據(jù)處理設備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理設備上,使得在計算機或其他可編程設備上執(zhí)行一系列操作步驟以產生計算機實現(xiàn)的處理,從而在計算機或其他可編程設備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
盡管已描述了本申請的優(yōu)選實施例,但本領域內的技術人員一旦得知了基本創(chuàng)造性概念,則可對這些實施例作出另外的變更和修改。所以,所附權利要求意欲解釋為包括優(yōu)選實施例以及落入本申請范圍的所有變更和修改。
顯然,本領域的技術人員可以對本申請實施例進行各種改動和變型而不脫離本申請實施例的精神和范圍。這樣,倘若本申請實施例的這些修改和變型屬于本申請權利要求及其等同技術的范圍之內,則本申請也意圖包含這些改動和變型在內。