蘇 振 宇
(浪潮集團高效能服務器和存儲技術國家重點實驗室 山東 濟南 250101)
服務器是在網絡環境下提供文件、數據庫、應用程序、Web等計算服務的設備。由于在網絡空間中存在著諸多的脆弱性和威脅,因此作為網絡空間的計算節點,服務器需要具備安全措施以滿足機密性、完整性、可用性等信息安全目標,否則將會成為網絡空間的安全隱患,甚至危及到國家安全。當前黑客的入侵手段在傳統的竊取信息為主的應用軟件攻擊、操作系統攻擊基礎上擴大為入侵固件和毀壞硬件設備的硬件攻擊,給我國的信息安全產業敲響了警鐘。因此,服務器的固件安全問題應當引起重視。
攻擊樹是一種圖形化的威脅建模方法,針對攻擊類型的變化多樣,提供了正式的方法描述系統安全[1]。該模型把對系統的攻擊放置到樹型結構中進行展現,要達成的目標表示成根節點,要達成目標采用的各種方法表示成葉節點。由于攻擊樹模型易于呈現,具有形式化分析的特點,已有學者將攻擊樹應用于不同的目標系統中進行威脅分析、風險評估等工作。
文獻[2]提出了一種基于攻擊樹的工業控制系統信息安全風險評估方法,定量分析了各攻擊序列遭受攻擊風險概率的大小,有助于找到最有可能被攻擊者利用的攻擊路徑和方式,不足之處在于量化葉節點指標時引入了主觀因素的干預。文獻[3]提出了一種改進的基于擴展攻擊樹模型的木馬檢測方法,在木馬檢測效率、準確度方面有較好的表現,但不能全面地發現各種威脅。文獻[4-5]設計了基于層次分析法的攻擊樹模型,彌補了傳統攻擊樹模型在計算攻擊事件發生概率時未考慮各安全屬性權值的缺點,但未充分考慮葉節點在安全屬性賦值時人的模糊性。文獻[6]提出了一種基于層次分析法的攻防樹模型,在考慮葉節點時給出了攻擊和防御葉節點的安全屬性,但也未能克服層次分析法的缺陷。
因此,基于目前的研究進展,本文采用基于模糊層次分析法(FAHP)的攻擊樹模型對服務器的固件進行威脅建模和安全風險分析,為了最大化消除人的主觀性因素,建立了模糊一致判斷矩陣計算葉節點安全屬性權值,從而客觀定量地計算出權值向量。
固件是程序編譯后形成的二進制文件,并固化封裝在芯片中,其功能是完成將機器的控制權由處理器硬件轉交給操作系統的任務[7]。與操作系統和軟件攻擊不同,固件攻擊的主要特點包括可直接攻擊硬件、可直接攻擊操作系統、攻擊行為不容易檢測、難以清除固件木馬等。
美國國家標準技術研究院(NIST)發布的SP800-193標準中列舉了服務器平臺的固件種類[8],圖1為服務器主板的硬件架構圖,以下對其中包含固件的模塊及面臨的安全風險進行分析。

