嵌入式系統(tǒng)安全性(上)
隨著電子裝置擔(dān)負(fù)的責(zé)任越來越多,我們放入蜂窩式電話、媒體播放器、機(jī)頂盒以及其他電器的個(gè)人信息也越來越多。于是,嵌入式系統(tǒng)的安全性涵蓋了隱私信息保護(hù)的方方面面,從在商業(yè)終端(POS)上進(jìn)行的信用卡交易的真實(shí)性保護(hù),一直到私人語音郵件的防護(hù)。
本文引用地址:http://m.butianyuan.cn/article/82062.htm在這篇調(diào)研報(bào)告中,我們將回顧最基本的攻擊狀況、系統(tǒng)弱點(diǎn),并討論最好的防衛(wèi)策略。我們從硬件、軟件及軟硬件混合的角度來分析系統(tǒng)的強(qiáng)化,比如安全引導(dǎo)、系統(tǒng)管理程序?qū)Υ鎯?chǔ)器的控制。
產(chǎn)品層次的正式安全認(rèn)證可以具體到某一特定的應(yīng)用,于是,詳情會(huì)被保存得相當(dāng)隱秘,這也就不難理解了。同樣的,我們也從安全的角度,提出能夠產(chǎn)生有用度量的方法,來決定SOC及系統(tǒng)組件的一般魯棒性和適用性。(注:魯棒性(robustness)就是系統(tǒng)的健壯性。它是在異常和危險(xiǎn)情況下系統(tǒng)生存的關(guān)鍵。比如說,計(jì)算機(jī)軟件在輸入錯(cuò)誤、磁盤故障、網(wǎng)絡(luò)過載或有意攻擊情況下,能否不死機(jī)、不崩潰,就是該軟件的魯棒性。)
攻擊狀況分析
知道我們所擔(dān)心的是什么,這是很重要的。它們的技巧是什么?它們的資源有幾種?威脅的類型千變?nèi)f化,從相對(duì)低強(qiáng)度的軟件攻擊—這種攻擊基于一些可在網(wǎng)上新聞組(如:alt.hacker或各種各樣的“warez”站點(diǎn))找到的軟件—一直到資金充足的工業(yè)間諜活動(dòng)。
攻擊狀況可合乎情理地劃分為如下幾類:
.一個(gè)聰明的外部人員:這個(gè)人很聰明但對(duì)系統(tǒng)的了解卻很有限。他已經(jīng)可以使用先進(jìn)程度中等的設(shè)備,并可以利用已知的弱點(diǎn)而不是制造新的弱點(diǎn)。
.一個(gè)充分了解系統(tǒng)的內(nèi)部人員:這個(gè)人受過專業(yè)技術(shù)教育并擁有技術(shù)方面的經(jīng)驗(yàn)。他對(duì)系統(tǒng)各個(gè)部件的了解程度不同,但是,由于其位置處于“防火墻之后”,他將會(huì)獲得具有高度損壞性的詳細(xì)資料。這種人可以利用高度專業(yè)化的工具和手段進(jìn)行分析。
.一個(gè)有資金支持的組織:一個(gè)組織將能夠組建具有技術(shù)互補(bǔ)性的專家隊(duì)伍。在那個(gè)對(duì)系統(tǒng)了解充分的內(nèi)部人可能在某些特定的領(lǐng)域具有專長(zhǎng),而該組織可以通過增加人手來填補(bǔ)這些領(lǐng)域內(nèi)的空白。他們將有機(jī)會(huì)使用先進(jìn)的分析工具和精密的儀器來更改組件。聚焦離子束(FIB)是一種復(fù)雜且昂貴設(shè)備的技術(shù),可以用來修改集成電路。這種設(shè)備遠(yuǎn)遠(yuǎn)超過大多數(shù)個(gè)人的使用需要,但是,那些破解有著重要價(jià)值的對(duì)象的安全防護(hù)措施的組織卻要利用該技術(shù)。
攻擊
攻擊者技術(shù)和能力不同,他們的方法也不同。我們從一些基本可以在分屬各種威脅程度的幾種攻擊方法開始。
一類范圍很寬的軟件的攻擊,依賴于攻擊者在執(zhí)行環(huán)境中獲得足夠的特權(quán),以便能控制和獲取敏感的裝置及數(shù)據(jù)。例如,在iPhone軟件體系結(jié)構(gòu)的開發(fā)過程中,諸如瀏覽器等部分就處于系統(tǒng)的優(yōu)先層面1。從系統(tǒng)集成的角度來說,這是有道理的。但是使得系統(tǒng)易遭攻擊,因?yàn)槿魏螘?huì)受到威脅的系統(tǒng)組成部分,可以具有最高權(quán)限級(jí)別,因此可以訪問大量系統(tǒng)資源。
使用這種方法的最近的一個(gè)例子,由Charlie Miller等人在去年夏天公布于眾。通過將一個(gè)惡意的HTML文件指向電話的Safari網(wǎng)絡(luò)瀏覽器,可以控制對(duì)包含敏感信息的存儲(chǔ)區(qū)的訪問。這會(huì)使電話的Safari網(wǎng)絡(luò)瀏覽器崩潰。
在實(shí)際應(yīng)用中,這種攻擊可以通過發(fā)含有鏈接的郵件,這樣一個(gè)簡(jiǎn)單的權(quán)宜之計(jì)來實(shí)現(xiàn)。其中,郵件中鏈接所指的是一個(gè)具有惡意HTML的服務(wù)器。如果接收者電擊那個(gè)鏈接,使用那個(gè)攻擊所轉(zhuǎn)化的安裝程序,接收者就很可能受到攻擊。
從安全的角度來說, DMA(直接存儲(chǔ)器存取)存儲(chǔ)器是一個(gè)令人頭疼的問題。它們使用一種強(qiáng)大的機(jī)制來迅速而有效地轉(zhuǎn)移數(shù)據(jù),但是它們轉(zhuǎn)移數(shù)據(jù)的過程也是大多數(shù)系統(tǒng)所無法控制的。如果目標(biāo)裝置是有DMA能力的,一個(gè)惡意的應(yīng)用程序通過注入代碼和數(shù)據(jù)或獲取敏感信息,可以完全地搞垮一個(gè)系統(tǒng)。DMA控制器,由于它們可以很輕松地進(jìn)行繞過保護(hù)層和訪問存儲(chǔ)器,因此在正在設(shè)計(jì)的SOC和系統(tǒng)中,必須對(duì)其進(jìn)行一系列詳細(xì)的審查。
有一種掠奪普遍使用的數(shù)據(jù)結(jié)構(gòu)的攻擊方法是緩存器溢出攻擊。這種攻擊普遍利用那些被用來存儲(chǔ)用戶向一個(gè)程序所提供的輸入的堆棧,比如說:姓名、住址、電話號(hào)碼和其他的典型表格性數(shù)據(jù)。在正常操作條件下,數(shù)據(jù)按照操作者的輸入順序,與返回存儲(chǔ)地址一起,存儲(chǔ)在堆棧里。
然而,在一些情況下,應(yīng)用軟件并不進(jìn)行適當(dāng)?shù)臋z查,來確定接受到的數(shù)據(jù)是否超出了所分配的緩沖存儲(chǔ)區(qū)域。向緩存中本該操作者輸入數(shù)據(jù)的區(qū)域,傳送尺寸過大的數(shù)據(jù),并伴以一段惡意的執(zhí)行代碼及一個(gè)用來覆蓋調(diào)用程序的返回地址的地址數(shù)據(jù)。那個(gè)特大的數(shù)據(jù)導(dǎo)致比堆棧配置空間更大空間的使用,造成緩存溢出。同時(shí),由于地址數(shù)據(jù)過多的返回地址指向攻擊者的惡意代碼,當(dāng)功能嘗試返回時(shí),就開始執(zhí)行黑客在錯(cuò)誤返回地址所寫的代碼。這種危害已經(jīng)達(dá)成,侵入者掌握了控制權(quán)。
一旦攻擊行動(dòng)成功地將執(zhí)行代碼放入它的域中,系統(tǒng)水平上的危險(xiǎn)度就依賴于賦予被劫持的進(jìn)程的授權(quán)水平。當(dāng)然,如果被危及的程序在系統(tǒng)中被許可控制的范圍并不寬,那么危害的程度就會(huì)相對(duì)減小。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評(píng)論