一種基于權(quán)能機制的linux系統(tǒng)特權(quán)分配方法【專利摘要】本發(fā)明公開了一種基于權(quán)能機制的linux系統(tǒng)特權(quán)分配方法。本方法為:1)安全模式下,設置用戶角色配置文件和角色能力配置文件;2)根據(jù)系統(tǒng)的特權(quán)應用所需要的能力對其進行標記;服務器的TPM對配置文件和標記后的特權(quán)應用進行度量和寫保護;3)開啟TPM度量,進入系統(tǒng)工作模式;TPM對所述配置文件進行度量驗證,通過后根據(jù)用戶名查詢配置文件獲得對應的角色,讀取該角色包含的能力集;4)PAM根據(jù)該角色對當前進程的能力進行標記,當調(diào)用某個應用時,如果是特權(quán)應用,則判斷該應用所標記的能力集與進程所標記的能力集是否匹配,如果匹配則進程獲取該特權(quán)應用的能力并執(zhí)行該特權(quán)應用,否則拒絕執(zhí)行。本方法易于管理和權(quán)限控制?!緦@f明】一種基于權(quán)能機制的Iinux系統(tǒng)特權(quán)分配方法【
技術(shù)領域:
】[0001]本發(fā)明涉及系統(tǒng)安全的權(quán)限控制領域,是一種基于權(quán)能(capability)機制的Iinux系統(tǒng)特權(quán)分配方法?!?br>背景技術(shù):
】[0002]隨著Iinux系統(tǒng)的普及,對Iinux系統(tǒng)的攻擊與防護成了近年來系統(tǒng)安全領域的主要研宄內(nèi)容。Iinux的傳統(tǒng)安全機制是限制普通用戶僅持有最基本的權(quán)限而賦予一個特權(quán)用戶root用戶所有的權(quán)限,而當普通用戶需要完成特權(quán)操作如更改用戶自己的密碼時,Iinux中引入了Set-UID機制使普通用戶通過執(zhí)行特權(quán)應用程序(特權(quán)應用程序是指進行set-UID位標記的程序,這類程序的屬主是root用戶,執(zhí)行這類程序可以讓普通用戶臨時獲得root權(quán)限)臨時獲得root權(quán)限,執(zhí)行特權(quán)操作。Set-UID機制使這類依賴單一用戶實現(xiàn)特權(quán)操作的方式加大了系統(tǒng)面臨的風險,因為攻擊者只要利用特權(quán)應用程序的安全漏洞攻擊獲得root權(quán)限,就可以對系統(tǒng)為所欲為了。據(jù)統(tǒng)計,Iinux系統(tǒng)中超過80%的攻擊的第一步均是取得root權(quán)限。目前對Iinux系統(tǒng)的安全防護主要從兩方面入手:一方面是保證所有的特權(quán)應用程序不含有安全漏洞;二是當應用程序在被攻陷時,將危害降低到最小。Iinux由于其開發(fā)語言C語言本身的脆弱性,導致對于第一方面的研宄工作是比較困難的,近年來進展甚微。因此,第二方面,系統(tǒng)中對用戶的權(quán)限控制是近年來系統(tǒng)安全研宄的熱點話題。[0003]當前Iinux系統(tǒng)中的解決方案是用capability機制來替代set_UID機制,capability機制細粒度地將root權(quán)限劃分成若干個獨立的權(quán)限單元,稱為一個capability,本文譯為能力。在普通用戶需要特權(quán)操作時,不再是給予其root權(quán)限,而是小細粒度地給予特定的能力,有效地限制安全隱患的威脅范圍。Capability機制中,能力分為進程能力和文件能力,進程能力有:cap_permitted集簡稱pP,cap_effective集簡稱pE,cap_inheritable集簡稱pi。文件能力同樣有這三個能力集分別簡稱fP,fE和fI。另外,進程能力集有一個cap_bset用于限制允許進程可擁有的能力。Capability機制以一定的規(guī)則分配這些能力集實現(xiàn)root權(quán)限的劃分,P0SIX.1e標準草案中有對它的具體描述。[0004]然而,capability機制有著自己的局限性,這也導致了目前Iinux生態(tài)環(huán)境中,set-UID機制仍是主流:(I)capability機制分配使用過于復雜,Linux系統(tǒng)中設計了有36個能力,未來還很可能繼續(xù)增加(比如CAP_SYS_ADMIN這個特權(quán)單元的細粒度不夠),使用者需要清晰地知道每個特權(quán)的功能及使用方法。(2)root用戶仍然具有超級特權(quán),因為capability機制是基于進程的,不能給指定用戶指定特權(quán),故root用戶的超級特權(quán)并沒有被限制?!?br/>發(fā)明內(nèi)容】[0005]基于此,本發(fā)明提出了一種基于capability機制的Iinux系統(tǒng)特權(quán)分配方法,本方法有效解決了capability機制的上述缺陷,易于管理,用戶不再需要了解36個能力具體的功能及使用方法,用戶能力的獲得對用戶是透明的;該系統(tǒng)對權(quán)限的劃分是依據(jù)用戶指定的,可以有效限制root用戶的超級特權(quán)。[0006]本發(fā)明的技術(shù)方案為:[0007]一種基于權(quán)能機制的Iinux系統(tǒng)特權(quán)分配方法,其步驟為:[0008]I)關閉服務器的TPM啟動度量,進入Iinux系統(tǒng)安全模式,登錄root用戶設置用戶角色配置文件和角色能力配置文件;其中,所述用戶角色配置文件中,一個用戶對應且只對應一個角色;所述角色能力配置文件中一個角色依功能對應一個能力組,多個角色之間允許包含相同的能力;[0009]2)根據(jù)Iiunx系統(tǒng)的特權(quán)應用程序所需要的能力對其進行標記;[0010]3)服務器的TPM對所述用戶角色配置文件、角色能力配置文件和標記后的特權(quán)應用程序和登錄程序的可插入驗證模塊PAM進行度量和寫保護,并將最新的度量值寫入TPM;[0011]4)開啟服務器的TPM啟動度量,進入Iinux系統(tǒng)工作模式;TPM對所述用戶角色配置文件、角色能力配置文件進行度量驗證,驗證通過則進行步驟5);[0012]5)登錄程序的可插入驗證模塊PAM對用戶輸入的用戶名和密碼進行認證,認證通過后根據(jù)輸入的用戶名查詢用戶角色配置文件獲得該用戶名對應的角色,然后查詢角色能力配置文件讀取該角色包含的能力集;[0013]6)可插入驗證模塊PAM根據(jù)該角色對當前進程的能力進行標記,然后完成該用戶的登錄;[0014]7)當該用戶調(diào)用某個應用程序時,進程判斷該應用程序是否為特權(quán)應用程序,如果不是,則可以執(zhí)行,如果是特權(quán)應用程序,則判斷該應用程序所標記的能力集與進程所標記的能力集是否匹配,如果匹配則進程獲取該特權(quán)應用程序的能力并執(zhí)行該特權(quán)應用程序,否則拒絕執(zhí)行。[0015]進一步的,所述根據(jù)Iiunx系統(tǒng)的特權(quán)應用程序所需要的能力對其進行標記的方法為:首先在每一系統(tǒng)調(diào)用內(nèi)核代碼中插入鉤子函數(shù),得到每一系統(tǒng)調(diào)用對應的能力,建立一系統(tǒng)調(diào)用能力對應表,表中的每一項的格式為:(系統(tǒng)調(diào)用名,參數(shù))_>能力名;然后根據(jù)特權(quán)應用程序的系統(tǒng)調(diào)用得到其所使用的系統(tǒng)調(diào)用函數(shù)和參數(shù),然后查找該系統(tǒng)調(diào)用能力對應表確定該特權(quán)應用程序所需要的能力并進行標記。[0016]進一步的,采用一文件允許能力集合fP、一文件可繼承能力集合Π和一個文件有效能力集合fE對所述特權(quán)應用程序進行標記;其中,文件允許能力集合fP初始值為空,文件可繼承能力集合Π記錄特權(quán)應用程序所需要的能力,文件有效能力集合fE中的特權(quán)應用程序所需要的能力置true。[0017]進一步的,所述服務器采用一trace_cap工具對所述特權(quán)應用程序所需要的能力進行標記,且步驟3)之后,TPM將該trace_cap工具設置為不可執(zhí)行。[0018]進一步的,所述PAM模塊根據(jù)該角色對當前進程的能力進行標記的方法為:PAM模塊采用一進程可繼承能力集Pl、進程允許能力集PP、進程有效能力集PE和進程最多所能獲得的能力集cap_bSet對當前進行能力進行標記,其中首先清空進程的進程允許能力集pP和進程有效能力集pE,然后設置當前進程可繼承能力集pi=setl,設置cap_bset=setl;其中,setl為該角色包含的能力集。[0019]進一步的,所述步驟7)中,如果該應用程序為特權(quán)應用程序,且該特權(quán)應用程序的文件可繼承能力集π為setl且對應的文件有效能力集fE==true,則更新進程能力集為pP=pl&fl,從而進程將獲得setl中定義的特權(quán),執(zhí)行該特權(quán)應用程序。[0020]進一步的,當當前進程創(chuàng)建子進程時,子進程會繼承父進程的進程可繼承能力集pi和能力集cap_bset,而且子進程會清空進程允許能力集pP和進程有效能力集pE,當子進程執(zhí)行某個特權(quán)應用程序時,該子進程將獲得該特權(quán)應用程序的文件可繼承能力集Π中定義的特權(quán),即該子進程的能力集pP=pI&f1、pE=fE==true。[0021]本發(fā)明主要包含兩個方面:(1)首先,將能力按功能分組,每組用一個角色唯一指定,用戶通過承擔角色獲得相應的能力,用戶在生存期間不能更改自己的能力。(2)本發(fā)明的另一個內(nèi)容是:從用戶和特權(quán)應用程序兩個方面雙向限制特權(quán),當且僅當用戶和特權(quán)應用程序同時具有某能力時,相應用戶進程才獲得該能力,具有相應特權(quán)單元。[0022]該發(fā)明包括以下內(nèi)容:[0023]I)提供一個特權(quán)應用程序分析工具稱為trace_cap,該工具可以分析出一個應用程序需要獲得哪些能力,如ping程序需要cap_net_raw能力。對于trace_cap的實現(xiàn):首先,我們對內(nèi)核代碼做了分析,比如所有36個能力的實現(xiàn)均是在相應的系統(tǒng)調(diào)用內(nèi)核代碼中插入鉤子,通過分析,我們建立了一張表,表中的每一項的格式為:(系統(tǒng)調(diào)用名,參數(shù))_>能力名;然后,通過分析特權(quán)應用程序的系統(tǒng)調(diào)用可得到其所使用的系統(tǒng)調(diào)用函數(shù)和參數(shù),然后查表來確定該特權(quán)應用程序所需要的能力。在具體部署時,可通過編寫腳本找出文件中所有的SUID程序,即現(xiàn)有的特權(quán)應用程序,對這些程序利用trace_cap來分析其需要的能力。[0024]2)分析特定用戶(如安全管理員、系統(tǒng)管理員等)所期望的特權(quán)單元,編寫配置文件對特權(quán)單元分組,對分組以唯一的角色命名,用戶承擔相應的角色。于是,root用戶不再擁有超級特權(quán),而是具有配置文件中設定給它的特權(quán)單元,能力集。[0025]3)利用PAM機制,在用戶登錄時,分析配置文件,特定用戶承擔特定角色,相應可以獲得該角色對應的能力,于是當該用戶執(zhí)行具有相應能力的特權(quán)應用程序時可以獲得相應特權(quán)。[0026]設置Iinux系統(tǒng)運行的兩個模式,安全模式下可對配置文件進行管理以確定權(quán)限分配規(guī)劃;工作模式下不可對配置文件更改(利用TPM安全芯片保護相關配置文件不被篡改),對用戶施加權(quán)限分配規(guī)則。[0027]與現(xiàn)有技術(shù)相比,本發(fā)明的積極效果:[0028]本發(fā)明易于管理,用戶不再需要了解36個能力具體的功能及使用方法,用戶能力的獲得對用戶是透明的;而且可以有效地限制包括root用戶在內(nèi)的所有用戶的權(quán)限,并且不改變用戶使用體驗,能力的劃分對用戶是透明的。[0029]本發(fā)明易于管理,對權(quán)限的劃分是依據(jù)用戶指定的,可以有效限制root用戶的超級特權(quán)。[0030]本發(fā)明不需要修改Iinux內(nèi)核代碼,且不影響系統(tǒng)性能。[0031]本發(fā)明可以有效地取代Iinux系統(tǒng)中現(xiàn)有的Set-UID機制?!緦@綀D】【附圖說明】[0032]圖1為系統(tǒng)總體架構(gòu)圖。[0033]圖2為進程能力變換流程圖?!揪唧w實施方式】[0034]本發(fā)明系統(tǒng)的構(gòu)建分為兩個模式:工作模式和安全模式。工作模式下,系統(tǒng)啟動時TPM度量配置文件和特權(quán)應用程序,度量成功后,登錄的用戶可以自動承擔相應角色在執(zhí)行相應特權(quán)程序時獲得相應能力,但不允許用戶修改配置文件和特權(quán)應用程序,而且用戶生存期間無法對自己的能力進行改變,從而達到限制用戶權(quán)限的作用;安全模式下,系統(tǒng)啟動時TPM不進行度量。該模式下主要用于創(chuàng)建或更新配置文件,給特權(quán)應用程序打特權(quán)標簽(即給特權(quán)應用程序添加相應的文件能力)等。系統(tǒng)架構(gòu)見圖1,下面詳細介紹實施步驟:[0035]安全模式下:[0036]I)計算機加電啟動,傳遞內(nèi)核參數(shù)關閉TPM啟動度量,進入安全模式。[0037]2)登錄root用戶,安全模式下,根據(jù)Iinux自主訪問控制原則,root用戶可以對策略配置文件、特權(quán)應用程序等進行修改。[0038]3)策略配置文件有兩個,分別是:/etc/cap_splitter/user_role用于建立用戶和角色的關聯(lián)的用戶角色配置文件;/etc/cap_splitter/role_caps用于建立角色和能力的關聯(lián)的角色能力配置文件。于是,用戶通過承擔不同的角色而可以獲得不同的特權(quán)。對于策略的配置有如下性質(zhì):[0039]a)系統(tǒng)本身會提供一個默認的策略配置,方便管理員進行配置。[0040]b)一個用戶一次對應一個相應的角色,該用戶在登錄時自動獲取并保持至該用戶退出。[0041]c)一個角色依功能對應一個能力組,多個角色之間可以包含相同的能力,角色對應的能力組的設置同樣在用戶登錄時完成并保持至該用戶退出。[0042]d)用戶登錄時獲得對應角色的能力組,表明該用戶可以獲得對應的能力,但并不立刻獲得,而是在執(zhí)行特權(quán)應用程序時以最小特權(quán)原則獲得相應能力,執(zhí)行特權(quán)操作。[0043]4)對策略文件的分析使用是由PAM完成的,工作模式下3)講述了PAM模塊的具體工作。[0044]5)使用trace_cap給系統(tǒng)的特權(quán)應用程序標記相應的特權(quán)單元:[0045]a)trace_cap首先利用一個簡單的腳本找出系統(tǒng)中所有的set-UID應用程序,這些應用程序即是特權(quán)應用程序。[0046]b)利用trace_cap工具,分析各個特權(quán)應用程序所需要的能力,并進行文件能力標記:每個文件含有兩個能力集合fP,fl和一個能力標志位fE,這里將程序的fP能力集合清空,將程序的Π能力集合中的特權(quán)應用程序所需要的能力置為1,即能力標志位fE置為True。通過這樣的標記方法,可以保證不含有相應特權(quán)的用戶是無法執(zhí)行該特權(quán)應用程序的。[0047]c)上述標記是自動化的,執(zhí)行trace_cap程序即可自動完成。[0048]6)TPM對上述配置文件、標記后的特權(quán)應用程序和登錄程序的PAM(可插入驗證模塊)模塊進行重新度量,將最新的度量值寫入TPM。[0049]7)TPM對策略配置文件、特權(quán)應用程序和登錄程序的PAM文件進行寫保護,防止在工作模式下被篡改;對trace_cap文件進行不可執(zhí)行設置,防止其在工作模式下被篡改。[0050]8)重啟[0051]工作模式下:[0052]I)計算機加電啟動,傳遞給內(nèi)核參數(shù)開啟TPM啟動度量,進入工作模式。[0053]2)系統(tǒng)啟動過程中,TPM對策略配置文件等進行度量驗證。因為安全模式下已經(jīng)對TPM中的值進行更新,所以驗證會通過。若在后期的使用中,某些策略配置文件被篡改,則驗證不通過,提醒用戶重啟進入安全模式維護策略配置文件。[0054]3)執(zhí)行登錄程序login(或者gdm、lightdm、rlogin等,這里以login為例),login調(diào)用PAM模塊進行安全認證,我們在PAM中插入相關的認證模塊執(zhí)行前期的權(quán)限分配:[0055]a)PAM首先認證用戶輸入的用戶名和密碼,這是傳統(tǒng)Iinux的認證模塊。然后,執(zhí)行我們插入的安全模塊。[0056]b)PAM安全模塊在login進程的setuid()系統(tǒng)調(diào)用之前前執(zhí)行:PAM模塊首先根據(jù)輸入的用戶名查詢用戶角色配置文件/etc/cap_splitter/user_role獲得該用戶名對應的角色,然后查詢角色能力配置文件/etc/cap_splitter/role_caps讀取該角色包含的能力集,記為setl;然后PAM模塊調(diào)用能力設置函數(shù)對當前進程的能力集p1、pP、pE和進程最多所能獲得的能力集cap_bSet做如下設置:清空pP和pE(保證進程在執(zhí)行特權(quán)應用程序前不會獲得能力)、設置Pl=setl(該能力集可以被子進程繼承,在加載新程序時該集合是新程序允許獲得的能力集)、設置cap_bSet=setl(表明允許該進程獲得的能力集最多為setl)。通過如上的進程能力標記,當前進程能力集有pi=cap_bset=setl,那么進程此時并沒有特權(quán),進程未來特權(quán)的獲得需要依賴特權(quán)應用程序的執(zhí)行。在進程創(chuàng)建子進程時,子進程會繼承父進程的pi和cap_bset能力集,而且子進程會清空pP和pE能力集,這就保證了父進程的特權(quán)(由PE標記)不會傳遞給子進程,子進程只有自己去加載特權(quán)應用時才會獲得特權(quán)。[0057]c)權(quán)限劃分結(jié)束后,進入系統(tǒng)調(diào)用SetUid(),Setgid(),這兩個系統(tǒng)調(diào)用設置當前進程的uid和gid,完成用戶的登錄。傳統(tǒng)情況下,若登錄用戶為root用戶(uid=0),setuidO執(zhí)行結(jié)束后,進程會獲得所有特權(quán)。由于我們在步驟b)中把進程的能力集cap_bset設置為了setl,此時root用戶將不能獲得所有特權(quán),而是像普通用戶一樣,根據(jù)自己的角色在pi和cap_bset中獲得setl.[0058]d)在用戶完成登錄之后,在執(zhí)行非特權(quán)應用時,由于非特權(quán)應用不會進行特權(quán)操作,貝lJ可以執(zhí)行;在執(zhí)行特權(quán)應用前,進程能力集將發(fā)生如下變化:pP=pl&fl、pE=fE==true?pP:null。那么若應用程序的文件能力集fl同樣標記為了setl且fE==true,則進程將獲得setl中定義的特權(quán),從而成功執(zhí)行特權(quán)應用程序。即根據(jù)規(guī)則更新pP,讓pP=ρΙ&Π,但是僅更新pP并不能使得進程擁有特權(quán),只有更新pE才能使進程獲得特權(quán):ΒΡ若fE是true的話,則pE更新為pP(=pl&fl),于是獲得特權(quán);若fE不是true,則無法獲得特權(quán)。[0059]4)登錄成功后的用戶進程將工作于特定角色下直到進程結(jié)束,具有如下功能:[0060]a)可查看自己的角色,該角色對應的特權(quán);[0061]b)可執(zhí)行策略賦予其的特權(quán)應用程序、進行特權(quán)操作。[0062]下面以ping程序為例分析進程能力變換流程,見圖2。其中,pP指processcap_Permitted進程允許能力集,pi指processcap_Inheritable進程可繼承能力集,pE指processcap_Effective進程有效能力集,fl指filecap_Inheritable文件可繼承能力集合,fE指fileEffective文件有效能力集;[0063]I)執(zhí)行登錄程序login之前的進程具有全部進程能力,進程的cap_bset=pP=pi=pE=full[0064]2)在安全模式下,分析出ping程序需要的能力是cap_net_raw,于是配給相應用戶的角色(記為角色X)包含這個能力。執(zhí)行登錄程序時,PAM模塊解析配置文件,給用戶角色X的進程配置進程能力結(jié)果為:cap_bset=cap_net_raw,pP=null,pi=cap_net_raw。因為此時能力集pE為null,故當前進程不具備cat_net_raw特權(quán),但由于cap_bset和pi為cap_net_raw,故進程有獲得cap_net_raw能力的機會。[0065]3)在安全模式下,給ping程序標記特權(quán)cap_net_raw,結(jié)果為ping程序的文件能力為:fI=cap_net_raw,fE=true,fP=null.[0066]4)在工作模式下,當角色X用戶的進程加載ping程序時,根據(jù)加載時能力的變換規(guī)則,得出ping進程的進程能力為:cap_bset=pP=pi=pE=cap_net_raw,即進程獲得了cap_net_raw特權(quán)。[0067]5)當角色為X的用戶執(zhí)行其它應用程序時,其它應用程序上未標記文件能力cap_net_raw,進程無法獲得cap_net_raw能力;當其它用戶(如角色Y)執(zhí)行ping程序時,由于其它用戶進程不含cap_net_raw能力,則執(zhí)行ping程序失敗。當且僅當角色X用戶執(zhí)行ping程序時,才能獲得cap_net_raw特權(quán)?!緳?quán)利要求】1.一種基于權(quán)能機制的系統(tǒng)特權(quán)分配方法,其步驟為:1)關閉服務器的啟動度量,進入11皿X系統(tǒng)安全模式,登錄1~0於用戶設置用戶角色配置文件和角色能力配置文件;其中,所述用戶角色配置文件中,一個用戶對應且只對應一個角色;所述角色能力配置文件中一個角色依功能對應一個能力組,多個角色之間允許包含相同的能力;2)根據(jù)11皿X系統(tǒng)的特權(quán)應用程序所需要的能力對其進行標記;3)服務器的對所述用戶角色配置文件、角色能力配置文件和標記后的特權(quán)應用程序和登錄程序的可插入驗證模塊?艦進行度量和寫保護,并將最新的度量值寫入;4)開啟服務器的啟動度量,進入11皿X系統(tǒng)工作模式;1?1對所述用戶角色配置文件、角色能力配置文件進行度量驗證,驗證通過則進行步驟5);5)登錄程序的可插入驗證模塊?八1對用戶輸入的用戶名和密碼進行認證,認證通過后根據(jù)輸入的用戶名查詢用戶角色配置文件獲得該用戶名對應的角色,然后查詢角色能力配置文件讀取該角色包含的能力集;6)可插入驗證模塊?八1根據(jù)該角色對當前進程的能力進行標記,然后完成該用戶的登錄;7)當該用戶調(diào)用某個應用程序時,進程判斷該應用程序是否為特權(quán)應用程序,如果不是,則可以執(zhí)行,如果是特權(quán)應用程序,則判斷該應用程序所標記的能力集與進程所標記的能力集是否匹配,如果匹配則進程獲取該特權(quán)應用程序的能力并執(zhí)行該特權(quán)應用程序,否則拒絕執(zhí)行。2.如權(quán)利要求1所述的方法,其特征在于,所述根據(jù)11皿X系統(tǒng)的特權(quán)應用程序所需要的能力對其進行標記的方法為:首先在每一系統(tǒng)調(diào)用內(nèi)核代碼中插入鉤子函數(shù),得到每一系統(tǒng)調(diào)用對應的能力,建立一系統(tǒng)調(diào)用能力對應表,表中的每一項的格式為:(系統(tǒng)調(diào)用名,參數(shù)卜?能力名;然后根據(jù)特權(quán)應用程序的系統(tǒng)調(diào)用得到其所使用的系統(tǒng)調(diào)用函數(shù)和參數(shù),然后查找該系統(tǒng)調(diào)用能力對應表確定該特權(quán)應用程序所需要的能力并進行標記。3.如權(quán)利要求1或2所述的方法,其特征在于,采用一文件允許能力集合作、一文件可繼承能力集合和一個文件有效能力集合現(xiàn)對所述特權(quán)應用程序進行標記;其中,文件允許能力集合作初始值為空,文件可繼承能力集合記錄特權(quán)應用程序所需要的能力,文件有效能力集合現(xiàn)中的特權(quán)應用程序所需要的能力置廿116。4.如權(quán)利要求3所述的方法,其特征在于,所述服務器采用一工具對所述特權(quán)應用程序所需要的能力進行標記,且步驟3)之后,將該廿%6^叩工具設置為不可執(zhí)行。5.如權(quán)利要求3所述的方法,其特征在于,所述?八1模塊根據(jù)該角色對當前進程的能力進行標記的方法為:?八1模塊采用一進程可繼承能力集?1、進程允許能力集??、進程有效能力集邱和進程最多所能獲得的能力集丨對當前進行能力進行標記,其中首先清空進程的進程允許能力集和進程有效能力集成,然后設置當前進程可繼承能力集=86七1,設置。叩」3861:=861:1;其中,861:1為該角色包含的能力集。6.如權(quán)利要求5所述的方法,其特征在于,所述步驟7)中,如果該應用程序為特權(quán)應用程序,且該特權(quán)應用程序的文件可繼承能力集為8的1且對應的文件有效能力集現(xiàn)==廿116,則更新進程能力集為=紅I,且由于打:=廿116,貝丨」進程有效能力集成更新為更新后的值,從而進程將獲得860中定義的特權(quán),執(zhí)行該特權(quán)應用程序。7.如權(quán)利要求5所述的方法,其特征在于,當當前進程創(chuàng)建子進程時,子進程會繼承父進程的進程可繼承能力集和能力集而且子進程會清空進程允許能力集和進程有效能力集成,當子進程執(zhí)行某個特權(quán)應用程序時,該子進程將獲得該特權(quán)應用程序的文件可繼承能力集中定義的特權(quán),即該子進程的能力集=紅1、^=^==^1*1100【文檔編號】G06F21/45GK104484594SQ201410643335【公開日】2015年4月1日申請日期:2014年11月6日優(yōu)先權(quán)日:2014年11月6日【發(fā)明者】涂碧波,李艷昭,孟丹申請人:中國科學院信息工程研究所