国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Markov模型的HTTP參數(shù)排序隱蔽信道檢測方法

2020-02-19 11:26沈國良翟江濤戴躍偉
計算機工程 2020年2期
關(guān)鍵詞:關(guān)鍵字數(shù)據(jù)流報文

沈國良,翟江濤,戴躍偉

(1.江蘇科技大學 電子信息學院,江蘇 鎮(zhèn)江 212003; 2.南京信息工程大學 計算機與軟件學院,南京 210000)

0 概述

1973年LAMPSON提出“covert channel”概念,其最初的定義是建立在多安全等級(Multi-Level Security,MLS)的自動化信息系統(tǒng)(Automated Information System,AIS)中,主要針對在不同主體和對象間的訪問控制及安全分類。如今,其主要針對高度互聯(lián)的網(wǎng)絡(luò),實體為網(wǎng)絡(luò)應用程序或網(wǎng)絡(luò)節(jié)點[1],因而隱蔽信道的另一個更廣泛更具適應性的定義為“策略上被拒絕但性質(zhì)上允許的通信信道”。根據(jù)該定義,隱蔽信道可以延伸到網(wǎng)絡(luò)傳輸?shù)母鱾€協(xié)議中,尤其是占據(jù)一半流量的HTTP協(xié)議,成為隱蔽通信的良好載體。

HTTP隱蔽信道分為存儲式隱蔽信道[2]、時間式隱蔽信道[3]和網(wǎng)絡(luò)行為隱蔽信道[4]。存儲式隱蔽信道主要是利用HTTP協(xié)議報文中部分不關(guān)鍵的字段名或值嵌入隱密消息以實現(xiàn)隱蔽通信,如將某些保留、可選用或未定義的字段修改為經(jīng)過編碼的隱蔽數(shù)據(jù)[5]。傳統(tǒng)的HTTP存儲式隱蔽信道包括對URI[6]、Cookies[7]、User-Agent[8]以及網(wǎng)頁重定向等元素進行編碼嵌入隱蔽信息實現(xiàn)隱蔽通信。時間式隱蔽信道主要利用網(wǎng)絡(luò)傳輸HTTP數(shù)據(jù)包的時間特性來隱藏信息[9],通常使用數(shù)據(jù)包的收發(fā)時間以及包間時延等特性,例如On-off是一種典型的時間式隱蔽信道[10],它由信息發(fā)送端和接收端約定一個時間間隔,在此期間若有數(shù)據(jù)包發(fā)送代表隱秘信息“1”,無數(shù)據(jù)包發(fā)送則代表隱秘信息“0”。網(wǎng)絡(luò)行為隱蔽信道往往是在用戶訪問網(wǎng)絡(luò)的行為中編碼嵌入消息并表現(xiàn)為用戶的一系列操作[11],如LiHB[12]通過數(shù)學組合的編碼方式將N個請求分配到M條流中,接收端只要解碼不同流對應的請求數(shù)量就能接收到隱蔽信息。

為了對抗隱蔽通信的非法使用,實現(xiàn)網(wǎng)絡(luò)安全的可管可控,研究者們也陸續(xù)研究各種檢測算法。文獻[13]提出網(wǎng)絡(luò)場景檢測方法為用戶提供使用潛在隱蔽信道的場景,但是面對實際網(wǎng)絡(luò)中的復雜場景,其檢測性能并不理想。文獻[14]通過基于直方圖的算法對正常通信時間序列與隱蔽通信的時間序列分別建模,并提出一種基于Kolmogorov-Smimov(KS)統(tǒng)計量的檢測算法。文獻[15]根據(jù)時間式隱蔽信道的特點,提出檢測波形形狀的檢測方法。上述2種方法對數(shù)據(jù)包的包間間隔等時間特性進行統(tǒng)計分析,取得了較好的檢測效果,但不適用于檢測網(wǎng)絡(luò)行為信道。文獻[16]提出基于校正熵的統(tǒng)計檢測方法,并取得良好的檢測率,但該方法并不能實現(xiàn)對存儲式信道的檢測。針對存儲式信道的檢測,文獻[17-18]采用基于SVM的機器學習檢測算法,利用正常數(shù)據(jù)和含密數(shù)據(jù)的差異進行檢測;文獻[19]提出基于K-means聚類的檢測方法,對HTTP協(xié)議GET消息編碼的隱蔽信道進行檢測。

