劉威歆,鄭康鋒,武斌,楊義先
(北京郵電大學 信息安全中心,北京 100876)
隨著計算機安全成為人們迫切需要解決的威脅問題,告警關聯的重要性吸引了越來越多的機構和研究者進行深入研究。在告警分析框架方面,Valeur等[1]提出了一個通用的 pipeline式告警處理流程,包含10個處理階段,如標準化、告警融合、多步關聯和影響分析等,最終輸出 Intrusion Reports。Sebastian Roschke等[2]提出了一個基于列式數據庫, 告警內存存儲和內存索引表的高效而靈活的分布式 IDS告警關聯平臺,能夠應用于不同的IDS 探針和管理系統。梅海彬等[3]提出了基于警報序列聚類的多步攻擊模式發現方法,無需依賴大量先驗知識,易用性和有效性強。
在告警關系提取方面,攻擊圖(attack graph)成為了一個很重要的研究方向[4,5]。攻擊圖是一個強大的分析工具,能夠通過匯聚網絡中的網絡可達性信息、漏洞信息和主機信息,描述網絡中的主機之間的網絡關系、服務關系和主機上漏洞的相互利用關系。Sushil Jajodia等提出了TVA(topological vulnerability analysis)[6],此系統包含網絡結構和全局漏洞信息,能夠模擬漸進的網絡滲透,建立完整的攻擊場景圖,同時能夠顯示所有網絡中的可能路徑。Ou等[7]提出了利用 MulVal來進行多主機網絡中多步驟攻擊的推導,并生成攻擊圖。
在基于攻擊圖的告警處理方面,第一個主要問題是對攻擊圖中的因果相關性的挖掘,現有方法往往是使用單一告警進行因果關系的推斷,面臨的挑戰是攻擊者日漸使用更為復雜的攻擊手段進行系統的入侵,單源的推斷難以應對復雜的多步攻擊且不能對告警的因果性做全面的挖掘;第二是由攻擊圖內部強相關性和數據規模帶來分析效率問題。攻擊圖規模龐大,需要對圖數據進行拆分以利并行,現有做法往往是把攻擊圖拆分成路徑集合來減弱匹配知識數據的依賴性,但這種做法會給告警分析大量的復制開銷,且難以應對攻擊圖的局部更新。同時,圖計算往往是迭代計算[8],傳統的批量式并行架構需要以連續任務達到迭代效果,增加了大量的任務啟停開銷,因而攻擊圖的實時計算需要更為適合的迭代式并行處理方法。
基于上述分析,本文提出了基于攻擊圖的多源告警關聯告警分析方法,綜合應用告警的圖關聯關系進行聯動推斷和預測,通過閾值限制分析范圍,從而進一步提升多步攻擊和關聯告警的挖掘能力以及降低誤報率。同時,提出了告警并行處理引擎,將批處理式告警映射并行和迭代式告警分析并行結合,提高了運行效率。最后用實驗數據驗證分析處理的準確性,同時測試分析告警并行處理引擎的性能表現。
目前,基于攻擊圖的告警關聯分析有以下代表性研究:Wang等[9]首次提出基于隊列圖的攻擊圖匹配結構,采用BFS樹進行前件節點和后件節點的遍歷,終止的條件是找到被其他告警激活的節點,僅能應對告警的直接前件和后件,且沒有進行閾值限制,難以全面解決漏報且增加了無關路徑的遍歷開銷。Sayed等[10]提出了一種基于攻擊圖的混合告警關聯模型,能夠關聯攻擊圖已知的告警,同時能夠用相似性比較的方法關聯攻擊圖未知告警,并能更新攻擊圖,但是對所有未直接關聯的告警都會在閾值內向上深度搜索,能夠解決前件告警漏報的問題且限制了誤報的個數,但是不能解決后件漏報的問題。上述基于攻擊圖的告警關聯往往只考慮單一前件的級聯和后件的級聯,卻往往忽略了綜合多個告警之間相關性進行下一步的推斷和預測,難以對因果關聯關系進行全面的挖掘和解決告警漏報問題。
在攻擊圖的并行處理方面,Roschke等[11,12]提出了一種分布式高性能的IDS關聯系統,將告警映射、告警融合、告警依賴關系提取和最長攻擊利用鏈分析并行化,依托于并行框架 OpenCL或MapReduce[13],能夠利用攻擊圖映射告警,生成告警依賴圖,存在的問題是基于路徑拆分的批量式處理方式難以應對攻擊圖結構在并行單元之間有效分配,同時文中也并未考慮攻擊圖中環路問題和提出具體的路徑劃分方法;其次局部圖更新會帶來大量路徑的改變,難以應對現有云計算網絡的動態變化。本文所采用的 GraphLab[14]并行處理框架是由CMU的 Select實驗室提出的,基于共享內存進行異步分布式圖計算,是一個更為靈活的迭代式處理框架,能夠嵌套Pregel[15]式的處理流程。在并行處理速度上,GraphLab也普遍優于其他的處理實現[16,17],包括:Giraph[16,17]、Hadoop和YARN,因而能夠很好地支撐攻擊圖的實時分析計算。
攻擊圖在告警分析中的優勢就在于它能夠很好地用圖來展示不同主機的不同漏洞之間的邏輯因果關系。通過以多個告警為應證源能夠更好地結合圖中邏輯關系進行推斷和預測。本文所提出的基于攻擊圖的多源告警關聯分析是指在告警依據其屬性映射到攻擊的動作節點后,以其動作節點為中心向相鄰節點發送前向預測消息和后向推斷消息。收到消息的節點綜合分析多個源節點發來的消息強度和消息方向,進行下一步的預測和推斷消息發送。同時,通過控制消息強度,減少多余路徑的分析開銷,降低誤報率。通過迭代的消息處理,達到推斷漏報的前后件攻擊和預測可能的下一步攻擊,降低漏報率并提升預測可靠性。
根據常用的攻擊圖定義和攻擊場景分析,可將基礎攻擊圖定義如下。
定義1AG=(AAG,CAG,EAG)
1)AAG為攻擊圖的動作節點。
AAG={ai|ai=(imp,host,vul)},其中,imp為攻擊圖節點ai的impact,host為ai所在主機,vul為ai的漏洞信息。
2)CAG為攻擊圖的狀態節點。
CAG為攻擊圖中的一系列狀態節點,表示攻擊動作會導致的后件安全狀態或者能夠導致供給動作成功執行的前件安全狀態。
3)EAG為邊集合。
EAG={ei|ei∈((AAG×CAG)∪(CAG×AAG))},攻 擊 圖是有向圖,每個節點都有其出邊和入邊,一個節點的出邊代表從自身(攻擊)到后件攻擊,而入邊代表從前件攻擊到自身(攻擊)。
定義2告警格式定義為
AL=Timstamp×Host×Port×Host×Port×Class
當al∈AL時,al=al(t,src,sp,dst,dp,c)六元組。
1)t∈Timstamp為告警時間戳。
2)src∈Host為告警的源IP。
3)sp∈Port為告警的源端口。
4)dst∈Host為告警的目的IP。
5)dp∈Port為告警的目的端口。
6)c∈Class為告警的漏洞利用分類信息。
告警映射map(al)依據的參數是告警的目標 IP和告警對應的漏洞類型,將告警映射到攻擊圖中節點所在的動作節點a,若映射失敗則為空。
定義3告警映射定義為

