許 杰,冷 冰,李明桂,丁文超
(中國電子科技集團(tuán)公司第三十研究所,四川 成都 610041)
?
大數(shù)據(jù)處理技術(shù)在安全審計系統(tǒng)中的應(yīng)用
許杰,冷冰,李明桂,丁文超
(中國電子科技集團(tuán)公司第三十研究所,四川 成都 610041)
隨著大數(shù)據(jù)時代的到來,數(shù)據(jù)出現(xiàn)了爆炸式的增長。這些海量數(shù)據(jù)的出現(xiàn),影響了很多現(xiàn)有數(shù)據(jù)存儲、處理和分析系統(tǒng),其中就包括在網(wǎng)絡(luò)安全中發(fā)揮著重要作用的審計系統(tǒng)。目前的審計系統(tǒng)中使用關(guān)系數(shù)據(jù)庫對數(shù)據(jù)進(jìn)行存儲和處理,由于關(guān)系數(shù)據(jù)庫的局限性,使得審計系統(tǒng)無法存儲和處理大數(shù)據(jù)。針對該問題,提出了一種兼容現(xiàn)有系統(tǒng)的大數(shù)據(jù)存儲方法,能夠有效的解決大數(shù)據(jù)存儲問題。同時,為了解決大數(shù)據(jù)(HBase)檢索效率低下的問題,提出了一種使用Solr建立二級索引的方法,大大的提高了檢索效率,滿足了審計系統(tǒng)存儲和處理大數(shù)據(jù)的需求。
大數(shù)據(jù);審計系統(tǒng);HBase;Solr
計算機(jī)網(wǎng)絡(luò)安全審計(簡稱為安全審計)是指按照一定的安全策略,利用記錄、系統(tǒng)活動和用戶活動等信息,檢查、審查和檢驗操作事件的環(huán)境和活動,從而發(fā)現(xiàn)系統(tǒng)漏洞、入侵行為或改善系統(tǒng)性能的過程。審計系統(tǒng)從審計內(nèi)容上來看主要包括三方面:系統(tǒng)審計、應(yīng)用審計和用戶審計。
系統(tǒng)審計:主要針對系統(tǒng)的登錄情況、用戶ID、登錄嘗試日期時間、退出日期時間、所使用設(shè)備、運(yùn)行程序等時間進(jìn)行審查;
應(yīng)用審計:主要針對應(yīng)用程序的活動信息,如運(yùn)行成功或失敗,打開或關(guān)閉數(shù)據(jù)庫或數(shù)據(jù)文件,讀取、編輯、刪除記錄等特定操作,以及打印等行為;
用戶審計:主要審計用戶的操作活動,如用戶直接啟動命令,用戶所有的認(rèn)證操作,用戶所訪問的文件和資源等信息。
隨著網(wǎng)絡(luò)的繁榮發(fā)展及日益普及,各種具有網(wǎng)絡(luò)功能的設(shè)備越來越多,審計系統(tǒng)開始從內(nèi)網(wǎng)向外網(wǎng)擴(kuò)展,從有線網(wǎng)絡(luò)向無線網(wǎng)絡(luò)覆蓋。由于這種數(shù)據(jù)從單一到多渠道的變化使得數(shù)據(jù)量出現(xiàn)了指數(shù)級的增長,這就對現(xiàn)有的審計系統(tǒng)提出了新的應(yīng)用需求,并促使審計系統(tǒng)向具備大數(shù)據(jù)存儲、處理和分析能力方向發(fā)展。
大數(shù)據(jù)處理的數(shù)據(jù)包括結(jié)構(gòu)化、半結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)。半結(jié)構(gòu)化、非結(jié)構(gòu)化數(shù)據(jù)是相對于結(jié)構(gòu)化數(shù)據(jù)而言,不方便用數(shù)據(jù)庫二維邏輯表來表現(xiàn)的數(shù)據(jù),如:辦公文檔、文本、圖片、XML、圖像和音頻/視頻等。現(xiàn)有的審計系統(tǒng)中存儲的數(shù)據(jù)主要是從各類終端設(shè)備上采集的結(jié)構(gòu)化數(shù)據(jù),目前并不涉及半結(jié)構(gòu)化、非結(jié)構(gòu)化數(shù)據(jù)。隨著數(shù)據(jù)量的海量增長,審計系統(tǒng)中的關(guān)系數(shù)據(jù)庫已不能有效的存儲、檢索和處理這些結(jié)構(gòu)化大數(shù)據(jù)。這就需要使用大數(shù)據(jù)技術(shù)來解決審計系統(tǒng)對大數(shù)據(jù)存儲能力不足、檢索效率低下等問題。
本文針對審計系統(tǒng)中大數(shù)據(jù)存儲能力問題提出了一種有效的存儲方法,同時為了提高大數(shù)據(jù)的檢索效率,提出了一種建立二級索引的方法。
大數(shù)據(jù)是指在所能容忍的處理時間范圍內(nèi),數(shù)據(jù)規(guī)模超過常規(guī)數(shù)據(jù)庫工具獲取、存儲、管理和分析能力的數(shù)據(jù)集。大數(shù)據(jù)具有5V1C的特征:數(shù)據(jù)量巨大(Volume)、數(shù)據(jù)類型繁多(Variety)、生成速度快(Velocity)、數(shù)據(jù)易變化(Variability)、數(shù)據(jù)真實性(Veracity)、數(shù)據(jù)復(fù)雜性(Complexity)[1-2]。
目前,圍繞著大數(shù)據(jù)的獲取、存儲、管理和分析等已經(jīng)建立了以Hadoop為核心的大數(shù)據(jù)生態(tài)系統(tǒng),包括Ambari、Avro、Cassandra、Chukwa、HBase、Hive、Mahout、Pig、Spark、Tez、ZooKeeper等[3-5]。這些開源系統(tǒng)被國內(nèi)外各大廠商和公司使用,或直接使用,或根據(jù)業(yè)務(wù)需要進(jìn)行修改后使用。由于大數(shù)據(jù)技術(shù)較多,因此僅對本文中使用的相關(guān)大數(shù)據(jù)技術(shù)進(jìn)行介紹:
(1)Hadoop是一個跨計算機(jī)集群可以使用簡單編程模式進(jìn)行大規(guī)模數(shù)據(jù)存儲和分析處理的分布式軟件框架,是專為離線和大規(guī)模數(shù)據(jù)分析而設(shè)計的。Hadoop=HDFS+MapReduce,HDFS是文件系統(tǒng),提供海量數(shù)據(jù)存儲能力;MapReduce提供數(shù)據(jù)處理和計算能力。
(2)HBase[6]是一個高可靠性、搞性能、面向列、可伸縮的分布式存儲系統(tǒng),利用HBase技術(shù)可以在廉價的PC Server上搭建起大規(guī)模結(jié)構(gòu)化存儲集群。它構(gòu)建在Hadoop基礎(chǔ)設(shè)施之上,依托于Hadoop的迅猛發(fā)展,HBase在大數(shù)據(jù)領(lǐng)域應(yīng)用越來越廣泛,成為目前NoSQL數(shù)據(jù)庫中表現(xiàn)最耀眼,呼聲最高的產(chǎn)品之一。
(3)ZooKeeper是一個分布式的,開放源碼的分布式應(yīng)用程序協(xié)調(diào)器,是一個為分布式應(yīng)用提供一致性服務(wù)的軟件,提供的功能包括:配置維護(hù)、名字服務(wù)、分布是同步、組服務(wù)等,是Hadoop和HBase的重要組件。
現(xiàn)有的審計系統(tǒng)基本上都采用關(guān)系數(shù)據(jù)庫(MySQL,Oracle,SQL Server等)進(jìn)行數(shù)據(jù)存儲,而且系統(tǒng)的數(shù)據(jù)獲取,數(shù)據(jù)存儲和數(shù)據(jù)分析整體架構(gòu)較成熟,如果直接將關(guān)系數(shù)據(jù)庫存儲部分替換成HBase存儲,不但會對相關(guān)的模塊產(chǎn)生影響,而且也會造成系統(tǒng)整體運(yùn)行不穩(wěn)定的情況,風(fēng)險較大。因此,我們采用現(xiàn)有存儲系統(tǒng)與大數(shù)據(jù)存儲并存的方法,改進(jìn)現(xiàn)有審計系統(tǒng)無法存儲海量數(shù)據(jù)的問題。整體架構(gòu)如圖1所示。

