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

?

基于特征向量的微服務架構(gòu)中的入侵檢測算法?

2019-12-27 06:32劉宏彬劉思佳
計算機與數(shù)字工程 2019年12期
關(guān)鍵詞:特征向量調(diào)用架構(gòu)

劉宏彬 劉思佳

(1.華中科技大學同濟醫(yī)學院 武漢 430030)(2.華中科技大學軟件學院 武漢 430074)

1 引言

微服務是一個新興的軟件架構(gòu),就是把一個大型的單個應用程序和服務拆分為數(shù)十個的支持微服務。一個微服務的策略可以讓工作變得更為簡便,它可擴展單個組件而不是整個的應用程序堆棧,從而滿足服務等級協(xié)議。微服務作為一項在云中部署應用和服務的新技術(shù)已成為當下最新的研究方向[1~3]。

面向服務的架構(gòu)SOA(Service-Oriented Archi?tecture)將組件發(fā)布成服務,通過對外提供不同的服務來支持應用系統(tǒng)的接口。微服務是在SOA的基礎(chǔ)上發(fā)展起來的,微服務架構(gòu)強調(diào)更徹底的組件化和服務化,原來應用被拆分為一系列獨立分布的微服務,每個微服務都可以獨立部署。微服務架構(gòu)的特性,使得其面臨嚴峻的安全問題。由于微服務向外提供服務時,需要向外暴露更多的接口,使得微服務遭受攻擊的可能性增加。但微服務之間通常被設計為相互信任,假如入侵者入侵了某個微服務,完全控制了這個微服務,那么入侵者可以向其他微服務發(fā)送請求獲取敏感信息,甚至攻擊其他微服務導致整個系統(tǒng)癱瘓,對于這種內(nèi)部攻擊服務的設計者往往是沒有防范的[4],此外,微服務應用還面臨著一些權(quán)限攻擊的威脅,入侵者可能會繞過應用的權(quán)限管理機制,提升自己的權(quán)限。因此,在微服務應用上進行入侵檢測顯得很有必要。

傳統(tǒng)的入侵檢測技術(shù)主要擁有網(wǎng)絡安全,面對微服務應用上的多種攻擊手段顯得力不從心,上面提到的內(nèi)部攻擊中入侵者如果僅僅向其他微服務發(fā)送一些請求來竊取隱私,在主機和網(wǎng)絡上的特征與正常的微服務調(diào)用不會有任何區(qū)別,因而很難檢測出來[5~6]。

針對以上問題,本文微服務架構(gòu)下提出基于應用特征向量技術(shù)來解決微服務應用上的入侵檢測難題。

2 相關(guān)研究

有關(guān)微服務的入侵檢測的研究尚不充分,與之相關(guān)的是微服務的故障診斷以及微服務應用監(jiān)管的研究。

王子勇等提出一種基于執(zhí)行軌跡監(jiān)測的微服務故障診斷方法。首先,利用動態(tài)插樁監(jiān)測服務組件的請求處理流,進而利用調(diào)用樹對請求處理的執(zhí)行軌跡進行刻畫;然后,針對影響執(zhí)行軌跡的系統(tǒng)故障,利用樹編輯距離來評估請求處理的異常程度,通過分析執(zhí)行軌跡差異來定位引發(fā)故障的方法調(diào)用;最后,針對性能異常采用主成分分析抽取引起系統(tǒng)性能異常波動的關(guān)鍵方法調(diào)用[7]。

劉一田等研究了傳統(tǒng)分布式系統(tǒng)監(jiān)控技術(shù)及基于服務調(diào)用鏈的分布式系統(tǒng)追蹤技術(shù),在此基礎(chǔ)上,設計了柔性微服務監(jiān)控框架,給出了高可用配置中心、無侵入的微服務實例客戶端代理、靈活可復用的監(jiān)控告警模板等創(chuàng)新點,闡述了該框架的架構(gòu)設計及關(guān)鍵實現(xiàn)技術(shù)[8]。

李明等借鑒自然免疫系統(tǒng)的學習、記憶和模式識別等機制,考慮了網(wǎng)絡安全免疫系統(tǒng)模擬其原理和功能,利用分散于網(wǎng)絡各層面的代理協(xié)同監(jiān)測入侵行為,實現(xiàn)威脅的有效應答,聯(lián)合做出響應,并實現(xiàn)安全防御,以此解決復雜環(huán)境中防護的被動性和盲目性問題。提出了一種基于微架構(gòu)的網(wǎng)絡安全免疫模擬系統(tǒng)。該系統(tǒng)由微容器、微服務、微鏈路和微流程四個層次的模擬機制構(gòu)成,基于生物免疫系統(tǒng)中組件表現(xiàn)出的主動性、自適應性和反應性等屬性特征,構(gòu)建監(jiān)測代理、控制代理、管理代理和安全策略管理中心代理四類典型功能要素,并在指定的場景中按照預設參數(shù)和規(guī)則運行,以驗證網(wǎng)絡安全免疫模擬系統(tǒng)實現(xiàn)協(xié)同檢測、聯(lián)合響應、聯(lián)動阻斷、應急恢復等能力和效能水平[9]。

