摘要:
1. 創(chuàng)建了一個(gè)基于流的查詢系統(tǒng),該系統(tǒng)將來自企業(yè)中多個(gè)主機(jī)的實(shí)時(shí)事件提要作為輸入,并提供了一個(gè)異常查詢引擎,該引擎查詢事件提要以基于以下內(nèi)容識(shí)別異常行為指定的異常。
2.?為了簡化根據(jù)專家知識(shí)來表達(dá)異常的任務(wù),我們的系統(tǒng)提供了特定于域的查詢語言SAQL,SAQL允許分析人員表達(dá)針對(1)基于規(guī)則的異常,(2)時(shí)間-系列異常,(3)基于不變式的異常和(4)基于離群值的異常。
3.?我們在包含150臺(tái)主機(jī)的NEC Labs America中部署了我們的系統(tǒng),并使用1.1TB的實(shí)際系統(tǒng)監(jiān)視數(shù)據(jù)(包含33億個(gè)事件)對其進(jìn)行了評估。
現(xiàn)有缺點(diǎn):現(xiàn)有的方法在使用系統(tǒng)監(jiān)視數(shù)據(jù)檢測多種類型的異常時(shí)面臨挑戰(zhàn)。
1.與apt等攻擊做斗爭。我們需要一個(gè)實(shí)時(shí)的異常檢測工具來搜索apt,以防止進(jìn)一步的損壞。
2.從數(shù)據(jù)得出的模型已越來越多的用于檢測各種類型的風(fēng)險(xiǎn)事件,但是如何提供實(shí)時(shí)工具來檢測異常,同時(shí)整合專家知識(shí)?
3.系統(tǒng)監(jiān)控每天產(chǎn)生大量日志,這需要對大規(guī)模出處的數(shù)據(jù)進(jìn)行高效的實(shí)時(shí)數(shù)據(jù)分析。
但是現(xiàn)有的系統(tǒng)都專注于特定的異常,通過結(jié)合專家知識(shí)為用戶指定異常模型提供了支持。這些模型缺乏現(xiàn)有的針對通用數(shù)據(jù)流的流查詢系統(tǒng)。
1. introduce
1. 貢獻(xiàn):我們設(shè)計(jì)并構(gòu)建了一個(gè)新穎的基于流的實(shí)時(shí)查詢系統(tǒng)。我們的系統(tǒng)采用了從企業(yè)中多個(gè)主機(jī)聚合的實(shí)時(shí)事件提要,并提供了異常查詢引擎。查詢引擎為用戶提供了一種新穎的界面,使用戶可以使用我們的特定于域的語言【基于流的異常查詢語言SAQL】提交異常查詢,并針對查詢檢查事件以實(shí)時(shí)檢測異常。
2. 語言:【我沒看懂】 SAQL提供(1)事件模式的語法,以簡化指定相關(guān)系統(tǒng)活動(dòng)及其關(guān)系的任務(wù),從而有助于規(guī)范基于規(guī)則的異常; (2)滑動(dòng)窗口和有狀態(tài)計(jì)算的構(gòu)造,允許在數(shù)據(jù)流的每個(gè)滑動(dòng)窗口中計(jì)算有狀態(tài)異常模型,這有助于規(guī)范時(shí)間序列異常,基于不變式的異常和基于異常值的異常。
3. 執(zhí)行引擎:我們在Siddhi [20]的基礎(chǔ)上構(gòu)建查詢引擎,以利用其成熟的流管理引擎。基于輸入的SAQL查詢,我們的系統(tǒng)綜合了Siddhi查詢以匹配流中的數(shù)據(jù),并執(zhí)行狀態(tài)計(jì)算和異常模型構(gòu)建以檢測流中的異常。
該設(shè)計(jì)面臨的主要挑戰(zhàn)是在大規(guī)模系統(tǒng)監(jiān)視數(shù)據(jù)上處理多個(gè)并發(fā)異常查詢的可伸縮性。為了滿足這些需求,現(xiàn)有系統(tǒng)采用的方法是制作流數(shù)據(jù)的副本,并將副本提供給每個(gè)查詢,從而允許每個(gè)查詢單獨(dú)操作。但是這種方案在處理從系統(tǒng)監(jiān)視中收集的大數(shù)據(jù)時(shí)效率不高。
為了解決這一挑戰(zhàn),我們設(shè)計(jì)了一種依賴于主服務(wù)器的查詢方案,該方案可識(shí)別兼容的查詢并將其分組,以使用流數(shù)據(jù)的單個(gè)副本來最大程度的減少數(shù)據(jù)副本。
我們的系統(tǒng)首先根據(jù)提交窗口中的滑動(dòng)窗口對時(shí)間維度進(jìn)行分析,并根據(jù)主機(jī)和事件屬性對空間維度進(jìn)行分析。根據(jù)分析結(jié)果,我們的系統(tǒng)將兼容查詢分為幾組,其中在每個(gè)組中,主查詢將直接訪問流數(shù)據(jù),而其他相關(guān)查詢將利用主查詢的中間執(zhí)行結(jié)果。請注意,這種優(yōu)化利用了系統(tǒng)監(jiān)視數(shù)據(jù)的時(shí)空特性和SAQL查詢的語義,這對于基于一般流的查詢系統(tǒng)[2??0、12、51、4]中的查詢是不可能的。
4. 部署和評估:我們基于現(xiàn)有的系統(tǒng)級監(jiān)視工具(即Audited [15]和ETW [13])和現(xiàn)有的流管理系統(tǒng)(即Java)構(gòu)建了整個(gè)SAQL系統(tǒng)(約50,000行Java代碼)我們在由150個(gè)主機(jī)組成的NEC Labs America中部署了該系統(tǒng)。我們在部署的環(huán)境中執(zhí)行了一系列廣泛的攻擊行為,并使用1.1TB的實(shí)際系統(tǒng)監(jiān)視數(shù)據(jù)(包含33億個(gè)事件)對系統(tǒng)進(jìn)行了評估:
(1)我們對四種主要攻擊行為類型進(jìn)行了案例研究( 17個(gè)SAQL查詢)表明我們的SAQL系統(tǒng)具有較低的警報(bào)檢測延遲(<2s);
2)我們的壓力測試表明,對于單個(gè)代表性的基于規(guī)則的查詢(它監(jiān)視文件訪問),我們的SAQL系統(tǒng)具有很高的系統(tǒng)吞吐量(110000個(gè)事件/秒),并且可以在已部署的服務(wù)器上擴(kuò)展到約4000臺(tái)主機(jī);
(3)我們使用64個(gè)微基準(zhǔn)查詢的性能評估表明,與Siddhi相比,我們的SAQL系統(tǒng)能夠有效處理并發(fā)查詢的執(zhí)行并實(shí)現(xiàn)更有效的內(nèi)存利用率,平均節(jié)省30%。所有評估查詢都可以在我們的項(xiàng)目網(wǎng)站上找到[19]。
2. background and examples
1. present the background on system monitoring?
2. show SAQL queries to demonstrate the major types of anomaly models supported by system.
1. system monitoring?
系統(tǒng)監(jiān)控?cái)?shù)據(jù)以時(shí)間和時(shí)間的形式表示各種系統(tǒng)活動(dòng),每個(gè)事件可以描述為對另一個(gè)系統(tǒng)實(shí)體(對象)執(zhí)行某些操作的系統(tǒng)實(shí)體(對象)。例如,進(jìn)程讀取文件或進(jìn)程訪問網(wǎng)絡(luò)連接。
系統(tǒng)監(jiān)視數(shù)據(jù)記錄了有關(guān)系統(tǒng)調(diào)用的系統(tǒng)審核事件,這些事件對于安全性分析很重要。被監(jiān)視的系統(tǒng)調(diào)用映射到三種主要的系統(tǒng)事件類型:1.過程創(chuàng)建和破壞,2.文件訪問 3.網(wǎng)絡(luò)訪問。
在大多數(shù)情況下,系統(tǒng)的實(shí)體entity是文件,網(wǎng)絡(luò)連接和進(jìn)程。本文中將系統(tǒng)實(shí)體看作數(shù)據(jù)模型中的文件,進(jìn)程和網(wǎng)絡(luò)連接。我們將實(shí)體之間的交互定義為一個(gè)事件,該事件event使用三元組《主題,操作,對象》表示。根據(jù)事件實(shí)體的類型,我們將事件分為三類:文件事件,進(jìn)程事件,網(wǎng)絡(luò)連接事件。
實(shí)體【文件,進(jìn)程,網(wǎng)絡(luò)連接】的屬性包括實(shí)體的屬性,以及區(qū)分實(shí)體的唯一標(biāo)識(shí)符。
事件的屬性包括事件的起源,操作以及其他安全性相關(guān)的屬性。
2.?SAQL Queries for Anomalies :SAQL異常查詢
使用saql作為統(tǒng)一接口來指定各種類型的異常系統(tǒng)行為。
(1)基于規(guī)則的異常:高級網(wǎng)絡(luò)攻擊通常包含一系列利用多個(gè)系統(tǒng)中的漏洞竊取敏感信息的步驟。
(2)時(shí)間序列的異常:saql提供了滑動(dòng)窗口的結(jié)構(gòu),以便能夠指定時(shí)間序列異常模型。例如,SAQL查詢可能會(huì)監(jiān)視某些進(jìn)程發(fā)送的數(shù)據(jù)量,并檢測到在短時(shí)間內(nèi)傳輸?shù)囊馔獯罅繑?shù)據(jù)。
(3)基于不變(invariant)的異常:基于不變的異常將訓(xùn)練期間的不變量捕獲為模型,并在以后使用這些模型檢測異常。SAQL提供了不變模型的構(gòu)造和學(xué)習(xí)細(xì)節(jié),以定義和學(xué)習(xí)系統(tǒng)行為的不變性,從而使用戶可以將狀態(tài)計(jì)算和在正常操作下學(xué)到的不變式結(jié)合起來進(jìn)行檢測更多類型的異常系統(tǒng)行為。
(4)基于異常值的檢測: outlier-based anomaly。
基于異常值的異常允許用戶通過對等比較來識(shí)別異常系統(tǒng)行為。例如,通過將異常過程與其他對等進(jìn)程進(jìn)行比較來找到異常過程。為了檢測基于異常值的異常,SAQL提供了異常值模型的構(gòu)造,以定義時(shí)間窗口中的哪些信息形成多維點(diǎn),并計(jì)算群集以識(shí)別異常值。
3. 系統(tǒng)概述和威脅模型
我們在企業(yè)中的服務(wù)器,臺(tái)式機(jī)和筆記本電腦上部署監(jiān)視代理,以通過收集有關(guān)內(nèi)核的系統(tǒng)調(diào)用信息來監(jiān)視系統(tǒng)級活動(dòng)。
Windows,Linux和Mac OS的系統(tǒng)監(jiān)視數(shù)據(jù)是通過ETW事件跟蹤[13],Linux Audit Framework [15]和DTrace [8]收集的。收集的數(shù)據(jù)發(fā)送到中央服務(wù)器,形成事件流(system event stream )。

