- 相關(guān)推薦
嵌入式Linux系統(tǒng)安全性問(wèn)題的解決
目前很多運(yùn)行在局域網(wǎng)甚至Internet上的產(chǎn)品如雨后春筍般涌向市場(chǎng),比如:智能家居、安卓手機(jī)等。這些產(chǎn)品在方便用戶的同時(shí)也出現(xiàn)一些安全問(wèn)題,系統(tǒng)置于網(wǎng)絡(luò)上相當(dāng)于暴露給所有人,故對(duì)嵌入式產(chǎn)品安全性研究刻不容緩。嵌入式產(chǎn)品由于尺寸、成本的約束注定不可能從硬件部分提供更多的安全措施,故提升安全性重點(diǎn)應(yīng)考慮Linux內(nèi)核。
1嵌入式Linux系統(tǒng)存在的安全問(wèn)題
開(kāi)源的Linux內(nèi)核無(wú)論在功能上或性能上都有很多優(yōu)點(diǎn),但Linux內(nèi)核屬于開(kāi)源項(xiàng)目,缺少提供商的安全保證,所以需要使用者最大限度地提升系統(tǒng)的安全性。根據(jù)實(shí)際情況裁剪Linux內(nèi)核,并采取適當(dāng)?shù)陌踩胧┛商嵘到y(tǒng)的安全性。掌握Linux核心技術(shù)、配合先進(jìn)的安全模型、增強(qiáng)其安全性進(jìn)而研發(fā)安全的操作系統(tǒng)非常有必要。Linux的安全性問(wèn)題從機(jī)制角度可以有以下幾點(diǎn):
(1) Linux系統(tǒng)訪問(wèn)控制。Linux系統(tǒng)主流發(fā)行版本的訪問(wèn)控制屬于自主訪問(wèn)控制;自主訪問(wèn)控制控制模式任何一個(gè)活動(dòng)主體對(duì)應(yīng)用戶標(biāo)識(shí)和組標(biāo)識(shí)。顯然自主訪問(wèn)控制模式的問(wèn)題是忽略了用戶的角色、程序可信性等安全信息,故不能提供有效的安全性保障。
(2) Linux系統(tǒng)管理。Linux系統(tǒng)中用戶可以分為兩類,一類是普通用戶,另一類是管理員用戶。Linux系統(tǒng)管理員用戶擁有系統(tǒng)所有權(quán)限,包括用戶管理、設(shè)備管理、審計(jì)管理和安全管理等;這樣方便了管理員管理,易于用戶操作,但是違背了“最小特權(quán)”管理原則。Linux系統(tǒng)的安全性只是建立在管理員必須正確設(shè)置系統(tǒng)功能、且不被冒充和不存在安全漏洞等一系列假設(shè)的基礎(chǔ)上。顯而易見(jiàn)這樣的系統(tǒng)存在巨大的風(fēng)險(xiǎn),假如系統(tǒng)管理員被非法控制,系統(tǒng)將沒(méi)有安全性可言。
(3) Linux系統(tǒng)日志。Linux系統(tǒng)中的日志功能從設(shè)計(jì)到實(shí)現(xiàn)不是以系統(tǒng)安全為目標(biāo)而是以內(nèi)核調(diào)試為目的;此與系統(tǒng)安全審計(jì)有很大差距:第一,缺乏資源訪問(wèn)方面的記錄;第二,不能詳細(xì)記錄系統(tǒng)發(fā)生的事件;最后,缺少必要數(shù)據(jù)分析與警告。
由此可見(jiàn),嵌入式Linux內(nèi)核自身的安全功能相當(dāng)薄弱,對(duì)于安全性要求比較高的產(chǎn)品,則需要提高Linux內(nèi)核的安全性。
2安全性問(wèn)題解決方案
提升Linux安全性所采取措施主要有在Linux系統(tǒng)內(nèi)核使用安全模塊和安裝必要的防火墻,還有一些嵌入式特有的安全措施。
(1) 使用安全模塊LSM (Linux Security Modules)。2001年一次Linux內(nèi)核峰會(huì)中美國(guó)國(guó)家安全局推出了他們的安全增強(qiáng)Linux(SELinux),與此同時(shí)Linux內(nèi)核創(chuàng)始人提出,Linux內(nèi)核作為一個(gè)開(kāi)放的系統(tǒng)的確應(yīng)該有一個(gè)通用的安全訪問(wèn)控制框架,不過(guò)也提出應(yīng)該可以使用加載內(nèi)核模塊的方式來(lái)支持不同的安全模塊, Linux內(nèi)核的安全模塊從此產(chǎn)生。下面可以通過(guò)圖1來(lái)了解一下安全模塊工作原理。
從圖1中可知,Linux安全模塊工作原理是通過(guò)使用函數(shù)回調(diào)的方法,系統(tǒng)根據(jù)用戶配置來(lái)判斷內(nèi)核對(duì)象的訪問(wèn)。系統(tǒng)運(yùn)行進(jìn)程執(zhí)行系統(tǒng)調(diào)用時(shí)找到I節(jié)點(diǎn)并分配相關(guān)資源,就在即將訪問(wèn)相應(yīng)的對(duì)象時(shí),系統(tǒng)立即調(diào)用Linux安全模塊提供的函數(shù),對(duì)安全模塊提出疑問(wèn):“是否允許訪問(wèn)該對(duì)象?”,安全模塊根據(jù)用戶設(shè)定的安全策略進(jìn)行判斷該次訪問(wèn)是否具有相應(yīng)的權(quán)限。在安全模塊里可以調(diào)用不同的安全模塊,使用較多的有SELinux 、Smack (Simplified Mandatory Access Control Kernel)、TOMOYO等。
SELinux安全模塊。該模塊的使用使得系統(tǒng)由原來(lái)的自主訪問(wèn)機(jī)制改變?yōu)閺?qiáng)制訪問(wèn)控制機(jī)制。但是SELinux安全模塊并不適用于處理能力有限嵌入式產(chǎn)品,原因有以下幾點(diǎn):首先,SELinux模塊的細(xì)粒度訪問(wèn)控制造成安全策略的復(fù)雜性,例如:Fedora發(fā)行版本里就超過(guò)800 000行,如此復(fù)雜的安全策略肯定不能應(yīng)用于嵌入式系統(tǒng);其次,在使用SELinux模塊后,若要運(yùn)行某一個(gè)進(jìn)程時(shí),需要給出所有要調(diào)用函數(shù)的權(quán)限才能運(yùn)行,在本身資源短缺的嵌入式產(chǎn)品里非常不適用;另外一點(diǎn),當(dāng)系統(tǒng)安全策略頻繁改變時(shí),要將文件系統(tǒng)重新設(shè)置且重新裝載到內(nèi)核里,嵌入式文件系統(tǒng)一般都燒寫在FLASH中,需要重新燒寫文件系統(tǒng),這對(duì)于最終用戶是不可能實(shí)現(xiàn)的事。使用SELinux模塊后,要求系統(tǒng)支持文件擴(kuò)展屬性,而嵌入式系統(tǒng)經(jīng)常采用的文件系統(tǒng)有CRAMFS、JFFS2等,這些文件系統(tǒng)本身不支持屬性擴(kuò)展。由此可見(jiàn),SELinux安全模塊不適合在嵌入式產(chǎn)品中使用。
Smack安全模塊的原理與SELinux模塊一樣,同樣是強(qiáng)制訪問(wèn)控制的一個(gè)實(shí)現(xiàn),與SELinux不同的是使用簡(jiǎn)單的配置策略來(lái)代替配置復(fù)雜的SELinux。因?yàn)镾mack安全模塊基于標(biāo)簽實(shí)現(xiàn)強(qiáng)制訪問(wèn)控制,故需要支持標(biāo)簽的文件系統(tǒng)支持。使用Smack安全模塊需要完成3部分工作:配置修改Linux內(nèi)核支持Smack、設(shè)置Smack腳本以及用戶空間應(yīng)用程序的修改;跇(biāo)簽實(shí)現(xiàn)強(qiáng)制訪問(wèn)的Smack模塊需要修改根文件系統(tǒng),所以Smack不適合作為嵌入式系統(tǒng)的安全模塊。
TOMOYO安全模塊是基于路徑名的強(qiáng)制訪問(wèn)控制安全模塊,由NTT DATA公司開(kāi)發(fā)和維護(hù)。MOTOYO 身材較小,只有100K左右代碼、300K策略文件,是一個(gè)典型的基于路徑面向行為的系統(tǒng)分析者和保護(hù)者,適合在嵌入式產(chǎn)品使用。MOTOYO安全模塊擁有圖形界面編輯策略工具,方便用戶編輯策略,除此之外還支持友好的學(xué)習(xí)模式與強(qiáng)制模式。
【嵌入式Linux系統(tǒng)安全性問(wèn)題的解決】相關(guān)文章:
嵌入式Linux詳解04-22
嵌入式Linux入門六大步驟09-10
移植開(kāi)源軟件到嵌入式Linux系統(tǒng)技術(shù)攻略10-11
linux上網(wǎng)絡(luò)配置不生效的解決辦法10-01
2017年Linux試題精選08-28
Linux認(rèn)證題目匯總09-21
常用的Linux命令詳解09-28
Linux認(rèn)證考試科目06-17
Linux基本指令大全08-04