HTTP協(xié)議中的參數(shù)排序隱蔽信道利用請求報文自身排序編碼隱蔽信息,而上述檢測方法主要通過包間間隔提取特定屬性,無法對該信道進行檢測。因此,根據(jù)信道需要頻繁改變其報文的特性,本文提出一種基于Markov模型的HTTP參數(shù)排序隱蔽信道檢測方法。

1 HTTP協(xié)議中的隱蔽信道

HTTP是萬維網(wǎng)能夠可靠交換文件(包括文本、聲音、圖像等各種多媒體文件)的重要基礎(chǔ)。HTTP的報文分為請求報文和響應報文。HTTP請求報文由請求行、請求頭部和請求正文組成,如圖1所示。其中,請求頭部包含有關(guān)客戶端環(huán)境以及請求正文的有用信息。請求頭部由“關(guān)鍵字∶值”對組成,每行一對,關(guān)鍵字和值之間使用英文符號“∶”分隔。采用Wireshark捕獲到的HTTP請求報文如圖2所示,其中Host、Connection、User-Agent及Accept等都是比較常見的報文信息,提供了使用瀏覽器類型、接收對象類型等信息。

圖1 HTTP請求報文的一般格式

圖2 Wireshark捕獲的HTTP請求包

HTTP協(xié)議的參數(shù)排序通信隱藏算法[20]對序列{Ai|0≤i

圖3 參數(shù)排序隱蔽通信的原理

該方法不會在HTTP報文中插入額外的字符,只是通過改變其原有的排序達到隱藏消息的目的。因為在不同操作系統(tǒng)、瀏覽器下對于同一功能產(chǎn)生的HTTP報文表述形式差別很大,所以在HTTP報文中這些關(guān)鍵字經(jīng)常被忽略。因此,利用上述特性構(gòu)建的HTTP參數(shù)排序隱蔽信道,不會引起正常通信的異常,并且在少量樣本下,人們無法判斷該數(shù)據(jù)包是正常通信或者隱蔽通信引起的關(guān)鍵字缺失。但是該隱蔽信道的通信與正常通信的區(qū)別在于,隱蔽通信為了傳輸信息需要頻繁改變報文,而正常通信的報文通常變化不會很大,且變化頻率較低。假設(shè)HTTP數(shù)據(jù)包的報文對應一種狀態(tài),那么隱蔽通信的狀態(tài)轉(zhuǎn)換將比正常通信更為頻繁。因此,可以通過大量數(shù)據(jù)建立正常通信和隱蔽通信的模型來衡量兩者的差異性。Markov模型是一種成熟的統(tǒng)計模型,其核心思想是每個狀態(tài)值只取決于前面一個狀態(tài)而與其他狀態(tài)無關(guān)[21]。本文將數(shù)據(jù)包報文轉(zhuǎn)化為對應的狀態(tài),通過建立正常通信和隱蔽通信的Markov模型狀態(tài)轉(zhuǎn)移概率矩陣,用相對熵來衡量兩者之間的差異。

2 基于Markov模型的檢測算法

2.1 Markov鏈

Markov鏈是一個時間和狀態(tài)都是離散的馬爾可夫過程。假設(shè)數(shù)據(jù)鏈X={x1,x2,…,xn}中任意一個變量xt的值都在有限集E={0,1,…,n}中,即當n≥1時,i1,i2,…,in∈E,則式(1)成立。

p{xn=in|xn-1=in-1,xn-2=in-2,…,x1=i1}=

p{xn=in|xn-1=in-1}

(1)

數(shù)據(jù)鏈X={x1,x2,…,xn}即為一個具有可數(shù)狀態(tài)的Markov鏈,其每個狀態(tài)值只取決于前面一個狀態(tài)而與其他狀態(tài)無關(guān)。對于任意i,j∈E,從時刻n-1到時刻n的轉(zhuǎn)移概率由式(2)給出。

p(xn=in|xn-1=in-1)={xn=j|xn-1=i}=pij

(2)

(3)

序列X={x1,x2,…,xn}的狀態(tài)轉(zhuǎn)移概率矩陣可由下式給出:

(4)

Markov鏈的初始狀態(tài)為:

Q={q1,q2,…,qδ}

(5)

其中,qi表示狀態(tài)值為i(i=1,2,…,δ)的概率,qi滿足式(6)。

(6)

其中,N表示序列的總長度,Ni表示序列中狀態(tài)值為i的總個數(shù)。

在HTTP協(xié)議中,客戶端發(fā)送的請求報文中的關(guān)鍵字可能出現(xiàn)或者不出現(xiàn),將所有可能排列情況視為獨立狀態(tài),一個HTTP數(shù)據(jù)包的報文狀態(tài)就是一個隨機且有限的狀態(tài)集,其當前狀態(tài)只與上一個狀態(tài)有關(guān),因此,可以使用Markov鏈構(gòu)建HTTP數(shù)據(jù)包的狀態(tài)模型。

在HTTP參數(shù)排序隱蔽信道中,每一個關(guān)鍵字的出現(xiàn)與否都是組成某一時刻狀態(tài)的因素,由于關(guān)鍵字種類繁多且正常通信中使用極少數(shù),為了便于呈現(xiàn),本文選取其中4個最為常見的關(guān)鍵字構(gòu)建隱蔽信道,分別為Host、Connection、Accept和User-Agent。通過HTTP數(shù)據(jù)包關(guān)鍵字的狀態(tài)對應的二進制序列,計算得到HTTP數(shù)據(jù)包的狀態(tài)位。

Ek=8×EHost+4×EConnection+2×EAccept+1×

EUser-Agent

(7)

由于每一個關(guān)鍵字都有2種取值,因此可計算得到HTTP數(shù)據(jù)包共有16種狀態(tài)位,即E={0,1,…,15}。

2.2 Markov轉(zhuǎn)移概率矩陣

對一個HTTP包數(shù)據(jù)集Tn={t1,t2,…,tn},根據(jù)式(3)和式(4)求得其Markov鏈狀態(tài)轉(zhuǎn)移概率矩陣,建模過程為:提取數(shù)據(jù)包中的關(guān)鍵字,轉(zhuǎn)化為二進制序列,利用式(7)計算得到HTTP包的狀態(tài),訓練并得到Markov模型轉(zhuǎn)移概率矩陣。因為要檢測信道是否為隱蔽信道,所以除了要建立用于比較的實際HTTP包Markov模型轉(zhuǎn)移概率矩陣,還要建立每一個待測數(shù)據(jù)集的Markov模型轉(zhuǎn)移概率矩陣。

2.3 本文檢測算法

本文采用相對熵對建立的模型進行比較,相對熵可以用來衡量2個概率分布之間的差異。假設(shè)p(x)和q(x)是離散隨機變量X中的2個概率分布,則p和q的相對熵為:

(8)

p(x)和q(x)分布相同,則相對熵等于0;兩者之間差異越大,則相對熵越大。本文利用相對熵的定義來計算正常數(shù)據(jù)流和待測數(shù)據(jù)流的Markov模型的狀態(tài)轉(zhuǎn)移概率矩陣的差異,計算公式為:

(9)

2個矩陣的差異越大,則其相對熵越大。因此,可以通過設(shè)定閾值來判斷數(shù)據(jù)流是否異常,大于閾值則為隱蔽通信數(shù)據(jù)流,小于閾值則為正常通信數(shù)據(jù)流。正常通信數(shù)據(jù)流由于HTTP包的報文信息比較穩(wěn)定,沒有出現(xiàn)4個關(guān)鍵字均不出現(xiàn)的情況,所以部分狀態(tài)值的數(shù)量為0,導致當利用式(3)和式(4)計算數(shù)據(jù)流轉(zhuǎn)移概率矩陣時,出現(xiàn)0元素及部分元素無意義,從而無法用式(9)計算2個模型之間的相對熵。因此,設(shè)定這些元素為一個很小的概率pij=1.0×10-6。同樣,將這種方法應用到待測數(shù)據(jù)流的轉(zhuǎn)移概率矩陣建立中?;贛arkov模型的檢測算法總體流程如圖4所示。

圖4 本文算法檢測流程

3 實驗與結(jié)果分析

本文實驗收集40 000個正常HTTP數(shù)據(jù)包和20 000個異常數(shù)據(jù)包。正常數(shù)據(jù)包通過Fiddler捕捉用戶電腦與互聯(lián)網(wǎng)之間的HTTP通信得到。將待發(fā)送消息編碼成二進制信息,并以每4位嵌入一個HTTP包,根據(jù)第1節(jié)介紹的隱蔽信道構(gòu)建方式,結(jié)合發(fā)送的二進制信息利用Fiddler篡改正常數(shù)據(jù)包報文中的4個關(guān)鍵字,獲取異常數(shù)據(jù)包。實驗首先通過模型訓練設(shè)置合適的相對熵閾值,這是判斷數(shù)據(jù)流是否異常的關(guān)鍵;其次設(shè)定一個合適的窗口大小,因為窗口過小容易減小待測模型與正常模型之間的差異,從而降低檢測效果,窗口過大會影響檢測速度;最后計算在正常數(shù)據(jù)流中嵌入50%~100%的異常數(shù)據(jù)包時的檢測率。

3.1 相對熵閾值的選定

本文實驗分別取10 000個正常和含密的HTTP數(shù)據(jù)包作為訓練集,其余用作測試集。以1 000窗口大小分割測試集為20組,含密數(shù)據(jù)和正常數(shù)據(jù)各10組。計算每一組中各個狀態(tài)值的數(shù)量,并求出10組數(shù)據(jù)的均值,結(jié)果如圖5所示??梢钥闯?異常數(shù)據(jù)包狀態(tài)值從0到9數(shù)量較為均勻,在100上下浮動,狀態(tài)值大于8的數(shù)據(jù)包數(shù)量均在50左右;正常數(shù)據(jù)包狀態(tài)值低于8的數(shù)量為0,這是因為正常數(shù)據(jù)包中都包含Host關(guān)鍵字,并且大部分狀態(tài)值都是15。根據(jù)建立訓練集的Markov轉(zhuǎn)移概率矩陣與實際模型求相對熵,結(jié)果如圖6所示。

圖5 每組中的狀態(tài)值數(shù)量均值

圖6 訓練集與正常模型相對熵的值

從圖6可知,異常數(shù)據(jù)流與選定的實際模型之間相對熵較大,正常數(shù)據(jù)流則偏小,結(jié)合圖5中的結(jié)果,這是因為正常數(shù)據(jù)流中狀態(tài)值為12、14和15的數(shù)據(jù)包占多數(shù),與實際模型差異較小,而異常數(shù)據(jù)流中各個狀態(tài)位的數(shù)據(jù)包較為均勻,與實際模型差異較大。其中,與異常數(shù)據(jù)流的最小相對熵值接近2.5,與正常數(shù)據(jù)流的最大相對熵值接近1.5,因此,設(shè)定閾值為2,即當測試集與實際模型的相對熵值超過2時,判定為異常數(shù)據(jù)流,否則為正常數(shù)據(jù)流。

3.2 窗口大小的選定

為了分析窗口大小對檢測率的影響,在設(shè)定相對熵閾值為2,按不同窗口對測試集切割分為若干組,計算其檢測率,結(jié)果如圖7所示。

圖7 不同窗口下的檢測率

從圖7可以看出,窗口較小對實驗的檢測率影響較大。這是因為較小數(shù)據(jù)包構(gòu)建的異常數(shù)據(jù)流模型容易在局部與實際模型相似,大幅減小了相對熵的值。而當窗口大于等于1 000時,該方法均可取得較好的檢測效果,因此,可將窗口設(shè)置為1 000。

3.3 嵌入率對檢測結(jié)果的影響

嵌入率是指在一個數(shù)據(jù)流中包含的異常數(shù)據(jù)包占總數(shù)據(jù)包的比例。在相對熵閾值為2,窗口大小為1 000情況下,計算不同嵌入率下的檢測率和誤報率,結(jié)果如圖8所示。由于嵌入率較低時,檢測率偏低,因此在圖8中只顯示嵌入率大于50%的數(shù)據(jù)。

圖8 不同嵌入率下的檢測率和誤報率

Fig.8 Detection rate and false alarm rate at different embedding rates

從圖8可以看出,嵌入率在50%至60%的區(qū)間內(nèi),檢測率較低。這是因為數(shù)據(jù)包中大量正常數(shù)據(jù)包的存在,使得由狀態(tài)15向狀態(tài)15的轉(zhuǎn)移依舊占據(jù)主導地位,導致與實際模型計算相對熵時偏小,最終影響檢測率。在嵌入率不小于70%時,所有狀態(tài)值的數(shù)量趨于平均,加大了與實際模型的差異,檢測率可以保持在97%以上。當嵌入率為100%時,檢測率高達99%,并且保持極低的誤報率。

4 結(jié)束語

本文分析基于HTTP的二進制排序隱蔽信道特征,利用隱蔽通信的狀態(tài)轉(zhuǎn)換比正常通信更頻繁的特點,將基于Markov模型的檢測方法用于隱蔽信道的檢測,并以待測數(shù)據(jù)包和正常數(shù)據(jù)包的轉(zhuǎn)移概率矩陣之間的相對熵作為判別標準。實驗結(jié)果表明,該方法在窗口大小為1 000時,能夠?qū)η度肼食^70%的異常數(shù)據(jù)流保持較高的檢測率。但是本文沒有考慮到該方法對于其他隱蔽通信方式的適用性,下一步將對其通用性進行研究。