基于攻擊圖的告警推斷和預測主要包括 3個方面:一是前件推斷,即根據攻擊告警推斷攻擊者執行此次攻擊前的必要攻擊步驟,能夠解決前件告警的漏報和關聯;二是后件預測,能夠根據攻擊告警推斷攻擊者執行此次攻擊之后能夠進行的攻擊;三是前后件綜合判斷,Wang[9]和Seyed[10]對前2種方面都進行了充分的考慮,但忽略了基于前后件的綜合判斷。當一個節點的某一前件和某一后件都被激活的時候,則很大程度上此節點代表的攻擊已被攻擊者成功執行,因而需要進行該節點其余前件與后件的分析。多源關聯分析能夠基于多源應證消息進行下一步的推斷和預測工作能夠較全面地解決已有告警的關聯、漏報告警的修復和下一步攻擊的預測。
本文基于攻擊圖提出了意圖隊列圖(IQg)和意圖消息(IMsg),IQg基于隊列圖[9]和擴展隊列圖[10],并加入推斷強度和更多的狀態進而根據前件推斷和后件預測進行綜合的處理。IMsg承載的是不同方向的激活、推斷和預測消息。IQg根據IMsg進行自身狀態的改變和下一步IMsg的發送。
定義4IQg=(V,E),其中
1)V={Status,FwValue,BwValue,AlertInfo,AGData}。
①Status={FALSE|HYP|HHYP|TRUE},FALSE代表節點未被任何動作激活,HYP代表節點被前向預測或后向推斷消息激活,HHYP代表節點同時被前向預測或后向推斷消息激活,TRUE代表節點被真實告警所激活。
②FwValue代表節點的最大前向預測強度。
③BwValue代表節點的最大后向推斷強度。
④AlertInfo代表節點的最新激活告警信息,映射到相同節點的告警會覆蓋更新節點的AlertInfo,只有在Status為True的時候才非空。
⑤AGData=(AAG×CAG),AGData代表的是原有攻擊圖中的節點信息,包括動作節點AAG和狀態節點CAG。
2)E=EAG,IQg中的邊和攻擊圖中的邊相同。
定義5IMsg結構定義為
IMsg={Direction,FwValue,BwValue,AlertInfo}。
1)Direction={FW|BW|FBW|AL},代表消息方向,包含4個值:FW代表前向預測消息,由節點的出邊傳出;BW代表后向推斷消息,由節點的入邊傳出;FBW代表前后向消息,說明消息融合了前向預測消息和后向推斷消息;AL代表告警激活消息,說明存在映射到該節點的告警。
2)FwValue:前向預測強度。當Direction為FW或FBW時,fwvalue∈[1,ITH]。當Direction為BW或AL時,fwvalue為空。ITH為消息強度閾值。
3)BwValue:后向預測強度。當Direction為BW或AL時,bwvalue∈[1,TH]。當Direction為FW或FBW時,bwvalue為空。
4)AlertInfo:告警信息。只有當Direction為AL,alertinfo才非空。
推斷和預測的流程,偽代碼見算法1。
算法1告警關聯流程


