研究人員對目前市場上流行的數十種操作系統進行了分析,從最大眾的(Windows、iOS)到一些極客所用的系統都包括在內。由分析結果來看,目前絕大多數操作系統主要處理實際的功能任務,而信息安全功能(如果它們包含在系統中)只是以插件、實現加密算法的組件或外接程序架構的形式對現有功能的擴展。
這些措施雖然可以幫助系統改進整體安全特性,但不能保證系統免受所有現代攻擊模式的威脅。如果在最初的系統設計中,開發者并沒有將嵌入式系統的安全問題考慮進去,那么隨著保護機制的不斷添加,系統將不可避免地會被攻擊。
操作系統的分類
目前市場上流行的操作系統可以根據許多標準進行分類,而在本次分析時,研究人員則是從安全架構的角度來對操作系統進行分類的,所以根據它們的內核類型,研究人員將目前市場上流行的操作系統分為四大類。
**· **單片系統(monolithic system);
**· **基于單片內核(monolithic kernel)的操作系統;
**· **基于微內核(micro kernel)的操作系統;
**· **混合系統( Hybrid System);
單片系統
這是嵌入式設備最普遍使用的操作系統的架構類型,研究人員分析的大多數操作系統都是基于微控制器設計的單片系統的運行環境,在微控制器中,所有進程(包括用戶和系統)都可以在一個地址空間中不受限制地運行。
從信息安全的角度來看,這種架構僅適用于非常簡單的任務,隨著設備功能變得越來越復雜,漏洞的風險也會隨之變得非常大。當此類系統中出現漏洞時,無論是在系統服務的實現中,還是在輔助應用程序中,都會導致整個安全環境受到干擾。
此類操作系統的額外安全措施經常是提供包含多組加密算法的庫,然而,這些措施很難起到根治的效果,因為它們根本沒有考慮到許多重要問題的全面解決方案,例如密鑰和證書的生成和存儲,可信下載的安全保障,安全更新等。另外,由于這些庫是專門為特定的操作系統而創建的,因此,它們通常不會經過足夠地驗證或測試。所以這些庫本身很可能就會包含漏洞,最后的結果就是整體的解決方案的安全性不但不會提高還會降低。
而除了庫之外,其他措施(如堆棧保護,各種類型的附加檢查等)雖然也可以在一定程度上對不同類型的故障和漏洞提供保護,但如果攻擊者是專門針對特定的已知漏洞,那這些防范措施通常是無用的。
即使在以上的這些解決方案中正式應用了微內核架構,也不可能確保用戶的保護級別能得到質的提升,因為任何用戶進程都可能影響微內核的操作,除非用戶進程與系統進程隔離。
從理論上講,在微內核操作系統中,用戶進程是很難與系統進程進行隔離的,根據研究人員的測試,在目前流行的RIOT操作系統(它是一個開源的物聯網操作系統,提供了一個強大的功能,函數、文件、名稱查找功能,是一個純C語言編寫的操作系統。),Zephyr操作系統(它是一個用于物聯網的開源操作系統,受到 Linux 基金會支持,Zephyr 的目標非常遠大,即一統物聯網操作系統。),Unison RTOS,甚至是由Green Hills Software公司提供的商用微控制器內核μ-velOSity操作系統,以及由Vector開發的用于汽車解決方案的基本操作系統Microsar中,都是這樣的情況。
盡管單片系統存在很多安全缺陷,但這種緊湊型操作系統卻非常適用于常用的廉價微控制器。它們可以用于簡單緊湊的設備中,在這些設備中,單片系統唯一的任務是測量單個參數,例如溫度,壓力,體積等。在研究人員看來,當面對更復雜的任務時,單片系統不是最好的選擇。
基于單片內核的操作系統
基于單片內核的操作系統是另一種類型的操作系統架構,它可能是嵌入式系統和通用系統(即服務器,工作站和移動設備)使用最廣泛和最流行的操作系統體系結構類型。
與單純的單片系統解決方案不同,單片內核系統中的用戶進程與內核是隔離的,內核只有通過有限的系統調用才能訪問用戶進程的函數。從信息安全的角度來看,這就可以形成一個很大的安全優勢,因為大量服務運行在內核環境中,如協議實現、文件系統、設備驅動程序等。
目前市場上流行的單片內核操作系統包括基于Linux內核(及其派生產品),以及Windows,FreeBSD等。FreeBSD是一種類UNIX操作系統,是由經過BSD、386BSD和4.4BSD發展而來的Unix的一個重要分支,RTEMS是一個開源的無版稅實時嵌入操作系統RTOS,它最早用于美國國防系統,早期的名稱為實時導彈系統(Real Time Executive for Missile Systems),后來改名為實時軍用系統(Real Time Executive for Military Systems),現在由OAR公司負責版本的升級與維護。
目前無論是航空航天、軍工,還是民用領域RTEMS都有著極為廣泛的應用。同大多數嵌入式操作系統一樣,RTEMS采用微內核設計思想,將內核主要功能集成在一個小的執行體中,附加的功能在包裹內核層的外層實現,應用可以根據實際系統配置,裁剪、鏈接相應的資源。
不過這些操作系統的內核服務仍然留有許多攻擊面,而在內核環境中運行的代碼庫也是百分百安全的。因此,不要指望內核服務沒有漏洞,實際上,研究人員經常會定期檢測到其中的漏洞。
任何對內核服務的攻擊都不可避免的導致整個系統受到攻擊,無論使用何種工具來保護都無濟于事。另外,內核模型更新時需要重啟設備,這個操作方式對嵌入式系統的安全性影響特別大。事實上,內核模型更新時,并不總是需要重新啟動設備,但是,如果不需要重新啟動,則經常會發生異常現象。
在上下文切換(Context Switch)的數量較少的情況下,與微內核操作系統相比,單核內核架構的主要優勢在于其具有更好的性能。上下文切換指的是CPU從一個進程切換到另一個進程,如果上下文切換過高,會導致CPU像個搬運工,頻繁在寄存器和運行隊列直接奔波 ,更多的時間花在了線程切換,而不是真正工作的線程上。
目前市面上流行的不同版本的Linux系統的比較
基于Linux內核的操作系統之所以如此流行的原因,就在于它們有著非常好的用戶體驗:它們不但提供了開放的源代碼,而且還提供出色的硬件支持,并且擁有大量的配套應用程序和系統軟件。因此對于嵌入式系統的開發人員來說,Linux系統的特性能滿足嵌入式系統的各種功能的實現。
注意:Linux僅作為操作系統的內核,成熟的操作系統是基于linux的各種版本。
值得注意的是,Linux是作為多用戶操作系統的內核開發的,并且包含一組內置的安全機制,但從最新的安全角度來看,無論是在架構和實現方面,它都隱藏著許多安全問題。
傳統觀點認為,基于Linux的系統只要被正確配置,那嵌入式系統的安全性就能得到充分保障。但是,這只是理論上的推測,往往實際的配置過程相當復雜,大多數安全限制可以被繞過。此外,Linux也存在與安全引導機制的實現,更新操作系統組件以及許多其他問題有關的漏洞。
鑒于此,目前有許多新的基于Linux的新系統已經開發了出來,旨在提高嵌入式系統的安全性。其中有很多是為解決信息安全問題而開發的擴展,包括AppArmour,內核加固補丁集項目 Grsecurity,PAX(PaX是針對linux 內核的一個加固版本的補丁,它讓linux內核的內存頁受限于最小權限原則),SELinux等。雖然這些擴展不能保證百分百的嵌入式系統的安全性,但還是有助于整體改善安全狀況的,因為Linux內核的代碼非常大,目前還沒有辦法讓內核全部都變得可信賴。
根據www.cvedetails.com的官方數據,2017年在Linux內核中檢測到453個漏洞,其中有159個漏洞允許在攻擊者內核上下文中執行任意代碼的漏洞。而且利用Linux內核中的漏洞,可以繞過任何保護機制,即使是最復雜和精心配置的保護機制也起不到防護作用。更不幸的是,這個問題目前似乎還沒有解決方案。
本文主要介紹的是單片系統和基于單片內核的操作系統,接下來我會接著給大家介紹有關基于微內核的操作系統和混合系統的安全性分析,敬請大家繼續關注。
-
嵌入式
+關注
關注
5082文章
19126瀏覽量
305197 -
操作系統
+關注
關注
37文章
6825瀏覽量
123331 -
安全架構
+關注
關注
0文章
11瀏覽量
5074
發布評論請先 登錄
相關推薦
評論