国产一级一区二区_segui88久久综合9999_97久久夜色精品国产_欧美色网一区二区

掃一掃
關(guān)注微信公眾號(hào)

在SELinux中基于角色的訪問控制(1)
2008-03-03   

基于角色的訪問控制(RBAC)是常用的簡(jiǎn)化管理的安全模式,通過給用戶指定角色,然后再給角色授權(quán)來實(shí)現(xiàn),RBAC在SELinux中扮演用戶與基礎(chǔ)類型加強(qiáng)模式(TE)之間的抽象層,它提供非常細(xì)粒度的訪問控制,但是管理難度并沒有降低,研究如何將SELinux上下文的3部分(策略、內(nèi)核和用戶空間)協(xié)同工作以強(qiáng)制使用RBAC和限制Linux用戶在TE策略中。

在SELinux下安全策略的實(shí)施是在基于角色的訪問控制(RBAC)下的類型增強(qiáng)(TE),(SELinux也能實(shí)現(xiàn)多級(jí)安全(MLS)的實(shí)施,MLS在本文范圍之外),類型增強(qiáng)(TE)是最常見的,但也是最不容易理解的,因?yàn)樗鼜?qiáng)制實(shí)施更細(xì)粒度的許可:當(dāng)某些東西因?yàn)楫惓TL問拒絕而遭到破壞時(shí),類型增強(qiáng)(TE)是最可靠的,在TE中,一個(gè)進(jìn)程的安全域(它的影響超過了系統(tǒng))是由任務(wù)歷史和當(dāng)前執(zhí)行的程序決定的

RBAC的概念并不象TE一樣被經(jīng)常提到,并且因?yàn)樗cTE集成的原因,總是讓人難以理解,你通常會(huì)認(rèn)為RBAC是按照用戶被分配的角色進(jìn)行訪問的,從TE方面來說SELinux明確指出了基于角色的訪問,因此SELinux下RBAC的目標(biāo)是允許基于角色的權(quán)限管理,然后限制一個(gè)角色的權(quán)利域,合成一個(gè)有效的安全上下文。

要知道這是如何工作的,請(qǐng)看一個(gè)簡(jiǎn)單的現(xiàn)金帳簿會(huì)計(jì)系統(tǒng)是如何使用SELinux提供安全保護(hù)的,你將在兩個(gè)完全不同的環(huán)境(看這兩個(gè)環(huán)境相關(guān)的下載,附錄A)下看到一樣的解決方案:

在developerWorks網(wǎng)站上有一篇文章“從零開始SELinux”介紹了如何從零開始一個(gè)SELinux系統(tǒng),這個(gè)系統(tǒng)顯示在內(nèi)核和用戶空間里的部分是綁定在一起的。

Fedora Core 8 系統(tǒng),F(xiàn)edora Core 8 系統(tǒng)(寫本文時(shí)的最新版本)展示了SELinux與RBAC是如何高度地集成在一起的。

與角色一起工作

假設(shè)你已經(jīng)要求一個(gè)庫房部門部署一套安全登記庫存會(huì)計(jì)系統(tǒng),因?yàn)槊刻於歼M(jìn)行現(xiàn)金帳簿,最終數(shù)量必須同時(shí)被出納和經(jīng)理統(tǒng)計(jì),因此我們首先定義兩個(gè)角色,出納和經(jīng)理,然后我們將角色賦予了需要它的雇員,即賦予出納和經(jīng)理。

在兩個(gè)系統(tǒng)上的策略文件或許會(huì)稍微不同,在兩個(gè)系統(tǒng)上都使用現(xiàn)金帳簿系統(tǒng),數(shù)據(jù)一樣,所有數(shù)據(jù)存儲(chǔ)在/data目錄下,并且只能通過/bin/register.py程序進(jìn)行訪問,register.py能同時(shí)被經(jīng)理和出納使用,用于存儲(chǔ)數(shù)值,為了保持代碼簡(jiǎn)潔,缺少一些特點(diǎn),出納每天為他自己存儲(chǔ)現(xiàn)金帳簿值,經(jīng)理能為其他雇員存儲(chǔ)數(shù)值,當(dāng)出納與經(jīng)理為同一個(gè)出納存儲(chǔ)相同的數(shù)值時(shí),經(jīng)理能夠提交這個(gè)數(shù)值。

在2007/12/12晚上9點(diǎn),當(dāng)出納Bob使用register.py存儲(chǔ)了一個(gè)數(shù)值109.95時(shí),文件/data/cashier_r/bob/12-12-2007被創(chuàng)建,內(nèi)容是"bob 09:00 109.95.",后來,經(jīng)理Mary在9:25存儲(chǔ)了一個(gè)相同的數(shù)值,結(jié)果文件/data/cashier_r/bob/12-12-2007被覆蓋,內(nèi)容為"mary 09:25 109.95.",最后,Mary在晚上9:27提交了這個(gè)數(shù)值,bob使用register.py提交后創(chuàng)建了文件/data/final/bob/12-12-2007,內(nèi)容為"mary 09:27 bob mary 109.95."。

