敖宇 梁光明
摘 要:脆弱性評估是硬件系統脆弱性檢測的首要問題。以一款具體的DSP系統為研究對象,建立了電路連接拓撲,并且在此基礎上算出了邊的脆弱性權值,進而確定出了系統中脆弱性較高的重要脆弱性源,為脆弱性檢測提供了指導。
關鍵詞: 脆弱性評估; DSP; 電路連接拓撲; 脆弱性權值
中圖分類號: TN702?34 文獻標識碼: A 文章編號: 1004?373X(2014)19?0095?04
Circuit connection topology based vulnerability assessment
algorithm for hardware systems
AO Yu, LIANG Guang?ming
(School of Electronic Science and Engineering, University of National Defense Technology, Changsha 410073, China)
Abstract: Vulnerability assessment is the primary means of hardware system vulnerability detection. Taking a specific DSP system as the research object, the circuit connection topology was established, and based on which the edges vulnerability weights were computed. The fatal vulnerability sources of the system were determined. A guidance for vulnerability detection is provided in this paper.
Keywords: vulnerability assessment; DSP; circuit connection topology; vulnerability weight
0 引 言
信息安全漏洞一直以來都是信息安全的巨大威脅。信息安全漏洞包括軟件漏洞和硬件脆弱性。目前,人們對軟件漏洞的防御措施已非常成熟,這些措施包括漏洞檢測、漏洞特性分析、漏洞定位、漏洞利用、漏洞消控等,這些研究的開展在軟件層面上大大促進了信息安全[1]。
與人們對軟件漏洞研究的廣泛性和深入性相比,對硬件脆弱性的研究仍然相對有限。傳統觀念普遍認為硬件是絕對安全可靠的,這導致了人們對硬件脆弱性的認識和重視相對不足。事實上,在硬件設備的設計、制造和使用過程中,電路、固件、芯片三個層次都可能存在缺陷,這些缺陷可以使脆弱性利用者在未授權的情況下進入硬件系統,從而執行非法操作甚至破壞系統。例如,設計數字電路系統所依賴的CAD(Computer Aided Design)工具中可能存在木馬病毒,從而影響硬件電路;硬件系統的固件如果被惡意篡改,將會造成各種不可預期的后果;在硬件系統的設計過程中廣泛采用的第三方IP(Intellectual Property)核中可能存在惡意邏輯,如果被植入芯片將會改變系統的正確輸出,影響電路時序[2]。
由此可知,同軟件脆弱性檢測一樣,對硬件系統進行脆弱性檢測具有十分重要的意義,其目的是盡量找出硬件系統中潛在的脆弱性。一個復雜的硬件系統可能由幾十種甚至上百種芯片和元器件以及包括連接這些元器件的電路和系統運行所需的固件構成。評估系統各組成部分的脆弱性,確定系統的脆弱性源,有助于人們更有針對性地對硬件脆弱性展開研究、利用或修復。因此,對硬件系統各組成部分進行脆弱性評估是脆弱性檢測的首要問題。
本文以TI(Texas Instruments)公司的TMDSEVM6678L開發板為研究對象,提出了一種基于電路連接拓撲的硬件系統脆弱性評估算法。
1 目標硬件系統簡介
采用TMDSEVM6678L開發板作為脆弱性檢測的研究對象。該款開發板是TI公司近期推出的一款高性價比模塊化開發平臺。板上具有豐富的接口和器件,并且搭載了一枚TI公司先進的TMS320C6678八核DSP芯片,用戶可利用它來開發各種應用。開發板上的關鍵部件包括[3]:多核DSP——TMS320C6678;512 Mb DDR3?1333存儲器;64 Mb NAND FLASH存儲器;16 Mb SPI NOR FLASH存儲器;兩個GB級以太網端口;Hyperlink高性能連接器;170針AMC接口;128 Kb EEPROM;兩只用戶LED、5組撥碼開關和4只程控LED;RS 232串行接口;60針JTAG端板;80針擴展端板上的EMIF,Timer,SPI,UART接口等。
開發板的功能模塊圖如圖1所示。
一塊DSP開發板就可以看作是一個嵌入式硬件系統。作為一個硬件系統,它具有潛在的脆弱性。評估板上各部件的脆弱性,尋找到存在最高安全隱患的脆弱性源,對于脆弱性檢測具有重要價值。
2 算法原理
DSP開發板上的眾多芯片和器件都是通過電路在物理上相連的,兩個器件之間的物理電路可稱為鏈路。一塊芯片有多個引腳,可以通過這些引腳引出電路來與其他器件相連。一般地,重要性越高的器件,它就會有更多的鏈路與其他器件相連;而對于兩個器件來說,連接它們的鏈路所包含的物理電路數目越多,潛在脆弱性也就越高。為了評估開發板上不同器件的脆弱性,將著眼于不同器件之間的鏈路,首先評估兩個器件間鏈路的脆弱性,脆弱性越高的鏈路兩端所連接的器件也具有越高的脆弱性,這樣就最終得到了不同器件的脆弱性高低。
為了便于展開研究,將借助“圖”的數據結構建立起開發板電路的抽象連接拓撲,然后基于電路連接拓撲來評估系統各部分的脆弱性。
2.1 電路連接拓撲的建立
圖是一種常用的數據結構,可以用圖來表示若干節點之間相互的連接關系。在圖形結構中,節點之間的關系可以是任意的,圖中任意兩個數據元素之間都可能相關[4]。圖[G(Graph)]由集合[V(Vertex)]和[E(Edge)]組成。其中[V]是頂點的有限集合[V=v1,v2,…,vn,][E]是連接[V]中兩個不同頂點的邊的有限集合[E=e1,e2,…,en。]圖可記為[G=(V,E)。]對于圖[G=(V,E),]如果邊[v,v∈E,]則稱頂點[v]和[v]互為鄰接點,即[v]和[v]相鄰接。邊[(v,v)]依附于頂點[v]和[v,]或者說[v,v]和頂點[v]和[v]相關聯。頂點[v]的度是和[v]相關聯的邊的數目,記為TD(V)。對于每一條邊[ei,]可以在邊上賦予權值[pi,]用以表征邊的某種性質或代價。邊的集合[E]和權的集合[P=p1,p2,…,pn]是一一對應的。
由以上論述可知,TMDSEVM6678L開發板可以被抽象成一個圖的結構。板上的各重要器件可以抽象為圖的頂點。如果器件之間存在物理鏈路,那么就可在相應的兩個節點之間附上一條邊。節點的度就是與某一節點相鄰接的其他節點的數目,而邊的權值可定義為鏈路所包含的物理電路數目。通過查閱開發板技術手冊[5],分析開發板電路連線,可以抽象出如圖2所示的開發板電路連接拓撲。
圖中各部件的節點代號如表1所示。
值得一提的是,開發板上實際上擁有4塊DDR3存儲器,并且每一塊存儲器與DSP芯片的連線數都是10。為了分析的簡便起見,用一個節點[V4]來代替。
表1中列出了每個節點的度[TDVi,]這一參數表征了與每一器件相關聯的其他器件的個數。一般來說,TD越高的節點,其所代表的器件重要性就越高。顯然,從表中可見,DSP芯片作為整個開發板的核心,節點[V1]具有最高的度14,即DSP芯片與多達14個器件在物理上是相連的。
2.2 邊的脆弱性權值
在圖2中,每一條邊上都附有權值,代表的是鏈路所包含的物理線路數目。這個權值可稱之為初始權值[pij]。例如[p12]=14,意味著DSP芯片與NAND FLASH外部存儲器之間通過14條電路相連接。初始權值表征了邊的重要性。[pij]越高的邊,其重要性就越高。所以,邊的重要性與初始權值之間的關系可表示為:
[sij=apij] (1)
式中:[sij]為邊的重要性;[a]為系數。
節點的度[TDVi]和式(1)分別表征了節點與邊的重要性。由于本文算法的原則是首先確定出脆弱性最高的邊,再根據邊的脆弱性來確定節點脆弱性,即脆弱性越高的邊,其所依附的兩個節點脆弱性就越高。為了體現這一思想,更精確地由邊的脆弱性得到節點脆弱性,有必要在式(1)中把節點的度這一因素考慮進去。因此式(1)可修正為:
[sij=apij+TDVi+TDVj2] (2)
然而,在式(2)中,等式左邊仍然是邊的重要性[sij,]而非邊的脆弱性[vij]。這是因為式(2)中等式右邊的表達式仍然無法完整反映出邊的脆弱性。事實上,關于硬件系統的脆弱性,還有兩個極其重要的因素:一個是器件的程序相關性,另一個是網電接口。
首先,器件的程序相關性指的是運行程序的核心處理芯片以及與程序相關的各種器件,例如存儲程序的各型存儲器、把程序移植進硬件系統的各種接口等。需要指出的是,在嵌入式系統中,“程序”指的是固件;在計算機系統中,“程序”指的是軟件。對于硬件系統來說,程序是脆弱性的根源,脆弱性利用者只有通過程序才能實現對硬件系統的非法進入和控制。因此,不具有程序相關性的器件,也就不存在脆弱性;相應地,在硬件系統的電路連接拓撲中,凡是依附于不具備程序相關性的節點的邊(稱之為程序不相關邊),都應令其重要性權值的系數[a]=0,以使其脆弱性權值為0。
在圖2中,以節點[V15]所代表的FPGA芯片為例,可見該節點具有較高的度。在TMDSEVM6678L開發板上,這片FPGA主要用于控制DSP芯片的重啟機制并通過撥碼開關來為DSP芯片提供boot模式和配置。盡管這片FPGA的重要性相當高,但由于它是不可編程的,不具備程序相關性,攻擊者對于這片FPGA實際上是無能為力的。換句話說,它不具有脆弱性。事實上,圖2中的節點[V16]~[V21]均是如此。對于依附于這些節點的邊,如果要把式(2)中的[sij]定義為邊的脆弱性,只需令:
[a=0] (3)
即凡是依附于這些節點的邊,其脆弱性均為零。
其次,邊的初始權值[pij]以及式(2)中定義的邊的重要性權值均只是根據板上器件的內部關系定義的,它描述了硬件系統的內在脆弱性,但并未考慮到把硬件系統內在脆弱性觸發為實際的系統漏洞的關鍵,即外部因素。一個孤立的硬件系統即使具有脆弱性,也不會存在安全隱患;只有連接在網絡空間中的硬件系統才可能會受到攻擊,而這都是通過外部網絡接口實現的。因此,硬件系統的外部網絡接口具有額外的脆弱性。
對于TMDSEVM6678L開發板來說,其外部網絡接口就是mini?USB接口[(V11)]和RJ?45以太網接口[(V13)。]對于直接依附于這兩個節點的邊,應在式(2)中增加一個脆弱性修正值[w,]那么式(2)中邊的重要性權值修正為:
[sij=apij+TDVi+TDVj2+w] (4)
此外,考慮到脆弱性通過外部網絡接口向系統內部滲透,對于間接依附于外部網絡接口節點的邊(即依附于與[V11]和[V13]相鄰接的節點其他邊),其重要性權值修正為:
[sij=apij+TDVi+TDVj2+w2] (5)
綜合式(2)~式(5),即可得到硬件系統電路連接拓撲中最終的邊的脆弱性權值,即:
[vij=apij+TDVi+TDVj20 (程序不相關邊)apij+TDVi+TDVj2+w (直接依附于網電接口)apij+TDVi+TDVj2+w2 (間接依附于網電接口)] (6)
依據式(6)得到邊的脆弱性權值,可得到硬件系統脆弱性較高的脆弱性源,即:脆弱性權值越高的邊,其所依附的節點脆弱性就越高。
2.3 算法在目標硬件系統上的應用
把算法應用于本文的目標硬件系統TMDSEVM6678L開發板,在建立了如圖2所示的連接拓撲后,只需把式(6)應用于圖2。首先找出電路連接拓撲中的程序不相關邊,即依附于節點[V15]~[V21]的邊,令其權值為零;然后找到直接依附于網電接口的邊,即[V11,V10]和[V13,V12],令[w]=10;再找到間接依附于網電接口的邊,即[V1,V10],[V9,V10],[V1,V12]和[V5,V12],令[w]=5。經過計算權值,最終可得圖3所示的邊的脆弱性權值拓撲。
由圖3可知,[V1,V2],[V1,V4],[V1,V12],[V12,V13],[V1,V10],[V10,V11]這些邊的權值相對較大,表明DSP芯片、Flash存儲器、DDR3存儲器以及mini?USB接口、以太網接口等器件是開發板上脆弱性較高的器件,即重要脆弱性源。事實上,DSP芯片是整個TMDSEVM6678L嵌入式系統的核心;Flash存儲器是存儲DSP固件的區域,DDR3 SDRAM存儲器是DSP運行時的重要程序和數據存儲器;mini?USB接口和以太網接口是關系到DSP嵌入式系統固件更新以及仿真的重要網電接口。它們都是對DSP系統展開脆弱性檢測所選擇的首要對象。
3 結 語
通過本文提出的算法,結合硬件系統實際電路結構,即可實現對硬件系統脆弱性的評估,從而選擇硬件系統脆弱性檢測的對象。雖然算法是結合一款具體的DSP開發板提出的,但是算法的原理可以推廣應用于普遍的硬件系統之中。
參考文獻
[1] 吳世忠,郭濤,董國偉,等.軟件漏洞分析技術進展[J].清華大學學報:自然科學版,2012,52(10):1309?1319.
[2] 唐正軍.入侵檢測技術導論[M].北京:機械工業出版社,2004.
[3] Texas Instruments.TMDSEVM6678L EVM technical reference manual version 2.01 [R]. USA:Texas Instruments, 2012.
[4] 嚴蔚敏,吳偉民.數據結構(C語言版)[M].北京:清華大學出版社,1997.
[5] Texas Instruments. TI TMS320C6678 EVM board rev.3A [R]. USA: Texas Instruments, 2010.
[6] 胡燕京,張健,羅海寧,等.程序分析技術研究及其在補丁分析中的應用[J].現代電子技術,2007,30(17):113?115.
[sij=apij+TDVi+TDVj2+w2] (5)
綜合式(2)~式(5),即可得到硬件系統電路連接拓撲中最終的邊的脆弱性權值,即:
[vij=apij+TDVi+TDVj20 (程序不相關邊)apij+TDVi+TDVj2+w (直接依附于網電接口)apij+TDVi+TDVj2+w2 (間接依附于網電接口)] (6)
依據式(6)得到邊的脆弱性權值,可得到硬件系統脆弱性較高的脆弱性源,即:脆弱性權值越高的邊,其所依附的節點脆弱性就越高。
2.3 算法在目標硬件系統上的應用
把算法應用于本文的目標硬件系統TMDSEVM6678L開發板,在建立了如圖2所示的連接拓撲后,只需把式(6)應用于圖2。首先找出電路連接拓撲中的程序不相關邊,即依附于節點[V15]~[V21]的邊,令其權值為零;然后找到直接依附于網電接口的邊,即[V11,V10]和[V13,V12],令[w]=10;再找到間接依附于網電接口的邊,即[V1,V10],[V9,V10],[V1,V12]和[V5,V12],令[w]=5。經過計算權值,最終可得圖3所示的邊的脆弱性權值拓撲。
由圖3可知,[V1,V2],[V1,V4],[V1,V12],[V12,V13],[V1,V10],[V10,V11]這些邊的權值相對較大,表明DSP芯片、Flash存儲器、DDR3存儲器以及mini?USB接口、以太網接口等器件是開發板上脆弱性較高的器件,即重要脆弱性源。事實上,DSP芯片是整個TMDSEVM6678L嵌入式系統的核心;Flash存儲器是存儲DSP固件的區域,DDR3 SDRAM存儲器是DSP運行時的重要程序和數據存儲器;mini?USB接口和以太網接口是關系到DSP嵌入式系統固件更新以及仿真的重要網電接口。它們都是對DSP系統展開脆弱性檢測所選擇的首要對象。
3 結 語
通過本文提出的算法,結合硬件系統實際電路結構,即可實現對硬件系統脆弱性的評估,從而選擇硬件系統脆弱性檢測的對象。雖然算法是結合一款具體的DSP開發板提出的,但是算法的原理可以推廣應用于普遍的硬件系統之中。
參考文獻
[1] 吳世忠,郭濤,董國偉,等.軟件漏洞分析技術進展[J].清華大學學報:自然科學版,2012,52(10):1309?1319.
[2] 唐正軍.入侵檢測技術導論[M].北京:機械工業出版社,2004.
[3] Texas Instruments.TMDSEVM6678L EVM technical reference manual version 2.01 [R]. USA:Texas Instruments, 2012.
[4] 嚴蔚敏,吳偉民.數據結構(C語言版)[M].北京:清華大學出版社,1997.
[5] Texas Instruments. TI TMS320C6678 EVM board rev.3A [R]. USA: Texas Instruments, 2010.
[6] 胡燕京,張健,羅海寧,等.程序分析技術研究及其在補丁分析中的應用[J].現代電子技術,2007,30(17):113?115.
[sij=apij+TDVi+TDVj2+w2] (5)
綜合式(2)~式(5),即可得到硬件系統電路連接拓撲中最終的邊的脆弱性權值,即:
[vij=apij+TDVi+TDVj20 (程序不相關邊)apij+TDVi+TDVj2+w (直接依附于網電接口)apij+TDVi+TDVj2+w2 (間接依附于網電接口)] (6)
依據式(6)得到邊的脆弱性權值,可得到硬件系統脆弱性較高的脆弱性源,即:脆弱性權值越高的邊,其所依附的節點脆弱性就越高。
2.3 算法在目標硬件系統上的應用
把算法應用于本文的目標硬件系統TMDSEVM6678L開發板,在建立了如圖2所示的連接拓撲后,只需把式(6)應用于圖2。首先找出電路連接拓撲中的程序不相關邊,即依附于節點[V15]~[V21]的邊,令其權值為零;然后找到直接依附于網電接口的邊,即[V11,V10]和[V13,V12],令[w]=10;再找到間接依附于網電接口的邊,即[V1,V10],[V9,V10],[V1,V12]和[V5,V12],令[w]=5。經過計算權值,最終可得圖3所示的邊的脆弱性權值拓撲。
由圖3可知,[V1,V2],[V1,V4],[V1,V12],[V12,V13],[V1,V10],[V10,V11]這些邊的權值相對較大,表明DSP芯片、Flash存儲器、DDR3存儲器以及mini?USB接口、以太網接口等器件是開發板上脆弱性較高的器件,即重要脆弱性源。事實上,DSP芯片是整個TMDSEVM6678L嵌入式系統的核心;Flash存儲器是存儲DSP固件的區域,DDR3 SDRAM存儲器是DSP運行時的重要程序和數據存儲器;mini?USB接口和以太網接口是關系到DSP嵌入式系統固件更新以及仿真的重要網電接口。它們都是對DSP系統展開脆弱性檢測所選擇的首要對象。
3 結 語
通過本文提出的算法,結合硬件系統實際電路結構,即可實現對硬件系統脆弱性的評估,從而選擇硬件系統脆弱性檢測的對象。雖然算法是結合一款具體的DSP開發板提出的,但是算法的原理可以推廣應用于普遍的硬件系統之中。
參考文獻
[1] 吳世忠,郭濤,董國偉,等.軟件漏洞分析技術進展[J].清華大學學報:自然科學版,2012,52(10):1309?1319.
[2] 唐正軍.入侵檢測技術導論[M].北京:機械工業出版社,2004.
[3] Texas Instruments.TMDSEVM6678L EVM technical reference manual version 2.01 [R]. USA:Texas Instruments, 2012.
[4] 嚴蔚敏,吳偉民.數據結構(C語言版)[M].北京:清華大學出版社,1997.
[5] Texas Instruments. TI TMS320C6678 EVM board rev.3A [R]. USA: Texas Instruments, 2010.
[6] 胡燕京,張健,羅海寧,等.程序分析技術研究及其在補丁分析中的應用[J].現代電子技術,2007,30(17):113?115.