當前位置:才華齋>IT認證>嵌入式>

嵌入式Linux系統安全性問題的解決

嵌入式 閱讀(2.5W)

目前很多執行在區域網甚至Internet上的產品如雨後春筍般湧向市場,比如:智慧家居、安卓手機等。這些產品在方便使用者的同時也出現一些安全問題,系統置於網路上相當於暴露給所有人,故對嵌入式產品安全性研究刻不容緩。嵌入式產品由於尺寸、成本的約束註定不可能從硬體部分提供更多的安全措施,故提升安全性重點應考慮Linux核心。

嵌入式Linux系統安全性問題的解決

  1嵌入式Linux系統存在的安全問題

開源的Linux核心無論在功能上或效能上都有很多優點,但Linux核心屬於開源專案,缺少提供商的安全保證,所以需要使用者最大限度地提升系統的安全性。根據實際情況裁剪Linux核心,並採取適當的安全措施可提升系統的安全性。掌握Linux核心技術、配合先進的安全模型、增強其安全性進而研發安全的作業系統非常有必要。Linux的安全性問題從機制角度可以有以下幾點:

(1) Linux系統訪問控制。Linux系統主流發行版本的訪問控制屬於自主訪問控制;自主訪問控制控制模式任何一個活動主體對應使用者標識和組標識。顯然自主訪問控制模式的問題是忽略了使用者的角色、程式可信性等安全資訊,故不能提供有效的安全性保障。

(2) Linux系統管理。Linux系統中使用者可以分為兩類,一類是普通使用者,另一類是管理員使用者。Linux系統管理員使用者擁有系統所有許可權,包括使用者管理、裝置管理、審計管理和安全管理等;這樣方便了管理員管理,易於使用者操作,但是違背了“最小特權”管理原則。Linux系統的安全性只是建立在管理員必須正確設定系統功能、且不被冒充和不存在安全漏洞等一系列假設的基礎上。顯而易見這樣的系統存在巨大的風險,假如系統管理員被非法控制,系統將沒有安全性可言。

(3) Linux系統日誌。Linux系統中的日誌功能從設計到實現不是以系統安全為目標而是以核心除錯為目的;此與系統安全審計有很大差距:第一,缺乏資源訪問方面的記錄;第二,不能詳細記錄系統發生的事件;最後,缺少必要資料分析與警告。

由此可見,嵌入式Linux核心自身的安全功能相當薄弱,對於安全性要求比較高的產品,則需要提高Linux核心的安全性。

  2安全性問題解決方案

提升Linux安全性所採取措施主要有在Linux系統核心使用安全模組和安裝必要的防火牆,還有一些嵌入式特有的安全措施。

(1) 使用安全模組LSM (Linux Security Modules)。2001年一次Linux核心峰會中美國國家安全域性推出了他們的安全增強Linux(SELinux),與此同時Linux核心創始人提出,Linux核心作為一個開放的系統的確應該有一個通用的安全訪問控制框架,不過也提出應該可以使用載入核心模組的方式來支援不同的安全模組, Linux核心的安全模組從此產生。下面可以通過圖1來了解一下安全模組工作原理。

從圖1中可知,Linux安全模組工作原理是通過使用函式回撥的方法,系統根據使用者配置來判斷核心物件的訪問。系統執行程序執行系統呼叫時找到I節點並分配相關資源,就在即將訪問相應的物件時,系統立即呼叫Linux安全模組提供的函式,對安全模組提出疑問:“是否允許訪問該物件?”,安全模組根據使用者設定的安全策略進行判斷該次訪問是否具有相應的許可權。在安全模組裡可以呼叫不同的`安全模組,使用較多的有SELinux 、Smack (Simplified Mandatory Access Control Kernel)、TOMOYO等。

SELinux安全模組。該模組的使用使得系統由原來的自主訪問機制改變為強制訪問控制機制。但是SELinux安全模組並不適用於處理能力有限嵌入式產品,原因有以下幾點:首先,SELinux模組的細粒度訪問控制造成安全策略的複雜性,例如:Fedora發行版本里就超過800 000行,如此複雜的安全策略肯定不能應用於嵌入式系統;其次,在使用SELinux模組後,若要執行某一個程序時,需要給出所有要呼叫函式的許可權才能執行,在本身資源短缺的嵌入式產品裡非常不適用;另外一點,當系統安全策略頻繁改變時,要將檔案系統重新設定且重新裝載到核心裡,嵌入式檔案系統一般都燒寫在FLASH中,需要重新燒寫檔案系統,這對於終端使用者是不可能實現的事。使用SELinux模組後,要求系統支援檔案擴充套件屬性,而嵌入式系統經常採用的檔案系統有CRAMFS、JFFS2等,這些檔案系統本身不支援屬性擴充套件。由此可見,SELinux安全模組不適合在嵌入式產品中使用。

Smack安全模組的原理與SELinux模組一樣,同樣是強制訪問控制的一個實現,與SELinux不同的是使用簡單的配置策略來代替配置複雜的SELinux。因為Smack安全模組基於標籤實現強制訪問控制,故需要支援標籤的檔案系統支援。使用Smack安全模組需要完成3部分工作:配置修改Linux核心支援Smack、設定Smack指令碼以及使用者空間應用程式的修改。基於標籤實現強制訪問的Smack模組需要修改根檔案系統,所以Smack不適合作為嵌入式系統的安全模組。

TOMOYO安全模組是基於路徑名的強制訪問控制安全模組,由NTT DATA公司開發和維護。MOTOYO 身材較小,只有100K左右程式碼、300K策略檔案,是一個典型的基於路徑面向行為的系統分析者和保護者,適合在嵌入式產品使用。MOTOYO安全模組擁有圖形介面編輯策略工具,方便使用者編輯策略,除此之外還支援友好的學習模式與強制模式。