情況1當a5節點被告警alert激活,說明這個exploit被攻擊者執行而且被檢測到,啟動在節點周圍的ITH層內推斷前件節點和預測后件節點,即a2、a4、a6和a8。ITH表示推斷和預測的層數。每個節點所需的推斷和預測的層數會隨著推斷和預測消息的傳播逐跳遞減,如a6會繼續發出強度為ITH-1的前向消息。
情況2當a2被后件節點a5所推斷,繼續在剩余的層數內推斷前件節點a1。
情況3當a6被前件節點a5所預測,繼續在剩余的層數內預測后件節點a7。
情況4當a5同時被前件a2和后件a8所預測,則認為此節點代表的漏洞已被攻擊者利用,需要從該點為中心重新進行推斷前件a4和預測后件a6。此時消息強度重置為ITH。本文和 Sayed[10]方法的區別在于能夠根據前件推斷和后件預測進行下一步的迭代分析,在閾值相同的情況下能夠分析雙向的可達路徑,減少漏報。

圖1 告警推斷和預測
本文第 3節提出的多源關聯分析方法把基于攻擊圖的告警關聯問題轉換成圖節點消息處理問題,根據GraphLab中的GAS(收集-應用-分發)[8,19]編程模型能夠很好地進行并行化處理。本文進而提出了基于攻擊圖的并行告警處理引擎AG-PAP,能夠很好地應對告警處理的不同并行需求,包括批量并行告警映射模塊 AG-PM 和迭代并行告警分析模塊 AG-GAS,將告警映射和告警的迭代分析的并行結合起來,形成完備的基于攻擊圖并行告警處理框架。
當AG-PAP引擎啟動之后,會進行以下3個階段的處理流程,如圖2所示。
1) 并行告警映射(AG-PM):負責將告警映射到攻擊圖節點v,并通過本地內存交換和基于TCP的RPC交換同步給攻擊圖節點v的master所在的機器進行本地的消息處理。
2) 并行告警關聯分析(AG-GAS):首先在啟動時通過分布式圖劃分策略分配各個處理單元需要讀取的子圖,存儲于本地內存中。每個計算單元只會處理映射到本地 master節點的告警,通過 MPI和 Pthread進行并行任務拆分和處理。通過多輪的迭代消息,更新攻擊圖節點的狀態。
3) 結果圖提取:在各個計算單元上,并行提取輸出已激活的圖節點以及相應邊,形成結果圖輸出到各計算單元的本地硬盤或者HDFS上,方便網絡管理員進行層次化的分析。