圖1 服務器硬件平臺構成
(1) 基板管理控制器(Baseboard Management Controller,BMC)。BMC是服務器的管理控制單元,基于嵌入式處理器并運行經過內核裁剪的Linux操作系統,通過Web頁面方式進行遠程控制和管理。BMC通常面臨Linux系統、網絡協議、Web應用被侵入的安全風險,還面臨Http、IPMI[9]、SNMP、SSH等協議的固有安全缺陷問題。
(2) 基本輸入輸出系統(Basic Input and Output System,BIOS)。BIOS是主處理器啟動固件,基于統一可擴展固件接口(Unified Extensible Firmware Interface,UEFI)標準[10],作用是對服務器硬件進行初始化和配置。BIOS面臨的威脅包括植入病毒、木馬,利用配置漏洞和UEFI協議漏洞進行攻擊等。例如通過系統管理模式(SMM)隱藏Rootkit惡意代碼,可以執行特權指令和IO操作,該模式只能被固件調用,并且對操作系統完全透明。
(3) 硬盤。包括機械硬盤(Hard Disk Drive,HDD)和固態硬盤(Solid State Drive,SSD),其內部都具有控制器芯片,針對硬盤控制器的固件進行攻擊能夠繞過操作系統的監控,直接對硬盤數據進行修改[11]。
(4) 網絡接口控制器(Network Interface Controller,NIC)。即網卡,面臨的安全風險為存儲在網卡可變存儲區中的MAC地址等關鍵數據被篡改會導致拒絕服務(Denial of Service,DoS)攻擊。
(5) 圖形處理單元(Graphics Processing Unit,GPU)。面臨的安全威脅主要是在GPU卡固件中植入惡意代碼,進行Rootkit攻擊。例如,利用木馬能夠對用戶的鍵盤敲擊進行記錄,并將信息存儲在板卡中,達到跨平臺隱藏Rootkit的目的[12]。
(6) 可編程邏輯器件。包括FPGA、CPLD等,作為系統操作的基礎邏輯器件,其二進制編程文件一旦被破壞會導致硬件平臺基礎功能受損[13]。
(7) 電源。服務器主板的供電電源中也有控制芯片,電源固件也存在被攻擊的安全風險。
除了固件攻擊手段之外,對服務的攻擊方式還包括對軟件、系統層面的攻擊,這些攻擊手段共同構成了對服務器的攻擊森林,而固件攻擊是森林中的一棵樹。根據以上固件的威脅分析,建立服務器固件的攻擊樹模型,如圖2所示。

圖2 威脅樹模型
圖2中,根節點G代表攻擊者最終的攻擊目標,即服務器的固件;葉節點表示采取的各種攻擊手段,即具體攻擊事件;中間節點表示攻擊的中間步驟。
設Pm為父節點實現的概率,Pm1、Pm2、…、Pmn為其下各個子節點的實現概率。對于具有AND(邏輯與)關系的節點,父節點的實現概率為其下各個子節點的實現概率之積[2],即:
Pm=Pm1×Pm2×…×Pmn
(1)
對于具有OR(邏輯或)關系的節點,其父節點實現概率為其下各個子節點實現概率中的最大值[2],即:
Pm=max{Pm1,Pm2,…,Pmn}
(2)
攻擊樹各節點的含義如表1所示。

表1 攻擊樹各節點含義
層次分析法(AHP)是威脅建模中采用較多的一種方法,AHP建立層次結構模型之后需要構造判斷矩陣并進行層次排序,之后計算模型中各層的構成要素相對于目標的組合權重,其缺點是如果建立的判斷矩陣不合理,AHP的效果較差[4]。而FAHP相對于AHP的優點在于:在AHP構造的判斷矩陣的基礎上,通過元素之間的逐一比較進而構成模糊一致矩陣,由模糊一致矩陣求解各元素相對重要性權重的方法比AHP合理。FAHP的合理性分析具體如下:
基于模糊數學的理論,元素之間的模糊關系用模糊矩陣表示,設e1,e2,…,en為待比較的元素,構成集合U={e1,e2,…,en};存在矩陣R=(rij)n×n,矩陣元素rij表示ei與ej之間的模糊關系,具體意義是:
(1)rij表示元素ei與ej的重要程度之比,即rij越大,ei相對ej就越重要,rij>0.5表示ei比ej重要,rij<0.5則表示ej比ei重要。
(2) 由(1)中rij的性質可知,1-rij則表示元素ei相對ej不重要的程度,根據互補性質,有rji=1-rij,即R=(rij)n×n是模糊互補矩陣。
(3) 在確定元素ei比元素ej重要程度(即rij>0.5)的過程中如果具有思維一致性,對于R中的任意2行,有rik>rjk,(k= 1,2,…,n);另外,rik-rjk是ei比ej相對重要的程度,再加上ej自身與自身比較的重要程度rjj,可得ei比ej絕對重要的度量值rij,即rij=rik-rjk+0.5,可知R=(rij)n×n是模糊一致矩陣。
因此,由模糊一致矩陣的性質可知,用模糊一致矩陣R=(rij)n×n表示集合U={e1,e2,…,en}中元素ei比ej(i,j=1,2,…,n)重要的模糊關系是合理的。
由此可知,FAHP的優點是基于尺度表對元素之間兩兩逐一比較后構造出模糊判斷矩陣,把不符合一致性的模糊判斷矩陣轉換成模糊一致判斷矩陣,最后利用模糊一致判斷矩陣求出各元素相對重要性的權值。
定義攻擊樹每個葉節點的安全屬性包括:攻擊成本(Ecost)、攻擊難度(Ediff)和攻擊被發現的可能性(Edet)[2]。每個葉節點實現的概率為:
Pi=Wcost×Ucost(i)+Wdiff×Udiff(i)+Wdet×Udet(i)
(3)
式中:Pi表示葉節點發生的概率;Wcost、Wdiff和Wdet分別表示攻擊成本、攻擊難度和攻擊被發現的可能性的權值,且Wcost+Wdiff+Wdet=1。Ucost、Udiff、Udet表示葉節點的攻擊成本、攻擊難度和攻擊被發現的可能性的效用值[6]。在工程實踐中,采用專家打分的等級評分方式對葉節點的3個安全屬性進行評估,如表2所示。