圖1 審計大數(shù)據(jù)系統(tǒng)整體架構(gòu)1
從圖1中可以看出,數(shù)據(jù)存儲部分是關(guān)系數(shù)據(jù)庫和HBase共存的模式,在該模式下可以有兩種策略:
(1)系統(tǒng)從終端接收上報數(shù)據(jù)后,可以將數(shù)據(jù)同時存入關(guān)系數(shù)據(jù)庫MySQL和HBase,等整體系統(tǒng)穩(wěn)定后在慢慢過渡到數(shù)據(jù)存儲全部由HBase接管,最終放棄關(guān)系數(shù)據(jù)庫。
(2)將數(shù)據(jù)根據(jù)時間段進(jìn)行分別存儲。實時接收的數(shù)據(jù)包括近期(三個月或半年)的數(shù)據(jù)存入關(guān)系數(shù)據(jù)庫, 歷史數(shù)據(jù)存入HBase,系統(tǒng)根據(jù)需要讀取不同存儲系統(tǒng)數(shù)據(jù)進(jìn)行分析和處理。
通過使用大數(shù)據(jù)存儲技術(shù)可以有效的解決審計系統(tǒng)海量數(shù)據(jù)存儲的問題。這是由于HBase是一個面向列存儲的分布式存儲系統(tǒng),它的優(yōu)點(diǎn)在于可以實現(xiàn)高性能的并發(fā)讀寫操作,同時HBase還會對數(shù)據(jù)進(jìn)行透明的切分,這樣就使得存儲本身具有了水平伸縮性。但HBase也有缺點(diǎn),它不支持復(fù)雜條件查詢,這與它的數(shù)據(jù)組織方式有著密切的關(guān)系,在邏輯上,HBase的表數(shù)據(jù)按RowKey進(jìn)行字典排序,RowKey實際上數(shù)據(jù)表的一級索引(Primary Index),由于HBase本身沒有二級索引(Secondary Index)機(jī)制[4],基于索引檢索數(shù)據(jù)只能單純依靠RowKey,為了解決該問題,一種常用的方法是將可能作為查詢條件的字段拼接到RowKey中,但無論如何設(shè)計,單一RowKey固有的局限性決定了它不可能有效的支持多條件查詢。因此,我們提出使用一種高效的索引工具Solr[7]來解決HBase二級索引的問題。Solr是一個高性能全文搜索引擎,它提供豐富的查詢語言,同時實現(xiàn)了可配置、可擴(kuò)展并對查詢性能進(jìn)行了優(yōu)化,可實現(xiàn)高效的檢索。使用Solr后的整體架構(gòu)如圖2所示。
使用Solr提供的API接口可以簡單方便的為HBase建立二級索引,提高檢索效率并支持多條件查詢。但由于Solr并不是專為優(yōu)化HBase而開發(fā)的系統(tǒng),對于HBase的增量更新,Solr是無法感知的,這就會造成數(shù)據(jù)和索引之間出現(xiàn)不一致的現(xiàn)象。
HBase在0.92版本后引入了一種協(xié)處理器(coprocesser)機(jī)制[8],該協(xié)處理器可以實現(xiàn)建立二級索引、復(fù)雜過濾器以及訪問控制等。coprocesser機(jī)制建立了一個框架,它為用戶提供類庫和運(yùn)行時環(huán)境,使得用戶的代碼能夠在HBase region server和master上處理。coprocesser分兩種類型:系統(tǒng)協(xié)處理器可以全局導(dǎo)入region server上的所有數(shù)據(jù)表;表協(xié)處理器是用戶可以指定一張表使用協(xié)處理器。協(xié)處理器框架為了更好支持其行為的靈活性,提供了兩個不同方面的插件,一個是觀察者(observer),類似于關(guān)系數(shù)據(jù)庫的觸發(fā)器;另一個是終端(endpoint),動態(tài)的終端類似存儲過程。