上述系統(tǒng)或者研究沒有從微服務應用的本身來考慮如何對微服務應用的入侵進行檢測。目前在數(shù)據(jù)庫和網(wǎng)絡安全領(lǐng)域,利用系統(tǒng)應用特征進行入侵檢測技術(shù)變得越來越流行。系統(tǒng)應用功能特征反映為對系統(tǒng)的方法調(diào)用、服務調(diào)用、權(quán)限控制等,對于這方面的檢測能夠察覺出系統(tǒng)中很微小的差異,因此能夠發(fā)現(xiàn)入侵或者故障[10~12]。

3 基于微服務架構(gòu)的特征向量

3.1 應用的特征向量

在系統(tǒng)應用處理客戶端或者其他應用的請求時,會調(diào)用微服務,繼而引起微服務之間的相互調(diào)用,形成一次調(diào)用鏈。一次調(diào)用鏈對應系統(tǒng)中某個客戶端對系統(tǒng)功能和權(quán)限的使用,本次調(diào)用鏈中的系統(tǒng)功能和權(quán)限屬性用微服務應用特征向量來描述。

用LinkID來描述調(diào)用鏈,調(diào)用鏈中的每個調(diào)用請求用InvokeID來表示。一次調(diào)用對應的微服務應用特征向量由四元組:

來描述。其中S表示請求服務,F(xiàn)表示調(diào)用函數(shù)或方法,PList表示請求參數(shù)列表。

一個調(diào)用鏈由多個應用特征向量組成,用特征向量組來描述,即

其中n為特征向量的數(shù)量,Vi為第i個應用特征向量,RList表示產(chǎn)生該特征向量集合的用戶角色列表。

從式(2)可知,一個特征向量集合由多個特征向量組成,對于一個特征集合VS中的兩個特征向量,如果InvokeIDi為InvokeIDi+1的前綴,說明系統(tǒng)中存在服務Si對于服務Si+1中方法Fi+1的調(diào)用路徑,即存在InvokeIDi與InvokeIDi+1之間的這種關(guān)系表示為InvokeIDi=Parent(InvokeIDi+1)。 同 時 VS 中 存 在LinkID到V1,…,Vi,…Vn的映射關(guān)系以及LinkID到RList的映射關(guān)系。下面給出特征向量集合中這些關(guān)系的定義。

定義特征向量關(guān)系VSR如下:

在式(3)中:

VI(LinkID,Si)={<Sj,F(xiàn)j>,…,<Sk,F(xiàn)k>,…,

其中式(4)表示Vi的調(diào)用列表,即Vi調(diào)用Vj,…,Vk。

VM(LinkID)={Vm,…,Vk,… Vn}為調(diào)用順序列 表 ,標 記 為{Vm1,…,Vmk,…,Vmp}。 VR(LinkID)=RList={Rm,…,Rk,… Rn}為調(diào)用角色列表,標記為{Vr1,…,Vrk,…,Vrp}。

一個特征向量關(guān)系對應應用系統(tǒng)中的功能和權(quán)限特征。一個應用系統(tǒng)的特征向量關(guān)系全集表示如下:

由于應用的功能在開發(fā)完成后將是固定和有限的,對應的功能特征也應該是有限的。

特征向量關(guān)系全集體現(xiàn)出三種關(guān)系,即:VI=∪Vi,VM= ∪Vm,VR=∪Vr;

VI描述了整個應用中某個微服務可以調(diào)用的其他微服務及方法的集合,VM描述了系統(tǒng)功能在調(diào)用層級調(diào)用順序方面的屬性,VR關(guān)系描述了系統(tǒng)功能與系統(tǒng)角色的對應關(guān)系。這三種關(guān)系分別對應三種入侵,假如系統(tǒng)中出現(xiàn)了異常的調(diào)用路徑,那么該調(diào)用路徑必然沒有在VI中出現(xiàn)過,假如系統(tǒng)中出現(xiàn)了異常的調(diào)用順序與層次,那么該調(diào)用順序及層次一定沒有在VM中出現(xiàn)過,假如系統(tǒng)中出現(xiàn)了異常的功能角色映射關(guān)系,那么該映射關(guān)系必然不符合VR關(guān)系。

3.2 特征向量提取

特征向量的提取是指由調(diào)用鏈中提取出特征向量的過程,由于調(diào)用鏈中每個請求信息在請求的發(fā)送方和接受方都會記錄一份調(diào)用記錄,特征向量提取后就可以檢測是否有日志遺漏或者被篡改的情況。

入侵者在入侵了某個微服務或者該服務所在的虛擬機后,可能會擁有該服務或者該服務所在的虛擬機的所有權(quán)限,該服務或者節(jié)點的調(diào)用鏈的記錄和傳輸會受到影響,從而變得不再可信,最終影響整個調(diào)用記錄的可信度。為此可以檢測服務的發(fā)送方和請求方共同對請求信息進行記錄的方法,該方法可以保證服務的發(fā)送方和請求方中有一方出現(xiàn)被侵入,日志無法傳輸或者被篡改的情況可以被快速檢測出來。

上面的檢測主要發(fā)生在特征向量V的生成過程,在通過檢測生成了全部的特征向量之后,便可以通過特征向量V中InvokeID屬性建立特征向量的Vi和Vm關(guān)系,Vr可由日志記錄與用戶身份信息相結(jié)合后生成。

3.3 應用特征向量集合生成

應用特征向量是全集的生成方法就是將應用程序中所有功能對應的特征向量全部提取出來,生成特征向量關(guān)系集合VSR的過程。在提取時要保證調(diào)用鏈數(shù)據(jù)都是正常的,這樣才能夠得到正確的特征向量。

為保證得到數(shù)據(jù)集的完備性,將采用增量更新的生成方法。在增量更新時,特征的獲取與應用程序同時運行。隨著系統(tǒng)的不斷運行,當客戶端和外部系統(tǒng)逐步使用了系統(tǒng)的全部功能和權(quán)限后,即可獲取全部的特征向量集合。當特征向量集合的數(shù)量不再增加,特征向量集合中三種關(guān)系的數(shù)量也趨于穩(wěn)定的時候,說明特征向量集合中已經(jīng)包含了應用系統(tǒng)的所有功能特征,增量獲取過程結(jié)束。

在生成過程中,首先把特征向量集合全集置空,針對每一個特征向量計算VI,VM和VR。在計算VI和VM時,直接把每一個向量Vi和Vm并入到向量集合VI和VM中。在計算VR時,需要進行如下計算,給定兩個指標i和j,如果存在Vii=Vij且Vmi=Vmj即如果兩個特征向量Vi和Vm關(guān)系相等,這兩個關(guān)系特征向量相等,需要對向量合并,即把Vrj合并到 Vri中。

4 基于微服務架構(gòu)的入侵檢測算法

基于特征向量的微服務架構(gòu)的入侵檢測算法AIDMAFV(Algorithm of Intrusion Detection for Mircoservice Architecture based on Feature Vector)描述如下。

AIDMAFV(DB){

select VRS from DB;//數(shù)據(jù)庫DB中記錄全部應用信息

calculate VI,VM and VR;

generate VSR;

select count(*)into c from VSR where <S,F(xiàn)> not in VI and <S,F(xiàn)> in Vi;

if c=0 then

for i=1 to n

if Vmi∈VM and Vmi=Vm then

flag=1;

lid=Link IDi;

end if

end for

if flag=1 and then

if Vr∈VR(lid)then

return 1;//正常

else

return-3;//第三層異常

end if

else

return-2; //第二層異常

end if

else

return-1; //第一層異常

end if

算法AIDMAFV包括三個層次:1)微服務之間調(diào)用檢查,微服務之間調(diào)用檢查關(guān)注于應用系統(tǒng)內(nèi)部微服務對于其他微服務發(fā)送的請求。由于微服務往往被設計為相互信任的,所以微服務之間的調(diào)用往往是不做檢查的,但是如果入侵者控制了某一個微服務,可以通過該微服務調(diào)用應用系統(tǒng)內(nèi)部其他微服務,這樣可能會產(chǎn)生原來系統(tǒng)中不存在的調(diào)用路徑。第一層的檢查可以檢查出這樣的內(nèi)部攻擊。在特征向量集合中,VI關(guān)系用來描述微服務之間的調(diào)用關(guān)系,規(guī)定了服務可以調(diào)用其他服務的哪些方法,所以第一層的檢查就是檢查微服務之間的調(diào)用是否滿足VI所定義的調(diào)用關(guān)系。2)微服務調(diào)用層次及順序檢查。第二層主要對于微服務調(diào)用的層次及順序進行檢查。假如入侵者控制了某一個微服務,入侵者可以在該微服務的調(diào)用方法中加入多次其他的調(diào)用請求,或者打亂該微服務中所有調(diào)用的順序,以此達到消耗系統(tǒng)資源,妨礙應用系統(tǒng)向外提供服務,甚至危害整個應用系統(tǒng)的目的。在特征向量集合中,VM關(guān)系記錄了所有合法的調(diào)用請求的層次和順序關(guān)系,上述情況發(fā)生后追蹤記錄提取出的特征向量會出現(xiàn)VM關(guān)系中不存在的層次和順序關(guān)系,所以這種情況可以在第二層檢測出。該層的檢查是在第一層微服務之間調(diào)用檢查通過之后進行的。3)功能與用戶角色映射關(guān)系檢查。該層的檢查主要對于特征向量中VR關(guān)系的檢查。入侵者可能通過應用系統(tǒng)或者底層操作系統(tǒng)的某些漏洞,繞過應用系統(tǒng)的權(quán)限檢查機制,提升自己的權(quán)限,從而竊取系統(tǒng)內(nèi)敏感信息,甚至破壞應用。這種行為會違反功能與用戶角色的映射關(guān)系,因而可以通過對于功能與用戶角色的映射關(guān)系的檢查來發(fā)現(xiàn)這種行為。首先檢查產(chǎn)生該行為模式的用戶身份,找到該用戶對應的角色,然后查看該特征向量的Vp中是否能夠找到該角色,如果能夠找到,則通過該階段檢驗,檢測不通過。