如果Bob和Mary對(duì)他們的數(shù)值都不同意,Mary將不能為Bob提交數(shù)值了,他不得不去找Bob協(xié)商,除非他們兩個(gè)都同意,否則這兩個(gè)數(shù)值都必須重新計(jì)算,重新運(yùn)行register.py命令用前面的數(shù)值再計(jì)算一次,新的結(jié)果將附加到先前的結(jié)果后以便倉庫管理員稍后容易閱讀,bob使用/bin/register.py命令提交時(shí)將使用最后的那個(gè)數(shù)值而不是/data/cashier_r/bob/12-12-2007和/data/mgr_r/bob/12-12-2007。

注意:在這個(gè)例子中討論的代碼都為訪問控制需要使用了SELinux,我們的例子簡(jiǎn)單地允許所有擁護(hù)都能完全往/data目錄下的文件和目錄中進(jìn)行寫入訪問,在一個(gè)真實(shí)的部署環(huán)境中,你可能會(huì)想到使用DAC[譯者注:即傳統(tǒng)的linux權(quán)限控制,使用訪問控制列表ACL]許可來進(jìn)行深度防御,所有經(jīng)理都希望在/data/mgr_r/bob/和/data/final/bob/目錄下創(chuàng)建文件,牽涉到UNIX組權(quán)限的小心使用,但是更簡(jiǎn)單的辦法是,完全依靠SELinux來實(shí)現(xiàn)強(qiáng)制訪問控制。

首先阻止經(jīng)理和出納訪問/data目錄下的任何文件,除非通過register.py程序,實(shí)際上,Bob將以cashier_t類型登陸到角色cashier_r,但是cashier_t不能讀取/data目錄下的內(nèi)容,為了能讀取,他必須進(jìn)入cashier_register_t類型,進(jìn)入后也只能執(zhí)行/bin/register.py程序,類似地,Mary將以mgr_t登陸到角色mgr_r,但是他必須進(jìn)入mgr_register_t類型后才能執(zhí)行/bin/register.py程序來訪問/data目錄下的內(nèi)容。

第一個(gè)訪問控制實(shí)際上發(fā)生在登陸的時(shí)候,PAM模塊認(rèn)為Bob必須登陸到cashier_r角色,當(dāng)在內(nèi)核中的SELinux類型增強(qiáng)服務(wù)器拒絕同意bob_u:cashier_r:cashier_t進(jìn)入bob_u:cashier_r:cashier_register_t時(shí)也會(huì)發(fā)生,除了執(zhí)行cashier_exec_t類型的文件,cashier_exec_t是管理員僅僅為/bin/register.py指定的類型。

當(dāng)register.py拒絕同意出納提交數(shù)據(jù)或?yàn)榱硪粋€(gè)用戶存儲(chǔ)數(shù)據(jù)時(shí)也會(huì)發(fā)生,將來通過SELinux策略進(jìn)行加強(qiáng),并且內(nèi)核代碼也會(huì)加強(qiáng)策略的控制,它不允許cashier_register_t訪問/data/mgr_r或/data/final目錄下的文件。


共6頁: 1 [2] [3] [4] [5] [6] 下一頁
 第 1 頁:  第 2 頁:部署現(xiàn)金帳簿系統(tǒng)
 第 3 頁:更進(jìn)一步研究類型增強(qiáng)(1)  第 4 頁:更進(jìn)一步研究類型增強(qiáng)(2)
 第 5 頁:使用Fedora Core 8(1)  第 6 頁:使用Fedora Core 8(2)

熱詞搜索:

上一篇:用SELinux加強(qiáng)網(wǎng)絡(luò)安全(1)
下一篇:誤將系統(tǒng)進(jìn)程當(dāng)病毒 Vista受折磨遭崩潰

分享到: 收藏
主站蜘蛛池模板: 澜沧| 紫金县| 平度市| 聂拉木县| 舞钢市| 西青区| 尉氏县| 嵩明县| 谢通门县| 陕西省| 聂拉木县| 化隆| 资兴市| 徐水县| 石景山区| 宁晋县| 清水河县| 华宁县| 崇信县| 宁海县| 咸宁市| 安岳县| 浑源县| 南安市| 苏尼特右旗| 福泉市| 新平| 鲁甸县| 泽州县| 壤塘县| 寻乌县| 吴堡县| 新乐市| 祁东县| 城固县| 板桥市| 尉犁县| 密云县| 潞西市| 酒泉市| 奉化市|