王萍

摘 要
本文提出了一種基于大數據的技術來識別網絡異常行為的方法,并基于該理論方法設計實現了一個網絡異常行為分析監測系統。本文詳細描述了系統的總體架構設計、各模塊詳細設計及異常入侵行為發現方法原理。本系統涉及的核心技術模塊包括數據采集與預處理模塊、實時流量監測模塊、大數據關聯分析異常檢測模塊、訪問行為基線機器學習模塊、綜合管理與展示模塊。本文使用的異常識別方法首先通過網絡流量前端數據采集與預處理模塊采集并還原網絡流量數據、通過syslog收集安全設備告警數據、通過漏洞掃描工具采集系統和應用的漏洞數據,再將多種數據源采集的數據進行融合和關聯分析,利用機器學習技術形成網絡邊界訪問、業務系統訪問、網站訪問正常行為基線,再結合基線與實時流量和網絡安全事件的實時對比關聯分析識別網絡入侵行為。系統使用的主要技術有:基于Spark streaming的實時大數據關聯分析技術,基于Spark MLlib的離線挖掘分析技術,基于kafka的數據總線技術,基于Spring MVC的Web應用技術,基于html5、css、js的前端展示技術。
【關鍵詞】網絡異常行為分析 實時關聯 機器學習 大數據
1 緒論
近年來網絡攻擊技術發展變換迅速,隨著各種網絡攻擊檢測技術的發展,黑客為了繞過檢測系統,采用的攻擊手段也越來越隱蔽,行為越來越復雜,為了達到最終目的,黑客潛伏周期也會很長。在此種場景下,現在普遍運用的基于特征檢測的方法只能將已有的入侵行為模式檢查出來,但對新的入侵方法無能為力,需要安全專家對新入侵方式進行分析后重新提取模型特征,生成新的規則更新到系統中,費時費力,因此在應對復雜多變的攻擊手段面前往往響應效率低下。
隨著大數據技術的發展,提升了對海量數據的處理能力,因此可以通過實時數據流的檢測和對歷史數據的挖掘分析進行非基于特征的異常行為檢測,此方法可以識別更隱蔽及復雜手法的攻擊行為。
2 系統目標
本系統基于大數據技術手段,通過對網域信息、資產信息、應用信息、漏洞信息、實時網絡流量、安全事件等信息的采集和關聯分析,并對收集的歷史數據進行挖掘分析,通過智能的手段去學習正常的網絡訪問行為基線,再利用基線與實時網絡訪問行為的對比識別異常攻擊行為,并以可視化的方式直觀的顯示異常告警和異常訪問路徑。
3 系統設計
3.1 系統架構設計
如圖1所示,本系統分為數據采集層、數據預處理層、數據分析層、數據持久化層、和展示層。
3.1.1 數據采集層
數據采集層負責從不同的數據源采集數據,本系統的數據來源包括網絡中核心交換機的鏡像網絡流量,網絡中部署的IDS、WAF、防火墻、防病毒等安全設備的告警事件,主機和應用服務器日志。
3.1.2 數據預處理層
數據預處理層負責將接入的原始數據進行解析、過濾、數據提取、歸一化、豐富化處理,為后續的數據分析處理提供有效數據。
3.1.3 數據分析層
數據分析層分為實時分析和離線分析兩部分。實時分析基于實時數據流處理技術,對數據進行關聯對比和統計,基于一定的分析規則形成異常行為告警事件。
3.1.4 數據持久化層
數據持久化層根據存儲數據的類型及使用情況采用不同的數據庫進行存儲。
3.1.5 展示平臺層
展示平臺層是一個人機交互的Web應用,主要用于系統的可視化管理操作、分析結果的展示、告警事件從查詢和處理、交互式歷史數據挖掘分析。
3.2 系統功能模塊設計
3.2.1 數據采集與預處理模塊
數據采集與預處理模塊實現了數據采集接收的接口,支持通過syslog接收流量前端、安全設備上報的數據,同時支持通過日志文件讀取的方式獲得應用日志數據。數據預處理通過正則規則文件對接入的事件內容進行匹配和提取,并將數據內容按照統一的格式進行組裝形成歸一化的事件,并對數據中例如各異的時間格式、事件等級、事件名稱等進行統一的標準化處理。事件經過歸一化處理后還需要對后續分析所依賴的屬性進行豐富化處理,例如根據IP定位回填物理位置信息、資產信息等。
3.2.2 實時異常檢測模塊
實時異常檢測模塊采用Spark streaming(Spark Streaming是建立在Spark上的實時計算框架,通過它提供的豐富的API、基于內存的高速執行引擎,用戶可以結合流式、批處理和交互試查詢應用)技術進行實時事件流的處理,數據采集與預處理模塊將處理過的數據放入kafka(是一種高吞吐量的分布式發布訂閱消息系統)中,kafka作為系統的消息總線承擔各個模塊之間的數據交換,實時監測模塊通過消息訂閱讀取預處理后的實時數據流,并依據檢測規則對數據內容進行檢測,例如根據登記的允許開放端口檢測非法端口訪問,根據權限規則檢測非法請求,根據請求頻度、業務規則檢測異常行為等。
3.2.3 機器學習模塊
機器學習模塊采用Spark MLlib(MLlib是Spark實現一些常見的機器學習算法和實用程序,包括分類、回歸、聚類、協同過濾、降維以及底層優化等)技術對歷史流量數據、安全事件數據進行基于統計、聚類等算法的學習,可以學習針對應用的流量訪問規律,形成正常業務訪問模型,再將模型轉化成規則應用到實時異常檢測模塊對后續數據進行實時分析。
3.2.4 綜合管理與展示模塊
綜合管理與展示模塊采用Spring MVC架構實現了一個人機交互的管理平臺,管理平臺包括異常分析結果的可視化展示,告警事件的查詢、統計、處置管理,資產、漏洞、惡意IP等信息登記,數據挖掘任務的配置,算法管理,學習結果查看,系統自身的用戶、角色權限管理,系統操作日志管理,系統菜單管理,字典表管理等。endprint
4 使用的關鍵技術
4.1 大數據存儲技術
Elasticsearch適用于海量事件的檢索處理,因此將經常被用于頁面交互查詢的分析告警結果數據放入Elasticsearch。
HDFS是Hadoop分布式文件系統,適合存放大規模數據集,因此將收集的原始數據和預處理結果數據放入其中,結合Spark(Apache Spark 是專為大規模數據處理而設計的快速通用的計算引擎)技術進行歷史數據挖掘。
redis是一個key-value的基于內存的存儲系統,適用于實時分析時快速查找相關聯的信息,例如根據IP地址檢索物理位置、關聯資產信息,根據漏洞編號關聯漏洞信息等。
Mysql是關系數據庫,適合存儲系統管理類數據、統計結果數據、報告數據等。
4.2 實時流事件處理技術
Spark streaming是一個對實時數據流進行高通量、容錯處理的流式處理系統,可以對接多種數據源,本系統采用的數據源是kafka,系統將讀取的數據流分解成一系列短小的批處理作業,對每個數據片的內容根據檢測規則進行異常檢測。
4.3 大數據挖掘分析技術
本系統基于Spark MLlib技術,通過運用聚類、統計、頻度分析、決策樹等算法從netflow流量中學習服務器以及開放的端口,統計端口的流量規律,通過對比包數范圍、字節范圍、流量條數、連接頻率、連接范圍等指標發現異常的網絡訪問行為,可根據異常特征確定惡意域名、僵尸網絡等。
5 系統驗證
系統開發完成后應用于某大型國企中心機房,采集業務應用服務器區核心交換機流量,經過一段時間的穩定運行可以識別出服務器違規開放的端口,非法的協議訪問,發現外部惡意主機連接等異常行為,且發現的外部IP地址通過網絡惡意地址庫檢索結果證實是垃圾郵件服務器。
6 結論
本系統基于大數據的技術,通過運用Spark、kafka、Spring等技術框架構建了一套網絡異常分析監測系統,通過接入網絡流量、安全日志、漏掃結果、資產信息等數據進行關聯對比和挖掘分析,能夠實現無需預置特征的網絡異常行為識別。
作者單位
中電長城網際系統應用有限公司 北京市 102209endprint