圖2 審計大數(shù)據(jù)系統(tǒng)整體架構(gòu)2
(1)觀察者(observer)允許用戶通過插入代碼來重載協(xié)處理器框架的upcall方法,具體事件觸發(fā)的callback方法有HBase的核心代碼來執(zhí)行。協(xié)處理器框架處理所有的callback調(diào)用細(xì)節(jié),協(xié)處理器本身只需要插入添加或改變的功能。其工作流程如圖3如所示。

圖3 Region Observer工作流程
(2)終端(EndPiont)是動態(tài)RPC插件的接口,它的實現(xiàn)代碼被安裝在服務(wù)器端,從而能夠通過HBase RPC喚醒。客戶端類庫提供了方便的方法來調(diào)用這些動態(tài)接口,它們可以在任意時候調(diào)用一個終端,其實現(xiàn)代碼會被目標(biāo)region遠(yuǎn)程執(zhí)行,結(jié)果會返回給終端。其整體流程如圖4所示。

圖4 終端(EndPoint)工作流程
本文中需要解決的問題是當(dāng)HBase中的表出現(xiàn)插入,添加,修改和刪除數(shù)據(jù)的情況下,更新相應(yīng)的Solr二級索引,從而達(dá)到增量更新的目的。因此,結(jié)合上述的HBase協(xié)處理器的功能,采用觀察者的方法,將編寫好的更新Solr二級索引代碼加載到相應(yīng)的HBase中的數(shù)據(jù)表上,當(dāng)該表出現(xiàn)數(shù)據(jù)變化時,通過coprocesser機(jī)制將該變化更新到相應(yīng)的Solr索引中。
4.1環(huán)境搭建
為驗證本文方法的改善效果,采用一臺服務(wù)器,8臺虛擬機(jī)搭建大數(shù)據(jù)存儲及二級索引試驗環(huán)境,具體配置如表1所示。