圖2 AG-PAP引擎并行處理流程框架
告警映射并行化是依據告警相關屬性和全局節點散列表,通過maptovertex(alert)將告警映射到對應的攻擊圖動作節點,然后通過maptomachine(alert,vertex)將非本地處理的告警同步到所在相應的master處理單元。本文和Roschke[11]的映射方法不同在于攻擊圖節點的master只會存在其中一個處理單元上,因而本文每個告警在并行中的復制開銷只會有一次;而后者需要把告警復制到所有包含其映射到的攻擊圖節點的路徑上,可以看出本文所提出的并行映射方法的告警信息復制開銷更小,更有效率。
定義6并行告警映射(AG-PM):
1) 原始告警映射到攻擊圖的動作節點
maptovertex(alert)→vertex=map(alert),
vertex∈V
2) 同步交換處理
maptomachine(alert,vertex)→machine,
machine∈processing machine set
并行告警分析(AG-GAS)流程如下。
1) 根據映射后的本地告警集合以消息形式通知相對應的攻擊圖動作節點。
2) 消息融合階段:會對4種消息(告警激活消息、前向消息、后向消息和前后向消息)進行相互之間的融合。例如,前向(后向)消息之間的融合,方向不變,前向(后向)強度取較大值;前向和后向消息的融合成前后向消息,前向強度和后向強度均取較大值,如存在真實告警消息,忽略其他消息。
3) 初始化階段:每個節點的節點程序接收合并過后的消息并緩存。
4) 收集階段:在前向預測和后向推斷中,跳過此階段。只有當攻擊圖中產生新增節點時,才啟動該階段工作,新增動作節點根據周圍節點狀態決定自身狀態和下一步的預測和推斷。首先從入邊拉取鄰居節點的最大前向強度和從出邊拉取鄰居節點的最大后向強度,構造下一步前后向消息。若只有一個方向上的強度非零,則模擬消息方向與此方向相同;若2個方向上的強度都非零,則模擬消息的方向為前后向(FBW);若2個方向上的強度都為0,則不做任何處理,直接跳過之后的應用階段和分發階段。
5) 應用階段:對接收到的消息緩存進行處理,更新自身狀態。若節點未被前(后)向消息所激活,則會根據消息的前(后)向值更新自身的前后向值,并準備沿著消息方向進行下一次迭代,其中消息的強度衰減 1。若節點被前向與后向消息同時或依次激活,則認為該節點被執行的可能性極大,處理方式與被真實告警激活相同,需要以此節點為中心進行最大強度ITH的迭代消息處理。
6) 分發階段:根據欲發送的消息和自身狀態決定下一步的推斷和預測。若為前向消息,則沿著所有出邊發送。若為后向消息,則沿著所有入邊發送。若為前后向消息,則沿著出邊發送前向消息和沿著入邊發送后向消息。
7) 結果圖提取:即并行存儲已更新的局部攻擊圖,從而提取出現有的攻擊路徑信息。若邊兩端的攻擊圖節點狀態為TRUE、HYP、HHYP之一,則進行存儲;若攻擊圖點狀態為TRUE、HYP、HHYP之一,同樣也進行存儲。
具體算法的偽代碼如下。
算法2消息融合

