幸娟+高海源+張曉峰

摘 要:網絡數據包郵件還原技術基于Tilera多核板卡硬件平臺的高速收包引擎和多核并行處理性能,對接重構的libnids數據流重組功能,分業務實現不同郵件協議POP3、STMP、IMAP、Webmail的郵件還原流程,最終輸出標準郵件文件格式eml。
關鍵詞:多核;郵件還原;Webmail;IMAP
中圖分類號:TN946;TP311.52 文獻標識碼:A 文章編號:1671-2064(2017)10-0030-01
在網絡安全方面對往來郵件的關注度日益增高,如何能在網絡安全審計系統中將前端輸入網絡數據流進行相應處理恢復得到最終直觀可讀的郵件內容。為了解決這個問題本文設計了基于Tilera多核板卡平臺開發,借助其高速收包引擎和多核并行處理的高性能進行數據流捕獲,并對libnids數據流重組進行代碼結構重寫完成數據流重組,最后對郵件相關協議POP3、STMP、IMAP、Webmail進行分析,設計還原算法,實現郵件內容獲取解析拆分重組等操作,并將內容按郵件eml標準格式輸出。
1 Tilera多核板卡收包模塊
基于Tilera平臺開發,使用高速收包引擎接口mPIPE進行開發實現大數據量的網絡數據包捕獲,收包流程如圖1。
該模塊主要通過接收用戶設置參數進行相應配置和初始化硬件資源,給多核板卡的NotifRng、buckets等進行內存分配,同時對tcp重組的部分進行初始化和回調函數注冊,最后調用mPIPE高速收包接口,peek方式收包進行網絡數據包的接入。
2 數據流重組模塊設計
該模塊(如圖2)主要重構修改libnids開源代碼,添加與mPIPE的對接接口,將網絡數據包流量引入tcp流重組模塊,同時對libnids的數據結構進行修改,加入數據還原算法需要用到的用戶字段。后進入回調函數進行郵件協議的分類判斷,根據端口走入不同的郵件還原模塊算法中。
3 郵件還原模塊設計
(1)pop3郵件還原模塊根據協議的特征設計算法,當識別到TOP或RETR協議命令時緩存郵件內容并判斷結束符,最后將完整郵件存入eml文件。
(2)stmp郵件還原模塊的算法和pop3類似,不同的是需要識別的協議命令是DATA。
(3)imap郵件還原模塊根據協議交互特征,識別帶用FETCH等請求獲取郵件全部內容或部分內容的協議命令時,組合緩存郵件內容結束符,當郵件內容到達時,判斷結束符,進行單封郵件的循環拆分和eml存儲。
(4)Http郵件還原模塊根據郵箱操作的協議命令格式,每個操作對應一個或多個post或get的url命令格式,其中包含如func=mbox:listMessage"等特征標識,解析并組合其中攜帶的郵件內容,抽取mime格式中的From、To等字段信息寫入eml文件。
4 結語
本文基于Tilera多核板卡硬件平臺進行開發,結合mpipe收包引擎接口和libnids數據流重組功能,針對郵件協議特征設計算法實現POP3、STMP、IMAP、Webmail的郵件還原。
參考文獻
[1]丁岳偉.基于SMTP協議電子郵件的還原[J].小型微型計算機系統,2002(03):290-293.
[2]吳勛,劉嘉勇.網絡數據包的郵件還原技術研究[J].通訊技術,2011(04):124-126.
[3]KOZIEROK. TCP/IP指南.北京:人民郵電出版社,2008.