皮文超 于炳虎 蹇詩婕 李勇 公安部第一研究所
伴隨著線上會議、線上支付、金融支付等網(wǎng)絡(luò)應(yīng)用范圍的不斷擴(kuò)大和加深,用戶對網(wǎng)絡(luò)服務(wù)質(zhì)量提出了更加嚴(yán)苛的要求。無論是互聯(lián)網(wǎng)還是各類門戶網(wǎng),惡意代碼、病毒等在網(wǎng)絡(luò)中的快速傳播,都會導(dǎo)致用戶數(shù)據(jù)受到破壞,人民財產(chǎn)受到威脅。國家互聯(lián)網(wǎng)應(yīng)急中心(CNCERT/CC)在2020年協(xié)調(diào)處置網(wǎng)絡(luò)安全事件約10.3萬起,DDoS攻擊日均3000余起,全年捕獲勒索病毒軟件78.1萬余個,惡意代碼樣本數(shù)4200萬個,受感染主機(jī)約533.82萬臺,網(wǎng)絡(luò)安全事件導(dǎo)致用戶和企業(yè)遭受重大經(jīng)濟(jì)損失。除了加強(qiáng)登錄密碼為強(qiáng)口令并定期修改、避免使用重復(fù)口令、關(guān)閉135~139、445等高危端口、定期自檢修補漏洞、定期檢測設(shè)備、安裝安全軟件等用戶主動行為以防范網(wǎng)絡(luò)風(fēng)險外,系統(tǒng)側(cè)監(jiān)測網(wǎng)絡(luò)狀況,及時發(fā)現(xiàn)網(wǎng)絡(luò)異?,F(xiàn)象并中斷非法訪問,更加能夠大大降低網(wǎng)絡(luò)安全事件的發(fā)生概率,保障網(wǎng)絡(luò)良性運行。如何及時有效地掌握網(wǎng)絡(luò)狀況、分析網(wǎng)絡(luò)行為、定位網(wǎng)絡(luò)問題,已成為迫切需求。
由此,本文在對網(wǎng)絡(luò)流量數(shù)據(jù)采集、分析、處理和存儲等技術(shù)研究基礎(chǔ)上,設(shè)計并實現(xiàn)了無線鏈路流量監(jiān)測分析系統(tǒng),從鏈路、協(xié)議、端口等不同角度進(jìn)行統(tǒng)計分析,實現(xiàn)了對無線網(wǎng)絡(luò)流量數(shù)據(jù)的實時監(jiān)測,能夠協(xié)助管理員快速定位并解決網(wǎng)絡(luò)問題,及時改善網(wǎng)絡(luò)運行狀況,確保網(wǎng)絡(luò)中流量數(shù)據(jù)安全。
傳統(tǒng)的網(wǎng)絡(luò)流量監(jiān)測系統(tǒng)使得網(wǎng)絡(luò)管理員對網(wǎng)絡(luò)運維成本高、網(wǎng)絡(luò)維護(hù)困難,具體表現(xiàn)為:一是可視化的配置功能能夠大大降低網(wǎng)絡(luò)管理員的運維難度、提高網(wǎng)絡(luò)運維效率,是一個良好流量監(jiān)測分析系統(tǒng)具備的必要功能。然而目前網(wǎng)絡(luò)管理員根據(jù)不同需求對網(wǎng)絡(luò)流量數(shù)據(jù)進(jìn)行分析時,需要通過命令行或者腳本對系統(tǒng)進(jìn)行重新配置,操作繁瑣,易出現(xiàn)問題。二是網(wǎng)絡(luò)管理員對網(wǎng)絡(luò)流量數(shù)據(jù)的分析是發(fā)現(xiàn)網(wǎng)絡(luò)問題來源、排查定位網(wǎng)絡(luò)問題的關(guān)鍵,大到對整個網(wǎng)絡(luò)分析,小到對單個主機(jī)終端分析,都是發(fā)現(xiàn)問題的關(guān)鍵因素,然而目前大量的流量監(jiān)測系統(tǒng)存在對網(wǎng)絡(luò)流量數(shù)據(jù)分析缺失、或者分析不到位的問題。三是掌握網(wǎng)絡(luò)整體運行狀況,統(tǒng)計網(wǎng)絡(luò)流量數(shù)據(jù)能夠協(xié)助網(wǎng)絡(luò)管理員實時掌握網(wǎng)絡(luò)整體情況,及時發(fā)現(xiàn)網(wǎng)絡(luò)異常,但目前大多數(shù)的流量監(jiān)測系統(tǒng)缺少對網(wǎng)絡(luò)的整體監(jiān)控,導(dǎo)致網(wǎng)絡(luò)管理員缺乏對網(wǎng)絡(luò)運行情況的把控。
因此,一個良好的流量監(jiān)測分析系統(tǒng)必須解決上述存在的問題,具備如下功能:一是具備可視化的配置功能,能夠讓網(wǎng)絡(luò)管理員對不同應(yīng)用、不同網(wǎng)段、不同告警規(guī)則快速進(jìn)行可視化配置,大大降低網(wǎng)絡(luò)管理員的運維難度。二是具備對監(jiān)測網(wǎng)絡(luò)從不同角度進(jìn)行流量分析的功能,能夠讓網(wǎng)絡(luò)管理員對不同應(yīng)用、不同協(xié)議、不同主機(jī)等進(jìn)行流量分析。三是具備對監(jiān)測網(wǎng)絡(luò)全局統(tǒng)計功能,能夠讓網(wǎng)絡(luò)管理員實時把握網(wǎng)絡(luò)運行狀況。
無線鏈路流量監(jiān)測分析系統(tǒng)實現(xiàn)了對無線網(wǎng)絡(luò)流量數(shù)據(jù)的采集分析、存儲展示效果,因此能夠讓網(wǎng)絡(luò)管理員快速發(fā)現(xiàn)網(wǎng)絡(luò)異常、精準(zhǔn)定位網(wǎng)絡(luò)問題,為網(wǎng)絡(luò)安全提供切實保障。
系統(tǒng)軟件架構(gòu)如圖1所示。
數(shù)據(jù)來源層:本層采用端口鏡像技術(shù)和DPDK高速數(shù)據(jù)包處理工具,對無線網(wǎng)絡(luò)鏡像流量進(jìn)行采集和預(yù)處理。
數(shù)據(jù)處理層:本層使用Spark Streaming技術(shù),在數(shù)據(jù)處理接口中對數(shù)據(jù)來源層的數(shù)據(jù)進(jìn)行實時處理,并將處理完成后的數(shù)據(jù)進(jìn)行上報。
數(shù)據(jù)持久化層:本層將處理完成后的數(shù)據(jù)進(jìn)行高效緩存和持久化,為可視化展示提供數(shù)據(jù)保障。
功能模塊層:本層包含了配置模塊、分析模塊、統(tǒng)計模塊。網(wǎng)絡(luò)管理員可以通過配置模塊設(shè)置定制化的過濾規(guī)則;分析模塊根據(jù)配置的規(guī)則過濾網(wǎng)絡(luò)流量數(shù)據(jù);統(tǒng)計模塊用于實時統(tǒng)計網(wǎng)絡(luò)流量數(shù)據(jù)。
可視化展示層:本層為網(wǎng)絡(luò)管理員提供了可視化的Web界面,使得網(wǎng)絡(luò)管理員能夠?qū)崟r觀察網(wǎng)絡(luò)流量數(shù)據(jù)走勢,及時發(fā)現(xiàn)網(wǎng)絡(luò)中存在的異常流量。
端口鏡像是指將路由器或交換機(jī)等網(wǎng)絡(luò)設(shè)備上若干個指定的源端口數(shù)據(jù),復(fù)制轉(zhuǎn)發(fā)到監(jiān)控設(shè)備上的監(jiān)測端口進(jìn)行特定分析的技術(shù)。端口鏡像可以在不影響業(yè)務(wù)正常使用的情況下,獲取流量數(shù)據(jù)的副本,對網(wǎng)絡(luò)中的流量數(shù)據(jù)進(jìn)行分析監(jiān)測,能夠?qū)W(wǎng)絡(luò)包分析、網(wǎng)絡(luò)入侵、故障監(jiān)測、流量數(shù)據(jù)統(tǒng)計等提供數(shù)據(jù)保障。
本文設(shè)計并實現(xiàn)的無線鏈路流量監(jiān)測分析系統(tǒng)采用本地鏡像技術(shù),即源端口和目的端口都在同一個LNS路由器設(shè)備上,本地端口鏡像如圖2所示。
為了讓目的端口能夠成功接收到源端口的鏡像流量,需要通過配置VLAN、添加端口到VLAN、端口分配IP、目的端口配置鏡像命令、源端口和目的端口鏡像關(guān)聯(lián)等步驟完成本地鏡像配置。如圖2所示,移動警務(wù)終端流量數(shù)據(jù)通過運營商專線到LNS路由器源端口,目的端口將鏡像流量報文發(fā)送到流量采集器,進(jìn)行下一步的流量特征分析。
為了保證能夠及時有效地接收處理海量的網(wǎng)絡(luò)數(shù)據(jù)包,本系統(tǒng)選用Kafka中間件處理消息。Kafka作為一種發(fā)布訂閱的分布式系統(tǒng),具備如下優(yōu)勢:一是面對TB級別的數(shù)據(jù)能夠保證常數(shù)時間復(fù)雜度完成消息持久化;二是既能實時處理數(shù)據(jù),也可離線處理數(shù)據(jù);三是高吞吐率,即使在普通機(jī)器上也能保持100K余條每秒的消息傳輸;四是保證消息有序傳輸。Kafka生產(chǎn)消費模型如圖3所示。
(1)生產(chǎn)者(Producer)和消費者(Consumer):生產(chǎn)者生成消息,消費者訂閱消費消息。
(2)主題(Topic)和分區(qū)(Partition):在Kafka中,消息以類別區(qū)分,成為主題,每個主題對應(yīng)一個消息隊列。主題中的數(shù)據(jù)分為多個分區(qū),用于主題擴(kuò)展。
(3)Broker和集群(Cluster):每個Kafka服務(wù)器節(jié)點成為Broker,完成生產(chǎn)者的消息存儲并為消費者提供消息。多個Broker組成集群。
確保網(wǎng)絡(luò)流量監(jiān)控系統(tǒng)Web界面能夠快速從數(shù)據(jù)庫中獲取要展示的數(shù)據(jù),數(shù)據(jù)庫的快速查詢顯得尤為重要。Druid支持分布式、多維度數(shù)據(jù)分析查詢系統(tǒng),具有如下優(yōu)勢:一是能夠達(dá)到亞秒級查詢,并且支持高并發(fā);二是能夠?qū)崟r數(shù)據(jù)導(dǎo)入;三是采用列式存儲、數(shù)據(jù)的預(yù)聚合、Bitmap索引、mmap和對查詢結(jié)果的中間緩存等關(guān)鍵技術(shù),使其具有良好的擴(kuò)展性和容災(zāi)性。
無線鏈路流量監(jiān)測分析系統(tǒng)開發(fā)流程如圖4所示。
鏡像流量:為了不影響網(wǎng)絡(luò)性能和網(wǎng)絡(luò)業(yè)務(wù)的正常使用,采用端口鏡像技術(shù)獲取網(wǎng)絡(luò)中全部的流量數(shù)據(jù)。
實時數(shù)據(jù)采集:面對大量快速的網(wǎng)絡(luò)流量數(shù)據(jù),快速采集處理數(shù)據(jù)包顯得尤為重要。DPDK是一種高速的數(shù)據(jù)包處理工具,其采用輪詢方式收發(fā)數(shù)據(jù)包,解決了數(shù)據(jù)包處理時的多次拷貝、用戶內(nèi)核態(tài)切換等耗時問題。本系統(tǒng)使用DPDK高速數(shù)據(jù)包處理工具對網(wǎng)絡(luò)鏡像流量數(shù)據(jù)進(jìn)行處理,并將其寫入Kafka的Topic1中。
實時數(shù)據(jù)處理:實時快速地處理網(wǎng)絡(luò)中源源不斷的數(shù)據(jù)流,是保證系統(tǒng)有效展示數(shù)據(jù)的前提。Spark Streaming是一個對數(shù)據(jù)流進(jìn)行實時處理的流處理框架,具備高擴(kuò)展、高吞吐、高容錯的特性,它能夠從Kafka中消費數(shù)據(jù)并進(jìn)行快速運算。本系統(tǒng)利用Spark Streaming技術(shù)從Topic1中消費數(shù)據(jù),并進(jìn)行消息的實時處理統(tǒng)計,最后將處理后的數(shù)據(jù)寫入Topic2中。
實時數(shù)據(jù)展示:從Topic2中消費數(shù)據(jù),并通過Druid進(jìn)行持久化存儲,為網(wǎng)絡(luò)流量監(jiān)控系統(tǒng)Web展示提供實時的查詢服務(wù)。
本系統(tǒng)實現(xiàn)了配置功能模塊、分析功能模塊、統(tǒng)計功能模塊,用于可視化配置、流量數(shù)據(jù)分析和統(tǒng)計,具體功能介紹如下。
配置功能模塊包含了鏈路、應(yīng)用、網(wǎng)段、告警等多個配置子模塊。
鏈路配置子模塊可以靈活配置鏈路信息,設(shè)置監(jiān)聽端口、上下行網(wǎng)段、上行帶寬和下行帶寬等信息來過濾網(wǎng)絡(luò)中的流量數(shù)據(jù)。
應(yīng)用配置子模塊能夠支持TCP、UDP、FTP、SMTP等多種不同協(xié)議的應(yīng)用,根據(jù)需要獲取不同協(xié)議類型的網(wǎng)絡(luò)數(shù)據(jù)。
網(wǎng)段配置子模塊可以設(shè)置網(wǎng)段類型、IP地址范圍,獲取不同網(wǎng)段范圍的網(wǎng)絡(luò)數(shù)據(jù)。
告警配置子模塊中包含了鏈路告警配置、應(yīng)用告警配置和異常流量數(shù)據(jù)告警配置,便于操作者靈活設(shè)置告警觸發(fā)條件、告警等級,并及時發(fā)現(xiàn)網(wǎng)絡(luò)中的異常數(shù)據(jù)。告警配置如圖5所示。
分析功能模塊主要包含了鏈路分析、應(yīng)用分析、主機(jī)分析和網(wǎng)段分析子模塊。
鏈路分析子模塊展示了鏈路配置模塊配置的鏈路詳情數(shù)據(jù),網(wǎng)絡(luò)管理員可選取不同的時間段和對應(yīng)鏈路,能夠?qū)崟r展示流量數(shù)據(jù)走勢圖、流量統(tǒng)計、流速統(tǒng)計和帶寬利用率等信息。
鏈路分析功能界面如圖6所示。
應(yīng)用分析子模塊展示了應(yīng)用配置模塊配置的應(yīng)用詳情數(shù)據(jù),網(wǎng)絡(luò)管理員可點擊查看相關(guān)應(yīng)用并選取不同的時間段,能夠?qū)崟r展示該應(yīng)用的流量數(shù)據(jù)走勢圖、流量統(tǒng)計、流速統(tǒng)計和告警次數(shù)等信息。
主機(jī)分析子模塊展示了主機(jī)列表中的主機(jī)詳情信息,選取不同時間段可以實時展示該主機(jī)的流量數(shù)據(jù)走勢圖、流速、包速和丟包率等信息。
主機(jī)分析功能界面如圖7所示。
網(wǎng)段分析子模塊展示了網(wǎng)段配置模塊中設(shè)置監(jiān)聽的網(wǎng)段流量數(shù)據(jù)詳情,網(wǎng)絡(luò)管理員可選取不同的時間段實時展示該網(wǎng)段的流量走勢圖、流量統(tǒng)計、流速統(tǒng)計、包速統(tǒng)計等信息。
網(wǎng)段分析功能界面如圖8所示。
統(tǒng)計模塊從全局角度展示了整個網(wǎng)絡(luò)的監(jiān)測流量數(shù)據(jù),包含流速統(tǒng)計、包速統(tǒng)計、會話數(shù)統(tǒng)計、鏈路數(shù)、應(yīng)用數(shù)以及流速走勢、包速走勢、會話統(tǒng)計圖等信息,便于管理員從全局掌控網(wǎng)絡(luò)的運行狀態(tài)。
統(tǒng)計功能模塊界面如圖9所示。
本文在不同時間段對系統(tǒng)CPU資源利用率、內(nèi)存利用率、系統(tǒng)響應(yīng)時間、請求成功率等指標(biāo)進(jìn)行了統(tǒng)計分析,系統(tǒng)測試統(tǒng)計情況如表1所示。
從表1中可以看出,請求準(zhǔn)確率保持在95%以上,系統(tǒng)響應(yīng)時間保持在1秒以內(nèi)。系統(tǒng)資源利用率較高的時間段集中在10:00~20:00,分析原因是網(wǎng)絡(luò)流量數(shù)據(jù)在不同時段差距較大,并且本系統(tǒng)流量采集模塊對流量進(jìn)行實時采集,當(dāng)流量數(shù)據(jù)較大時會導(dǎo)致CPU等系統(tǒng)資源開銷較大。
無線鏈路流量監(jiān)測分析系統(tǒng)可適用于互聯(lián)網(wǎng)、門戶網(wǎng)、辦公局域網(wǎng)等領(lǐng)域,改變了以往被動防御的網(wǎng)絡(luò)安全治理,使得網(wǎng)絡(luò)管理員能夠及時感知網(wǎng)絡(luò)風(fēng)險,精準(zhǔn)定位網(wǎng)絡(luò)問題,為網(wǎng)絡(luò)安全治理提供了強(qiáng)有力的手段。本文深入研究流量監(jiān)測相關(guān)技術(shù)和研究現(xiàn)狀,結(jié)合端口鏡像、流量數(shù)據(jù)采集分析和數(shù)據(jù)查詢持久化等關(guān)鍵技術(shù),設(shè)計并實現(xiàn)了包含配置模塊、流量分析模塊和統(tǒng)計模塊的流量監(jiān)測系統(tǒng),并將其應(yīng)用于無線網(wǎng)絡(luò)環(huán)境中,檢驗流量監(jiān)測系統(tǒng)的性能。該系統(tǒng)實現(xiàn)了對無線網(wǎng)絡(luò)進(jìn)行實時監(jiān)控,并能迅速定位網(wǎng)絡(luò)中的問題和異常流量告警,極大地降低了網(wǎng)絡(luò)維護(hù)成本和人員成本。