算法3分發

算法4收集

算法5應用


本文首先搭建一個本地小型網絡來測試預測分析的有效性,使用5臺主機,其中包括一臺DMZ主機host1,內部網絡中host2到host5都是存有不同資料的主機。每個主機上都有 3個漏洞ftp-rhost(CVE-2008-1396)、rsh login(CVE-1999-0180)和local-setiud-bof (CVE-2006-3378),攻擊者能夠通過DMZ主機host1進而攻擊host2到host5,為了簡化攻擊圖,通過配置防火墻,內部網絡中僅host5和 host3之間存在網絡可達關系。實驗環境如圖 3所示,生成的攻擊如圖4所示。
為了檢測多源關聯分析的解決告警誤報和漏報的能力,在snort上,本文只配置了rsh的檢測規則,因而只能檢測到rsh利用的相關告警。生成的結果如圖 5所示,可以看到處理引擎能夠推斷出閾值內的前件與后件,同時能夠通過綜合前后件關聯提升中間的ftp_rhost(1,2)、ftp_rhost(1,4)以及相關前后件狀態的漏報強度,同時進行下一步的預測。

圖3 實驗環境
同時,本文采用Wang[9]和Seyed[10]提出的攻擊圖關聯方法進行了實驗分析,Wang[9]在每個告警映射之后均會進行前后件的查找去尋找能夠關聯的告警,由于沒有關聯閾值的限制,會根據相關前件和相關后件搜索出所有的路徑,但是攻擊者不一定所有路徑都會采用,這就帶來了很大的無謂開銷和誤報。Seyed[10]的方法則會向上查詢閾值內的前件告警,能夠解決一定范圍內的前件漏報,產生的結果圖和攻擊路徑吻合,降低了誤報數量,但是不能解決后件漏報與間接漏報,同時也沒有預測能力。而本文提出的多源關聯分析方法能夠兼顧攻擊圖中的前后件漏報和間接漏報,同時通過閾值設置能夠限制誤報數量(由于本文是基于攻擊圖的分析,所以對未知攻擊不做考慮,僅對已知攻擊漏報進行處理)。表1則是解決漏報能力和誤報數量的比較,可以看出在綜合關聯分析能力上優于 Wang[9]和Seyed[10]提出的攻擊圖關聯方法。

圖4 實驗環境攻擊

圖5 預測分析結果