表1 大數(shù)據(jù)試驗環(huán)境配置
在安裝和配置大數(shù)據(jù)環(huán)境的過程中,首先,有以下幾點(diǎn)需要注意:
(1)關(guān)閉各機(jī)器的防火墻。
(2)時間同步。
(3)配置ssh無密鑰訪問。
其次,需要配置Hadoop的slaves、core-site.xml、hdfs-site.xml、mapre-site.xml和yarn-site.xml四個配置文件,配置完成后將Hadoop發(fā)布到各節(jié)點(diǎn)。其中,master為namenode,slave1~slave8為datanode。配置完成后的Hadoop的節(jié)點(diǎn)集群和datanode信息如圖5和圖6所示。

圖5 Hadoop節(jié)點(diǎn)集群

圖6 數(shù)據(jù)節(jié)點(diǎn)(datanode) 信息
HBase集群的部署需要修改hbase-env.sh、regionservers和hbase-site.xml三個配置文件,配置完后發(fā)布至各節(jié)點(diǎn),同時添加HBase環(huán)境變量。配置及發(fā)布完成后,通過地址http://master:16010/master-status可以在瀏覽器中查看master及各region server的情況。如圖7所示。

圖7 HBase集群
ZooKeeper對于HBase和Solr來說是必不可少的組件,它提供了分布式系統(tǒng)的高效協(xié)調(diào)服務(wù)。HBase有內(nèi)置的ZooKeeper,但不太穩(wěn)定。因此在驗證中采用獨(dú)立安裝模式進(jìn)行配置。ZooKeeper的配置相對較簡單,首先,在zoo.cfg文件中添加各機(jī)器節(jié)點(diǎn)信息,發(fā)布各機(jī)器節(jié)點(diǎn);然后,根據(jù)zoo.cfg中的設(shè)置修改各機(jī)器節(jié)點(diǎn)上myid文件中的id號;修改完畢后,在各個機(jī)器節(jié)點(diǎn)啟動ZooKeeper即可。
Solr索引服務(wù)需要結(jié)合tomcat進(jìn)行安裝和配置。首先,安裝tomcat;然后,修改solrcongif.xml配置文件。修改完后發(fā)布各節(jié)點(diǎn),通過啟動tomcat即可啟動Solr服務(wù),通過地址http://slave1:8080/solr/在瀏覽器中可查看Solr的相關(guān)配置信息及查詢結(jié)果。如圖8所示。

