1、前言
系統(tǒng)安全的根本目標(biāo)是數(shù)據(jù)資料的安全,而數(shù)據(jù)資料是由它的使用者進(jìn)行存取和維護(hù)的。傳統(tǒng)的數(shù)據(jù)存取和維護(hù),都是以新的數(shù)據(jù)覆蓋舊的數(shù)據(jù),對(duì)于數(shù)據(jù)的無(wú)心錯(cuò)誤,或有心的更改數(shù)據(jù),一個(gè)管理者并無(wú)法有效地查出蛛絲馬跡。因此,對(duì)數(shù)據(jù)的存取控制是系統(tǒng)安全的一個(gè)重要方面。為此,Sandhu等學(xué)者提出了一套以角色為基礎(chǔ)的存取控制(Role-based Access Control,RBAC)理論,其基本組件包括使用者(User)、角色(Role)、授權(quán)(Authorization)及會(huì)話(Session)。如何為每個(gè)使用者分配相應(yīng)的權(quán)力(即授權(quán))將是本文將要分析的一個(gè)重要原則--最小特權(quán)原則(Least Privilege Theorem)。
2、最小特權(quán)原則簡(jiǎn)介
最小特權(quán)原則是系統(tǒng)安全中最基本的原則之一。所謂最小特權(quán)(Least Privilege),指的是"在完成某種操作時(shí)所賦予網(wǎng)絡(luò)中每個(gè)主體(用戶或進(jìn)程)必不可少的特權(quán)"。最小特權(quán)原則,則是指"應(yīng)限定網(wǎng)絡(luò)中每個(gè)主體所必須的最小特權(quán),確保可能的事故、錯(cuò)誤、網(wǎng)絡(luò)部件的篡改等原因造成的損失最小"。
最小特權(quán)原則一方面給予主體"必不可少"的特權(quán),這就保證了所有的主體都能在所賦予的特權(quán)之下完成所需要完成的任務(wù)或操作;另一方面,它只給予主體"必不可少"的特權(quán),這就限制了每個(gè)主體所能進(jìn)行的操作。
最小特權(quán)原則要求每個(gè)用戶和程序在操作時(shí)應(yīng)當(dāng)使用盡可能少的特權(quán),而角色允許主體以參與某特定工作所需要的最小特權(quán)去簽入(Sign)系統(tǒng)。被授權(quán)擁有強(qiáng)力角色(Powerful Roles)的主體,不需要?jiǎng)虞m運(yùn)用到其所有的特權(quán),只有在那些特權(quán)有實(shí)際需求時(shí),主體才去運(yùn)用它們。如此一來(lái),將可減少由于不注意的錯(cuò)誤或是侵入者假裝合法主體所造成的損壞發(fā)生,限制了事故、錯(cuò)誤或攻擊帶來(lái)的危害。它還減少了特權(quán)程序之間潛在的相互作用,從而使對(duì)特權(quán)無(wú)意的、沒(méi)必要的或不適當(dāng)?shù)氖褂貌惶赡馨l(fā)生。這種想法還可以引申到程序內(nèi)部:只有程序中需要那些特權(quán)的最小部分才擁有特權(quán)。
3、最小特權(quán)原則的應(yīng)用
3.1 安全操作系統(tǒng)
操作系統(tǒng)對(duì)于系統(tǒng)安全來(lái)說(shuō)好比是大樓的地基,如果沒(méi)有了它,大樓就無(wú)從談起。在計(jì)算機(jī)系統(tǒng)的各個(gè)層次上,硬件、操作系統(tǒng)、網(wǎng)絡(luò)軟件、數(shù)據(jù)庫(kù)管理系統(tǒng)軟件以及應(yīng)用軟件,各自在計(jì)算機(jī)安全中都肩負(fù)著重要的職責(zé)。在軟件的范疇中,操作系統(tǒng)處在最底層,是所有其他軟件的基礎(chǔ),它在解決安全上也起著基礎(chǔ)性、關(guān)鍵性的作用,沒(méi)有操作系統(tǒng)的安全支持,計(jì)算機(jī)軟件系統(tǒng)的安全就缺乏了根基。對(duì)安全操作系統(tǒng)的研究首先從1967年的Adept-50項(xiàng)目開(kāi)始,隨后安全操作系統(tǒng)的發(fā)展經(jīng)歷了奠基時(shí)期、食譜時(shí)期、多政策時(shí)期以及動(dòng)態(tài)政策時(shí)期。國(guó)內(nèi)對(duì)安全操作系統(tǒng)的開(kāi)發(fā)大多處于食譜時(shí)期,即以美國(guó)國(guó)防部的TCSEC(又稱橙皮書(shū))或我國(guó)的計(jì)算機(jī)信息系統(tǒng)安全保護(hù)等級(jí)劃分準(zhǔn)則為標(biāo)準(zhǔn)進(jìn)行的開(kāi)發(fā)。
最小特權(quán)在安全操作系統(tǒng)中占據(jù)了非常重要的地位,它適應(yīng)UNIX操作系統(tǒng)、超級(jí)用戶/根目錄體系結(jié)構(gòu)的固有特征,以便了解如何到達(dá)根目錄的的任何用戶提供總體系統(tǒng)控制棗而且?guī)缀踉赨NIX環(huán)境工作的所有程序員都了解這一點(diǎn)。
角色管理機(jī)制依據(jù)"最小特權(quán)"原則對(duì)系統(tǒng)管理員的特權(quán)進(jìn)行了分化,每個(gè)用戶只能擁有剛夠完成工作的最小權(quán)限。然后根據(jù)系統(tǒng)管理任務(wù)設(shè)立角色,依據(jù)角色劃分權(quán)限,每個(gè)角色各負(fù)其責(zé),權(quán)限各自分立,一個(gè)管理角色不擁有另一個(gè)管理角色的特權(quán)。例如當(dāng)入侵者取得系統(tǒng)管理員權(quán)限后欲訪問(wèn)一個(gè)高安全級(jí)別的文件,則很有可能被拒絕。因?yàn)橛脩簦òㄏ到y(tǒng)管理員)在登錄后默認(rèn)的安全級(jí)別是最低的,他無(wú)法訪問(wèn)高級(jí)別的文件,而安全級(jí)別的調(diào)整只有通過(guò)安全管理員才能完成。因此,安全管理員只要對(duì)敏感文件配置了合理的安全標(biāo)記,系統(tǒng)管理員就無(wú)法訪問(wèn)這些文件。由此可知,安全管理員對(duì)系統(tǒng)管理員的權(quán)限進(jìn)行了有力的限制。
Windows NT操作系統(tǒng)的某些漏洞也與最小特權(quán)的應(yīng)用有關(guān),例如:缺省組的權(quán)利和能力總是不能被刪除,它們包括:Administrator組,服務(wù)器操作員組,打印操作員組,帳戶操作員組。這是因?yàn)楫?dāng)刪除一個(gè)缺省組時(shí),表面上,系統(tǒng)已經(jīng)接受了刪除。然而,當(dāng)再檢查時(shí),這些組并沒(méi)有被真正刪除。有時(shí),當(dāng)服務(wù)器重新啟動(dòng)時(shí),這些缺省組被賦予回缺省的權(quán)利和能力。為了減小因此而帶來(lái)的風(fēng)險(xiǎn),系統(tǒng)管理員可以創(chuàng)建自己定制的組,根據(jù)最小特權(quán)的原則,定制這些組的權(quán)利和能力,以迎合業(yè)務(wù)的需要。可能的話,創(chuàng)建一個(gè)新的Administrator組,使其具有特別的指定的權(quán)利和能力。
下面介紹目前幾種安全操作系統(tǒng)及最小特權(quán)的應(yīng)用:
惠普的Praesidium/Virtual Vault
它通過(guò)以最小特權(quán)機(jī)制將根功能分成42種獨(dú)立的特權(quán),僅賦予每一應(yīng)用程序正常運(yùn)行所需的最小特權(quán)。因而,即便一名黑客將Trojan Horse(特洛伊木馬)程序安裝在金融機(jī)構(gòu)的Web服務(wù)器上,入侵者也無(wú)法改變網(wǎng)絡(luò)配置或安裝文件系統(tǒng)。最小特權(quán)是在惠普可信賴操作系統(tǒng)Virtual Vault的基本特性。
紅旗安全操作系統(tǒng)(RFSOS)
RFSOS在系統(tǒng)管理員的權(quán)限、訪問(wèn)控制、病毒防護(hù)方面具有突出的特點(diǎn),例如在系統(tǒng)特權(quán)分化方面,紅旗安全操作系統(tǒng)根據(jù)"最小特權(quán)"原則,對(duì)系統(tǒng)管理員的特權(quán)進(jìn)行了分化,根據(jù)系統(tǒng)管理任務(wù)設(shè)立角色,依據(jù)角色劃分特權(quán)。典型的系統(tǒng)管理角色有系統(tǒng)管理員、安全管理員、審計(jì)管理員等。系統(tǒng)管理員負(fù)責(zé)系統(tǒng)的安裝、管理和日常維護(hù),如安裝軟件、增添用戶賬號(hào)、數(shù)據(jù)備份等。安全管理員負(fù)責(zé)安全屬性的設(shè)定與管理。審計(jì)管理員負(fù)責(zé)配置系統(tǒng)的審計(jì)行為和管理系統(tǒng)的審計(jì)信息。一個(gè)管理角色不擁有另一個(gè)管理角色的特權(quán)。攻擊者破獲某個(gè)管理角色的口令時(shí)不會(huì)得到對(duì)系統(tǒng)的完全控制。
中科安勝安全操作系統(tǒng)
安勝安全操作系統(tǒng)是參照美國(guó)國(guó)防部《可信計(jì)算機(jī)系統(tǒng)評(píng)估準(zhǔn)則》B2級(jí)安全需求和我國(guó)新頒布的《計(jì)算機(jī)信息系統(tǒng)安全保護(hù)等級(jí)劃分準(zhǔn)則》,結(jié)合我國(guó)國(guó)情和實(shí)際需求,自行開(kāi)發(fā)的高級(jí)別安全操作系統(tǒng),即安勝安全操作系統(tǒng)(SecLinux),并通過(guò)國(guó)家信息安全測(cè)評(píng)認(rèn)證中心認(rèn)證,同時(shí)獲得公安部的銷售許可。
最小特權(quán)管理是SecLinux的一個(gè)特色,它使得系統(tǒng)中不再有超級(jí)用戶,而是將其所有特權(quán)分解成一組細(xì)粒度的特權(quán)子集,定義成不同的"角色",分別賦予不同的用戶,每個(gè)用戶僅擁有完成其工作所必須的最小特權(quán),避免了超級(jí)用戶的誤操作或其身份被假冒而帶來(lái)的安全隱患。
3.2 Internet安全
Internet的發(fā)展可謂一日千里,而對(duì)Internet安全的要求卻比Inerternet本身發(fā)展得更快。目前Internet上的安全問(wèn)題,有相當(dāng)多的是由于網(wǎng)絡(luò)管理員對(duì)于角色權(quán)利的錯(cuò)誤分配引起的。因此,最小特權(quán)原則在Internet安全上也大有用武之地。
在日常生活里,最小特權(quán)的例子也很多。一些汽車制造廠制造汽車鎖,用一個(gè)鑰匙開(kāi)車門和點(diǎn)火器,而用另一個(gè)鑰匙開(kāi)手套箱和衣物箱;停車場(chǎng)的服務(wù)員有安排停車的權(quán)而沒(méi)有從汽車衣物箱里取東西的權(quán)力;同樣是最小特權(quán),可以給人汽車的鑰匙而不給他大門的鑰匙。
在Internet上,需要最小特權(quán)的例子也很多,例如:不是每個(gè)用戶都需要使用所有的網(wǎng)絡(luò)服務(wù);不是每個(gè)用戶都需要去修改(甚至去讀)系統(tǒng)中的所有文件;不是每個(gè)用戶都需要知道系統(tǒng)的根口令(Root Password);不是每個(gè)系統(tǒng)管理員都必須知道系統(tǒng)的根口令;也不是每個(gè)系統(tǒng)都需要去申請(qǐng)每一個(gè)其他系統(tǒng)的文件等等。
Internet上出現(xiàn)的一些安全問(wèn)題都可看成是由于最小特權(quán)原則的失敗。例如Unix上最常用的郵件傳輸協(xié)議Sendmail,它是一個(gè)龐大而又復(fù)雜的程序。這樣的程序肯定會(huì)有很多隱患。它經(jīng)常運(yùn)行全部解密(Setuid)根目錄,這對(duì)很多攻擊者是很有利的。系統(tǒng)上運(yùn)行的程序希望是盡可能簡(jiǎn)單的程序,如果是一個(gè)較復(fù)雜的程序,那么應(yīng)該找出辦法從復(fù)雜部分里去分開(kāi)或孤立需要特權(quán)的模塊。
為了保護(hù)站點(diǎn)而采取的一些措施也是使用最小特權(quán)原則的,如包過(guò)濾系統(tǒng)就設(shè)計(jì)為只允許進(jìn)入所需要的服務(wù),而過(guò)濾掉不必要的服務(wù)。在堡壘主機(jī)里也使用了最小特權(quán)原則。
最小特權(quán)原則還有助于建立嚴(yán)格的身份認(rèn)證機(jī)制。對(duì)于所有接觸系統(tǒng)的人員,按其職責(zé)設(shè)定其訪問(wèn)系統(tǒng)的最小權(quán)限;并且按照分級(jí)管理原則,嚴(yán)格管理內(nèi)部用戶帳號(hào)和密碼,進(jìn)入系統(tǒng)內(nèi)部必須通過(guò)嚴(yán)格的身份確認(rèn),防止非法占用、冒用合法用戶帳號(hào)和密碼。具體實(shí)現(xiàn)用戶身份認(rèn)證時(shí),可以通過(guò)服務(wù)器CA證書(shū)與IC卡相結(jié)合實(shí)現(xiàn)。CA證書(shū)用來(lái)認(rèn)證服務(wù)器的身份,IC卡用來(lái)認(rèn)證企業(yè)用戶的身份等等。
4、結(jié)束語(yǔ)
最小特權(quán)原則有效地限制、分割了用戶對(duì)數(shù)據(jù)資料進(jìn)行訪問(wèn)時(shí)的權(quán)限,降低了非法用戶或非法操作可能給系統(tǒng)及數(shù)據(jù)帶來(lái)的損失,對(duì)于系統(tǒng)安全具有至關(guān)重要的作用。但目前大多數(shù)系統(tǒng)的管理員對(duì)于最小特權(quán)原則的認(rèn)識(shí)還不夠深入。尤其是對(duì)于UNIX、Windows系列操作系統(tǒng)下,因?yàn)橄到y(tǒng)所賦予用戶的默認(rèn)權(quán)限是最高的權(quán)限,例如Windows NT下的目錄和文件的默認(rèn)權(quán)限是Everyone(所有人)均具有完全的權(quán)限,而Administrator(系統(tǒng)管理員)則有對(duì)整個(gè)系統(tǒng)的完全控制。如果系統(tǒng)的管理員不對(duì)此進(jìn)行修改,則系統(tǒng)的安全性將非常薄弱。
當(dāng)然,最小特權(quán)原則只是系統(tǒng)安全的原則之一,如縱深防御原則、特權(quán)分離原則、強(qiáng)制存取控制等等。如果要使系統(tǒng)的達(dá)到相當(dāng)高的安全性,還需要其他原則的配合使用。