相關(guān)鏈接: 中國安全網(wǎng) 中國質(zhì)量網(wǎng) 中國論文網(wǎng) 中國資訊網(wǎng)
一種基于SELinux強制訪問控制的進程權(quán)限控制新技術(shù)
1相關(guān)研究
1.1 Linux訪問控制機制
Llnux內(nèi)核最初的安全機制主要參考了UNIX系統(tǒng),隨著安全需求和相關(guān)技術(shù)的發(fā)展其也在不斷更新和改善。標(biāo)準(zhǔn)Linux的安全機制主要是自主訪問控制機制(DAC),包括UGO機制(主要是用戶/組的權(quán)限控制機制)、Linux能力機制和訪問控制列表( ACL)機制。
我們可以把Linux的ACL機制看做是對UGO權(quán)限分配管理機制的改進和擴展。它使得傳統(tǒng)的系統(tǒng)權(quán)限配置變得更為靈活,但其權(quán)限劃分粒度依然較粗,并且不同用戶訪問同一客體時需花費額外的空間來存儲對應(yīng)的ACL列表。這種機制仍然是賬戶級別的訪問控制,難以做到進程級別的訪問控制請求。
1.2進程權(quán)限控制相關(guān)技術(shù)
隨著軟件開發(fā)技術(shù)的多樣化和軟件漏洞分析挖掘技術(shù)的提升,各種軟件漏洞或系統(tǒng)漏洞被越來越多地挖掘出來,它們和木馬病毒一起通過各種方式威脅著系統(tǒng)安全。為了有效控制程序的執(zhí)行行為,在Linux操作系統(tǒng)層面也展開了研究,主要進展有SELinux、AppArmor、LIDS、Applocker等。
與標(biāo)準(zhǔn)Linux系統(tǒng)相比,SELinux有以下優(yōu)點:1)安全性高;2)在一定程度上防止進程權(quán)限升級;3)可根據(jù)最小化特權(quán)原則實行強制訪問控制策略;4)不存在特權(quán)用戶root的概念;5)與標(biāo)準(zhǔn)Linux訪問控制相互獨立,并與現(xiàn)有的Linux安全機制互補。在SELinux系統(tǒng)中,當(dāng)用戶程序和系統(tǒng)服務(wù)中存在的安全漏洞被利用時,系統(tǒng)所受到的安全威脅可被有效緩解。
AppArmor是由Immunix開發(fā),現(xiàn)在由Novell團隊維護的一個Linux環(huán)境下的訪問控制系統(tǒng)。系統(tǒng)管理員可以通過將指定程序和對應(yīng)的安全配置文件關(guān)聯(lián)來限制程序的訪問權(quán)限。AppArmor與SELinux類似,都是加載到系統(tǒng)內(nèi)核的安全模塊,提供較細(xì)的訪問控制,如限制程序讀、寫或指定運行哪些文件以及是否可以監(jiān)聽或外聯(lián)指定網(wǎng)絡(luò)端口等。A ppArmor作為標(biāo)準(zhǔn)Linux的自主訪問控制機制的補充提供了一種新型的強制訪問控制機制。AppArmor模塊雖然能很好地限制經(jīng)過配置的程序,但它基于路徑來識別程序文件,一旦程序文件被替換或篡改,就可能執(zhí)行一些綁有特定惡意軟件的程序,系統(tǒng)入侵者就可以輕松旁路掉該安全模塊,進而達(dá)到系統(tǒng)破壞或入侵的目的。
Linux下的入侵檢測和防護系統(tǒng)(LIDS)也是基于LSM實現(xiàn)的安全模塊。管理員可以設(shè)置進程對受保護數(shù)據(jù)的操作權(quán)限,也可通過LIDS對系統(tǒng)中的數(shù)據(jù)設(shè)置訪問類型,控制訪問主體對這些數(shù)據(jù)的操作權(quán)限等。雖然LIDS作為一種強制訪問控制策略能有效保護系統(tǒng)的安全,但它也存在一些不足:LIDS主要實現(xiàn)了進程的強制保護和指定進程驅(qū)動級隱藏,但對于存在安全漏洞的程序或服務(wù)的限制能力有限,無法限制惡意軟件利用問題程序?qū)崿F(xiàn)系統(tǒng)提權(quán)行為。
以上3種進程權(quán)限控制技術(shù)各有優(yōu)點及其特定的應(yīng)用場景。本文在重點分析SELinux安全機制的基礎(chǔ)上自主實現(xiàn)了針對系統(tǒng)服務(wù)和進程的細(xì)粒度權(quán)限控制技術(shù),該技術(shù)能有效緩解因惡意程序利用系統(tǒng)服務(wù)或程序提權(quán)所帶來的安全威脅。
1.3 SELinux體系結(jié)構(gòu)和工作原理
SELinux是標(biāo)準(zhǔn)Linux內(nèi)核的安全增強版,它不但改進了對進程的安全初始化、針對進程主體權(quán)限的訪問控制,還進一步改進了對網(wǎng)絡(luò)端口監(jiān)聽、網(wǎng)絡(luò)服務(wù)外聯(lián)、客體文件訪問等操作的訪問控制。標(biāo)準(zhǔn)的Linux內(nèi)核只提供了早期的UNIX自主訪問控制,以及部分地支持了POSIX.le標(biāo)準(zhǔn)草案中的能力機制,這對于面臨嚴(yán)峻安全威脅的Linux服務(wù)器系統(tǒng)來說是遠(yuǎn)遠(yuǎn)不夠的。隨著Linux 2.6內(nèi)核的更新,系統(tǒng)默認(rèn)支持了一個通用的安全訪問控制框架( Linux Security Module,LSM).SELinux安全模塊通過LSM加載到系統(tǒng)內(nèi)核,進而通過鉤子函數(shù)來控制程序的執(zhí)行。
基于LSM的SELinux安全模塊主要實現(xiàn)了類型增強( Type Enforcement,TE)模型,基于角色的存取訪問控制( Role-based Access Control,RBAC)模型以及可選的多級安全( Multi Layers Security,MLS)模型。所有SELinux訪問控制都依賴存放在安全策略文件中的安全規(guī)則,編程人員設(shè)計和維護源代碼級的策略文件(遵循策略配置語言),并利用工具將這些安全策略動態(tài)編譯并下發(fā)到系統(tǒng)內(nèi)核,形成最終策略庫,供SELinux決策使用。
LSM主要是為Linux內(nèi)核中的SELinux安全模塊提供一套訪問控制機制,是SELinux安全模塊的基礎(chǔ)。它的實現(xiàn)原理是在必要的訪問控制點插入精心構(gòu)造的鉤子函數(shù),當(dāng)系統(tǒng)數(shù)據(jù)流經(jīng)過這些鉤子函數(shù)時,內(nèi)核會將控制權(quán)交給已經(jīng)在LSM中注冊的安全控制函數(shù),安全控制函數(shù)首先過濾出主體和客體信息,然后通過已經(jīng)下發(fā)到內(nèi)核的安全策略做出決策,并將決策結(jié)果反饋給內(nèi)核,內(nèi)核做出最終的決策,即是否放行當(dāng)前經(jīng)過的數(shù)據(jù)流。LSM如圖1所示。
為了適應(yīng)安全模型的變化,LSM作為一個通用的訪問控制框架,專門設(shè)計了一種基于內(nèi)核對象的數(shù)據(jù)結(jié)構(gòu),從而為安全模塊的開發(fā)提供了統(tǒng)一的標(biāo)準(zhǔn)接口,以保證自身安全框架的通用適配性。
1.4 SELinux訪問控制模型
訪問控制模型是對系統(tǒng)訪問控制功能的抽象和概括,是具體訪問控制機制的設(shè)計框架。同時,訪問控制模型也是設(shè)計實現(xiàn)安全策略的參考依據(jù)。SELinux訪問控制模型默認(rèn)包含TE模型(主模型)、RBAC模型(輔助模型)和MLS模型(可配置模型)。
TE模型是SELinux模塊實現(xiàn)的主要訪問控制模型。該模型既保證了機密性,又保證了完整性,并且可以適應(yīng)特定的環(huán)境。TE模型根據(jù)安全等價性將主體和客體分成不同的組,每個組稱為一種類型。所謂安全等價,就是對于客體而言,如果可以由同一組主體按照相同的方式進行訪問,則這些客體對于TE策略來說是安全等價的,屬于同一類型:對于主體而言,如果一個主體和其他主體具有相同的權(quán)限,則它們是安全等價的。
RBAC模型是一種有別于傳統(tǒng)訪問控制機制(DAC、MAC等)的新型訪問控制模型。RBAC模型的基本思想是:添加角色作為用戶和訪問許可權(quán)限的隔離層,它直接通過操作許可和業(yè)務(wù)數(shù)據(jù)交互,安全管理員根據(jù)實際工作需要添加或刪除角色。當(dāng)角色被分配給指定的用戶,用戶與角色便被綁定起來(非一對一關(guān)系),而角色本身是直接與訪問許可權(quán)限相聯(lián)系的。用戶與角色之間是多對多的關(guān)系,角色與訪問許可權(quán)限之間也是多對多的關(guān)系。也就是說安全管理員通過給角色劃分權(quán)限以及給用戶指派角色來控制用戶的最終權(quán)限,達(dá)到用戶與訪問權(quán)限的分離,從而把用戶可能對系統(tǒng)造成的危害降到最低。
MLS模型允許用戶以不同的安全級別訪問目標(biāo)客體。具體訪問時,主體和客體都被分配指定的安全等級,根據(jù)安全等級決定主體是否有相應(yīng)權(quán)限對客體進行訪問。例如,安全管理員根據(jù)文件重要性對文件分配了不同的安全等級,用戶自身權(quán)限也根據(jù)不同的安全需求進行了一定的劃分,當(dāng)且僅當(dāng)用戶的安全等級大于或等于文件的安全級別時,用戶才被允許對文件進行指定的操作。
2進程權(quán)限控制系統(tǒng)設(shè)計與實現(xiàn)
2.1設(shè)計思想提出與分析
隨著Llnux服務(wù)器系統(tǒng)的普及,系統(tǒng)服務(wù)安全問題也越來越突出,系統(tǒng)服務(wù)漏洞或組件類漏洞的頻繁爆發(fā)對服務(wù)器安全構(gòu)成重大威脅,部分高危漏洞如果被惡意利用,將輕松繞過現(xiàn)有服務(wù)器系統(tǒng)的安全防護體系。對于此類程序訪問控制缺陷,特別是利用Oday漏洞的惡意程序,由于特征庫或知識庫具備—定的滯后性,傳統(tǒng)的防火墻、入侵檢測系統(tǒng)、殺毒軟件都是無能為力的。要解決Linux服務(wù)器系統(tǒng)程序的安全問題,—方面要對程序的來源進行可信認(rèn)證,設(shè)計更為科學(xué)的應(yīng)用分發(fā)管理機制,做好從BIOS啟動、系統(tǒng)加載到應(yīng)用軟件運行整個信任鏈的設(shè)計維護,另—方面要加強Linux對運行程序(進程)的細(xì)粒度控制,對進程權(quán)限進行控制的同時對它們所產(chǎn)生的子程序也進行控制(即解決權(quán)限繼承的問題),這樣才能有效解決程序和服務(wù)的安全問題。
相比傳統(tǒng)強制訪問控制技術(shù)(TE、MLS模型等)和新型訪問控制模型RBAC,本文設(shè)計實現(xiàn)的基于SE Linux強制訪問控制的進程權(quán)限控制系統(tǒng)(PBACS)不但能實現(xiàn)傳統(tǒng)強制訪問控制的安全機制不可旁路功能,還能在TE模型的基礎(chǔ)上進一步細(xì)化對進程和服務(wù)的訪問控制粒度,可對Linux系統(tǒng)網(wǎng)絡(luò)服務(wù)的端口監(jiān)聽、端口外聯(lián)、文件讀寫、用戶目錄訪問等操作進行靈活控制,全面防護系統(tǒng)的完整性和安全性。具體防護過程如圖2所示。
如圖2所示,系統(tǒng)內(nèi)運行著3個常用進程,分別是進程1、進程2和進程3。若進程2具備讀寫系統(tǒng)任意文件、開啟任意端口和外聯(lián)任意端口等特權(quán)(也即具備針對系統(tǒng)進行危險操作的權(quán)限),當(dāng)進程2存在的安全漏洞被利用時,則入侵者可將進程2作為跳板.通過端口反彈(如借助Webshell等)進一步控制系統(tǒng)。入侵者拿到系統(tǒng)控制權(quán)或者進程2的特權(quán)后,就可以非法讀取或篡改系統(tǒng)中的重要文件或系統(tǒng)配置數(shù)據(jù),在非授權(quán)情況下對系統(tǒng)監(jiān)聽端口進行變更等。
當(dāng)系統(tǒng)啟用PBACS時,PBACS會根據(jù)預(yù)設(shè)安全策略來限制進程2的每一條系統(tǒng)訪問操作,不符合安全策略的訪問行為將被實時阻斷,從而將進程2的最小特權(quán)限定在一個指定的安全域內(nèi),杜絕了類似于系統(tǒng)提權(quán)等高危安全事件的發(fā)生。
2.2系統(tǒng)框架設(shè)計
本文系統(tǒng)的設(shè)計目標(biāo)是實現(xiàn)進程級別的訪問控制,對Linux服務(wù)器系統(tǒng)中的服務(wù)和進程進行細(xì)粒度的強制訪問控制。核心模塊(進程權(quán)限控制子系統(tǒng))以SELinux安全模塊形式加載到系統(tǒng)內(nèi)核,保護進程讀寫文件、目錄,監(jiān)聽及外聯(lián)端口等常用操作不被滲透,進而實現(xiàn)對漏洞利用后期各類危害的有效防御二系統(tǒng)框架如圖3所示。
如圖3所示,整個系統(tǒng)分為用戶配置管理子系統(tǒng)和進程權(quán)限控制子系統(tǒng)兩大部分。
1)用戶配置管理子系統(tǒng)
用戶配置管理子系統(tǒng)主要為用戶提供一個可視化的操作接口,方便管理員實時配置系統(tǒng)安全策略。
(1)進程基本信息獲取接口。實時獲取當(dāng)前登錄系統(tǒng)所有進程信息列表,并實時跟蹤已被保護的進程及服務(wù)(Linux系統(tǒng)環(huán)境下系統(tǒng)服務(wù)是以進程形式運行的)。
(2)用戶安全策略配置接口。用戶可根據(jù)當(dāng)前登錄系統(tǒng)的進程信息列表下發(fā)和維護系統(tǒng)保護策略。
2)進程權(quán)限控制子系統(tǒng)
進程權(quán)限控制子系統(tǒng)是整個PBACS的核心,它主要包括策略生成模塊、進程行為監(jiān)測模塊、日志記錄輔助模塊、配置文件輔助模塊和策略加載/卸載/更新5大功能模塊,模塊之間相輔相成,共同完成針對系統(tǒng)進程及服務(wù)的訪問控制。每個模塊主要功能如下:
(1)策略生成模塊。判斷輸入約束條件或配置文件中記錄的數(shù)據(jù)是否合法;分析系統(tǒng)配置狀況;根據(jù)系統(tǒng)配置狀況生成相應(yīng)的策略源文件。
(2)進程行為監(jiān)測模塊。監(jiān)測受保護進程的各種行為,對違反策略的行為直接予以阻斷,并通過日志記錄輔助模塊將其記錄在日志文件中。
(3)日志記錄輔助模塊。對違反策略的行為記錄其信息,如觸發(fā)策略的操作行為或事件、事件發(fā)生時間及類型等。
(4)配置文件輔助模塊。記錄對進程的限制條件及進程的相關(guān)狀態(tài)信息以及策略相關(guān)信息,配置文件格式主要采用嵌套結(jié)構(gòu)。
(5)策略加載/卸載/更新模塊。主要包括策略加載、策略卸載和策略更新3個子模塊。策略加載模塊完成策略文件的編譯、生成,并加載到內(nèi)核;策略卸載模塊完成從內(nèi)核中卸載策略加載模塊已下發(fā)到內(nèi)核的自定義安全策略;策略更新模塊完成策略更新、細(xì)粒度的添加以及刪除進程的相應(yīng)權(quán)限。
2.3核心模塊實現(xiàn)
用戶配置管理子系統(tǒng)主要實現(xiàn)系統(tǒng)典型服務(wù)信息獲取和為用戶提供安全策略配置接口,可直接調(diào)用系統(tǒng)API實現(xiàn),故本節(jié)主要關(guān)注內(nèi)核級進程權(quán)限控制子系統(tǒng)的實現(xiàn)。
2.3.1策略文件的配置
SELinux安全策略一般存于目錄/etc/selinux/下,這些二進制策略文件是使SELinux生效的核心,不可變更或刪除。
SELinux安全策略是動態(tài)可配置的。其中,targeted策略在標(biāo)準(zhǔn)Linux系統(tǒng)中默認(rèn)啟用。該策略模式為了不影響用戶的日常使用,在使用的安全性和易用性上做了一定的折中。除了Linux系統(tǒng)的幾個關(guān)鍵網(wǎng)絡(luò)服務(wù)做了基本的安全設(shè)置以外,剩下的所有主體和客體都運行在unconfined_t域上,該域上的主客體交互沒有任何額外限制。另外一個系統(tǒng)預(yù)設(shè)策略是strict策略,一般的Linux操作系統(tǒng)并沒有啟用該策略。strict策略規(guī)定系統(tǒng)中的主體和客體都必須默認(rèn)指定一個域(或類型),所有域或類型的轉(zhuǎn)移和交互都通過安全策略被顯示地定義。因此,相比targeted策略,strlct策略對系統(tǒng)服務(wù)權(quán)限的控制要更為嚴(yán)格。
/etc/selinux/目錄下的config文件主要用來控制SELinux的開啟或關(guān)閉。如果SELinux被打開,SELinux提供的安全功能將處于激活狀態(tài)。目前SELinux的運行模式主要有寬容/強制模式( permissive/enforcing)。當(dāng)關(guān)閉SELinux時,系統(tǒng)將徹底失去SELinux的防護并回到標(biāo)準(zhǔn)Linux的運行狀態(tài)。當(dāng)SELinux處于寬容模式時,若系統(tǒng)中發(fā)生違背SELinux安全策略的事件,系統(tǒng)將實時記錄違規(guī)操作并會有警告訊息,但不會實時阻斷違背安全策略的行為。當(dāng)SELinux處于強制模式時,可實時阻斷違背安全策略的行為,同時將相關(guān)操作信息記錄到日志系統(tǒng)中。
2.3.2策略生成模塊的創(chuàng)建
策略生成模塊包含應(yīng)用程序的策略、私有和共享的資源、標(biāo)識信息以及允許其他模塊對這個模塊進行訪問的接口。這里以應(yīng)用層的AnproApp模塊為例說明如何創(chuàng)建一個策略生成模塊。AnproApp模塊有AnproApp.te、AnproApp.fc和AnproApp.if這3個文件,AnproApp.e含有所有的私有安全策略,AnproApp.fc含有文件標(biāo)識描述,AnproApp.if含有模塊的接口。系統(tǒng)安全策略生成流程如圖4所示。
2.3.3策略的編譯與加載
目錄/etc/selinux/src用來存放策略源代碼,用環(huán)境變量$SELINUX_POLICY_SRC表示。策略源代碼含有Makefile文件,該文件主要闡述了如何使用工具checkpolicy和m4來編譯系統(tǒng)安全策略。通過執(zhí)行相應(yīng)make命令開始二進制策略編譯,主要make命令用法如下。
1) policy:編譯策略配置語言;2)install:編譯并安裝策略配置;3)load:編譯、安裝、裝載策略配置;4)relabel:重標(biāo)識文件系統(tǒng);5)reload:編譯、安裝、強制裝載/再裝載策略配置;6)clean:刪除臨時文件。
策略源文件(二進制策略)被存放在/etc/selinux/policy/目錄下用m4宏預(yù)處理后的總體策略文件主要是policy.conf,最終的二進制文件以policy.[ver]的形式存儲。新編譯的二進制策略被安裝為/etc/selinux/policy/targeted/p olicy.<version>,形式如policy.10,重啟機器,新的策略就能起作用了。
2.3.4關(guān)鍵數(shù)據(jù)結(jié)構(gòu)實現(xiàn)
為了實現(xiàn)對系統(tǒng)服務(wù)的細(xì)粒度訪問控制,通過設(shè)計char*類型的capabilities參數(shù)來控制特定進程對文件讀寫、端口監(jiān)聽、端口外聯(lián)等的操作,通過設(shè)計char*類型的process參數(shù)指定受保護的目標(biāo)進程,通過設(shè)計DefaultDirsdefaultdirs參數(shù)來指定受保護的進程所允許訪問的目錄,通過設(shè)計char*類型的in_tcp_ports參數(shù)來指定當(dāng)前進程正在監(jiān)聽的端口等。具體數(shù)據(jù)結(jié)構(gòu)如下所示:
2.3.5策略生成模塊實現(xiàn)
整個進程權(quán)限控制子系統(tǒng)的核心安全策略均是由策略生成模塊負(fù)責(zé)實現(xiàn)。無論是策略生成模塊還是進程行為監(jiān)測模塊,都依賴于系統(tǒng)下發(fā)的安全策略。只有正確解析處理系統(tǒng)管理員下發(fā)的安全策略,才能一致性地完成系統(tǒng)預(yù)期防護功能。策略生成模塊核心算法如下:
3系統(tǒng)測試與結(jié)果分析
利用前面設(shè)計的進程權(quán)限控制工具對PBACS進行功能、性能及兼容性和安全滲透測試,并根據(jù)測試結(jié)果和同類訪問控制工具或系統(tǒng)模塊進行比較,進一步驗證PBACS的有效性和先進性。
3.1功能測試
3.1.1測試內(nèi)容
1) Linux系統(tǒng)文件的讀/寫能力
實例:服務(wù)sewrite讀取路徑/home/isng/test2/te下的文件,被PBACS攔截。
預(yù)期結(jié)果:sewrite無法讀取文件,終端不顯示任何信息。
控制失效:進程能順利訪問文件,在終端上顯示“readfile xxx”。
2)目標(biāo)進程監(jiān)聽指定端口的能力
實例:啟動服務(wù)se3d監(jiān)聽不屬于自己被授權(quán)范圍的8001端口,被PBACS攔截。
預(yù)期結(jié)果:se3d監(jiān)聽8001端口被拒絕,相關(guān)日志被記錄。
控制失效:se3d開啟8001端口監(jiān)聽功能。
3)目標(biāo)進程外聯(lián)指定端口的能力
實例:啟動服務(wù)se3d外聯(lián)不屬于自己被授權(quán)范圍的8887端口,被PBACS阻斷。
預(yù)期結(jié)果:se3d外聯(lián)8887端口被拒絕,相關(guān)日志被記錄。
控制失效:se3d成功與8887建立連接。
3.1.2測試數(shù)據(jù)與結(jié)果分析
這里通過執(zhí)行非法端口外聯(lián)操作來測試PBACS針對系統(tǒng)服務(wù)的端口外聯(lián)(端口反彈)行為控制的有效性。以受保護服務(wù)se3d訪問8887端口為例進行相關(guān)測試,測試結(jié)果如圖5~圖7所示。
由圖5可知,服務(wù)se3d外聯(lián)指定端口8887被系統(tǒng)拒絕,符合系統(tǒng)安全策略的設(shè)定。
由圖6可知,通過日志記錄輔助模塊捕獲的信息表明:PID為7589的進程嘗試外聯(lián)端口8887被拒絕。
由圖7可知,遠(yuǎn)程服務(wù)器8887端口一直處于被監(jiān)聽狀態(tài),并未接收到來自PID為7589的進程的外聯(lián)連接請求。
以上測試結(jié)果表明,PBACS實現(xiàn)了其基本功能,能夠很好地對系統(tǒng)主客體進行讀、寫等訪問控制,并能對系統(tǒng)服務(wù)或進程的端口監(jiān)聽、端口外聯(lián)、用戶目錄訪問等操作進行控制,有效提升目標(biāo)服務(wù)器系統(tǒng)的安全性。
3.2性能及兼容性測試
3.2.1系統(tǒng)性能測試
PBACS主要包括用戶配置管理子系統(tǒng)和進程權(quán)限控制子系統(tǒng),也就是既包含了用戶態(tài)模塊,也包含了內(nèi)核模塊。為了檢測PBACS系統(tǒng)的運行性能及其對系統(tǒng)效率的影響,本文在CentOS 6.5(64位)的x86 PC機上對Linux的常用命令(如pwd、Is、insmod、ps等)進行了運行PBACS前后時間耗費上的對比,實驗結(jié)果見表1。從表1可知,PBACS的運行對于系統(tǒng)的執(zhí)行效率影響較小,系統(tǒng)命令的執(zhí)行時間延遲影響一般不超過7%。
3.2.2系統(tǒng)兼容性
PBACS的進程權(quán)限控制子系統(tǒng)的主要功能是通過內(nèi)核SELinux安全模塊來實現(xiàn)的,由于內(nèi)核模塊一般對系統(tǒng)內(nèi)核版本有一定的要求,故針對PBACS的兼容性測試十分必要。測試方法主要是在不同版本(內(nèi)核不同)的Linux系統(tǒng)上,重復(fù)測試系統(tǒng)的功能模塊。由于服務(wù)器系統(tǒng)對性能有較高要求,故選擇x64系統(tǒng)作為主要測試平臺。
測試結(jié)果表明,PBACS可以很好支持Linux主流服務(wù)器系統(tǒng)的不同版本,具體結(jié)果如表2所示(Y表示支持):
3.3安全性分析
本實驗對Linux系統(tǒng)平臺的幾種主流訪問控制技術(shù)分別從核心模塊加載形式、工作原理、實現(xiàn)難度和防護效果4個維度來分析它們各自的優(yōu)缺點。分析結(jié)果如表3所示。
從表3可以看出,僅PBACS和AppArmor完全支持進程級別的細(xì)粒度訪問控制,且技術(shù)實現(xiàn)都不算復(fù)雜,也都遵循LSM框架。但AppArmor安全機制存在一定的隱患,通過修改文件名可使原先的安全配置文件不再起作用。相比于AppArmor目前僅被Ubuntu這個主打桌面用戶的發(fā)行廠商支持,SELinux獲得了Redhat、CentOS等主流服務(wù)器發(fā)行廠商的默認(rèn)支持,可更方便地部署實施,同時兼容性相對傳統(tǒng)內(nèi)核級HOOK技術(shù)更為穩(wěn)定。
4結(jié)束語
本文提出了基于SELinux強制訪問控制的進程權(quán)限控制系統(tǒng)( PBACS),可對系統(tǒng)內(nèi)的文件、進程及服務(wù)等進行細(xì)粒度的訪問權(quán)限控制,實現(xiàn)r對Llnux系統(tǒng)網(wǎng)絡(luò)服務(wù)的端口監(jiān)聽、端口外聯(lián)、文件讀寫、用戶目錄訪問等操作的靈活控制,在一定程度上提升了Linux系統(tǒng)的安全性。本文仍有進一步的工作要做:針對系統(tǒng)關(guān)鍵服務(wù)的強制保護,如禁止核心進程被非法終止和指定進程的內(nèi)核級隱藏等;安全威脅(非法事件)的實時報警等。為了加強對未知惡意應(yīng)用特定行為(如Oday漏洞利用等)的查殺,在現(xiàn)有Linux安全機制的基礎(chǔ)上還要加深對沙箱技術(shù)的研究。
5摘要:針對云主機常用的Linux服務(wù)器系統(tǒng)屢屢出現(xiàn)因為常用服務(wù)或進程的自身漏洞被利用而導(dǎo)致系統(tǒng)控制權(quán)輕易丟失的問題,文章提出了一種基于SELinux強制訪問控制的進程權(quán)限控制系統(tǒng)( PBACS),可對系統(tǒng)內(nèi)的文件、進程及服務(wù)等進行細(xì)粒度的訪問權(quán)限控制,能有效緩解由于常見系統(tǒng)服務(wù)漏洞導(dǎo)致的安全威脅,具有較高的安全性和先進性。文章對PBACS進行了全面的功能測試和性能測試,測試結(jié)果表明PBACS完全達(dá)到了設(shè)計要求,可以在系統(tǒng)進程層面提供更細(xì)的訪問控制顆粒度。該方案能夠廣泛應(yīng)用到云主機環(huán)境下Linux服務(wù)器系統(tǒng)的安全加固場景中。