吳長勤,王傳安
安徽科技學(xué)院數(shù)學(xué)與信息學(xué)院,安徽 鳳陽 233100
面向SOAP消息的Web服務(wù)注入攻擊檢測方法
吳長勤,王傳安
安徽科技學(xué)院數(shù)學(xué)與信息學(xué)院,安徽 鳳陽 233100
面向SOAP消息的注入攻擊對Web服務(wù)的發(fā)展前景和應(yīng)用產(chǎn)生重要的影響,而目前尚缺乏有效的檢測方法,為此我們提出了一種基于行為模式的注入攻擊檢測方法.該方法在Web服務(wù)訪問日志行為建模階段采用長度不同的特征子串來表示行為模式,并通過序列模式的支持度來建立正常消息行為模式輪廓;針對注入攻擊復(fù)雜多變的特點(diǎn),進(jìn)一步提出基于矩陣相似匹配結(jié)合相似判決閾值的注入攻擊檢測模型.實(shí)驗(yàn)結(jié)果表明,與多種其他經(jīng)典檢測方法相比,該檢測方法在檢測率和誤報率等方面檢測效果好,可有效地檢測出注入攻擊.
注入攻擊;SOAP消息;Web服務(wù);行為模式
Web服務(wù)是一個向其它應(yīng)用過程或程序提供數(shù)據(jù)和服務(wù)的分布式模塊化組件,它通過XML、SOAP等新技術(shù)實(shí)現(xiàn)各種服務(wù)之間的互操作[1]. Web服務(wù)具有高度互操作、松散耦合和可重用等特點(diǎn),已成為網(wǎng)格和云計算等計算技術(shù)的重要實(shí)現(xiàn)方式之一.
目前Web服務(wù)通信是以傳輸SOAP消息為基礎(chǔ)的,由于SOAP協(xié)議在設(shè)計時并沒有過多的考慮其安全性問題,從而導(dǎo)致SOAP消息在傳輸過程中極易受到諸如SQL注入攻擊和XML注入攻擊等其他形式的命令注入攻擊,因此保證SOAP消息傳輸?shù)陌踩允钱?dāng)前研究的一個重要問題[2].文獻(xiàn)[3]描述了Web服務(wù)面臨的安全威脅與狀態(tài),利用OWL-S與本體建立了服務(wù)安全攻擊本體. Nils Gruschka等人[4]指出消息的機(jī)密性、完整性和用戶驗(yàn)證對于服務(wù)平臺安全性的作用很小,從而提出采用XML Schema中的消息對接受到的SOAP消息進(jìn)行確認(rèn),以此發(fā)現(xiàn)具有注入攻擊的服務(wù)調(diào)用.文獻(xiàn)[5]在研究中定義了一個消息安全本體來對SOAP消息進(jìn)行本體驗(yàn)證,進(jìn)而對攻擊進(jìn)行檢測.楊曉暉等人[6]提出基于信任度量的跨域訪問控制模型,來實(shí)現(xiàn)Web服務(wù)訪問安全.
筆者在充分考慮正常Web訪問行為的特點(diǎn)后,采用長度不同的多種特征子串來表示正常SOAP消息行為,并通過支持度來建立正常消息行為模式,最后利用提出的檢測模型對注入攻擊進(jìn)行檢測.
文中提出的注入攻擊檢測方法的實(shí)現(xiàn)過程可分為正常行為建模和和攻擊檢測兩個階段,具體檢測模型如圖1所示.正常行為建模的主要任務(wù)是建立正常的SOAP消息的行為模式.攻擊檢測階段的任務(wù)是根據(jù)建立的正常行為模式,利用特定的檢測模型來識別當(dāng)前SOAP消息中的異常行為.
圖1 注入攻擊檢測模型Fig.1 The detection model of injection attack
1.1 行為建模
Web訪問詳細(xì)的記錄了客戶的SOAP信息行為,通過觀察Web訪問日志,可發(fā)現(xiàn)消息中會大量重復(fù)出現(xiàn)一些字符串,將這些重復(fù)出現(xiàn)的字符串稱為特征子串,其特征相對穩(wěn)定,可代表SOAP消息的行為模式[7].行為建模階段的主要工作如下.
(1)獲取訓(xùn)練數(shù)據(jù):將無注入攻擊時產(chǎn)生的Web訪問作為訓(xùn)練數(shù)據(jù)E={e1,e2,…,en},其中ei表示按時間順序排列的第i個SOAP消息事件,n為SOAP消息事件序列長度.
定義1:Web訪問日志記錄的一次會話或一次執(zhí)行過程稱為SOAP消息事件,記為e=<la,t>,其中l(wèi)a=<s1,s2,…,sm>表示該SOAP消息事件中的m個字符,t表示記錄SOAP消息事件的時間.
(2)借鑒最長前綴提取算法[10]思想,采用最長前綴分析法提取訓(xùn)練數(shù)據(jù)E中所有長度大于1的重復(fù)出現(xiàn)的特征子串,組成特征子串集合T={t1,t2,…,tk},tj表示第j個特征子串,k為長度.
(3)將訓(xùn)練數(shù)據(jù)E中的SOAP消息事件序列轉(zhuǎn)換為按時間排序的n個長度分別為l(1),l(2),…l(n)的特征子串序列流C={C1,C2,…,Cn},其中Ci表示eiSOAP消息事件中包含的所有特征子串,記為Ci={tj,tj+1,…,tm}.
(4)計算集合T中每個特征子串在訓(xùn)練數(shù)據(jù)序列E中的支持度.
定義2:一個特征子串在序列E中的支持度等于該子串出現(xiàn)的次數(shù)除以所有特征子串總計出現(xiàn)次數(shù),即:support(ti)=number(ti)/Number(T),其中Number(T)為集合T中所有特征子串出現(xiàn)的次數(shù)和.
(5)從n個特征子串流中,分別按照相應(yīng)的支持度提取正常Web訪問行為模式序列L(i).
考慮到不同的特征子串表示的行為模式意義可能不盡相同,其出現(xiàn)的頻率也會有較大的區(qū)別,不能采用單一支持度,在文中設(shè)置了k個相應(yīng)于不同特征子串的最小支持度minsup(t1),minsup(t2),…,minsup(tk).對于1≤i≤k,將Ci中等于或大于相應(yīng)最小支持度minsup(ti)的特征子串提取出來,構(gòu)成滿足支持度要求的行為模式序列L(i).
(6)構(gòu)建正常行為模式輪廓
將S個滿足最小支持度要求的序列L(1),L(2),…L(S-1),L(S)存儲起來,用于描述正常行為模式輪廓,同時也作為下一步進(jìn)行注入攻擊檢測的正常行為模式輪廓L={L(1),L(2),…,L(K)}.
1.2 注入攻擊檢測
攻擊檢測階段的任務(wù)是根據(jù)建立的正常行為模式,利用特定的檢測模型來識別當(dāng)前SOAP消息事件中的異常行為.攻擊檢測階段的主要工作如下.
(1)獲取測試數(shù)據(jù):選取監(jiān)測時間內(nèi)Web訪問日志作為測試數(shù)據(jù),并進(jìn)行預(yù)處理.設(shè)預(yù)處理后得到的日志數(shù)據(jù)字符串序列為E’={la1,la2,…,lan},其中l(wèi)ai為按時間順序排列的第i個字符串.
(2)按照行為建模階段提出的方法,提取測試數(shù)據(jù)E’中的K個行為模式序列,并以此構(gòu)建當(dāng)前日志行為模式輪廓L’={L’(1),L’(2),…,L’(S)}.
(3)將兩階段構(gòu)建的行為輪廓L和L’分別轉(zhuǎn)化成k·n的模板矩陣M和檢測矩陣Q.
模板矩陣M=(M1,M2…MK)T,其中Mi表示序列L(i)轉(zhuǎn)化的由n個0和1組成的行向量,即Mi=(a1,a2,…,an),其物理意義表示:若子串集T中的某個特征子串在L(i)中出現(xiàn),將相應(yīng)的矩陣位置元素置為1,否則置為0.如L(i)由集合T中的第1,2,4個特征子串組成,即L(i)={t1,t3,t5},則轉(zhuǎn)化的行向量Mi=(1,1,0,1,0,0,…,0).同理,將序列庫L’轉(zhuǎn)化為行向量表示的檢測矩陣Q.
(4)矩陣相似性度量:使用矩陣相似度來衡量檢測矩陣Q與模板矩陣M之間的匹配程度.下面引入矩陣間相似度的概念[8],設(shè)m×n矩陣全體為Cm×n,假如A·B∈Cm×n,矩陣內(nèi)積可定義為
式(1)中tr(﹒)表示矩陣主對角線元素的和,而矩陣內(nèi)積表示兩矩陣相對應(yīng)位置元素的乘積累加和,由矩陣內(nèi)積可導(dǎo)出范數(shù)
若A、B為實(shí)數(shù)矩陣,則|<A·B>|≤||A||·||B||,當(dāng)且僅當(dāng)A和B兩矩陣完全相似時,|<A·B>|=||A||·||B||.
可知,A和B兩矩陣的相似度為
式(3)中θ為A和B兩矩陣之間的夾角,當(dāng)θ=0°時,表示A和B相似性最好;當(dāng)θ=90°時,A和B則完全不相似.
為計算檢測矩陣Q與模板矩陣M之間的匹配程度,需將公式(3)改為
當(dāng)檢測矩陣Q與模板矩陣M之間的匹配度sim(M,Q)小于給定的判決閾值w時,則將矩陣Q標(biāo)記為異常,并發(fā)出異常警報,最后將報警SOAP消息事件交由專家系統(tǒng)并結(jié)合人工進(jìn)行驗(yàn)證,進(jìn)而判定Web訪問是否遭受注入攻擊.
(5)判決閾值選擇:選擇合適的判決閾值是決定檢測率和誤報率的關(guān)鍵因素.參照文獻(xiàn)[9]中交叉驗(yàn)證的方法來確定文中的判決閾值w,將獲得的Web訪問日志按一定比例分成兩部分,一部分用于獲取行為模式,而另一部分用于確定判決閾值和測試誤報率,如此反復(fù)交叉的測試,并在測試過程中通過調(diào)整判決閾值來獲得誤報率與不同判決閾值間的對應(yīng)關(guān)系,最終將期望誤報率所對應(yīng)的判決閾值w作為檢測注入攻擊的閾值.
本文的試驗(yàn)是在安徽科技學(xué)院校園網(wǎng)中進(jìn)行的,采集到的數(shù)據(jù)集既有校園網(wǎng)內(nèi)部的Web訪問數(shù)據(jù),也有來自于或傳輸?shù)浇逃W(wǎng)上的數(shù)據(jù),并利用C++語言完成文中相關(guān)的算法和實(shí)驗(yàn).具體實(shí)驗(yàn)環(huán)境見圖2所示.
圖2中的環(huán)境配置如表1所示.
圖2 實(shí)驗(yàn)環(huán)境圖Fig.2 The platform of experimental environment
表1 環(huán)境配置表Tabel 1 The configuration of experimental environment
實(shí)驗(yàn)所采用的Web訪問數(shù)據(jù)集如下:
訓(xùn)練數(shù)據(jù)集:將T2產(chǎn)生的1 000個SOAP消息記錄作為訓(xùn)練數(shù)據(jù)集,用來建立正常的SOAP消息的行為模式.
測試驗(yàn)證數(shù)據(jù)集:將T1采集到的Web訪問日志和P1、P2產(chǎn)生的100個SOAP消息記錄作為測試數(shù)據(jù)集,用來驗(yàn)證文中提出的注入攻擊檢測效果.
根據(jù)訓(xùn)練數(shù)據(jù)集,運(yùn)行特征子串提取算法,提取了35個用于表示行為模式的特征子串,進(jìn)一步采用文中提出的行為模式序列提取方法,獲得了21個行為模式序列庫L={L(1),L(2),…,L(21)}.
在建立正常行為模式輪廓后,對測試驗(yàn)證數(shù)據(jù)集采用文中提出的注入攻擊檢測方法進(jìn)行檢測.為選擇最佳的檢測判決閾值,可通過已有的訓(xùn)練數(shù)據(jù)并通過判決閾值選擇法來確定.圖3給出了實(shí)驗(yàn)過程中選擇判決閾值w的曲線,圖中的實(shí)線為未進(jìn)行注入攻擊對應(yīng)的判決閾值曲線,而虛線為注入攻擊后的判決閾值曲線.從圖3中可以看出,當(dāng)w=0.55時,正常SOAP消息行為模式下的判決閾值曲線與注入攻擊后對應(yīng)的判決閾值曲線幾乎沒有的交疊部分,具有較好的區(qū)分度,因此文中將0.55作為最佳判決閾值.
圖3 判決閾值曲線Fig.3 The curve of decision threshold
同時,還采用文中實(shí)驗(yàn)用的Web訪問數(shù)據(jù)集分別對文獻(xiàn)[10]中基于序列對比的檢測方法、文獻(xiàn)[11]中基于本體的檢測方法以及文獻(xiàn)[12]中基于文本聚類的攻擊檢測方法進(jìn)行了對比實(shí)驗(yàn),在檢測率、誤報率和實(shí)驗(yàn)時間方面進(jìn)行了對比,實(shí)驗(yàn)對比結(jié)果見表2所示.
表2 不同檢測法的檢測結(jié)果比較Tabel 2 The comparison results of detection effect
從表2中可以看出,文中提出的檢測方法在檢測率上明顯優(yōu)于其他3種檢測方法,且誤報率也明星低于序列對比和文本聚類的檢測方法.由于文中提出的檢測方法需要先建立正常行為模式,然后再進(jìn)行驗(yàn)證檢測,所以在實(shí)驗(yàn)時間方面稍高于序列對比和本體檢測法,但是其他兩項(xiàng)檢測指標(biāo)具有明顯的比較優(yōu)勢.由實(shí)驗(yàn)對比結(jié)果可見,文中提出的注入攻擊檢測方法是有效的,具有很好的綜合檢測性能.
提出了一種新的面向SOAP消息的注入攻擊攻擊檢測方法,該方法充分考慮了正常Web訪問行為的特點(diǎn),采用長度不同的多種特征子串來表示正常消息行為,并通過支持度來建立正常消息行為模式,最后利用特定的檢測模型來檢測SOAP消息中是否含有注入攻擊.實(shí)驗(yàn)結(jié)果表明,文中提出的檢測方法可有效的檢測注入攻擊,且具有很好的檢測效果.
致謝:
在此對文中實(shí)驗(yàn)和測試等提供支持和幫助的安徽科技學(xué)院計算中心表示感謝,并對在研究過程中提供的指導(dǎo)的各位老師幫助表示感謝!
[1]劉玲霞,王東霞,黃敏桓.一個Web服務(wù)可信體系結(jié)構(gòu)[J].計算機(jī)科學(xué),2014,12(41):30-32.
LIUling-xia,WangDong-xia,HuangMin-heng.Trustworthy Architecture for Web Services[J].Computer science,2014,12(41):30-32.(in Chinese)
[2]SABBARI M,ALIPOUR H S.A security model and its strategies for web services[J].International Journal of computer Applications,2011,36(10):24-31.
[3]JENSEN M,GRUSCHKA N,HERKENHONER R,et al.Soa And Web Services:New Technologies,New Standards-New Attacks[C]//2007.ECOWS'07.Fifth European Conference on.Web Services,2007:35-44.
[4]NILS Gruschka,Norbert Luttenberger.Protecting Web Services from DoS attacks by SOAP Message Validation[J].IFIPInternationalFederationforInformation processing 2006,9(201):171-182,
[5]DIEGO Z G,MARIA B F.Ontology-based Security Ploicies for supporting the management of Web Service BusinessProcesses[C]//TheIEEEinternational Conference on Semanitic computing.2008.
[6]楊曉暉.一種基于信任度量的Web服務(wù)跨域訪問控制模型[J].山東大學(xué)學(xué)報(理學(xué)版),2014,9(49):115-122.
YANG Xiao-h(huán)ui.A cross-domain access control model of Web service based on trust measurement[J].Journal of Shandong University(Natural Science),2014,9(49):115-122.(in Chinese)
[7]王傳安.SCADA系統(tǒng)通信網(wǎng)中的高級持續(xù)性攻擊檢測方法[J].計算機(jī)科學(xué)與探索,2015,3(9):352-259.
Wang Chuan-an.Detection of Advanced Persistent Threats in SCADA Communication Network[J].Journal ofFrontiersofcomputerscienceandtechnology,2015,9(27):352-359.(in Chinese)
[8]翟東海.基于矩陣相似度的最佳樣本塊匹配算法及其在圖像修復(fù)中的應(yīng)用[J].計算機(jī)科學(xué),2014,1(41):307-310.
ZHAI Dong-hai.Optimal Exemplar Matching Algorithm Based on Matrix Similarity and its Application in Image Inpainting[J].Computer science,2014,1(41):307-310.(in Chinese)
[9]田新廣.基于shell命令和多重行為模式挖掘的用戶偽裝攻擊檢測[J].計算機(jī)學(xué)報,2010,33(4):697-705.
TIAN Xin-guang.Masquerade detection based on shell commands and multiple behavior patter mining[J].Chinese Journal of computer,2010,33(4):697-705.(in Chinese)
[10]孫義,胡雨霽,黃皓.基于序列比對的SQL注入攻擊檢測方法[J].計算機(jī)應(yīng)用研究,2010,9(27):3525-3528.
SUN YI,HU YU-JI,HUANG Hao.Method of defense SQL injection attacks based on sequence alignment[J].ApplicationResearchofComputers,2010,9(27):3525:3528.(in Chinese)
[11]陳軍.基于本體的Web服務(wù)攻擊檢測技術(shù)研究[J].計算機(jī)應(yīng)用,2011,6(31):1515-1520.
CHEN Jun.Research of Web Services attack detection basedonontology[J].JournalofComputer Applications,2011,6(31):1515:1520.(in Chinese)
[12]楊曉峰.基于文本聚類的網(wǎng)絡(luò)攻擊檢測方法[J].智能系統(tǒng)學(xué)院,2014,1(9):1-7.
YANG Xiaofeng.Text clustering based Web attack detection method[J].CAAI Transactions on Intelligent Systems,2014,1(9):1-7.(in Chinese)
Detection of SOAP message-oriented injection attacks on Web services
WU Chang-qin,WANG Chuan-an
College of Mathematical and Information,Anhui Science and Technology University,Fengyang 233100,China
SOAP message-oriented injection attacks have great impacts on prospects and applications of Web services;however,there is not an effective injection attacks detection method now.We proposed a method to detect injection attacks based on behavior patterns.In this method,the behavioral patterns of the legal behavior were characterized by characteristic substring sequences of different lengths,and the sequence supports were used to construct the normal behavior profiles in modeling stage of Web-access log message behavior. According to the complex and volatile features of injection attacks,a detection model based on matrix similarity matching and decision threshold was proposed.Compared with other classical detection models in experiments,the proposed method has better detection rate and false positive rate,showing good detection effects on injection attacks.
injection attacks;SOAP messages;Web services;behavior profiles
TB35
A
10.3969/j.issn.1674-2869.2015.07.013
1674-2869(2015)07-0060-05
本文編輯:陳小平
2015-06-10
安徽科技學(xué)院青年科研研究項(xiàng)目(ZRC2014426);安徽省自然科學(xué)研究項(xiàng)目(KJ2013Z048).
吳長勤(1962-),男,安徽肥東人,副教授,研究方向:計算機(jī)應(yīng)用技術(shù).