殷紅花

摘要:在某高校的網絡安全管理中,引入Spark技術,提出一種屬性相異度聚類算法,結合二者,完成多源安全日志分析系統的設計架構和開發應用,并通過測試分析,Spark技術完全可以滿足某高校的安全管理工作需要,適合應用于多源安全設備的大數據量級的日志ETL和分析。
關鍵詞:Spark;聚類算法;大數據
中圖分類號:TP393? ? ? 文獻標識碼:A
文章編號:1009-3044(2019)20-0291-03
開放科學(資源服務)標識碼(OSID):
Abstract: In a college network security management, the introduction of the Spark technology, an attribute phase dissimilarity clustering algorithm is put forward, combining the two, to complete the multi-source security log analysis system design, architecture and application development, and through the test and analysis, the Spark technology can meet the needs of the safety management of a college, is suitable for the large data applied in multi-source security equipment level of ETL and log analysis.
Key words: Spark; clustering algorithm; big data
1 背景
隨著互聯網的普及,人們的一切活動都依托著互聯網技術。互聯網開放、交互及分散的特性,使得人們可以快速地共享交流信息,但同時也加劇了網絡安全威脅。每年由于安全事件造成的各種損失呈指數級增長,尤其是“棱鏡門”事件的發生,國家越來越重視信息化安全問題,從2014年開始,中央網絡安全和信息化領導小組宣布成立,再到2017年,我國網絡安全法頒布實施,在國家層面上,已將網絡信息安全上升至一定的高度,這些舉措也使得社會各界更加重視網絡安全。
高校作為國家網絡的重要陣地,提升網絡安全也是責無旁貸和刻不容緩。現實的高校網絡環境中部署了防火墻、IPS、WAF等安全設備,學校內外網絡均由這些設備構成一層層防護圈[7]。這些網絡安全設備可以記錄運行狀態數據和異常事件數據,這些數據均使用日志的形式加以保存,通過日志可以分析出諸如攻擊源、攻擊目的、網絡狀況、安全解決方案等等信息,以供網絡管理人員參考。但對于網絡安全員而言,分析這些日志會遇到數據量大、分析煩瑣、準確度難把控及無法整體掌控網絡實時狀況等問題。針對這些問題,許多研究人員也提出了各種解決方案[1][2][3],但這些方案大多缺乏統一處理多種安全設備日志,聚合效果不足,利用大數據技術多采用Hadoop的框架,不同業務需求需要不同模塊配合解決,造成資源浪費。本文在某高校的校園網的改造中,采用Spark技術,結合日志聚類算法,構建一套多源安全日志分析系統,具備對多種安全設備日志進行分析,并通過功能性能測試,說明Spark技術完全滿足于高校的網絡安全管理的實際需求,可以有效地解決多源安全設備及大數據日志帶來的諸多問題。
2 Spark技術概述
Apache頂級開源項目中的Spark屬于一種通用的計算引擎,其主要為了快速地對大數據進行處理。Spark由加州大學伯克利分校AMP設計開發和貢獻的類Hadoop MapReduce的并行框架,除了具備Hadoop技術中的MapReduce的優點,相較于Hadoop MapReduce,其Job的中間輸出值直接被保存在內存里,因此不需要頻繁的Read/Write HDFS,十分適宜用于不斷迭代的MapReduce算法。從宣傳上看,Spark具有的內存計算比MapReduce快了近100倍,硬盤計算快了10倍以上的速度,許多實際環境測試雖然達不到以上倍數,但也是比MapReduce快很多的,而且Spark支持R、Java、Scala、Python等高級編程語言編寫程序,支持流計算,完全可以應用于要求大量的、低延遲的數據分析應用場景。如圖1所示,Spark技術主要由Spark(Spark Core)、Spark SQL、Spark Streaming、MLBase、MLlib、GraphX等構成。
Spark Core是整個Spark技術棧的核心層,其主要是通過RDD(彈性分布式數據集),包含豐富的算子(例如Map函數和Reduce函數等),可將數據在內存中計算,實現了RPC、壓縮、序列化及任務調度等。
Spark技術棧中專門用于處理結構化數據的一個模塊,支持JDBC/ODBC訪問接口和傳統的SQL查詢功能[5],使得Spark SQL可以實現智能計算和分布式數據倉庫。Spark SQL提供數據結構抽象框架,通過API結合Spark的外源接口,可以進行大數據的ETL,并且,通過UDF函數,Spark SQL可以最大化RDD的重復使用,提高運行速度和效率。
Spark技術棧中實現實時的流數據計算功能框架,支持Flume、Kafka等多源輸入,內部采用RDD序列進行存儲。
3 安全日志的聚類算法
惡意攻擊一般會在各類安全設備中留下日志記錄,日志將不同事件按照預先定義的級別進行分類存儲,多個安全設備對于相同的攻擊事件的定義也不同,包括事件的描述及表示,如此一來直接導致重復的報警在不同設備的日志中按不同的定義而存儲著,這些日志中的事件卻是指向相同的攻擊事件,譬如嗅探,在主機上表現為檢到ICMP Ping掃描,在網絡中為多個ICMP Ping數據包,在防火墻中卻是很多異常Ping報文。為了提高關聯分析攻擊事件日志的精準性,前期需要對這些不同定義的但元含義一致的報警日志進行聚合操作。因為同一事件在安全設備中的日志屬性具有相似點,所以本文系統通過選取計算日志屬性的相似度,設置相似度的閾值,當小于這一閾值,即為一個HyperAlertLog(超級警報日志),這樣的設置可以提升分析效率,同時精簡了日志的數量。經過詳細的分析,本文選擇防火墻和IPS設備,將二者的源IP地址、目的IP地址、源端口、目的端口及日志記錄時間等五元素進行屬性相異度計算,此外IPS還選擇事件類型作為第六元素進行計算。屬性相異度計算見公式1。
公式1中的n是對象x、y的屬性總數,m是屬性標號,
1)源IP/目的IP相異度計算見公式2。
公式2中z是IP最高位一致的位數,主要選擇相同網段的IP的前綴劃分的相同性,計算相似度距離比較短。
2)源/目的端口相異度計算見公式3。
公式3只需要比較兩條日志的端口號是否一致,不同則相異度取1,反之取0。
3)時間相異度計算方式
日志聚類時,所有的相異度計算必須首先執行時間計算,當兩條日志的時間間隔大于閾值τ時,時間相異度取1,反之取0。
4)事件類型相異度計算方式
將IPS日志同防火墻日志的報警類型進行異或非運算,值為1時相異,值為0時相同。
根據公式可知,相異度的計算結果直接受到日志屬性權值的影響,不同的攻擊對應的權值亦非相同,譬如端口掃描攻擊中的源或目的IP均相同,而其源或目的端口屬性卻可能不同,又如分布式拒絕攻擊(DDOS)是針對同一個目標,其目的IP相同。故若想得到比較好的日志聚合結果,需要結合不斷地實驗測試,對不同的攻擊模式設置合適的屬性權重值。常見的網絡攻擊屬性權值的默認值如表1所示。
4 多源安全日志分析系統體系結構
結合Spark技術和日志的屬性相異度聚類算法,多源安全日志分析系統設計如圖2所示。
系統底層原始日志數據采用HDFS存儲,日志經過日志處理層分析處理之后存儲在MariaDB和HBase中,以供安全信息展示層調用和用戶實時在線查詢。MariaDB和HBase之間通過Sqoop相互導入導出數據。本文重點論述日志處理層中的Spark作業,包括Spark SQL作業、Spark Streaming作業和Spark Core作業,其主要對日志數據進行統計計算、聚合、關聯分析,最終將有效日志信息存儲入日志存儲層。
原始多源安全設備的日志中包含大量無用和冗余數據,所以需要對數據首先進行ETL,即在日志處理層中,使用Spark技術棧和聚類算法,將日志數據進行實時的過濾、規范和聚合,并將ETL之后的數據進行關聯分析,得到可用安全信息,存入底層數據庫中。
日志ETL主要包括:(1)將HDFS或HBase中的數據讀入日志處理層;(2)將原始數據轉換成Spark SQL編程抽象,生成Spark DataFrame,進行字段的增加、修改、轉變、重組等。結合Spark SQL的UDF函數完成字段的拆分、平鋪,將最終結果提交到Spark集群中運行,即得到ETL之后的日志數據。
ETL之后,需要結合Spark SQL和Spark Streaming等技術實現對于異常流量和攻擊事件的監控和分析。流量主要來源于防火墻,所以可以采用單源日志特征匹配分析方法,而對于攻擊事件,則需要采用關聯分析方法,具體算法本文不再論述,其主要是制定一套規則庫,由特定關鍵字構成,根據行為模式來進行安全日志的關聯分析。
5 系統測試
本文利用學校的硬件環境,搭建了一個Spark分布式集群環境,測試硬件和軟件環境如表2所示。底層日志采集采用機架式服務器,Spark集群部署在計算資源豐富的刀片式服務器集群上,用于日志ETL和分析。
通過模擬攻擊實測,當日志數量級別小于5萬時,單機處理能力比較強,超過5萬數量級之后,Spark集群的處理能力凸顯,處理效率隨著節點數的增多而增加。優于本文只是搭建了一個實驗環境,日志數量有限,但也可以從一定程度上反應Spark集群處理能力和單機的性能差異,當日志數量超過一定規模之后,采用Spark集群更加高效。此外,實驗也驗證了,本文采用的ETL和相異度聚合算法完全適合某高校的實際環境,滿足多源安全設備日志分析的數據要求。
6 總結
本文使用Spark技術棧,通過聚類算法,在某高校實現了多源設備的日志分析系統。利用Spark SQL,實現日志ETL,對于多源安全設備采集到的日志數據進行過濾、規范、聚合,完成對于日志數據去冗余,提升了日志分析模塊的效率,在分析模塊中,使用Spark SQL和Spark Streaming完成日志分析,并根據業務需求,將結果寫入MariaDB和HBase中,實現了用戶對于結果的隨機實時查詢,并且在某高校的實際網絡安全管理中取得了良好的運行效果。當然,本文中測試和實際運行環境,數據量尚沒有達到理論預期,并且多源設備也僅有兩個,無法得到全面完整的測試結果。將大數據技術應用于高校的安全管理中,是必然的結果,希望通過今后在工作中不斷地實踐,完善安全分析系統的相關算法,豐富多源設備的種類,使得Spark技術最終可以應用于高校的全面網絡安全管理中,提高一線安全管理員發現網絡安全問題和解決問題的效率。
參考文獻:
[1] 趙靜, 劉宇. 大數據技術在計算機網絡入侵檢測中的研究[J]. 網絡新媒體技術, 2018, 7(4): 45-49.
[2] 陳闖. 基于Hadoop的ETL部件在分布式數據挖掘引擎中的應用[D]. 南京: 南京郵電大學,2016.
[3] 王靜. 基于大數據的發電集團統一運行監測與安全預警平臺研究與應用[A]. 中國電機工程學會電力信息化專業委員會. 2017電力行業信息化年會論文集[C]. 中國電機工程學會電力信息化專業委員會: 人民郵電出版社, 電信科學編輯部, 2017: 1.
[4] 劉東江, 黎建輝. 基于Spark的并行圖聚類算法研究[J/OL]. 系統仿真學報: 1-13 [2019-06-08]. http://kns.cnki.net/kcms/detail/11.3092.V.20190416.1307.021.html.
[5] Sara Mustafa, Iman Elghandour, Mohamed A. Ismail. A Machine Learning Approach for Predicting Execution Time of Spark Jobs[J]. Alexandria Engineering Journal, 2018.
【通聯編輯:謝媛媛】