圖8 Solr Web界面
在界面上可以通過選擇相應(yīng)的Core來查看索引,也可以通過Solr提供的API接口來查詢。
4.2效果驗證
驗證使用現(xiàn)有審計系統(tǒng)中的關(guān)系數(shù)據(jù)庫MySQL和大數(shù)據(jù)存儲系統(tǒng)進(jìn)行對比。效果從兩方面進(jìn)行驗證:存儲能力和數(shù)據(jù)檢索能力。
4.2.1存儲能力
系統(tǒng)將收集到的數(shù)據(jù)同時存入MySQL和HBase,收集數(shù)據(jù)包括字段有:ID、用戶ID、登錄時間、退出時間、登錄類型、登錄機(jī)器、行為類型、行為描述等。數(shù)據(jù)寫入時間為48小時。
從表2中可以看出,MySQL的存儲量為1億條數(shù)據(jù),而HBase是2億條。實際上,在試驗中隨著存入數(shù)據(jù)量不斷增大時,MySQL寫入性能開始劣化,越來越慢。而HBase的寫入性能沒有任何影響,最終,在規(guī)定時間內(nèi)寫入了2億條數(shù)據(jù),是MySQL的兩倍。

表2 數(shù)據(jù)存儲量
從理論上來說,HBase的存儲能力是無限大的,它的存儲能力與集群的存儲空間相關(guān)。當(dāng)集群的存儲空間不足時,可以通過簡單的添加機(jī)器即可,而且是廉價的PC機(jī)。但如果MySQL出現(xiàn)存儲能力不足時,就需要提高機(jī)器的整體存儲能力和性能,無法通過簡單的添加機(jī)器來實現(xiàn),而且還存在數(shù)據(jù)遷移的問題,成本較高,難度較大。
4.2.2數(shù)據(jù)檢索能力
HBase由于在檢索時,僅依靠RowKey實現(xiàn),而RowKey不支持二級索引,檢索效率非常不理想。通過Solr建立二級索引后,檢索效率得到了極大的提升。以1千萬條數(shù)據(jù)建立的索引為例,提升后的效率與MySQL的對比結(jié)果如表3所示。