猜你喜歡
關(guān)鍵字數(shù)據(jù)流報文
基于J1939 協(xié)議多包報文的時序研究及應用
履職盡責求實效 真抓實干勇作為——十個關(guān)鍵字,盤點江蘇統(tǒng)戰(zhàn)的2021
汽車維修數(shù)據(jù)流基礎(chǔ)(上)
CTCS-2級報文數(shù)據(jù)管理需求分析和實現(xiàn)
汽車維修數(shù)據(jù)流基礎(chǔ)(下)
成功避開“關(guān)鍵字”
淺析反駁類報文要點
ATS與列車通信報文分析
基于數(shù)據(jù)流聚類的多目標跟蹤算法
北醫(yī)三院 數(shù)據(jù)流疏通就診量
青州市| 中西区| 门头沟区| 崇文区| 宣汉县| 宿松县| 兴义市| 彰武县| 慈利县| 甘南县| 隆昌县| SHOW| 丹东市| 新泰市| 罗定市| 祥云县| 洛浦县| 德化县| 苏尼特左旗| 龙南县| 昌黎县| 榕江县| 柘城县| 富锦市| 津南区| 长顺县| 杭锦旗| 米脂县| 太康县| 赤城县| 绥宁县| 二手房| 余干县| 富民县| 孟津县| 新和县| 河西区| 大安市| 庆安县| 手游| 滨海县|