表1 關聯分析實驗比較
通過增加實驗網絡中的主機數至10臺,擴大攻擊圖規模至 72個節點,然后對其中 host2、host3、host4進行攻擊,產生了10個映射告警。圖 6表明 Wang[9]的方法在更大規模的攻擊圖中會產生更多的誤報,Seyed[10]的方法由于有閾值限制和僅進行前件搜索,在誤報數量上表現更優,本文方法較Wang[9]的方法在誤報率上降低了近 40%,比 Seyed[10]的方法會多出后件預測帶來的誤報。
在并行分析環境的搭建上,本文在IBM System x3650 m4(處理器E5-2620,內存64 GB)上放置4個CentOS虛擬機,每個虛擬機均是雙核配置,8 GB內存,吉比特網卡,且支持GraphLab Powergraph和MPI。本文采取的告警數據為校園網中抓取的告警數據,總共 50 480條。實驗所用的攻擊圖使用MulVAL[20]生成,包含5 013個節點和12 036條邊。
在分布式性能分析上,本文從針對以下幾個方面進行測試。
1) 告警處理時間橫向對比。
2) 不同的并發處理告警數量對于告警處理時間的影響。
3) 不同的圖規模對于告警處理時間的影響。
表2給出本文提出的AG-PAP和 Sebastian[11]提出的方法在運行時間上的比較(本文環境和其實驗環境參數基本一致),映射時間上降低了 80%,關聯分析時間降低了98%。可以看出,本文引擎在映射時間和關聯分析時間上均優于后者,這是由于后者映射需要經過告警到節點、節點到路徑和路徑到處理單元的3層映射和交換而本文僅需要經過告警到節點和節點到處理單元的兩層映射;同時關聯分析需要分析告警所在所有路徑上的其他告警,路徑會有重疊,其余告警也會有重復處理,會帶來大量的重復分析。

表2 實驗比較
圖7給出不同規模的并發處理告警數量對于告警處理時間的影響。測試告警來自于采集告警的復制。可以看到在并發告警數量從5×103到5×104時,所用時間反而降低了201 ms;當并發告警從5×104到 5×106,時間只有小幅的增加;當并發告警從5×106到5×107,時間僅增加了2.7倍。這是因為當告警數量少的時候,網絡交換通信的開銷占了主導,當告警數量增大的時候,單點負載的運算量加大,因而單點計算開銷占了主導,使用時間的增長趨勢與告警數量增長趨勢一致。同時說明本文的并行告警處理系統更適用于大量告警的并發處理,并發數量增大,性能反而有所提升。

圖7 告警處理速度
大規模圖的構建是采用實驗網絡中的攻擊圖作為基礎,隨機插入動作節點和相關的狀態節點構成。根據攻擊圖中的因果關系和經驗知識,限制動作節點只能存在到狀態節點的出邊,狀態節點只能存在到動作節點的出邊。從圖8可以看出,圖規模也會對告警處理速度產生影響,當圖規模每增加一個數量級,處理時間增長為 42%、117%、375%,處理時間漲幅基本來自于關聯分析,映射時間基本保持不變。可以看出,處理時間的增幅遠小于圖規模的增幅,AG-PAP告警處理引擎對圖規模有著較好的適應性。本文提出的基于GraphLab[21]的分布式并行告警處理方法不僅速度上有大幅提升,同時能夠處理更大規模的攻擊圖,而且能夠應對圖的實時更新。

圖8 圖規模對告警分析速度的影響
表 3對比了現有基于攻擊圖的告警處理方法在各方面的優劣性,可以看出本文所提出的并行處理方法在并行性和關聯預測效果上均優于其余 3種方法。