如果一次調(diào)用產(chǎn)生的特征向量能夠通過上面三個層次檢測,那么這次追蹤對應的調(diào)用就是正常。否則,不同階段會給出不同的報警信息,并記錄到數(shù)據(jù)庫中,供應用擁有者統(tǒng)計分析。

5 實驗分析

實驗硬件環(huán)境由三臺PC機組成,PC機配置CPU為i7 2.7G,運行Windows10操作系統(tǒng)。共運行如下程序:10個分布式應用,10個特征向量收集程序,1個入侵檢測程序。

采用查全率、查準率、誤檢率和漏檢率來評價入侵檢測效果。其定義如下:

為了能夠正確評價提出的算法,隨機生成測試事件,測試事件由正常事件和入侵事件組成。

首先測試算法的擴展性,分5組實驗,每組總數(shù)分別為100、500、1000、2000和10000個。正常事件與入侵事件按照7∶3的比例生成,共有3類入侵事件,每類各占總數(shù)的10%。實驗結(jié)果如表1所示。

表1 入侵檢測的擴展性

從表1可以看出,隨著測試集的大小不斷增加,當事件數(shù)量大于500時,查全率一直維持在95%~96%之間,查準率將近98%,而誤檢率和漏檢率也都維持在一個比較低的水平。當事件數(shù)量較小時,誤報率和漏檢率較高,說明對小的應用算法存在一定誤差。檢查測試數(shù)據(jù)后發(fā)現(xiàn),漏報和誤報主要是因為有些不常用的功能存在一定誤差。

再把總事件數(shù)固定為1000,增加入侵事件數(shù)量來測試算法性能,三種入侵事件隨機分布,測試結(jié)果如表2所示。

表2 隨異常事件變化的入侵檢測的擴展性

從表2可以看出,算法的性能基本與入侵事件數(shù)量關(guān)系不大,只是在入侵數(shù)量比較少和比較多的時候,性能稍有下降。

6 結(jié)語

微服務架構(gòu)是適合云計算的新型軟件架構(gòu),本文研究微服務架構(gòu)的安全問題,關(guān)注使用微服務架構(gòu)的應用的入侵和故障檢測,把入侵分為功能異常、調(diào)用順序異常和權(quán)限異常三種層次,然后提取這三種異常的特征向量,進而檢測出這些異常,實驗結(jié)果表明提出的入侵檢測算法具有很好的性能。

猜你喜歡
特征向量調(diào)用架構(gòu)
克羅內(nèi)克積的特征向量
高中數(shù)學特征值和特征向量解題策略
功能架構(gòu)在電子電氣架構(gòu)開發(fā)中的應用和實踐
基于B/S架構(gòu)的圖書管理系統(tǒng)探究
構(gòu)建富有活力和效率的社會治理架構(gòu)
系統(tǒng)虛擬化環(huán)境下客戶機系統(tǒng)調(diào)用信息捕獲與分析①
三個高階微分方程的解法研究
VoLTE時代智能網(wǎng)架構(gòu)演進研究
利用RFC技術(shù)實現(xiàn)SAP系統(tǒng)接口通信
矩陣方法求一類數(shù)列的通項