該系統(tǒng)由兩個(gè)組件組成:(1)使用ANTLR 4 [3]實(shí)現(xiàn)的語言解析器,對輸入查詢進(jìn)行語法和語義分析,并為每個(gè)查詢生成異常模型上下文【基于規(guī)則的查詢,基于時(shí)間的,基于不變量的,基于異常值的】。異常模型上下文是輸入查詢的對象抽象,其中包含查詢執(zhí)行和異常檢測所需的所有信息。 (2)建立在Siddhi [20]上的執(zhí)行引擎監(jiān)視數(shù)據(jù)流并根據(jù)異常模型上下文的執(zhí)行情況報(bào)告檢測到的警報(bào)。
執(zhí)行引擎具有四個(gè)子模塊:(1)多事件匹配器將流中的事件與查詢中指定的事件模式進(jìn)行匹配; (2)狀態(tài)維護(hù)者維護(hù)根據(jù)匹配事件計(jì)算出的每個(gè)滑動(dòng)窗口的狀態(tài); (3)并發(fā)查詢調(diào)度程序根據(jù)與主相關(guān)的查詢方案(第5.2節(jié))將并發(fā)查詢分為幾組,以最大程度地減少對數(shù)據(jù)副本的需求; (4)錯(cuò)誤報(bào)告程序在執(zhí)行過程中報(bào)告錯(cuò)誤。
威脅模型:SAQL是一個(gè)基于流的查詢系統(tǒng),用于對系統(tǒng)監(jiān)視數(shù)據(jù)進(jìn)行查詢,因此,我們遵循有關(guān)系統(tǒng)監(jiān)視數(shù)據(jù)的先前工作的威脅模型[63、64、69、68、32、50]。我們假設(shè)從內(nèi)核空間[15,13]收集的系統(tǒng)監(jiān)視數(shù)據(jù)未被篡改,并且內(nèi)核是可信的。任何有意損害安全審核系統(tǒng)的內(nèi)核級攻擊均不在本工作范圍之內(nèi)。
我們確實(shí)認(rèn)為內(nèi)部人員或外部攻擊者對已部署的SAQL查詢和異常模型有全面的了解。他們可以通過看似“正?!钡幕顒?dòng)來發(fā)動(dòng)攻擊,以逃避SAQL的異常檢測,并且可以通過模仿對等主機(jī)的行為來隱藏攻擊,以避免SAQL的異常發(fā)現(xiàn)。
4 SAQL?Language Design
SAQL提供了明確的結(jié)構(gòu)來指定系統(tǒng)實(shí)體/事件以及事件的關(guān)系。這有助于規(guī)范基于規(guī)則的異常,以檢測已知的攻擊行為或?qū)嵤┢髽I(yè)范圍的安全策略。SAQL還提供了用于滑動(dòng)窗口和狀態(tài)計(jì)算的構(gòu)造,這些結(jié)構(gòu)允許在數(shù)據(jù)流的每個(gè)滑動(dòng)窗口中計(jì)算狀態(tài)異常模型。這有助于規(guī)范時(shí)間序列的異常,基于不變式的異常和基于離群值的異常,它們?nèi)狈ΜF(xiàn)有的流查詢系統(tǒng)和基于流的異常檢測系統(tǒng)的支持。
4.1多事件模式匹配SAQL提供事件模式語法(格式為{subject-operation-object})來描述系統(tǒng)活動(dòng),其中系統(tǒng)實(shí)體表示為主體和對象,而交互表示為由主體發(fā)起并針對的操作對象。另外,該語法直接支持事件時(shí)間關(guān)系和屬性關(guān)系的規(guī)范,這有助于規(guī)范復(fù)雜的系統(tǒng)行為規(guī)則。
4.2有狀態(tài)計(jì)算
基于滑動(dòng)窗口的構(gòu)造,SAQL提供了用于狀態(tài)計(jì)算的構(gòu)造,它包括兩個(gè)主要部分:基于滑動(dòng)窗口定義狀態(tài)以及訪問當(dāng)前窗口和過去窗口的狀態(tài)以指定時(shí)間序列異常,基于不變的異常和基于異常值的異常。
4.3警報(bào)條件檢查
“ alert”規(guī)則指定觸發(fā)警報(bào)的條件(布爾表達(dá)式)。 這使SAQL可以為時(shí)間序列異常(例如,查詢2中的第5行),基于不變式的異常(例如,查詢3中的第9行)和基于異常值的異常(例如,第7行)指定廣泛的檢測邏輯集 在查詢4中)。 請注意,除了查詢2中指定的移動(dòng)平均檢測邏輯外,SAQL的靈活性還可以指定其他眾所周知的邏輯,例如3-sigma規(guī)則。
4.4返回和過濾器
“報(bào)告”規(guī)則指定要作為結(jié)果返回的合格事件的所需屬性。 諸如group by,sort by和top之類的構(gòu)造可用于進(jìn)一步的結(jié)果操縱和過濾。 這些結(jié)構(gòu)可用于查詢最活躍的進(jìn)程和IP地址,以及指定基于閾值的異常模型而無需顯式定義狀態(tài)。 例如,查詢5在1分鐘的滑動(dòng)窗口中計(jì)算每個(gè)進(jìn)程的IP頻率,并返回頻率大于100的活動(dòng)進(jìn)程。
5 SAQL?Execution Engine
圖2中的SAQL執(zhí)行引擎將事件流作為輸入,執(zhí)行解析器生成的異常模型上下文,并報(bào)告檢測到的警報(bào)。為了使系統(tǒng)在支持多個(gè)并發(fā)查詢方面更具可伸縮性,該引擎采用了一個(gè)與主服務(wù)器相關(guān)的查詢方案,該方案將語義上兼容的查詢分組,以共享流數(shù)據(jù)的單個(gè)副本以執(zhí)行查詢。這樣,SAQL系統(tǒng)可大大減少流的數(shù)據(jù)副本。
5.1 查詢執(zhí)行管道
給定一個(gè)SAQL查詢,解析器將執(zhí)行語法分析和語義分析,以生成異常模型上下文。查詢優(yōu)化器中的并發(fā)查詢調(diào)度程序會(huì)根據(jù)當(dāng)前正在運(yùn)行的查詢的現(xiàn)有異常模型上下文來分析新到達(dá)的異常模型上下文,并通過利用依賴于主服務(wù)器的查詢方案來計(jì)算優(yōu)化的執(zhí)行調(diào)度。
多事件求解器分析SAQL查詢中的事件模式及其相關(guān)性,并通過發(fā)出Siddhi查詢來訪問流中的數(shù)據(jù)來檢索匹配的事件。如果查詢涉及狀態(tài)計(jì)算,則狀態(tài)維護(hù)者會(huì)利用中間執(zhí)行結(jié)果來計(jì)算和維護(hù)查詢狀態(tài)。如果查詢滿足警報(bào)條件,將生成警報(bào)。
5.2并發(fā)查詢調(diào)度器
圖2中的并發(fā)查詢調(diào)度程序調(diào)度并發(fā)??查詢的執(zhí)行。一種簡單的調(diào)度策略是制作流數(shù)據(jù)的副本,并將副本提供給每個(gè)查詢,從而允許每個(gè)查詢分別操作。但是,系統(tǒng)監(jiān)視會(huì)產(chǎn)生大量的每日日志[69,88],并且這種復(fù)制方案會(huì)導(dǎo)致大量的內(nèi)存使用,這極大地限制了系統(tǒng)的可伸縮性。
主從查詢方案:為了有效地支持并發(fā)查詢執(zhí)行,并發(fā)查詢調(diào)度器采用了主從查詢方案。在該方案中,只有主查詢可以直接訪問數(shù)據(jù)流,而從屬查詢的執(zhí)行取決于其主查詢的執(zhí)行。假設(shè)查詢的執(zhí)行管道通常涉及四個(gè)階段(即,事件模式匹配,狀態(tài)計(jì)算,警報(bào)條件檢查和屬性返回),則關(guān)鍵思想是維護(hù)從主查詢到其依賴查詢的映射M ,并讓相關(guān)查詢的執(zhí)行在某些階段共享其主查詢的中間執(zhí)行結(jié)果,從而可以顯著減少流中不必要的數(shù)據(jù)副本。算法1顯示了調(diào)度算法。
ATTACK CASES STUDY
APT ATTACK :
APT攻擊:我們要求白帽黑客在部署的環(huán)境中進(jìn)行APT攻擊,如圖3所示。攻擊步驟如下:
c1最初的威脅:攻擊者向受害者發(fā)送了一封精心設(shè)計(jì)的電子郵件。該電子郵件包含一個(gè)嵌入了惡意宏的Excel文件。
c2惡意軟件感染:受害者通過Outlook客戶端打開Excel文件并運(yùn)行宏,該宏下載并執(zhí)行惡意腳本(CVE-2008-0081 [6]),為攻擊者打開后門。
c3特權(quán)升級:攻擊者通過后門進(jìn)入受害者的計(jì)算機(jī),掃描網(wǎng)絡(luò)端口以發(fā)現(xiàn)數(shù)據(jù)庫的IP地址,然后運(yùn)行數(shù)據(jù)庫破解工具(gsecdump.exe)來竊取數(shù)據(jù)庫的憑據(jù)。
c4滲透到數(shù)據(jù)庫服務(wù)器:攻擊者使用憑證滲透到數(shù)據(jù)庫服務(wù)器,并提供一個(gè)VBScript來刪除另一個(gè)惡意腳本,從而創(chuàng)建另一個(gè)后門。
c5數(shù)據(jù)泄漏:攻擊者可以訪問數(shù)據(jù)庫服務(wù)器,使用osql.exe轉(zhuǎn)儲(chǔ)數(shù)據(jù)庫內(nèi)容,并將數(shù)據(jù)轉(zhuǎn)儲(chǔ)發(fā)送回其主機(jī)。
對于每個(gè)攻擊步驟,我們都會(huì)構(gòu)建一個(gè)基于規(guī)則的異常查詢(即查詢7至11)。此外,我們構(gòu)造了3個(gè)高級異常查詢:
我們構(gòu)造一個(gè)基于不變式的異常查詢(查詢12)以檢測Excel執(zhí)行從未執(zhí)行過的惡意腳本的情況:不變式包含前100個(gè)滑動(dòng)窗口中Excel啟動(dòng)的所有唯一進(jìn)程。在檢測階段,偏離不變的新過程將被報(bào)告為警報(bào)。此查詢可用于檢測由Excel啟動(dòng)的看不見的可疑Java進(jìn)程(即步驟c2)。
?我們基于SMA構(gòu)建時(shí)間序列異常查詢(查詢13),以檢測通過數(shù)據(jù)庫服務(wù)器上的網(wǎng)絡(luò)交換大量數(shù)據(jù)的情況(即步驟c5):對于數(shù)據(jù)庫服務(wù)器上的每個(gè)進(jìn)程,此查詢可檢測將異常大量數(shù)據(jù)傳輸?shù)骄W(wǎng)絡(luò)的進(jìn)程。此查詢可用于檢測從數(shù)據(jù)庫服務(wù)器傳輸?shù)拇罅繑?shù)據(jù)。
?我們還構(gòu)造了一個(gè)基于異常值的異常查詢(查詢14),以檢測將大量數(shù)據(jù)傳輸?shù)骄W(wǎng)絡(luò)的進(jìn)程(即步驟c5):該查詢通過基于DBSCAN的對等比較來檢測此類進(jìn)程。這里的檢測邏輯不同于查詢13,后者通過與基于SMA的歷史狀態(tài)進(jìn)行比較來檢測異常。
請注意,這3個(gè)查詢的構(gòu)造假定不了解詳細(xì)的攻擊步驟。
8 Related Work
審計(jì)記錄和取證:利用系統(tǒng)級取證進(jìn)行取證分析已經(jīng)取得了重大進(jìn)展,重點(diǎn)是為攻擊因果分析生成了取證圖[74,75,63,64,32,69,88]。最近的工作還研究了如何過濾出處圖中的無關(guān)活動(dòng)[71],以及如何減少在分布式系統(tǒng)(如數(shù)據(jù)中心)中產(chǎn)生的出處圖的存儲(chǔ)開銷[57]。這些系統(tǒng)考慮了歷史日志,并且其貢獻(xiàn)與SAQL的貢獻(xiàn)正交,這為調(diào)查人員從系統(tǒng)日志流中查詢異常行為提供了一個(gè)有用且新穎的界面。盡管如此,SAQL可以與這些系統(tǒng)互操作,以通過簡潔的出處圖對檢測到的異常進(jìn)行因果分析。
高等。 [50]提出了AIQL,它可以通過查詢存儲(chǔ)在數(shù)據(jù)庫中的歷史系統(tǒng)審核日志來進(jìn)行有效的攻擊調(diào)查。 AIQL可用于調(diào)查由我們的SAQL系統(tǒng)在系統(tǒng)監(jiān)視數(shù)據(jù)流中檢測到的實(shí)時(shí)異常。這兩個(gè)系統(tǒng)一起可以更好地防御高級網(wǎng)絡(luò)攻擊。
與安全性相關(guān)的語言:在各種安全領(lǐng)域中存在特定于域的語言,這些語言具有完善的低級算法語料庫,例如密碼系統(tǒng)[33,34,70],安全覆蓋網(wǎng)絡(luò)[61,72] ],網(wǎng)絡(luò)入侵[36、44、82、86]和混淆[47]。這些語言被明確設(shè)計(jì)用于解決特定于領(lǐng)域的問題,為其特定的問題領(lǐng)域提供特定的構(gòu)造,并避免不相關(guān)的功能。與這些語言相反,SAQL的新穎之處在于如何將異常模型指定為查詢,以及如何在系統(tǒng)監(jiān)視數(shù)據(jù)上執(zhí)行查詢。
安全異常檢測:異常檢測技術(shù)已廣泛用于檢測惡意軟件[58、83、65、67],防止網(wǎng)絡(luò)入侵[89、90、80],內(nèi)部威脅檢測[81]和攻擊預(yù)測[87]。 ?;谝?guī)則的檢測技術(shù)通過分析來表征程序的正常行為,并檢測在表征過程中未觀察到的未知行為[49,58]?;诋惓V档臋z測技術(shù)[89、90、80]基于聚類或其他機(jī)器學(xué)習(xí)模型來檢測異常系統(tǒng)行為。與這些專注于發(fā)現(xiàn)有效特征并在不同情況下構(gòu)建特定模型的技術(shù)不同,SAQL提供了一個(gè)統(tǒng)一的接口來基于專家的領(lǐng)域知識(shí)來表達(dá)異常。
復(fù)雜事件處理平臺(tái)和數(shù)據(jù)流管理系統(tǒng):復(fù)雜事件處理(CEP)平臺(tái),例如Esper [12],Siddhi [20],Apache Flink [4]和Aurora [29]將連續(xù)傳入的事件與模式進(jìn)行匹配。與傳統(tǒng)的數(shù)據(jù)庫管理系統(tǒng)不同,傳統(tǒng)的數(shù)據(jù)庫管理系統(tǒng)對存儲(chǔ)的數(shù)據(jù)執(zhí)行查詢,而CEP查詢則應(yīng)用于可能無限的數(shù)據(jù)流,并且所有與查詢無關(guān)的數(shù)據(jù)都會(huì)被立即丟棄。這些平臺(tái)提供了自己的特定于域的語言,這些語言可以在滑動(dòng)窗口的支持下組成復(fù)雜事件的模式。 Wukong + S [91]構(gòu)建了一個(gè)可以查詢流數(shù)據(jù)和存儲(chǔ)數(shù)據(jù)的流查詢平臺(tái)。諸如CQL [51]的數(shù)據(jù)流管理系統(tǒng)[79]管理多個(gè)數(shù)據(jù)流并提供查詢語言以處理流上的數(shù)據(jù)。這些CEP平臺(tái)可用于管理大量數(shù)據(jù)流。因此,它們可以用作我們方法的管理基礎(chǔ)結(jié)構(gòu)。但是,僅這些CEP系統(tǒng)無法提供語言結(jié)構(gòu)來支持滑動(dòng)窗口中的狀態(tài)計(jì)算,因此像我們的系統(tǒng)一樣無法表達(dá)狀態(tài)異常模型。
流計(jì)算系統(tǒng):流計(jì)算系統(tǒng)允許用戶基于流數(shù)據(jù)計(jì)算各種度量。這些系統(tǒng)包括Microsoft StreamInsight [31],MillWheel [30],Naiad [76]和Puma [41]。這些系統(tǒng)通常為無狀態(tài)計(jì)算(例如,數(shù)據(jù)聚合)提供良好的支持。但是,它們不像我們的SAQL系統(tǒng)那樣支持狀態(tài)異常模型,該模型比數(shù)據(jù)聚合要復(fù)雜得多。其他系統(tǒng)分析語言:Splunk [21]和Elasticsearch [10]是自動(dòng)解析常規(guī)應(yīng)用程序日志并提供基于關(guān)鍵字的搜索語言以過濾日志條目的平臺(tái)。 OSQuery [17,18]允許分析人員使用SQL查詢來探查實(shí)時(shí)系統(tǒng)狀態(tài)。但是,這些系統(tǒng)和語言本身不支持異常檢測,也不支持滑動(dòng)窗口中的狀態(tài)計(jì)算。其他語言,例如Weir [37]和StreamIt [84],則專注于監(jiān)視系統(tǒng)性能,并且缺乏對表達(dá)異常模型的支持。
9結(jié)論
我們提出了一種新穎的基于流的查詢系統(tǒng),該系統(tǒng)采用實(shí)時(shí)事件提要,該事件提要是在監(jiān)視下從不同主機(jī)聚合的,并提供了異常查詢引擎,可根據(jù)安全分析人員提交的查詢檢查事件流以檢測異常實(shí)時(shí)。我們的系統(tǒng)提供了一種特定于領(lǐng)域的語言SAQL,該語言專門設(shè)計(jì)用于簡化基于領(lǐng)域知識(shí)來表達(dá)異常的任務(wù)。 SAQL提供事件模式的構(gòu)造以輕松指定相關(guān)的系統(tǒng)活動(dòng)及其關(guān)系,并提供結(jié)構(gòu)化狀態(tài)的計(jì)算,方法是在滑動(dòng)窗口中定義狀態(tài)并訪問歷史狀態(tài)以計(jì)算異常模型。通過這些構(gòu)造,SAQL允許安全分析人員針對(1)基于規(guī)則的異常,(2)時(shí)間序列異常,(3)基于不變式和(4)基于離群值的異常表示模型。我們對17個(gè)攻擊查詢和64個(gè)微基準(zhǔn)查詢的評估結(jié)果表明,SAQL系統(tǒng)具有較低的警報(bào)檢測延遲和較高的系統(tǒng)吞吐量,并且比現(xiàn)有的流處理系統(tǒng)更有效地利用了內(nèi)存。