表3 基于攻擊圖的告警處理方法橫向對比
針對現有基于攻擊圖的關聯分析方法在圖關聯完整性和并行性上的缺陷,本文首先提出了基于攻擊圖的綜合告警關聯分析方法,能夠解決級聯前后件以及間接前后件的關聯,增強了告警分析的關聯預測能力和減少關聯預測帶來的誤報告警的數量。其次,提出了基于攻擊圖的并行告警處理框架AG-PAP,將映射過程和告警分析并行化,形成完整的基于攻擊圖的告警處理流程,解決了以往攻擊圖數據難以有效拆分和實時更新,以及基于攻擊圖數據的關聯分析難以有效并行的問題,并通過本地網絡實驗和模擬數據驗證了關聯分析的有效性和并行性能方面的提升。下一步的研究工作包括攻擊圖中的不確定性研究和并行效率的進一步優化。
[1] VALEUR F, VIGNA G, KRUEGEL C,et al. A comprehensive approach to intrusion detection alert correlation[J]. IEEE Transactions on Dependable and Secure Computing, 2004, 1(3): 146-169.
[2] ROSCHKE S, CHENG F, MEINEL C. An alert correlation platform for memory-supported techniques[J]. Concurrency and Computation-practice & Experience, 2012, 24(10): 1123-1136.
[3] 梅海彬, 龔儉, 張明華. 基于警報序列聚類的多步攻擊模式發現研究[J]. 通信學報, 2011, 32(5): 63-69.MEI HB, GONG J, ZHANG MH. Research on discovering multi-step attack patterns based on clustering IDS alert sequences[J]. Journal on Communications, 2011, 32(5): 63-69.
[4] ROSCHKE S, CHENG F, MEINEL C. Using vulnerability information and attack graphs for intrusion detection[A]. Information Assurance and Security (IAS), 2010 Sixth International Conference on IEEE[C]. 2010.68-73.
[5] NOEL S, JAJODIA S. Advanced vulnerability analysis and intrusion detection through predictive attack graphs[A]. Critical Issues in C4I,Armed Forces Communications and Electronics Association (AFCEA)Solutions Series International Journal of Command and Control[C].2009.
[6] JAJODIA S, NOEL S. Topological Vulnerability Analysis[M]. Springer, 2010.139-154.
[7] OU X, BOYER W, MCQUEEN M. A scalable approach to attack graph generation[A]. ACM[C]. 2006. 336-345.
[8] GONZALEZ J E, LOW Y, GU H,et al. PowerGraph: distributed graph-parallel computation on natural graphs[A].OSDI[C]. 2012,12(1): 2.
[9] WANG L, LIU A, JAJODIA S. Using attack graphs for correlating,hypothesizing, and predicting intrusion alerts[J]. Computer Communications, 2006, 29(15): 2917-2933.
[10] AHMADINEJAD S H, JALILI S, ABADI M. A hybrid model for correlating alerts of known and unknown attack scenarios and updating attack graphs[J]. Computer Networks, 2011, 55(9):2221-2240.
[11] ROSCHKE S, CHENG F, MEINEL C. High-quality attack graphbased IDS correlation[J]. Logic Journal of the Igpl, 2013, 21(4I):571-591.
[12] ROSCHKE S, CHENG F, MEINEL C. A new alert correlation algorithm based on attack graph[J]. Computational Intelligence in Security for Information Systems, 2011, 6694: 58-67.
[13] DEAN J, GHEMAWAT S. MapReduce[J]. Communications of the ACM, 2008, 51(1): 107.
[14] LOW Y, BICKSON D, GONZALEZ J,et al. Distributed graphlab: a framework for machine learning and data mining in the cloud[J]. Proceedings of the VLDB Endowment, 2012, 5(8): 716-727.
[15] MALEWICZ G, AUSTERN M H, BIK A J C,et al. Pregel: a system for large-scale graph processing[A].Proceedings of the 2010 ACM SIGMOD International Conference on Management of data[C]. ACM,2010.
[16] LI K, GIBSON C, HO D,et al.Assessment of machine learning algorithms in cloud computing frameworks[Z]. IEEE, 2013.98-103.
[17] GUO Y, BICZAK M, VARBANESCU A L,et al. Towards benchmarking graph-processing platforms[A].The International Conference for High Performance Computing, Networking, Storage and Analysis[C]. 2013.
[18] CHING A, KUNZ C. Giraph: large-scale graph processing infrastructure on Hadoop[J]. Hadoop Summit, 2011, 29(6).
[19] LOW Y, GONZALEZ J, KYROLA A,et al. Graphlab: a new parallel framework for machine learning[A]. UAI[C]. 2010.340-349.
[20] OU X, GOVINDAVAJHALA S, APPEL A W. MulVAL: a logic- based network security analyzer[A]. 14th USENIX Security[C]. 2005. 1-16.
[21] LOW Y. GraphLab: A Distributed Abstraction for Large Scale Machine Learning[D]. University of California, 2013.