協議是計算機網絡與分佈式系統中各類通訊實體鍵相互交互信息時必須遵照的一組規則和約定,這些規則明確規定了所交換的數據格式以及有段的同步問題,從而保證了雙方通訊有條不紊、可靠地交換信息。安全
比較著名的網絡協議有TCP/IP協議棧中的一些協議,好比IP、TCP、UDP、POP3、SMTP、HTTP等。除了大量標準化的通訊協議外,網絡中還存在大量私有協議,各類軟件廠商或我的處於經濟利益、安全、隱私等因素的考慮,並無公開協議細節;一些惡意軟件也採用了本身的私有協議防止被跟蹤和分析。網絡
協議分析技術主要分爲兩大類:分佈式
(1)對已知協議的識別與分析。學習
(2)對未知協議的逆向分析。測試
第一類以協議特徵(好比協議格式特徵、端口特徵、流量特徵等)爲基礎,識別應用使用的通訊協議並根據協議規範對協議報文進行分析,前提是協議規範已知。加密
第二類在協議特徵未知的條件下,經過協議報文或協議軟件執行過程分析獲得協議規範(好比協議字段格式和協議狀態機),即協議逆向分析。spa
協議逆向工程是指在不依賴協議描述的狀況下,經過對協議實體的網絡輸入輸出、系統行爲和指令執行流程進行監控和分析,提取協議語法、語義和同步信息的過程,是工程化的協議逆向分析方法。隨着網絡規模的擴大和應用種類的增多,對協議逆向的準時性和時效性要求愈來愈高,自動化協議逆向分析技術成爲人們追求的目標。計算機網絡
以協議規範描述模型爲目標,協議逆向分析系統應當包括輸入預處理,協議格式提取,協議狀態機推斷三個階段。3d
協議逆向的原始輸入爲連續的網絡數據流或者處理網絡數據流的指令執行軌跡。要實現協議格式提取以及協議狀態機推斷,首先要以會話個報文爲粒度對輸入進行分割。分析以前要提出原始輸入中的冗餘和干擾,好比報文序列中可能出現的重傳、亂序、分片。會話劃分和報文定界是網絡流量分析領域的重要研究方向。目前研究已較爲成熟。對象
字段符號特徵和結構是格式文法的屬性。協議格式提取需依次通過字段識別、結構提取、語義與取值約束判斷三個步驟,纔可識別每一個報文對應的格式。對報文全部格式進行合併,獲得統一的協議格式文法和各個報文結構屬性。根據分析對象的不一樣,協議格式提取技術分爲兩類:
(1)基於網絡流量的協議格式逆向分析
(2)基於執行軌跡的協議格式逆向分析
第一類基於網絡流量的協議格式逆向分析技術,也叫做基於報文的協議逆向分析技術,或者報文序列分析技術。即以截獲的網絡數據流做爲分析對象,依據協議字段的取值變化頻率和和特徵推斷獲得協議格式。其依據是:數據流中的當個報文是協議格式的一個實例,相同格式的報文樣本每每具備類似性,能夠將具備類似性的報文聚集到一塊兒,推斷他們所遵循的報文格式。
第二類是基於執行軌跡的協議格式逆向分析技術,也成爲基於指令序列的逆向分析技術,或者指令序列分析技術。以指令執行軌跡爲分析對象,利用動態污點分析技術跟蹤程序對報文的解析過程,並依據協議實體解析報文字段的具體過程實現協議格式的提取。
基於網絡流量的分析技術與基於執行軌跡的分析技術相比,存在如下優勢:
(1)時效性強。在報文樣本數量大,協議種類多的狀況下,運行速度快,可以快速獲得結果。
(2)對終端依賴小。在未知目標通訊軟件的狀況下,不須要跟蹤報文在終端運行狀況。
(3)通用性強。報文序列分析方法不關心報文所在協議的層次,只對報文的格式進行分析。
基於網絡流量的分析技術與基於執行軌跡的分析技術相比,存在如下缺點:
(1)在僅提供正例網絡流量的前提下,正則語言不可能經過學習獲得。
(2)對採用加密和壓縮機制的協議,報文字節的取值已被破壞,沒法經過網絡流量分析進行逆向。
(3)對樣本集的覆蓋率依賴大,樣本中不存在的報文格式,沒法網絡流量分析逆向。
2.3 協議狀態機推斷
協議狀態機推斷是指經過分析捕獲的網絡協議報文序列和協議實體對該報文序列的解析過程,得到協議實體處理狀態遷移的邏輯結構以及行爲語義信息,最終構成協議的狀態機。
在協議狀態機推斷過程當中,一般須要將報文序列中的報文實例抽象爲其所屬的報文類型,進而將一個或連續的多個抽象類型標註爲一個狀態。
通過輸入預處理,協議格式提取,協議狀態機推斷後,造成協議規範文本,爲後續網絡協議逆向應用奠基基礎,好比基於協議的模糊測試技術等。