(上海交通大學醫(yī)學院附屬上海兒童醫(yī)學中心,上海 200127)
計算機系統(tǒng)存在可以被滲透的脆弱性,全面的潛在漏洞修復需要花費大量時間和人工成本,所以要對漏洞按照安全等級進行排列,并處理其中的關(guān)鍵漏洞。因此,網(wǎng)絡(luò)安全風險評估需要解決兩個問題:一是潛在漏洞的安全程度,二是被攻擊漏洞間的隱含關(guān)系。攻擊圖主要解決第二個問題,方便安全漏洞的定性、定量分析,做出最優(yōu)安全決策。然而,單一方法很難全面、準確地分析潛在漏洞,從而做出最優(yōu)安全管理策略。因此,從多種模型相結(jié)合的角度分析網(wǎng)絡(luò)安全漏洞,可以提高攻擊意圖判斷的準確性、合理性[1-2]。隱馬爾可夫模型(HMM)通過建立網(wǎng)絡(luò)觀測、攻擊狀態(tài)間的概率映射,詳細地定義模型參數(shù)的計算方法,利用Viterbi算法進行攻擊結(jié)果序列計算,準確推演攻擊意圖,方便安全管理人員進行準確的目標網(wǎng)絡(luò)安全評估。
目標網(wǎng)絡(luò)通過脆弱關(guān)聯(lián)性、網(wǎng)絡(luò)拓撲掃描攻擊獲得設(shè)備配置、脆弱關(guān)聯(lián)信息,并將相關(guān)信息進行模型化描述。描述后的信息輸入NuSMV工具中[3],生成目標網(wǎng)絡(luò)攻擊圖。借助HMM模型建立網(wǎng)絡(luò)觀測、攻擊狀態(tài)間的概率映射,將攻擊圖轉(zhuǎn)換為狀態(tài)轉(zhuǎn)換圖[4-5]。然后,利用Viterbi算法計算出最高概率的攻擊路徑序列,以此推斷攻擊者意圖,從而做出合理的安全防范措施,評估過程如圖1所示。
圖1 安全評估過程
將HMM引入網(wǎng)絡(luò)安全風險評估模型,應(yīng)對網(wǎng)絡(luò)攻擊手段不易察覺的問題。目標主機被攻擊后的狀態(tài)對應(yīng)于HMM隱含狀態(tài)[6],利用漏洞、端口監(jiān)控機制形成可觀測脆弱性集合。
(1)定義參數(shù)
隱含狀態(tài)集Si=ATK{Ha,Hw,vi},其中Si為系統(tǒng)受到攻擊后的狀態(tài),Ha為主機,vi為漏洞,Hw為攻擊后的主機狀態(tài)。π={aij}={p(Z1=Si)}時刻為1時,初始狀態(tài)Zi等于Si的概率,π為轉(zhuǎn)換矩陣??捎^測集合V={v1,v2,…,vm},v是可以利用的漏洞,m代表漏洞數(shù)量。如果觀測集合的漏洞數(shù)量與隱含狀態(tài)集合數(shù)量一致,則HMM用λ={A,B,π}表示,其中A代表系統(tǒng)在t時刻狀態(tài)為Si的概率;B代表在vi狀態(tài)中觀測Sj的概率。
(2)確定參數(shù)
HMM為消除量化指標的主觀性因素,以CVSS作為脆弱點危險程度的依據(jù),如表1所列。
表1 量化依據(jù)中屬性等級和賦值
設(shè)Dvi為成功利用vi的概率,其計算公式為:
Dvi=AV×AC×Au
(1)
Dvi與vi正相關(guān),與AC負相關(guān)。在Z1基態(tài)到Si狀態(tài)轉(zhuǎn)變過程中,不斷產(chǎn)生新漏洞,直到觀測為vi的目標狀態(tài)Si出現(xiàn),才實現(xiàn)漏洞成功利用。其中,轉(zhuǎn)化矩陣π中元素aij公式為:
(2)
系統(tǒng)處于Z1時,成功利用vi出現(xiàn)概率為1;系統(tǒng)處于Z1狀態(tài)時,不能成功利用vi轉(zhuǎn)化為Si,出現(xiàn)概率為Dvi;系統(tǒng)處于Z1狀態(tài)時,可以成功利用vi轉(zhuǎn)化為Si,出現(xiàn)概率為Dvi+Dvi×Dvj。然后對每一概率進行歸一化處理,得到觀察矩陣。
(3)Viterbi算法
判斷系統(tǒng)最可能出現(xiàn)的狀態(tài)和轉(zhuǎn)化序列,可以準確推斷攻擊意圖,幫助管理員做出最優(yōu)決策。此問題可抽象轉(zhuǎn)換為對已知觀察序列{o1,o2,…,ot},以及模型參數(shù)λ的最優(yōu)隱含狀態(tài)序列的查找。Viterbi采用動態(tài)規(guī)劃,進行最優(yōu)轉(zhuǎn)移迭代分析,確定所需序列。設(shè)置任意路徑為Z*,其最優(yōu)規(guī)劃公式為[7]:
p*=p(o,Z*|λ),?Z
(3)
設(shè)變量φt(i)為t時刻的一條路徑z1,z2,…,zt,初始狀態(tài)Z1等于Si觀測序列的最大概率為:
(4)
那么,
(5)
為能回溯隱含狀態(tài)序列,將變量存儲于φt(i)中,Viterbi具體流程如圖2所示。
算法流程Step1:初始化?1(i)=πibi(o1),1
圖2Viterbi流程
設(shè)置2個服務(wù)器為DB、FS,分別負責客戶端查詢、敏感數(shù)據(jù)存儲,并設(shè)置防火墻??蛻舳嗽O(shè)置服務(wù)器WS,其訪問用戶為3類:guest、user和root,權(quán)限為1級、2級和3級。1級權(quán)限最低,3級權(quán)限最高,并可以進行用戶維護。對服務(wù)器進行漏洞掃描,結(jié)果如表2所列。
表2 漏洞掃描信息表
實驗前設(shè)定相關(guān)信息,主機Ha(攻擊者)與網(wǎng)絡(luò)服務(wù)器(DB、FS)間為信任關(guān)系,關(guān)系模型為
將攻擊事件中變化的因素抽象為有限狀態(tài)機狀態(tài),設(shè)定有限狀態(tài)機模型、網(wǎng)絡(luò)安全屬性的CTL描述后,NusMV模型探測器訪問任何可達到狀態(tài),并對可能路徑上的邏輯屬性進行滿足條件性判斷。如果條件未滿足,檢測機輸出狀態(tài)的軌跡,或者有序形式的反例,形成系列攻擊路徑,利用[8]NusMV模型探測器構(gòu)建目標網(wǎng)絡(luò)攻擊圖。S1=ATK{Ha,DB,v1}代表Ha(攻擊者)利用v1攻擊服務(wù)器DB,獲得root用戶權(quán)限;S2=ATK{Ha,DB,v2}代表Ha(攻擊者)利用v2攻擊服務(wù)器DB,獲得Dos攻擊后的系統(tǒng)狀態(tài);S3=ATK{Ha,FS,v3}代表利用v3攻擊服務(wù)器FS,獲得root用戶權(quán)限;S4=ATK{Ha,WS,v4}代表利用v4攻擊服務(wù)器WS,獲得root用戶權(quán)限;S5=ATK{Ha,WS,v5}代表利用v5攻擊服務(wù)器WS,獲得緩存信息泄露后的攻擊狀態(tài)[8]。依據(jù)上述分析,將關(guān)系轉(zhuǎn)換為HMM狀態(tài)圖,如圖3所示。
圖3 HMM狀態(tài)轉(zhuǎn)換
HMM狀態(tài)轉(zhuǎn)換就是在初始狀態(tài)基礎(chǔ)上,構(gòu)建狀態(tài)集合Si=ATK{Ha,WS,vi},i=1,2,3,并對集合中的每一狀態(tài)進行上一步可達狀態(tài)搜索,重復迭代分析,直到無新狀態(tài)出現(xiàn)[9]。依據(jù)式(1)、(2)、(3),以及表2的漏洞信息,計算攻擊成功概率如表3所列。
表3 漏洞攻擊成功概率
經(jīng)量化處理后,得到HMM參數(shù),結(jié)果為
S={s1,s2,…,s5}狀態(tài)轉(zhuǎn)化概率矩陣為:
V={v1,v2,…,v5}相對系統(tǒng)狀態(tài)集合S={s1,s2,…,s5}之間的觀察概率轉(zhuǎn)化矩陣為:
依據(jù)上述分析,初始狀態(tài)向s1、s2、s3轉(zhuǎn)換,利用C++語言,對Viterbi算法進行實現(xiàn),結(jié)果為:
① π=(1,0,0,0),參數(shù)λ=(A,B,π),觀測序列{v1,v2,…,v5},最大概率隱藏序列為{S1,S2},概率為0.000 345 172;
② π=(0,1,0,0),參數(shù)λ=(A,B,π),觀測序列{v1,v2,…,v5},最大概率隱藏序列為{S2},概率為0.000 121 823;
③ π=(0,0,1,0),參數(shù)λ=(A,B,π),觀測序列{v1,v2,…,v5},最大概率隱藏序列為{S3,S5},概率為0.000 746 495;
綜上所述,最大隱藏狀態(tài)序列為{S1,S2},攻擊者容易利用v1和v2實現(xiàn)對DB服務(wù)器的攻擊。安全管理員需加大DB安全風險控制,優(yōu)先修復服務(wù)器出現(xiàn)的漏洞CVE-2018-2072和CVE-2018-3865,更好地對網(wǎng)絡(luò)信息系統(tǒng)進行維護管理。