表2 安全屬性評分標準
由前面分析可知,為了盡可能減少由專家打分帶來的主觀因素的影響,采用FAHP計算安全屬性的權值。由FAHP構造的模糊一致矩陣的主要定理有:
定理1模糊互補矩陣R=(rij)n×n是模糊一致矩陣的充要條件是任意指定的兩行rik與rjk對應元素之差為常數[14],即rik-rjk=rij-0.5。
定理2模糊互補矩陣R=(rij)n×n是模糊一致矩陣的充要條件是任意指定行rik和其余各行rjk對應元素之差為常數[14],即rik-rjk=aj-ai,aj-ai為常數。
根據前面建立的攻擊樹模型可知,由于葉節點具有3個安全屬性,因此首先構造判斷矩陣:
表3給出了使用0.1~0.9比較尺度對元素進行兩兩比較的說明,其中e1-e3為安全屬性的3個元素,e1=Ecost,e2=Ediff,e3=Edet。
根據模糊一致矩陣的性質,即式(4)-式(6)檢查矩陣C的一致性:
rii=0.5i=1,2,…,n
(4)
rij=1-rjii,j=1,2,…,n
(5)
rij=rik-rjk+0.5i,j,k=1,2,…,n
(6)
(7)
本例中C=C′,為模糊一致矩陣,之后根據式(8)求解各安全屬性權值,公式推導見文獻[14]。
(8)
式中:a與權重的差異度成反比,當a=(n-1)/2時,權重的差異度越大。本文取a=(n-1)/2,n為模糊一致矩陣的階數,本例中n=3,因此a=1,經過計算得到矩陣的權值向量wc=(0.333 3 0.433 3 0.233 4)T。因此葉節點的權值為Wcost=0.333 3,Wdiff=0.433 3和Wdet=0.233 4。
在威脅量化階段,由專家評分的方式按照表2對攻擊樹每個葉節點的安全屬性進行判斷和打分,得到表4。

表4 安全屬性評估值
每個葉節點的安全屬性效用值Ucost、Udiff、Udet與表中的攻擊成本、攻擊難度和攻擊被發現的可能性成反比關系[2],為方便計算,不妨令Ucost=1/Ecost,Udiff=1/Ediff,Udet=1/Edet。由表4可計算出每個葉節點的3個安全屬性效用值。
結合上述已計算得出的安全屬性權值,根據式(3)可以計算出每個葉節點的概率,例如E1的攻擊概率為:P1=0.333/1+0.433 3/2+0.233 4/4=0.608。由此可以計算出全部葉節點的攻擊概率,見表4中最后一列。
攻擊路徑R是攻擊樹葉節點{E1,E2,…,En}的一個最小割集,即實現攻擊樹根節點所需的相關葉節點構成的集合。由圖2可知,一共有12條路徑,分別為R1={E1},R2={E2},R3={E6,E7},R4={E3},R5={E8,E9},R6={E4},R7={E10},R8={E11},R9={E12},R10={E13},R11={E14},R12={E5}。根據式(1)和式(2),可以計算出每個攻擊路徑的概率,如表5所示。

