【摘要】本文主要探討了分布式網絡行為監控系統的設計問題,針對分布式網絡行為監控系統設計的要點進行了探討。同時,本文還論述了分布式網絡行為監控系統應該如何來實現,以期能夠為分布式網絡行為監控系統的應用提供參考。
【關鍵詞】網絡行為監控系統;設計;實現
一、前言
在分布式網絡行為監控系統的構建和應用過程中,需要重點解決設計和應用的相關問題,針對設計問題,提出一些有效的設計的有效對策,在實現的過程中,要更加明確分布式網絡行為監控系統實現的途徑。
二、原型系統的研究與實現
1.系統框架設計
系統的框架模型按照IvIDA(ModelDriven-Architec-ture,簡稱MDA)的相關方法進行設計,從系統和平臺相關視圖兩個角度給出了系統的模型描述。系統的工作流程就是一個依據各層協議對網絡報文進行分析處理并從中提取有用信息的、自底向上的處理過程。
系統在Windows平臺的實現采用了基于c/s模型的分布式軟件架構,主要包括監控代理(MonitorAgent)和中心控制臺(Monitor-Console)兩部分。監控代理實現了報文捕獲引擎和報文協議分析引擎,并向控制臺報告XML描述的行為事件,監控代理部署于監控目標的網段內;控制臺主要通過協議有限狀態機完成網絡行為的分析和顯示、主機和網絡信息的提取,以及各種報表的顯示、分析和生成等。
將系統分為這兩個部分主要有兩個原因:一是便于實現分布式的網絡監控,將多個Agent部署在相應的監控目標網段內,可以捕獲到Console收不到的報文,使得系統可以適應復雜的網絡拓撲環境;二是可利用多個Agent實現報文分析的負載平衡,提高報文協議分析的效率,以便監控更大規模和更高帶寬的網絡。
2.系統功能簡介
通過報文捕獲、解析與網絡行為分析,原型系統主要實現了以下功能:
(1)網絡報文捕獲。
(2)報文協議分析。
(3)網絡行為分析。
(4)此外,系統還實現了網絡和主機信息的分析、TCP會話重放、報表統計與策略管理等功能。
三、關鍵技術
1.監聽與識別數據包
網絡實時監控系統是通過對網卡編程實現網絡通訊,對網卡的編程是使用套接字方式來進行。但是,通常的套接字程序只能響應與自己硬件地址相匹配的或是以廣播形式發出的數據幀,對于其他形式的數據幀,網絡接口在驗證投遞地址并非自身地址之后將不引起響應,也就是說應用程序無法收取到達的數據包。網絡實時監控系統的首要任務恰恰是從網卡接收所有經過它的數據包,這些數據包既可以是發給它的也可以發往別處。顯然,要達到此目的,網卡不能按正常的模式工作,而必須將其設置為混雜模式。
編程實現時,這種對網卡混雜模式的設置是通過原始套接字實現,這也有別于通常使用的數據流套接字和數據報套接字。在創建原始套接字后,需要通過setsockopt()函數來設置IP頭操作選項,然后再通過bind()函數將原始套接字綁定到本地網卡。為了讓原始套接字能接受所有的數據,還需要通過ioctlsocket()來進行設置,而且還可以指定是否親自處理1P頭。至此,在完成了網卡模式的初始化設置后,就可以開始對網絡數據包進行實時監聽。對數據包的獲取仍像流式套接字或數據報套接字那樣通過recv()函數來完成,但是與這兩種套接字不同的是,原始套接字此時捕獲到的數據包并不僅僅是單純的數據信息,而是包含有IP頭、TCP頭等信息頭的最原始的數據信息,這些信息保留了它在網絡傳輸時的原貌。通過對這些在低層傳輸的原始信息的分析就可以得到有關網絡的一些信息。由于這些數據經過網絡層和傳輸層的打包,因此需要根據其附加的幀頭對數據包進行分析。根據系統的設計思路,就可以寫出網絡實時監聽和識別數據包功能的實現代碼。在編程時,將原始套接字設置完畢后,就可以通過recv()函數從網卡接收數據。接收到的原始數據包存放在緩存區中,然后就可以根據前面對IP數據包、TCP數據包、UDP數據包等數據包的段頭結構描述而對捕獲的數據包進行分析。
2.分析數據包
監聽網絡數據包是網絡行為實時監控系統的基礎,分析監聽到的數據包則是系統的關鍵環節。發現任何網絡異常行為,采取相應的處理措施,都要依據數據包的分析結果進行。
分析數據包的工作包括跟蹤用戶、鎖定用戶正在使用的1P、記錄登錄網頁網址和網頁內容還原。跟蹤用戶是隨時從數據包中查詢用戶是否上網的信息。如果從數據包搜索到有關用戶名和用戶密碼的信息,則將用戶添加到列表。在搜索數據包的數據段,查找用戶名時,我們采用掃描效率較高的Boyer—Moore串匹配算法。該算法以自右至左的方式掃描模式和正文,一旦發現正文中出現模式中沒有的字符,就將模式、正文大幅度的“滑過”一段距離,使字符串的查找極大提高了效率。
獲得了用戶信息意味著同時也獲得了分配給用戶的IP,于是就鎖定了用戶當前的IP地址。根據IP數據包的源地址或目的地址,將可以將數據包與用戶接收和發送的數據對應上。如果只想對IP進行跟蹤,不想了解用戶名,可以省略查找用戶名的工作,只記錄IP的情況。IP地址與用戶對應上后,對用該IP登錄的任何網站的網址都能記錄下來,這些網址就是用戶登錄網站的記錄。系統查找網址時,也采用Boyer—Moore串匹配算法,具體實現類似于查找用戶名。
四、主機監控端實現關鍵技術
DNBM按照三層過濾的規劃.劃分為內容過濾、應用過濾、數據包過濾。數據包要經過層層的過濾最終才能完成傳輸。三層過濾之間的關系如圖2所示。
1.內容過濾
該層的策略只給出了用戶可以訪問的Web站點,沒有給出的站點,都是不允許用戶訪問的站點。
將服務提供者接口的幾個關鍵函數替換為自己的函數,其中包括:WSASOCKET、WSASEND、WSASENDT0、WSARECV、WSARECVFR0M、WSAC0N.NECT等。只要是通過套接字方式進行網絡通信的數據都能被攔截到,但是對于直接通過tcp.sys,udp.sys進行通信的數據該層是攔截不到的。在WSACONNECT函數中.可以通過遠程端口號對套接字的協議類型進行設置,協議類型包括H,丌、POP3、SMTP等。這樣根據協議類型。在WSASEND、WSASENDTO、WSARECV、WSARECVFR0M函數就可以解析該協議數據,提取關鍵字。在提取完關鍵字之后.需要按照策略對關鍵字進行過濾.并且記錄下來作為日志。
關于關鍵字的提取.以上各個協議都是明文協議。例如。通過在HTTR數據包查找“HOST”字符串。就能得到網站名稱。通過在SMTP數據包中查找“Subject:”字符串,就可以得到郵件主題。查找“From:”字符串,可以得到發信人地址。查找“To”字符串。可以得到收信人地址。對于POP3協議也同樣適用。
2.應用過濾
在本層只有策略中給出的進程才是允許訪問網絡的進程,沒有允許的就是禁止的。同時為了防止嵌入在系統進程中的嵌入式木馬,將系統進程與端口綁定。比如windows2000中的services系統進程.該進程完成DNS地址解析等功能,通過53號端I=l訪問DNS服務器.那么只有通過53號端口發送出去的數據是合法的數據。
在TDI驅動層中,一個進程要訪問網絡,必須首先發送MajorFunction為IRPMJ_CREATE的IRP創建一個代表傳輸地址的文件對象。如果一個進程無法創建代表傳輸地址的文件對象,就無法訪問網絡的任何后續操作。因此,拒絕一個進程創建傳輸地址文件對象的請求就可以達到拒絕該進程所有網絡請求的目的。創建傳輸地址文件對象的請求中提供了要求創建的地址信息,些信息包括進程要求使用的本地端口號。是否應該拒絕某進程創建傳輸地址文件對象的請求是通過調用訪問控制模塊函數確定的。
五、結束語
總而言之,分布式網絡行為監控系統的設計和應用過程中,需要清楚的知道分布式網絡行為監控系統的特點和各個要素的主要流程,不斷提升分布式網絡行為監控系統的性能。
參考文獻
[1]溫研,王懷民,胡華平.分布式網絡行為監控系統的研究與實現[J].計算機工程與科學,2011,10:13-16.
[2]程文芳,王世倫,任繼念.基于CORBA的分布式網絡行為監控系統的研究與設計[J].網絡安全技術與應用,2012,04:49-51.
[3]張信杰,王旭仁,吳剛.分布式網絡監控系統設計與實現[J].計算機工程與設計,2010,17:37.