随着新技術和新應用的發展,互聯網使用模式已經發生了顯著變化,目前,網絡視頻、網盤、P2P及移動App等新應用占據了大量網絡帶寬。為提高用戶上網體驗,大學校園網出口已進入到萬兆網絡時代。萬兆網絡産生的大流量上網日志數據對網絡管理人員提出了諸多新的管理要求,通過構建校園網上網日志查詢及入侵檢測系統,将出口的流量進行采集、彙總和分析,了解校園網用戶的上網行為,包括流量構成、協議分布和用戶活動情況,按需為用戶提供上網日志明細查詢,以及校外用戶對校内資源的訪問情況(特别是危險的訪問),将對規範網絡管理、合理分配網絡帶寬、增強信息安全以及确保校園網絡環境的平穩,具有重要意義[1]。現有校園網出口一般包括計費、流控、防火牆、負載均衡或路由器等設備或系統,有些高校為備查另外部署了上網行為審計系統,但這些系統提供的原始日志信息相互獨立、格式不統一、信息不夠完整、存儲量大、查詢緩慢、流量信息與計費流量有較大差距等原因難以直接用之實現以上的目标。為此,本文利用NetFlow+Nfdump+Nfsen+Nfsight搭建了校園網出口流量日志采集分析系統,并融合校園網計費管理系統,自主開發了一套萬兆校園網上網日志查詢及入侵檢測系統,集流量采集、存儲、查詢、分析于一體,既能快速對校園網用戶提供詳細的上網明細,又能診斷和監測網絡攻擊行為或備查安全事件,并提供了簡單直觀的Web及圖形化查詢界面。
相關技術
網絡流量數據的收集和分析有多種解決方案,而NetFlow技術是高速網絡中常用的一種方法,它在提供數據細節以及可擴展性上具有較好的平衡性,且不會成為網絡的瓶頸或故障點[2-3]。NetFlow是由Cisco公司研發的一種流量監控技術,數據流為單向流,包含有:源地址和目的地址、源端口和目的端口、協議類型、字節數、包數量和流數量等。本文在中國農業大學校園網出口的兩台萬兆JuniperSRX3400防火牆内口上配置了NetFlow并将接口的數據流通過UDP方式發往校内的日志服務器。
目前有很多命令行或圖形化的日志處理工具可供管理員對日志服務器接收到的NetFlow數據流進行讀或過濾查詢操作,本文在日志服務器上配置日志處理工具Nfdump及Nfsen(含Nfsight)用于接收和分析NetFlow數據流,并将其存儲至文件及數據庫中。
Nfdump是一款被使用最多的Netflow命令行工具,具有執行速度快、同時支持IPv4和IPv6、過濾查詢功能強大的特點。但命令行顯示不夠直觀明了,本文因而選取并配置了Nfsen工具作為NetFlow的可視化查詢工具[4-9],它使用Nfdump工具包收集及處理NetFlow數據流,但較Nfdump多了可視化查詢功能,簡單且易于擴展。
NetFlow采集數據時會将單個邏輯流分成多個分開的單向流,其并不能保持對客戶機(Client)和服務器(Server)間邏輯網絡會話的跟蹤。無論是命令行的Nfdump,還是圖形化的Nfsen,都僅對NetFlow單向流進行處理操作,不易對一些較為隐蔽的攻擊進行識别。為解決此問題,本文進一步引入了美國馬裡蘭大學與AT&T實驗室共同研發的Nfsight,它作為Nfsen的插件存在,用于将NetFlow的單向數據流構建為雙向數據流,并可提供Client/Server識别及入侵檢測功能[10]。Nfsight的工作原理如圖1所示,描述如下:服務檢測組件(ServiceDetector)獲取NetFlow數據流,通過推理判斷網絡會話的Client和Server,從而将單向流轉化為雙向流,并保存至文件中,同時,将Client和Server信息保存至MySql數據庫;入侵檢測組件檢測雙向流中可疑或頻繁的網絡行為,将其和事件通知一并寫入MySql數據庫;聚合腳本周期性執行用于維護數據庫,其提供了每5分鐘、每小時和每天三個層次的數據聚合;可視化查詢提供過濾查詢及圖形化顯示網絡行為的Web用戶界面。
服務檢測組件在将單向流轉化為雙向流的過程中,Client和Server的區分是其中的一個難點問題。Nfsight在一個采集周期裡(本系統設置5分鐘采集一次),通過啟發式推理和貝葉斯推理的算法實現了Client和Server的區分。過程如下:
1.Nfsight合并源、目的IP(含端口)相同的數據流。
2.Nfsight進一步合并源IP、目的IP(含端口)相反的數據流。
3.Nfsight通過啟發式推理辨識網絡事務中的Server和Client端。Server相較Client的判斷條件有:時間戳(timestamp)較大、端口較小、端口小于1024、端口在unix或linux的/etc/services中有定義、終端端口或IP為固定值等。
4.在不易區分Server端(例如時間戳相同或端口相同的情況)時,則利用貝葉斯推理将過程3的各類啟發式推理的結果進一步進行綜合,通過概率計算識别Server端。
校園網上網日志查詢及入侵檢測系統構建
1.NetFlow的設置方法
(1)要在JuniperSRX系列防火牆接口上配置NetFlow,首先必須要設置NTP。
setsystemtime-zoneAsia/Shanghai##設定時區為上海setdatentp202.205.81.48##手動與時間服務器校時setsystemntpserver202.205.81.48##配置校時服務器
(2)在欲取樣的防火牆内口配置
NetFlow。setinterfacesxe-3/0/1unit0familyinetsamplinginputoutput
(3)配置合适的采樣率。
本文設置的采樣率為300,不建議設置太小的采樣率,過于頻繁采樣會降低設備的性能。
setforwarding-optionssamplinginputrate300
(4)指定收集NetFlow的日志服務器設備。
setforwarding-optionssamplingfamilyinetoutputflow-server202.205.88.51port2055##指定收集設備及端口
setforwarding-optionssamplingfamilyinetoutputflow-server202.205.88.51version5##指定NetFlow版本。
如果未配置NTP,則第(4)步的指令在提交時會報錯。
2.系統架構
系統的硬件平台僅需一台虛拟服務器,安裝64位CentOS6.7操作系統,配置2顆2核主頻2GHz的CPU及8G内存,出口日志保存于日志服務器挂載的一塊網盤中。對于中國農業大學校園網規模(月均2.5萬活動用戶,IPv4出口帶寬為4.5G),本系統自2015年7月至2017年7月共2年時間内,所保存的出口日志約為1.2T,可見,NetFlow格式的出口日志所占空間非常小。系統的軟件平台涉及較多的應用軟件,這些軟件從功能上可分為:(1)NetFlow捕獲及處理軟件nfdump;(2)NetFlow圖形化管理軟件nfsen及其插件PortTracker、nfsenevents、nfsight;(3)Web服務器及Php腳本支持環境:apache、php和tomcat;(4)數據庫服務器——mysql;(5)功能軟件所需的支撐軟件:perl、rrdtool、apr、apr-util、pcre。其中,nfsen、PortTracker、nfsenevenets和nfsight軟件包括有前端和後端程序。前端指的是Php語言編寫的Web程序,後端指的是Perl語言編寫的管理程序及配置文件。按需成功編譯配置後,則浏覽http://主機IP/nfsen以及http://主機IP/nfsight即可分别訪問到Nfsen和Nfsight的圖形化管理界面。
此外,本文基于java語言,結合計費管理系統,研發了Web上網日志明細查詢系統,以實現精确到用戶賬号的單次上網日志明細的查詢,或可查詢出針對某個IP、某段IP或某些服務端口在自定義時間範圍内的上網日志明細,因而即可作為校園流量計費系統的驗證系統,也可作為輔助的安全管理系統。
應用實踐
1.校園網上網日志明細查詢系統
為防止校園網用戶浪費出口帶寬資源,目前多數高校校園網趨向于采用流量計費策略。在網速快、多媒體及App應用普及、軟件客戶端會自動更新的情況下,有可能産生用戶不自知情況下的大流量網費。如果用戶對其流量産生質疑,如何快速在大帶寬的高速網絡下為其提供對應的上網明細尤顯重要。目前高校的計費系統所提供日志明細功能仍有欠缺,表現在上網明細僅能提供http訪問日志,而udp及非http的日志獲取不到或不全,且查詢速度緩慢。
本文基于Netflow出口日志和計費系統開發的校園網上網日志明細查詢系統,可實現利用IP或計費網關賬号查詢用戶上網明細的功能,也可查詢校内特定網段的敏感端口訪問信息,或查詢某一時間段内訪問校外某一地址的用戶明細。分為面向管理員和面向校園網用戶的子功能。本文僅介紹管理段的功能。
(1)按IP或端口查詢上網日志明細
系統提供了基于:源地址、源端口、目的地址、目的端口、雙向地址或雙向端口查詢某時間段内上網明細的快速查詢。如下以源地址查詢為例進行說明。
源地址查詢功能模塊可根據輸入的源IP地址、上網開始時間及截止時間(以天為單位),查詢出對應時間段内出口數據包中源IP為此IP的所有上網日志明細。例如輸入圖2的查詢條件,并點擊查找,則後台調度nfdump進行過濾查詢,同時将查詢結果寫入一個txt文件,并在圖2頁面給出鍊接。
點擊圖2的txt查詢結果文件鍊接,則可查看相應的網絡訪問日志明細。本系統的上網日志明細查詢結果以網絡五元組的格式給出,每一行均包括:時間(Datafirstseen)、協議(Proto)、源地址及源端口(SrcIPAddr:Port)、目的地址及目的端口(DstIPAddr:Port))、流量大小(Bytes)等信息。查詢結果的尾部(最後倒數4行)則是本次查詢的彙總信息,其中經常關注的是本次查詢時間段内的總計流量大小(totalbytes)。
通過此模塊可以快速查詢出指定IP或端口在某個時間段内與哪些IP發生過信息交互,其最大的特點是快速(一般在10s内即可完成一次查詢操作),也可完成對某些安全事件的查詢。
圖2按源地址查詢上網日志明細的界面(2)按用戶查詢上網日志明細
系統實現了與計費系統的緊密結合,能夠針對用戶上網賬号查詢用戶的上網日志明細,或根據上網IP定位用戶身份。此處給出了根據賬号查詢單次上網明細的功能說明。此功能在校園網計費中經常使用,即用于與計費對賬使用。
按計費用戶賬号查詢其曆史上網明細的功能界面如圖3所示:按需輸入校園網賬号、上網開始及截止時間的查詢條件,并點擊查找,則系統會查出對應賬号在指定時間段内的所有上網記錄信息,顯示在頁面的底部。
圖3賬号在指定時間段内的上網記錄查詢點擊圖3所查出的某條上網登錄記錄的IP地址鍊接,則後台會調用nfdump生成對應IP在本次上網登錄時間到斷開時間内的所有網絡訪問日志明細,所查結果為IP的雙向日志明細。通過此功能管理員可輕松回答用戶在什麼時間與哪個目的服務器進行交互、流量集中在哪些目的地址、所使用的協議和端口、共計産生了多少流量等信息,從而減輕管理員的查詢工作量。此外,按用戶查詢上網日志明細程序還可作為計費準确與否的一個驗證,這部分功能目前也已經在用戶自助平台上提供。
(3)服務器網段安全查詢
校外對校内服務器所進行的攻擊中,某些攻擊是正常的網絡訪問(例如已獲得了服務器的訪問權限,例如獲得了SSH權限、數據庫控制權限、遠程桌面權限等)。這種情況在中國農大校園網實際運行過程中曾有發生,主要集中在學院自管的服務器。因此類攻擊是通過正常訪問進行的,所産生的流量或異常數據包并不大,不容易被發現。為解決此問題,本系統提供了針對服務器敏感端口的安全查詢功能。
以查詢校外通過SSH端口訪問校内某段地址為例:根據輸入的服務器網段、上網開始和上網結束時間,可查詢出指定時間段内訪問此網段22端口的所有上網明細,點擊相應鍊接,即可查看具體的上網日志明細,以排查是否有異常訪問。圖4Nfsen顯示ICMP存在異常
2.異常流量實時監測
Nfsen的圖形化監控界面可實時監測出口流量信息。管理員可側重分析網絡流量圖出現的尖峰信息及原因,占用了校園網出口大帶寬TopN的IP地址,校園網TopN的應用,正進行端口掃描的機器等。
圖4顯示在2017-7-3016:35左右校園網出口曾出現了ICMP流的異常情況,管理員在異常處點擊鼠标選定時間點、并設置過濾條件後即可查出對應時間所發生的具體ICMP流的明細信息。
3.非大流量入侵檢測的診斷案例
圖形化界面雖然易于對異常流量進行掌控和分析,但很多時候黑客對某台設備的攻擊并不會導緻機器流量異常。本系統通過對Mysql數據庫的彙總統計實現了對海量網絡流量日志中非法行為的準确定位。要實現此功能,需在Nfsight配置文件中預先定義校内IP的範圍。圖5為系統所使用的入侵檢測方法。
圖5中,無效數據包(invalid_packet)一般為服務器拒絕回應的數據包,經常在服務器遭受攻擊時産生。危險端口包括遠程桌面的3389、ssh協議的22、數據庫的3306和1521、linuxwebmin的10000等。
在2016-7-11,查詢到202.205.91.97的無效數據包數量達到了71700個;進一步查詢此IP當天的上網明細,發現雖然其發生的總流量僅為565.7M,但自淩晨起校外的幾個IP一直在不間斷訪問它的3389服務直至早上8點多;再一次查詢這些校外IP的網絡明細,發現其不僅對202.205.91.87,還對此網段的幾台服務器進行了3389端口的頻繁訪問,而這些機器分别是不同學院課題組的服務器,由此推測此網段的服務器正遭受對3389端口的攻擊。網絡管理員将相關情況告知相關負責人,并進行網絡攔截,及時阻止了事态的惡化。
本文介紹了中國農業大學萬兆校園網上網日志查詢及入侵檢測系統構建:基于Nfdump和計費系統實現了10s内定位到用戶身份的上網明細查詢,基于Nfsen及Nfsight的圖形化接口實現了網絡流量構成及異常流量的快速分析,并基于Nfsight對Netflow單向流的雙向重建和對數據庫的聚集過濾檢索,實現了對流量不明顯入侵的檢測。目前該系統不僅成為校園網計費系統的一個輔助子系統,對用戶提供流量日志明細查詢及計費驗證,而且也成為了校園網安全監控及日志審計系統的一個有機組成部分。
(責編:楊潔)
(作者單位為中國農業大學網絡中心)
參考文獻:
[1]馬雲龍,張千裡,王繼龍.基于IPFIX的網絡流量日志系統[J].通信學報,2013,34(sup2):5-8.MA,YL,ZHANGQL,WANGJL.NetworktrafficanalysissystembasedonIPFIX[J].JournalonCommunications,2013,34(sup2):5-8
[2]王珊,陳松,周明天.網絡流量分析系統的設計與實現[J].計算機工程與應用.2009,45(10):86-88.WANGS,CHENS,ZHOUMT.Designandimplementationofnetworkflowanalysissystem[J].ComputerEngineeringandApplications,2009,45(10):86-88
[3]孟曉蓓.基于NetFlow的網絡流量采集技術和應用[J].武漢理工大學學報.2009,31(23):155158.MENGXB.NetworkfluxcollectiontechniquebaseonNetFlowanditsApplication[J].JournalofWuhanUniversityofTechnology,2009,31(23):155-158.
[4]NfSen-NetflowSensor[EB/OL].(2011-12-31)http://nfsen.sourceforge
[5]Ntop:[EB/OL].(2014-06-25)http://www.ntop.org
[6]PLONKAD.Flowscan:Anetworktrafficflowreportingandvisualizationtool[A].14thUSENIXLargeInstallationSystemAdministrationConference(LISA)[C].NewOrleans,LADecember3?8,2000.305?318.
[7]CIRNECIA,BOBOCS,LEORDEANUC,etal.Netpy:advancednetworktrafficmonitoring[A].InternationalConferenceonIntelligentNetworkingandCollaborativeSystems(INCOS’09)[C].Fukuoka,JapanNovember30-December2,2011.253?254.
[8]DAMICOA,GOODALLJ,TESONED,etal.Visualdiscoveryincomputernetworkdefense[J].IEEEComputerGraphicsandApplications,2007,27(5):20?27.
[9]FISCHERF,MANSMANNF,KEIMD,etal.Large-scalenetworkmonitoringforvisualanalysisofattacks[A].WorkshoponVisualizationforComputerSecurity(VizSEC)[C].Cambridge,MA,USASeptember15,2008.111.
[10]Nfsight:NetFlow-basedNetworkAwarenessTool[EB/OL].(2010-09-01)http://sourceforge/p/nfsight/home/Nfsight/