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