金京犬
(安徽郵電職業(yè)技術(shù)學(xué)院 計(jì)算機(jī)系, 合肥 230031)
以Apache服務(wù)器為例探討SELinux的安全模型
金京犬
(安徽郵電職業(yè)技術(shù)學(xué)院 計(jì)算機(jī)系, 合肥 230031)
目前,能夠使用的安全操作系統(tǒng)模型較多,主要包括SELinux、AppAHnor安全模型等,針對(duì)上述強(qiáng)制性訪(fǎng)問(wèn)控制模型有所差異.美國(guó)安全局發(fā)布集成在Linux內(nèi)核中訪(fǎng)問(wèn)SELinux控制機(jī)制,SELinux借助RBAC模型、TE模型對(duì)主體和客體設(shè)計(jì)合理的安全策略,合理解決自主訪(fǎng)問(wèn)控制脆弱性不靈活性等問(wèn)題.以Apache服務(wù)器為例介紹SELinux的安全模型,深入研究SELinux體系結(jié)構(gòu)、安全模型等內(nèi)容,表述SELinux如何增加系統(tǒng)策略的靈活性,從而確保通用操作系統(tǒng)的安全.
Apache服務(wù)器;SELinux;安全模型
隨著信息化技術(shù)的快速發(fā)展,計(jì)算機(jī)廣泛應(yīng)用到社會(huì)生活各個(gè)方面,采用計(jì)算機(jī)對(duì)信息實(shí)施加工和處理成為必不可少的手段.由于網(wǎng)絡(luò)的日益發(fā)展,開(kāi)放式網(wǎng)絡(luò)安全問(wèn)題更加突出,信息安全性受到多數(shù)人的重視和關(guān)注.由于網(wǎng)絡(luò)技術(shù)的日益發(fā)展,網(wǎng)絡(luò)病毒、黑客攻擊等情況層出不窮,傳統(tǒng)的殺毒軟件無(wú)法適應(yīng)時(shí)代發(fā)展的需求,導(dǎo)致防護(hù)工作力不從心.
目前,主流的操作系統(tǒng)使用自主訪(fǎng)問(wèn)控制確保系統(tǒng)穩(wěn)定性和安全性,根據(jù)用戶(hù)標(biāo)志、屬主權(quán)限判斷是否執(zhí)行方案.這種機(jī)制的缺點(diǎn)在于忽視用戶(hù)角色、程序可信性等內(nèi)容,因此無(wú)法提供恰當(dāng)?shù)陌踩U?為改革傳統(tǒng)MAC控制系統(tǒng)的不足之處,美國(guó)安全局設(shè)計(jì)一種新型的安全機(jī)制(SELinux),并將其當(dāng)做標(biāo)準(zhǔn)模塊集成在Linux內(nèi)核中.Linux操作系統(tǒng)提供滿(mǎn)足多種安全要求的targeted配置,用來(lái)保護(hù)系統(tǒng)的網(wǎng)絡(luò)服務(wù).文中以Apache服務(wù)器為例,研究SELinux的結(jié)構(gòu)框架、安全模型和策略,滿(mǎn)足操作系統(tǒng)對(duì)其安全性的要求.
圖1 SELinux整體框架結(jié)構(gòu)圖
SELinux作為FLASK架構(gòu)在Linux內(nèi)核中實(shí)現(xiàn)效果,F(xiàn)LASK架構(gòu)屬于比較靈活、細(xì)粒度強(qiáng)制性訪(fǎng)問(wèn)控制機(jī)制.SELinux成功把安全策略和實(shí)施效果相互分離.改變安全策略時(shí)并不會(huì)影響系統(tǒng)其他部件,此時(shí)制定策略非常容易.其中,安全策略與某個(gè)通用接口均封裝在安全服務(wù)器獨(dú)立組件內(nèi),其通用接口作為連接安全服務(wù)器和系統(tǒng)其他各部分相互訪(fǎng)問(wèn)的接口,在客體管理器組件內(nèi)執(zhí)行策略實(shí)施,具體架構(gòu)如圖1所示.
客戶(hù)管理器由用戶(hù)進(jìn)程接收到基于某個(gè)客體的訪(fǎng)問(wèn)請(qǐng)求,隨之詢(xún)問(wèn)安全服務(wù)器判定是否允許其請(qǐng)求.安全服務(wù)器讀取已有的安全策略配置,做出準(zhǔn)確判斷后將結(jié)果返回至客體管理器,客體管理器依據(jù)判斷結(jié)果執(zhí)行下一步操作.SELinux安全服務(wù)器可支持多類(lèi)安全策略模型,在默認(rèn)狀況下SELinux定義為混合安全策略,主要包括類(lèi)型增強(qiáng)、可選多級(jí)安全策略等部分組成,該策略從安全服務(wù)器引導(dǎo)過(guò)程中進(jìn)行讀取.安全服務(wù)器作為L(zhǎng)inux內(nèi)核的獨(dú)立組件,能夠定制一系列安全措施.主體A對(duì)客體B執(zhí)行訪(fǎng)問(wèn)操作時(shí),客體管理器根據(jù)主、客體安全上下文,設(shè)計(jì)相對(duì)應(yīng)的安全通用接口.通過(guò)安全服務(wù)器獲得所需的安全策略,隨之根據(jù)策略選擇接受或拒絕對(duì)客體發(fā)出的訪(fǎng)問(wèn)請(qǐng)求.默認(rèn)設(shè)置下,主體不允許訪(fǎng)問(wèn)客體,只有明確允許訪(fǎng)問(wèn)策略方可實(shí)施訪(fǎng)問(wèn).為降低客體服務(wù)器的執(zhí)行速度,F(xiàn)lask模型提供相應(yīng)的向量緩存組件,主要用來(lái)緩解服務(wù)器的訪(fǎng)問(wèn)規(guī)則,客體管理器可直接讀取相應(yīng)的規(guī)則.SELinux體系主客體運(yùn)行流程如圖2.
圖2 主體與客體運(yùn)行流程圖
2.1 Apache服務(wù)器簡(jiǎn)述
Web服務(wù)器也稱(chēng)作HTTP服務(wù)器,它是Internet上使用頻繁率最高、最常見(jiàn)的服務(wù)器之一,Web服務(wù)器能夠?yàn)橛脩?hù)提供網(wǎng)頁(yè)瀏覽、論壇訪(fǎng)問(wèn)等服務(wù).一般情況下,用戶(hù)通過(guò)Web瀏覽器訪(fǎng)問(wèn)相應(yīng)的信息資源,無(wú)需關(guān)注與技術(shù)相關(guān)的細(xì)節(jié),并設(shè)計(jì)良好的交互界面.目前,Web服務(wù)器成為Internet上最大的計(jì)算機(jī)群,Web服務(wù)器的數(shù)量日益增多,導(dǎo)致Web服務(wù)器軟件市場(chǎng)競(jìng)爭(zhēng)力更加激烈.本文以使用最頻繁的Web服務(wù)器軟件——Apache為例展開(kāi)研究.Apache屬于免費(fèi)的軟件,Apache允許各個(gè)領(lǐng)域、地區(qū)的人對(duì)其提供新特性.如果將新代碼提供至Apache Group后,Apache Group對(duì)其具體內(nèi)容進(jìn)行測(cè)試和質(zhì)量檢查.如果檢驗(yàn)者滿(mǎn)意,該代碼會(huì)集成到Apache發(fā)行版本中.
2.2 設(shè)計(jì)合理的TE模型
TE過(guò)程模型先以FORTRAN源代碼形式提供給控制系統(tǒng),主要用來(lái)描述裝置、能量、物料的非線(xiàn)性關(guān)系.TE模型主要用來(lái)設(shè)計(jì)裝置控制方案,非線(xiàn)性控制、過(guò)程故障診斷等方面.TE模型也是SELinux安全模型的主要部分,依照安全等價(jià)性將主體和客體劃分為多個(gè)組,每個(gè)組均稱(chēng)作一個(gè)類(lèi)型(type).如,把Apache服務(wù)器內(nèi)的hnpd進(jìn)程設(shè)定為類(lèi)型(htqxi_t),文件客體為(httpd_exec_t),以上分組與主客體內(nèi)容無(wú)關(guān).從客體層面來(lái)說(shuō),若它們由某組主體依據(jù)同一種方式展開(kāi)訪(fǎng)問(wèn)操作,那么上述客體處在安全等價(jià)狀態(tài).同樣,如果某個(gè)主體和其他主體均為相同權(quán)限,這些為等價(jià)的.
模型使用某一個(gè)安全屬性type表示進(jìn)程域或客體的類(lèi)型,使得SELinttx可根據(jù)Flask模型明確相應(yīng)的權(quán)限.同時(shí),TE模型明確設(shè)置類(lèi)型轉(zhuǎn)換規(guī)則,基于域-類(lèi)型狀態(tài)下,TE模型會(huì)建立相對(duì)應(yīng)的規(guī)則,為域訪(fǎng)問(wèn)類(lèi)型賦予一定的權(quán)限,合理控制系統(tǒng)方案操作情況.如:以targeted為研究實(shí)例,其源代碼設(shè)計(jì)3條規(guī)則,域httpd_t訪(fǎng)問(wèn)類(lèi)型設(shè)定相應(yīng)的權(quán)限值.源代碼編譯完成后形成二進(jìn)制文件,開(kāi)啟系統(tǒng)時(shí)裝載至內(nèi)核空間,從而組成相應(yīng)的策略庫(kù).客體管理器根據(jù)上述控制規(guī)則快速進(jìn)行安全裁決,對(duì)進(jìn)程和客體提供所需的保護(hù).
2.3 設(shè)計(jì)RBAC模型
RBAC是美國(guó)Sandhu教授等人提出的角色訪(fǎng)問(wèn)控制模型,該模型靈活性、較強(qiáng),容易管理,可依據(jù)用戶(hù)的各項(xiàng)需求,借助不同的配置便于展開(kāi)自主和強(qiáng)制性訪(fǎng)問(wèn)控制.RBAC的設(shè)計(jì)思想為:安全管理人員依據(jù)需要定義的各類(lèi)角色,并配置相應(yīng)的訪(fǎng)問(wèn)權(quán)限,對(duì)用戶(hù)根據(jù)責(zé)任、資歷為其指派相應(yīng)的角色.角色作為域與用戶(hù)之間的層次,導(dǎo)致域被授予針對(duì)性的角色.借助RBAC模型及時(shí)降低管理的復(fù)雜性和不必要開(kāi)銷(xiāo),滿(mǎn)足企業(yè)對(duì)系統(tǒng)安全性的要求.但是,為域設(shè)計(jì)的訪(fǎng)問(wèn)權(quán)限由TE模型實(shí)現(xiàn),以上方法將RBAC模型便于管理、TE模型有效保護(hù)相互結(jié)合,安全管理效果較好.
2.4 設(shè)定特權(quán)程序權(quán)限
特權(quán)程序權(quán)限時(shí)常被用來(lái)破壞系統(tǒng)的安全性,SELinux配置實(shí)例以通用為目的,挑選一般認(rèn)為不安全因素的特權(quán)程序并對(duì)其設(shè)定單獨(dú)域,借助對(duì)域權(quán)限的合理控制,促使特權(quán)程序僅具有正常運(yùn)行最小權(quán)限.對(duì)配置策略進(jìn)行設(shè)計(jì)時(shí),可依據(jù)具體應(yīng)用環(huán)境對(duì)特權(quán)程序進(jìn)行限制,具體配置策略如下:
Allow sendmaiLt_smtp-port-t:tep_socket name-bind;
Allowsendmail_t mail_spool_t:file
{treat read write unlink};
fread search add name remove_name};
Allowsendmail_t mqueue_spoolt:dir
{read searchadd_name remove name}.
設(shè)定的第一條規(guī)則允許sendmail對(duì)SMTP端口進(jìn)行綁定操作,隨之兩條規(guī)則允許sendmail管理mail_spool目錄,最下邊的兩條規(guī)則sendmail管理mail_squeue目錄.即使采用sendmail缺陷,其訪(fǎng)問(wèn)資產(chǎn)局限在策略定義目錄內(nèi),達(dá)到限定特權(quán)程序的效果.
雖然SELinux為主體和客體合理設(shè)計(jì)靈活通用的訪(fǎng)問(wèn)策略,盡量滿(mǎn)足多數(shù)系統(tǒng)管理工作要求.但對(duì)某些服務(wù)來(lái)說(shuō),SELinux復(fù)雜性使得部分系統(tǒng)管理人員不敢下手.事實(shí)上,有些管理人員時(shí)常禁用SELinux機(jī)制達(dá)到簡(jiǎn)化管理的目的.文中選用Linux系統(tǒng)內(nèi)最復(fù)雜的的Apache服務(wù)器為例闡述SELinux的工作原理,促使系統(tǒng)管理員可以充分理解并利用SELinux提升整個(gè)系統(tǒng)的安全性.
假定用戶(hù)在瀏覽器上輸入地址http:∥192.168.1.3/-ton/index.htrnl,其IP地址為192.168.1.3Linux系統(tǒng)上網(wǎng)頁(yè)文件index.html.想要實(shí)現(xiàn)這個(gè)操作,本系統(tǒng)Apache服務(wù)器的hnpd必須讀取/home/tom/public_-htnd目錄下index.htnd,并將其發(fā)送給Web用戶(hù)的瀏覽器.因此,Linux系統(tǒng)要依據(jù)httpd進(jìn)程的用戶(hù)標(biāo)志和客體、index.html文件的屬主權(quán)限對(duì)其DAC安全許可檢查.若讀取操作借助DAC的安全檢查,依據(jù)Flask模型SELinux實(shí)施以下操作.客體管理器有效收集主體、客體安全上下文,將這些上下文發(fā)送至安全服務(wù)器內(nèi),后者查詢(xún)有關(guān)訪(fǎng)問(wèn)策略.例如“httpd_User_content_t作為類(lèi)型httpd_user_contnet_t的別名,此時(shí),安全服務(wù)器可以在策略文件內(nèi)找出域httpd_t訪(fǎng)問(wèn)類(lèi)型htqxl_sys_content_t定義的訪(fǎng)問(wèn)規(guī)則.同時(shí),客體管理器可依據(jù)安全策略展開(kāi)安全裁決,若安全策略允許主體對(duì)客體的操作,這個(gè)操作方可進(jìn)行.反之,如果測(cè)量不允許主體開(kāi)展這項(xiàng)操作,操作要求遭到拒絕,并在系統(tǒng)日志上增加一個(gè)或多個(gè)AVC拒絕記錄.這時(shí),系統(tǒng)管理人員可適當(dāng)修改安全上下文或策略規(guī)劃,確保這項(xiàng)操作順利完成.
總之,加強(qiáng)操作系統(tǒng)安全需采用強(qiáng)制性訪(fǎng)問(wèn)控制,但單一的安全模型無(wú)法滿(mǎn)足現(xiàn)實(shí)操作環(huán)境復(fù)雜安全需求.因此,設(shè)計(jì)通用的解決方案尤為重要.SELinux安全結(jié)構(gòu)能夠清晰地將策略裁決組件和實(shí)施組件進(jìn)行分割,支持多種策略模型和動(dòng)態(tài)改變.借助SELinux策略配置文件輕易修改和擴(kuò)展策略,根據(jù)具體需求制定相應(yīng)的策略,在一定程度上提升系統(tǒng)安全性.
[1] 高深.龍廣在線(xiàn)web服務(wù)性能測(cè)試及其優(yōu)化方法[J].活力,2013,23(12):30.
[2] 王雷.一種強(qiáng)制訪(fǎng)問(wèn)控制機(jī)制的審計(jì)方法[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2013,10(2):13-15.
[3] 楊嘉,曾慶凱.基于信息流的程序權(quán)限控制技術(shù)[J].計(jì)算機(jī)工程與設(shè)計(jì),2013,34(1):23-27.
[4] 王金龍,宋斌,丁銳,等.Node.js:一種新的Web應(yīng)用構(gòu)建技術(shù)[J].現(xiàn)代電子技術(shù),2015,11(6):70-73.
[5] 周軍宏.Centos7中支持虛擬用戶(hù)vsftpd服務(wù)的配置[J].電腦知識(shí)與技術(shù),2015,11(30):41-42.
[6] 郭慶濤,孫強(qiáng)強(qiáng),李永攀,等.高性能網(wǎng)絡(luò)服務(wù)器框架的研究與實(shí)現(xiàn)[J].計(jì)算機(jī)工程,2013,23(12):70-74,78.
[7] 郭光,張嚴(yán)心.基于自校正分散控制的Web服務(wù)器比例延遲保證[J].計(jì)算機(jī)應(yīng)用,2014,34(4):973-976.
[8] 李燕萍,丁其鵬.SELinux在網(wǎng)絡(luò)服務(wù)安全中的研究與分析[J].現(xiàn)代計(jì)算機(jī)(專(zhuān)業(yè)版),2014,31(20):32-34.
[9] 郭濤,翟高壽.基于有色Petri網(wǎng)的SELinux安全策略自動(dòng)化分析[J].信息安全與技術(shù),2013,4(11):35-40.
[10]劉洋,邵旭東,潘程達(dá),等.立體安全防御系統(tǒng)TDSD-Droid的實(shí)現(xiàn)[J].計(jì)算機(jī)科學(xué),2013,40(z2):228-234,250.
[11]胡偉,姬東耀.基于信息流模型的TCB完整性策略分析方法與工具[J].武漢大學(xué)學(xué)報(bào)(理學(xué)版),2013,59(5):431-437.
[12]張濤,張勇,寧戈,等.基于SELinux強(qiáng)制訪(fǎng)問(wèn)控制的進(jìn)程權(quán)限控制技術(shù)研究與實(shí)現(xiàn)[J].信息網(wǎng)絡(luò)安全,2015,20(12):34-41.
[責(zé)任編輯 王新奇]
Taking Apache Server as An Example toDiscuss the Security Model of SELinux
JIN Jing-quan
(Department of Computer Science, Anhui Post and Telecommunications College, Hefei 230031, China)
At present, there are many security operating system models that can be used, including SELinux, AppAHnor security model and so on, but the mandatory access control model is different. National Security Agency (NSA) release integrated access to SELinux control mechanism in the Linux kernel, SELinux designs a reasonable security strategy for the main body and the object with the help of RBAC model and TE model, therefore the problems of vulnerability and inflexibility of the independent access control are reasonably solved. In this paper, the Apache Server is took as an example to introduce the security model of SELinux, The paper deeply studies the SELinux system structure, security model and so on, and expresses the SELinux how to increase the flexibility of the system policy. Eventually, the security of the general operating system is ensured.
Apache server; SELinux; security model
1008-5564(2016)05-0044-04
2016-01-19
安徽省高校自然科學(xué)
“企業(yè)Linux服務(wù)器的安全應(yīng)用研究”(KJ2016A382)
金京犬(1982—),男,安徽安慶人,安徽郵電職業(yè)技術(shù)學(xué)院計(jì)算機(jī)系講師,碩士,主要從事嵌入式研究.
TP393.08
A