龔劍敏 顏濤 周亮
摘要:隨著計算機技術(shù)和通信技術(shù)的飛速發(fā)展,網(wǎng)絡(luò)安全形勢也越來越嚴峻,如何在海量日志中發(fā)現(xiàn)安全攻擊是個值得研究的問題,傳統(tǒng)的日志分析方法效率低,難以發(fā)現(xiàn)一些高級的網(wǎng)絡(luò)安全威脅。針對該問題,提出了基于分布式存儲和Spark框架的網(wǎng)絡(luò)日志分析系統(tǒng)架構(gòu),不僅有效利用了云環(huán)境中的計算存儲資源,同時還大大提高了計算效率。
關(guān)鍵詞:分布式計算;網(wǎng)絡(luò)攻擊;日志分析;拒絕服務(wù)攻擊
中圖分類號:TP393? ? ? 文獻標識碼:A
文章編號:1009-3044(2021)04-0044-02
Abstract:With the rapid development of computer technology and communication technology, the network security situation is becoming more and more serious. How to find security attacks in massive logs is a problem worth studying. Traditional log analysis methods are inefficient and difficult to find some advanced network security threats. To solve this problem, a network log analysis system based on distributed storage and spark framework is proposed, which not only effectively utilizes the computing storage resources in cloud environment, but also greatly improves the computing efficiency.
Key words: distributed computing; network attack; log analysis; denial of service attack
隨著計算機技術(shù)和通信技術(shù)的飛速發(fā)展,網(wǎng)絡(luò)數(shù)據(jù)呈指數(shù)級上升,服務(wù)器端接收到的用戶訪問日志文件的數(shù)據(jù)量越來越多,網(wǎng)絡(luò)安全威脅形勢也越來越嚴峻,攻擊手段越來越隱蔽,如何在海量日志中發(fā)現(xiàn)安全攻擊是個值得研究的問題。本文提出了一種基于分布式存儲和Spark框架的網(wǎng)絡(luò)日志分析系統(tǒng)架構(gòu),不僅有效利用了云環(huán)境中的計算存儲資源,同時還大大提高了計算效率。
1相關(guān)技術(shù)概述
本文設(shè)計的檢測系統(tǒng)是針對實時數(shù)據(jù)進行計算和分析,目前對于大量實時數(shù)據(jù)進行流式計算的最實用的組件是 Spark Streaming,本系統(tǒng)采用 Kafka 用于收集服務(wù)器的訪問日志,接下來介紹 Spark和Kafka。
1.1 Spark框架
Spark是由加州伯克利大學提出的一種分布式數(shù)據(jù)處理框架,可用于構(gòu)建低延時的大型數(shù)據(jù)挖掘應(yīng)用程序。Hadoop中 MapReduce 會產(chǎn)生巨大的 I/O 開銷,Spark采用內(nèi)存計算克服了這一弱點,提高了性能[1]。SparkStreaming 是一個 Spark 針對實時數(shù)據(jù)進行計算和分析設(shè)計的模型。具有高吞吐率和高容錯率等特點。SparkStreaming 可以處理多種不同類型的數(shù)據(jù)源, 比如 Kafka,flume 等。通過 SparkStreaming 計算得到的結(jié)果有兩種操作:一種是轉(zhuǎn)化操作,繼續(xù)進行新的計算;另一種是輸出操作,把數(shù)據(jù)寫入外部系統(tǒng)中,存儲到數(shù)據(jù)庫或者應(yīng)用到實時系統(tǒng)顯示界面中。SparkStreaming 相較于其他處理引擎最大的優(yōu)勢是可以同時進行批處理和流處理,還具有強大的容錯性。
1.2 Kafka分布式消息中間件
Kafka是近年來使用較多的分布式消息隊列中間件,是由 LinkedIn 研發(fā)[2]。如今被廣泛應(yīng)用于分布式集群應(yīng)用之中,當作多種類型的數(shù)據(jù)管道和消息系統(tǒng)。 Kafka 的出現(xiàn)起到了兩個作用:一方面是降低了系統(tǒng)組網(wǎng)的復(fù)雜程度,另一方面減少了編寫程序的難度,每個子系統(tǒng)并非是彼此協(xié)調(diào)的接口,而是像插口插在插座上,而 Kafka 起著極速數(shù)據(jù)總線的角色。
Kafka主要的特點如下:
(1)能夠同時發(fā)布和訂閱,供給高吞吐量。據(jù)統(tǒng)計,Kafka 以秒為單位能夠產(chǎn)生大約 25 萬信息(50Mb),每秒處理達到 55 萬信息(110MB)。
(2)持久化操作。將信息持久化到磁盤中因而可用于成批的消耗,例如 ETL。采取將數(shù)據(jù)持久化到磁盤的方式以及拷貝(Replication) 預(yù)防數(shù)據(jù)遺失,為數(shù)據(jù)安全提供了保障。
(3)分布式系統(tǒng),便于向外擴展。所有的 Producer、Broker 和 Consumer 都有多個,而且全都為分布式,便于擴展機器。
(4)信息被操作的階段是在 Consumer 端維護,而不是 Server 端維護。當失敗的時候能夠自動平衡。
2系統(tǒng)的設(shè)計與實現(xiàn)
低速率拒絕服務(wù)攻擊(Low-rate Denial-of-Service,簡稱LDoS)是近年來提出的一類新型攻擊[4],其不同于傳統(tǒng)洪泛(flooding)式的DoS攻擊,主要是利用端系統(tǒng)或網(wǎng)絡(luò)中常見的自適應(yīng)機制所存在的安全漏洞,通過低速率周期性攻擊流,以更高的攻擊效率對受害者進行破壞且不易被發(fā)現(xiàn),本文主要針對該類型的攻擊檢測展開研究。如圖所示,基于Spark的低速率拒絕服務(wù)攻擊檢測系統(tǒng)模塊主要分為:數(shù)據(jù)采集模塊,數(shù)據(jù)處理模塊,特征提取模塊,檢測模塊,預(yù)警模塊和異常處理模塊。
(1)數(shù)據(jù)采集模塊。根據(jù) Kafka+Spark 架構(gòu),提取服務(wù)器端的實時數(shù)據(jù)流日志文件,并將初始數(shù)據(jù)集存儲在 Hadoop 的分布式文件存儲系統(tǒng)中。
(2)數(shù)據(jù)處理模塊,對初始數(shù)據(jù)集進行數(shù)據(jù)預(yù)處理,并將數(shù)據(jù)集切片處理,將一個大的時間周期內(nèi)的數(shù)據(jù)集切分成多個小的時間周期,計算相應(yīng)的吞度量、時延、高頻信號的能量值、低頻信號的能量值、流量峰值、阻塞指數(shù)等特征值。
(3)檢測模塊,將提取的特征數(shù)據(jù)集放入提前訓練好的隨機森林模型中,判斷該事件段內(nèi)服務(wù)器端是否受到了LDoS 攻擊。
(4)預(yù)警模塊,當檢測模塊發(fā)現(xiàn)某時間段內(nèi)大量特征值檢測超過正常值范圍,即模型認為該時間段服務(wù)器端收到了LDoS 攻擊,就會觸發(fā)報警機制,提醒管理人員,在該時間間隔內(nèi),服務(wù)器收到攻擊。
(5)異常處理模塊,管理員可以根據(jù)發(fā)生的時間間隔內(nèi)的同一IP出現(xiàn)的頻率過高或者是同一IP段內(nèi)同一地區(qū)內(nèi)的 IP 出現(xiàn)過多時,采取屏蔽IP段或者屏蔽某一塊地區(qū)訪問權(quán)限。
3系統(tǒng)仿真實驗
實驗設(shè)計如下:在一臺物理服務(wù)器上搭建 4 臺虛擬機,其中一臺作為主節(jié)點,一臺作為備用節(jié)點,剩余兩臺作為 Slave 節(jié)點。實驗具體硬件配置如表 1 所示。另外在一臺內(nèi)存為 16G,硬盤空間為 1T的物理機上安裝相同的環(huán)境作為對照。
為了保證實驗的公平性,本次實驗是基于離線數(shù)據(jù)集批處理過程,初始數(shù)據(jù)集大小設(shè)置為 5 組數(shù)據(jù)集,分別約為 100M,300M,500M,700M,1T,1.2T。每組的數(shù)據(jù)量不相同,但攻擊數(shù)據(jù)流的攻擊周期,攻擊時長,攻擊速率以及正常數(shù)據(jù)流通信的速率, 滑動窗口大小都一致,且都不存在噪聲數(shù)據(jù)。數(shù)據(jù)分布相似,能夠用來作對比實驗。經(jīng)過實驗結(jié)果統(tǒng)計得到本文提出的檢測模型在單機和集群下的不同耗時如圖 2所示。由此可見,數(shù)據(jù)集比較小的時候,單機模式和集群模式下的算法耗時 時長沒有明顯差異,但數(shù)據(jù)集越大時,集群模式下的算法耗時優(yōu)勢越明顯,而且, 本次實驗集群只有兩臺 Worker,如果有多臺 Worker 同時運行,耗時將會更短。 因此,對于一個日活躍用戶達到萬級的特小型網(wǎng)站來說,假設(shè)每個用戶每天的點擊量是 10 次,那么每天服務(wù)器端將收到數(shù)十萬條的日志數(shù)據(jù),因此,采用集群模式的低速率 DoS 攻擊檢測系統(tǒng),效率要遠高于單機模式下的攻擊檢測系統(tǒng)。
4總結(jié)
本文主要介紹了 Spark,Kafka 的工作原理,以及基于分布式的 LDoS 攻擊檢測系統(tǒng)的部署和實現(xiàn)流程,并且通過仿真實現(xiàn)對比了單機系統(tǒng)和集群系統(tǒng)的工作效率。實驗證明,本文提出的基于Spark的網(wǎng)絡(luò)日志分析系統(tǒng)能有效地提高日志分析的效率。
參考文獻:
[1] 李曉燕,郭亞峰.面向Hadoop的分布式日志分析系統(tǒng)[J].計算機產(chǎn)品與流通,2020(3):111.
[2] Kafka 2.6 Documentation. http://kafka.apache.org/documentation/#gettingStarted [EB/OL].2020,11.
[3] 石樂義,劉佳,劉祎豪,等.網(wǎng)絡(luò)安全態(tài)勢感知研究綜述[J].計算機工程與應(yīng)用,2019,55(24):1-9.
[4] 李芳菊.基于Hadoop的網(wǎng)絡(luò)行為大數(shù)據(jù)安全實體識別系統(tǒng)設(shè)計[J].現(xiàn)代電子技術(shù),2019,42(17):75-79.
[5] 劉軍,冷芳玲,李世奇,等.基于HDFS的分布式文件系統(tǒng)[J].東北大學學報(自然科學版),2019,40(6):795-800.
[6] 王建仁,馬鑫,段剛龍.改進的K-means聚類k值選擇算法[J].計算機工程與應(yīng)用,2019,55(8):27-33.
[7] 陸勰,羅守山,張玉梅.基于Hadoop的海量安全日志聚類算法研究[J].信息網(wǎng)絡(luò)安全,2018(8):56-63.
[8] 劉景云.搭建HDFS分布式文件系統(tǒng)[J].網(wǎng)絡(luò)安全和信息化,2018(2):100-103.
[9] 周波.基于Apache Flume的MR數(shù)據(jù)采集實現(xiàn)方案[J].電信科學,2018,34(S1):216-221.
[10] 劉芬,廖榮濤,余錚.Hadoop下的在線網(wǎng)絡(luò)日志分析系統(tǒng)設(shè)計[J].電子技術(shù)與軟件工程,2017(22):20.
【通聯(lián)編輯:代影】