龔劍敏 顏濤 周亮



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