陳淼
西南科技大學信息工程學院 621000
基于數據包分析的網頁還原技術研究
陳淼
西南科技大學信息工程學院 621000
本文結合應用環境和實際需求,研究了網絡數據包信息還原涉及的數據包捕獲技術、數據包分析技術、數據包重組技術、http信息識別技術。
網絡數據包捕獲;數據包重組;http信息提取
在信息社會中,信息是維持生產活動、經濟活動以及社會活動的重要資源,對政治、經濟和文化都有著深遠影響。不斷探索網絡信息監聽與還原技術有助于建立可靠、高效的信息安全保障體系,對于維護社會政治穩定和國家信息安全具有重要的現實意義。因此,對因特網中一些重要數據信息進行還原和提取,是保證網絡應用的健康發展和打擊網絡犯罪的一個重要手段。
基于數據包分析的網頁還原系統主要分以下幾個模塊:
1、網絡數據包捕獲模塊
2、網絡數據包協議分析與數據包重組模塊
3、HTTP協議信息還原模塊
數據包捕獲模塊負責捕獲流經用戶所選網絡設備的全部數據包,并將捕獲得到的數據按照相應的規則以文件格式存儲起來,以供后續模塊進行分析、重組和還原。
數據重組模塊首先讀入數據包捕獲得到的數據,分析每一個捕獲到的數據包,將具有相同的源 IP 地址、源端口號、目的 IP地址和目的端口號的數據包按照先后順序存儲在一起,重組成一個完整的數據包。
HTTP 協議信息還原模塊通過一層層的數據包分解出來,讀取出應用層http的負載信息,通過分析http請求頭得到seq,并為此創建一個臨時文件,保存數據包的簡要信息,然后分析http響應頭,得到contentencoding、conteng-type、content-length字段值,再存入臨時文件,最后把http負載信息與具有相同seq、sport、dport的臨時文件簡要信息匹配,若匹配成功,則進行相應的數據插入,還原出相關網頁信息。總流程圖如圖1所示。

圖1 總流程圖
從降低系統設計復雜性和提高開發效率的角度考慮,結合實際需求出發,本系統沒有采用數據庫軟件存儲捕獲到的網絡數據包,而是直接以某種自定義文件格式將其存放在硬盤中。HTTP 協議信息還原模塊既支持對于老版本 HTTP/1.0 協議網頁信息的還原,也支持針對新版本 HTTP/1.1 協議的網頁信息還原。
原始數據包捕獲是進行數據挖掘研究的基礎,數據的可靠性決定了挖掘分析的準確度。在本次研究中我們利用winpcap提供的用戶接口捕獲校園網絡拓撲中共享網絡上主機的收/發數據包。經過測試,我們結合winpcap接口開發的數據包捕獲軟件捕包效率可以達到99.63%以上,見下表1[1],可以忽略漏掉的少量數據包對實驗結果的影響。

表1 數據包獲取實驗數據
由于IP不能保證可靠、有序的包傳輸,因此包有可能會被破壞或在到達時是無序的。另外,在捕獲過程中會將重復的包視為TCP重發的結果,也可能會捕獲那些不會到達到預定接收器的包。在這兩種情況下,捕獲過程都可能會接收重復的包。更復雜的是,TCP不能保證重新傳輸的包會按照原始數據的同一方式再將這些數據分組。因此重構有序流就顯得尤為重要。
如果一個流有起始、結束和兩者間的所有東西,它就是完整的流。根據S Y N可以確定包連接的TCP包所有字節流。
為了方便應用數據的恢復,需要將無序的數據片流有序化,使其表現為一個有序的數據片流(或者說是數據流)。在軟件實現數據片有序化時,本設計采用了一個帶頭結點的雙向鏈表隊列,隊列中的每個結點存儲一個完整的TCP數據流的內容,另外還有兩個元素,分別是指向前導和后續結點的結構體指針。
根據消息體與消息頭之間有兩個連續的回車換行符(ASCII 碼為 )作為分隔的特征,利用匹配函數strstr()找到兩個連續的回車換行符出現的位置,從此位置開始,到服務器端數據文件結尾的全部數據均為HTTP 消息體數據。
本模塊首先使用find(ack,sport,dport)獲得該數據包的信息,通過函數node_isempty()判斷該數據包的data有效長度是否為0,如果不為0,則通過函數have_inserted_first_data ()判斷該數據包是否已經加入過http data內容,如果沒有,則調用函數init_first_seq()初始化seq,然后使用函數insert_first_data插入數據包的第一條data內容;如果已經加入過data內容,則繼續加入當前分片的data內容。然后通過函數get_complete_percent()判斷當前數據包是否完整,如果不完整則完成data內容的處理;如果是完整的,則通過函數serialstream()重組當前數據包,最后把所有分片的內容整合在一起,寫入文件。
本文結合應用層http協議為例,進行了協議分析,通過編寫程序實現了對網絡中的http數據包進行捕獲、分析和提取有用信息,得到了網絡協議分析技術實際應用的結果。實現了一個融合解決 HTTP/1.0 和HTTP/1.1 協議網頁信息還原的通用HTTP協議信息還原系統。
[1]Miao Chen, Shun-hua Tan, Guo-hai Yang , Yi-zhi Wang. Research on network business identification technology based on IP packets. IEEE ICACIA2010
[2]譚敏生,湯亮.基于HTTP的網絡數據包還原技術研究[J].計算機技術與發展.2007年,第17卷(6期):176
10.3969/j.issn.1001-8972.2011.16.045