王小軍,顏嘉元,周涌杰,吳玉杰
(杭州電子科技大學通信工程學院,浙江杭州310018)
當前不少企事業(yè)單位因為內部網(wǎng)絡管理的缺失而導致的員工工作效率下降、企業(yè)帶寬資源浪費、內部網(wǎng)絡安全隱患和機密信息泄漏等負面效應。文獻1提了一種基于通用有限狀態(tài)機的網(wǎng)絡行為監(jiān)控系統(tǒng)實現(xiàn),該系統(tǒng)通過通用有限狀態(tài)機來實現(xiàn)網(wǎng)絡行為監(jiān)控,使用邏輯器件來CPU的工作負擔,但在Net-FPGA之前還沒有一塊專門針對互聯(lián)網(wǎng)絡而設計的FPGA。本文研究設計的網(wǎng)絡行為分析監(jiān)控系統(tǒng)能有效完成內網(wǎng)用戶上網(wǎng)行為的分析、監(jiān)視及控制。本設計硬件平臺采用帶PCI接口的PC主機和斯坦福大學開發(fā)的NetFPGA板卡,主機與NetFPGA板卡的信息交互通過PCI接口來完成。系統(tǒng)基于瀏覽器/服務器(B/S)構架,在實現(xiàn)上采用了應用層協(xié)議處理和IP地址過濾等技術。管理人員通過Web頁面能很方便的對網(wǎng)絡用戶上網(wǎng)行為進行分析監(jiān)控,并且系統(tǒng)還具有對某些網(wǎng)絡攻擊的實時報警和自動防護功能,能較好地起到完成保護內部網(wǎng)絡安全的網(wǎng)絡防火墻的功能。
一個完整的NetFPGA系統(tǒng)由NetFPGA開發(fā)板、千兆以太網(wǎng)卡、運行于CentOS操作系統(tǒng)的PC機(或服務器)以及其他軟件程序組成,通過各個層次軟硬件的互相配合可完成復雜的網(wǎng)絡結構測試[2-4]。其中NetFPGA開發(fā)板是整個平臺的核心,為用戶提供了十分豐富的硬件資源。NetFPGA開發(fā)板硬件主要包括:Xilinx公司的Virtex22Pro 50 FPGA芯片,兩個高性能PowerPC處理器,還包括2塊36MB的SRAM、1塊64MB的DDR2 SDRAM、4個千兆以太網(wǎng)接口和一個PCI接口。其中Virtex22Pro 50 FPGA芯片提供給用戶設計完成自定義的功能。有關NetFPGA開發(fā)板的更詳細資料可參考文獻5。
系統(tǒng)采用了PC主機加NetFPGA板卡的系統(tǒng)架構,主機和NetFPGA板卡通過PCI接口進行信息交互。主機運行Linux,在Linux下由軟件來完成網(wǎng)絡行為記錄提取、系統(tǒng)配置、更新規(guī)則和自動告警等功能。系統(tǒng)底層NetFPGA功能模塊設計基于reference_router工程[6]。Router設計的主體部分主要由輸入隊列、輸出端口查找和輸出隊列三大模塊構成。輸入輸出隊列模塊負責PHY的4個RGMII接口和PCI的4個DMA接口的數(shù)據(jù)接收和發(fā)送,輸出端口查找模塊完成數(shù)據(jù)包的IP層分析和轉發(fā)查找,為該系統(tǒng)的核心模塊。整體結構設計如圖1所示。
圖1 網(wǎng)絡行為分析監(jiān)控系統(tǒng)結構設計圖
管理系統(tǒng)以網(wǎng)頁形式提供,這樣使管理員能夠在遠端方便快捷的管理系統(tǒng),而不需要安裝任何客戶端程序。當管理員輸入正確的用戶名和密碼后即可進入管理界面,否則不能對系統(tǒng)進行管理工作。管理系統(tǒng)使用HTML+JS+CSS進行編寫,使得管理系統(tǒng)具有方便靈活的特性。網(wǎng)絡行為記錄器將局域網(wǎng)內用戶瀏覽網(wǎng)頁的情況提取出來并存入MySQL數(shù)據(jù)庫中,以便管理員進行查詢和分析。網(wǎng)絡行為記錄器使用C語言編程實現(xiàn),通過調用socket函數(shù)提取出流經(jīng)NetFPGA各接口的所有網(wǎng)址請求數(shù)據(jù),完成用戶上網(wǎng)行為的提取及記錄[7]。web服務器基于系統(tǒng)提供的開源web服務器設計,通過web服務器實現(xiàn)MySQL數(shù)據(jù)庫操作和操作寄存器進行系統(tǒng)設置等功能,使系統(tǒng)應用方便快捷。MySQL數(shù)據(jù)庫管理系統(tǒng)用于用戶網(wǎng)絡行為信息、禁用網(wǎng)址信息、日記信息和攻擊信息等數(shù)據(jù)的存儲和管理。
本系統(tǒng)分為上層軟件實現(xiàn)部分和底層硬件實現(xiàn)部分,上層軟件設計在Linux操作系統(tǒng)下完成網(wǎng)絡行為記錄提取、系統(tǒng)配置、更新規(guī)則和自動告警功能。NetFPGA硬件部分的主要作用是根據(jù)PC上位機軟件提供的規(guī)則,對數(shù)據(jù)包做分析過濾,對符合規(guī)則的包進行丟棄或者轉發(fā)給軟件做二次處理,因此,硬件的設計主要是針對Router工程Output Port Lookup模塊的升級,添加新的模塊對數(shù)據(jù)包進行更全面的分析,同時新添加的寄存器接口供上位機軟件調用。
本系統(tǒng)的重點實現(xiàn)包括output_port_lookup模塊、網(wǎng)絡行為記錄器模塊和web服務器模塊,具體實現(xiàn)方法如下。
系統(tǒng)在 output_port_lookup 模塊內新增加了 src_mac、src_ip、dst_ip、src_port、dst_port、http_get和 other_mod處理模塊,在判定數(shù)據(jù)包的轉發(fā)或者丟棄過程中在遵循原有設計規(guī)則之前,需要先考慮本系統(tǒng)設定的規(guī)則。如果該數(shù)據(jù)包中MAC地址、IP地址或者端口在系統(tǒng)的黑名單之內,則數(shù)據(jù)包被直接丟棄,如果該數(shù)據(jù)包屬于Http GET請求包或者需要是特定端口的數(shù)據(jù)包則被轉發(fā)到cpu做二次處理,其余的包按正常規(guī)則轉發(fā)。
一個完整的數(shù)據(jù)包在達到Output Port Lookup模塊時已經(jīng)被拆分為若干個64位的分段,用一個8位的in_ctrl信號來標記當前的64位in_data屬于哪個分段。每段數(shù)據(jù)包在時鐘的驅動下并行進入input_fifo和preprcocess_control,前者是32深度的緩沖池,保證了數(shù)據(jù)包在后續(xù)模塊中的線速處理,后者是控制中樞,根據(jù)in_ctrl信號,啟動相應的模塊對當前in_data上的數(shù)據(jù)進行分析。其中本系統(tǒng)添加的處理模塊有源MAC過濾、源IP過濾、源端口過濾、目標IP過濾、目標端口過濾和GET包的識別。上述模塊除GET包識別之外,其他模塊都是基于內容可尋址儲存器CAM核的設計,每個CAM的深度均為32位,CAM中匹配數(shù)據(jù)的寫入和讀出均由寄存器系統(tǒng)完成,待匹配數(shù)據(jù)則由各個模塊從in_data上獲得。寄存器設計采用Router的架構,將本系統(tǒng)添加的模塊加入到其中。GET包識別采用的是開源項目url_extraction中的模塊。各個模塊在分析處理完數(shù)據(jù)包之后,都會將處理結果送到處理中心(op_lut_proce_sm.v),在處理中心判別該數(shù)據(jù)包的丟棄或者轉發(fā)。
網(wǎng)絡行為記錄器實現(xiàn)將局域網(wǎng)內用戶所瀏覽網(wǎng)站的地址、源MAC地址、源IP地址、目標IP地址、端口號、時間等數(shù)據(jù)存入到數(shù)據(jù)庫,作為日志記錄,方便管理員分析監(jiān)控。程序流程如圖2所示。
圖2 網(wǎng)絡行為記錄器程序流程圖
web服務器模塊是根據(jù)系統(tǒng)設計要求利用開源服務器設計添加了網(wǎng)絡行為分析監(jiān)控系統(tǒng)專用控制接口和報警信息處理等功能的專用服務器。
本文提出了一種基于NetFPGA開發(fā)平臺的網(wǎng)絡行為分析監(jiān)控系統(tǒng)的設計方案及具體實現(xiàn)方法。經(jīng)測試分析,該設計不僅能夠實現(xiàn)用戶網(wǎng)絡行為的分析監(jiān)控,記錄局域網(wǎng)中用戶瀏覽網(wǎng)頁的有關信息,如用戶的源MAC地址、源IP地址、目的IP地址、網(wǎng)址、端口號、訪問時間等,而且還能通過硬件層次的重構,快速的在硬件層次上實現(xiàn)非法用戶的禁用、非法網(wǎng)站的禁用、重要TCP/UDP端口的保護和特定服務控制等功能。而系統(tǒng)的一些重要設置參數(shù)直接作用于NetFPGA硬件層,從而使系統(tǒng)運行效率更高且更安全。隨著上網(wǎng)行為管理系統(tǒng)應用的不斷普及,可以預見系統(tǒng)在網(wǎng)絡安全領域有著較高的應用價值和發(fā)展前景。
目前實現(xiàn)的系統(tǒng)各功能模塊仍有不夠完善之處,如本設計NetFPGA寄存器數(shù)據(jù)搜索所采用的數(shù)據(jù)匹配算法、安全規(guī)則設置及數(shù)據(jù)庫設計部分都還有改進的空間,有待進一步的研究。
[1]溫研,王懷民,胡華平.分布式網(wǎng)絡行為監(jiān)控系統(tǒng)的研究與實現(xiàn)[J].計算機科學與工程,2005,27(10):13-16.
[2]Digilent中國代表處.NetFPGA用戶手冊v1.2[R].北京:北京理工大學,2009:3-7.
[3]陸佳華,楊衛(wèi),周劍,等.零存整取NetFPGA開發(fā)指南[M].北京:北京航空航天大學出版社,2010:63-142.
[4]呂良,楊波,陳貞翔.網(wǎng)絡安全防護系統(tǒng)的研究與設計[J].山東大學學報(理學版),2009,44(9):47-51.
[5]Xilinx.NetFPGA:A Gigabit Networking Development Platform for Education Community[R].加州:XILINX 公司,2009:1-16.
[6]James HongyiZeng.NetFPGA Tutorial Tsinghua University– Day 1[DB/OL].http://netfpga.org/tutorials/China2010/NetFPGA_Day_1.pdf,2010 -08 -18.
[7]Richard Stevens.TCP/IP詳解 卷3 TCP事務協(xié)議、HTTP、NNTP和UNIX域協(xié)議[M].北京:機械工業(yè)出版社,2000:353-364.