表5 攻擊路徑實現的概率
可以看出,攻擊路徑R1、R2的概率最高,實現較容易。R1、R2分別為利用Linux系統漏洞和Web漏洞進行攻擊,都與BMC有關,因此在實際應用中需要重點保證BMC的安全性,防止黑客通過BMC入侵服務器。根據式(1)、式(2)可知,根節點的攻擊概率為所有攻擊路徑中的概率最大值,本例中R2的攻擊概率最大,因此根節點的攻擊概率為0.628。
為了進一步分析FAHP在攻擊樹威脅模型中的作用,將FAHP與文獻[4]采用的AHP作對比分析。AHP運用標度1~9確定每一屬性的重要程度,構造判斷矩陣C之后計算其最大特征根和特征向量,最后通過歸一化計算任意屬性相對于某一準則的權值[4]。文獻[4]中構造的判斷矩陣為:

經計算得出最大特征根λmax=3.038 5,另外定義了參數CR作為一致性比率,將CR<0.1作為驗證判斷矩陣C具備一致性的標準,最后經過歸一化處理得出了葉節點的權值,見表6。

表6 本文方法與文獻[4]中各屬性權值對比
作為與本文方法的對比,利用文獻[4]的方法,將安全屬性權值代入式(3),重新計算了本文中攻擊樹模型的每個葉節點的指標。圖3是本文方法與文獻[4]方法計算得出的每個葉節點的概率對比;圖4是本文方法與通過文獻[4]得出的攻擊路徑概率的對比。

圖3 葉節點實現概率對比圖

圖4 攻擊路徑概率對比圖
可以看出,本文方法與利用文獻[4]方法計算出的各葉節點發生概率和攻擊概率的差異較大,例如對于E1節點,本文方法得出的概率為0.608,利用文獻[4]計算出的概率僅為0.49;對于攻擊路徑R2,本文的概率為0.628,文獻[4]計算后僅為0.51。產生以上情況主要是由于各安全屬性的權值不同,具體原因是由AHP構造判斷矩陣的方法帶有較強的主觀性,缺乏思維一致性,從而導致計算葉節點發生概率和攻擊概率的準確性較差。此外AHP分析方法存在的問題還有:
(1) 驗證判斷矩陣具備一致性的結論是通過計算矩陣的最大特征根λmax并與矩陣階數n進行比較后得出的,即λmax=n說明判斷矩陣具有一致性。由于n為整數,而計算出的λmax不一定為整數,所以驗證判斷矩陣一致性的準確性較差,并且當n較大時,計算λmax比較耗時。
(2) 通過計算得出判斷標準CR<0.1說明判斷矩陣具有一致性,其結論缺乏理論依據和相關說明。
而本文采用FAHP構造模糊一致矩陣的方法相比AHP由最大特征根和特征向量驗證判斷矩陣一致性的方法更加準確。此外,FAHP調整矩陣元素的方法比AHP方法便捷,省略了后者必須經過多次調整、驗證的繁瑣步驟,從而使得判斷矩陣轉換為模糊一致矩陣的方法更加容易。
總之,FAHP能夠有效降低人的主觀因素的影響,客觀計算出葉節點的發生概率和攻擊路徑概率,通過以上的對比分析可以看出本文方法的有效性。
最后,根據以上分析,為了緩解服務器的安全風險,需要制定威脅應對方案。為此,表7針對攻擊樹的每個葉節點制定了威脅應對措施,以便降低識別出的威脅對服務器固件的影響,從而降低安全風險,提升服務器應對固件攻擊的能力。

表7 防御列表
本文針對服務器固件面臨的攻擊趨勢和安全威脅,提出基于攻擊樹的威脅模型,并且采用FAHP建立模糊一致判斷矩陣計算各葉節點的安全屬性值,從而最大化消除了人的主觀因素的影響,進而計算了葉節點實現概率和攻擊路徑概率。最后根據該模型對每個葉節點制定了威脅應對措施,從而達到威脅消減的目的。
在工程實踐中,該模型應用于需求分析階段,以便盡可能多地識別安全風險,提供安全設計指導,提升服務器固件應對安全威脅的能力。由于通過一次威脅建模不可能全面識別系統的全部威脅,需要結合研發過程、測試、需求變更等因素對模型不斷的完善和改進,因此建模過程是一個不斷迭代和優化的過程。
后續工作是在固件設計、開發階段中根據制定的威脅應對措施開展固件安全設計工作,并且在測試階段進行安全性測試,根據實際測試出的安全漏洞進一步調整和優化威脅模型。