表3 檢索效率
從表3可以看出HBase改善后的檢索能力是MySQL的17~35倍左右。該檢索效率是在單個檢索條件下的測試結(jié)果,如果是多條件檢索的情況下,MySQL會出現(xiàn)無法響應(yīng)的情況。
從上述驗證結(jié)果可以看出,本文提出的方法能夠有效的解決現(xiàn)有審計系統(tǒng)處理大數(shù)據(jù)存儲和檢索問題。
隨著大數(shù)據(jù)時代的到來,現(xiàn)有審計系統(tǒng)在存儲和檢索能力上都出現(xiàn)了不能滿足應(yīng)用需求的問題。針對這些問題,從大數(shù)據(jù)的角度出發(fā),利用大數(shù)據(jù)技術(shù),并結(jié)合現(xiàn)有審計系統(tǒng)的架構(gòu),提出了使用大數(shù)據(jù)系統(tǒng)對海量數(shù)據(jù)進(jìn)行存儲和處理的方法,有效的解決的審計大數(shù)據(jù)存儲問題。同時,針對HBase檢索效率低下的問題,提出了使用Solr建立二級索引的方法,使得檢索效率得到了大大的提升。本文提出的方法在兼容現(xiàn)有系統(tǒng)的同時,有效的解決了審計系統(tǒng)在大數(shù)據(jù)存儲和檢索上的問題。
[1]Wikipedia. Big Data [EB/OL]. https://en.wikipedia.org/wiki/Big_data. 2016.01.31.
[2]孟小峰,慈祥.大數(shù)據(jù)管理:概念、技術(shù)與挑戰(zhàn) [J].計算機(jī)研究與發(fā)展,2013,50(01):146-169.
MENG Xiao-feng and CI Xiang. Big Data Management: Concepts, Techniques and Challenges [J]. Journal of Computer Research and Development, 2013, 50(01): 146-169.
[3]Apache Hadoop. Home Page [EB/OL]. https:// hadoop.apache.org/. 2016.01.25.
[4]張鋒軍.大數(shù)據(jù)技術(shù)研究綜述 [J]. 通信技術(shù),2014,47(11): 1240-1248. ZHANG Feng-jun.Overview on Big Data Technology[J]. Communications Technology,2014,47(11):1240-1248.
[5]李明桂,肖毅,陳劍鋒等. 基于大數(shù)據(jù)的安全事件挖掘框架[J].通信技術(shù),2015,48(03): 346-350.
LI Ming-gui, XIAO Yi, CHEN Jian feng,et al. Big Data-based Framework for Security Event Mining[J].Communications Technology, 2015, 48(03): 346-350.
[6]HBase RowKey Design. HBase Reference Guide [EB/OL]. http://abloz.com/hbase/book.html # rowkey. design. 2013.04.07.
[7]Solr. Solr Home Page [EB/OL]. http://lucene. apache.org/solr/. 2016.01.01.
[8]HBase Coprocesser Introduction. Apache HBase Blog [EB/OL]. https://blogs.apache.org/hbase/ entry/coprocessor_introduction. 2015.12.17.

許杰(1978—),男,博士,工程師,主要研究方向為信息安全與大數(shù)據(jù);
冷冰(1976—),男,碩士,高級工程師,主要研究方向為通信網(wǎng)絡(luò)與信息安全;
李明桂(1989—),男,碩士,主要研究方向為信息安全與大數(shù)據(jù);
丁文超(1991—),男,碩士研究生,主要研究方向為信息安全與大數(shù)據(jù)。
Application of Big Data Processing Technology in Audit System
XU Jie, LENG Bing, LI Ming-gui, DING Wen-chao
(No.30 Institute of CETC, Chengdu Sichuan 610041, China)
With the advent of big data era, there is an explosive growth in data volume. The emergence of massive data directly affects storage, processing and analysis systems of the existing data, including audit system,which plays an important role in network security. The current audit system implements data storage and processing with relational databases. Due to the limitations of relational databases, the audit system is unable to store and process big data. To solve this problem, a big data storage method compatible with the existing system is proposed, thus to effectively solve the problem of big data storage. Meanwhile, in order to solve the low efficiency of HBase retrieval, the method using Solr to establish secondary index is presented,which could greatly raise the retrieval efficiency and satisfy the needs of audit system in storing and processing big data.
big data; audit system; HBase; Solr
10.3969/j.issn.1002-0802.2016.03.018
2015-10-15;
2016-01-26Received date:2015-10-15;Revised date:2016-01-26
TP309
A
1002-0802(2016)03-0346-06