SELinux策略的動態(tài)生成方法、裝置及終端設(shè)備的制造方法
【專利摘要】本發(fā)明公開了一種SELinux策略的動態(tài)生成方法、裝置及終端設(shè)備。該方法包括:解析終端設(shè)備新安裝的應(yīng)用程序的敏感權(quán)限的配置文件;獲得所述應(yīng)用程序涉及的主體和客體對象及所述主體和所述客體對象之間的關(guān)系;以及根據(jù)獲得的所述應(yīng)用程序涉及的主體和客體對象及所述主體和所述客體對象之間的關(guān)系,生成所述應(yīng)用程序的SELinux策略。該方法能夠動態(tài)生成應(yīng)用程序的SELinux策略,通過SELinux策略的控制保證從第三方應(yīng)用商店下載并安裝的應(yīng)用程序的權(quán)限不會出現(xiàn)過大的情況,從而確保終端設(shè)備的安全性。
【專利說明】
SEL i nux策略的動態(tài)生成方法、裝置及終端設(shè)備
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及終端設(shè)備安全技術(shù)領(lǐng)域,具體而言,涉及一種SELinux策略的動態(tài)生成方法、裝置及終端設(shè)備。
【背景技術(shù)】
[0002]SELi nux (Security-Enhanced Linux,安全增強(qiáng) Linux)是一種美國國家安全局(NSA)制定的對于強(qiáng)制訪問控制(MAC)的實(shí)現(xiàn)方法,是Linux操作系統(tǒng)中新的安全子系統(tǒng)。當(dāng)終端設(shè)備加載了 SELinux安全子系統(tǒng)后,能夠極大地提高其操作系統(tǒng)的安全等級。
[0003]SELinux策略是SELinux安全子系統(tǒng)實(shí)現(xiàn)強(qiáng)制訪問控制的重要組成部分。在SELinux策略中包含了整個(gè)操作系統(tǒng)中主體對客體的訪問控制。對于加載了 SELinux安全子系統(tǒng)的終端設(shè)備,當(dāng)其從第三方應(yīng)用商店中下載并安裝了一個(gè)新的應(yīng)用程序后,如果沒有為該應(yīng)用程序配置適當(dāng)?shù)腟ELinux策略,則該應(yīng)用程序?qū)o法使用。因此需要一種能夠動態(tài)生成應(yīng)用程序的SELinux策略的方法。
[0004]在所述【背景技術(shù)】部分公開的上述信息僅用于加強(qiáng)對本發(fā)明的背景的理解,因此它可以包括不構(gòu)成對本領(lǐng)域普通技術(shù)人員已知的現(xiàn)有技術(shù)的信息。
【發(fā)明內(nèi)容】
[0005]有鑒于此,本發(fā)明提供一種SELinux策略的動態(tài)生成方法、裝置及終端設(shè)備,能夠動態(tài)生成應(yīng)用程序的SELinux策略。
[0006]本發(fā)明的其他特性和優(yōu)點(diǎn)將通過下面的詳細(xì)描述變得顯然,或部分地通過本發(fā)明的實(shí)踐而習(xí)得。
[0007]根據(jù)本發(fā)明的一方面,提供了一種SELinux策略的動態(tài)生成方法,包括:解析終端設(shè)備新安裝的應(yīng)用程序的敏感權(quán)限的配置文件;獲得所述應(yīng)用程序涉及的主體和客體對象及所述主體和所述客體對象之間的關(guān)系;以及根據(jù)獲得的所述應(yīng)用程序涉及的主體和客體對象及所述主體和所述客體對象之間的關(guān)系,生成所述應(yīng)用程序的SELinux策略。
[0008]根據(jù)本發(fā)明的一實(shí)施方式,上述方法還包括:加載生成的所述應(yīng)用程序的SELinux策略。
[0009]根據(jù)本發(fā)明的一實(shí)施方式,所述加載生成的所述應(yīng)用程序的SELinux策略包括:借由一后臺服務(wù)進(jìn)程,通過進(jìn)程間消息通信獲取生成的所述應(yīng)用程序的SELinux策略;以及將所述應(yīng)用程序的SELinux策略加載至所述終端設(shè)備的操作系統(tǒng)的內(nèi)核中。
[0010]根據(jù)本發(fā)明的一實(shí)施方式,所述解析終端設(shè)備新安裝的應(yīng)用程序的敏感權(quán)限的配置文件包括:當(dāng)所述終端設(shè)備新安裝了所述應(yīng)用程序時(shí),解析所述應(yīng)用程序的敏感權(quán)限的配置文件。
[0011]根據(jù)本發(fā)明的一實(shí)施方式,所述解析終端設(shè)備新安裝的應(yīng)用程序的敏感權(quán)限的配置文件包括:當(dāng)所述終端設(shè)備新安裝了所述應(yīng)用程序時(shí),根據(jù)所述終端設(shè)備與一云端設(shè)備之間通信傳輸?shù)乃俣?,確定下載所述應(yīng)用程序的SELinux策略所需的時(shí)間;判斷從所述云端設(shè)備下載所述應(yīng)用程序的SELinux策略所需的時(shí)間是否短于動態(tài)生成所述應(yīng)用程序的SELinux策略所需的時(shí)間;當(dāng)從所述云端設(shè)備下載所述應(yīng)用程序的SELinux策略所需的時(shí)間短于動態(tài)生成所述應(yīng)用程序的SELinux策略所需的時(shí)間時(shí),向所述云端設(shè)備發(fā)送所述應(yīng)用程序的SELinux策略請求;以及當(dāng)接收到所述云端設(shè)備發(fā)送的無新安裝的所述應(yīng)用程序的SELinux策略的指示時(shí),解析所述應(yīng)用程序的敏感權(quán)限的配置文件。
[0012]根據(jù)本發(fā)明另一方面,提供了一種SELinux策略的動態(tài)生成裝置,包括:文件解析模塊,用于解析終端設(shè)備新安裝的應(yīng)用程序的敏感權(quán)限的配置文件;內(nèi)容獲得模塊,用于獲得所述應(yīng)用程序涉及的主體和客體對象及所述主體和所述客體對象之間的關(guān)系;以及策略生成模塊,用于根據(jù)獲得的所述應(yīng)用程序涉及的主體和客體對象及所述主體和所述客體對象之間的關(guān)系,生成所述應(yīng)用程序的SELinux策略。
[0013]根據(jù)本發(fā)明的一實(shí)施方式,上述裝置還包括:策略加載模塊,用于加載生成的所述應(yīng)用程序的SELinux策略。
[0014]根據(jù)本發(fā)明的一實(shí)施方式,所述策略加載模塊包括:獲取子模塊,用于借由一后臺服務(wù)進(jìn)程,通過進(jìn)程間消息通信獲取生成的所述應(yīng)用程序的SELinux策略;以及加載子模塊,用于將所述應(yīng)用程序的SELinux策略加載至所述終端設(shè)備的操作系統(tǒng)的內(nèi)核中。
[0015]根據(jù)本發(fā)明的一實(shí)施方式,所述文件解析模塊包括:第一解析子模塊,用于當(dāng)所述終端設(shè)備新安裝了所述應(yīng)用程序時(shí),解析所述應(yīng)用程序的敏感權(quán)限的配置文件。
[0016]根據(jù)本發(fā)明的一實(shí)施方式,所述文件解析模塊包括:時(shí)間確定子模塊,用于當(dāng)所述終端設(shè)備新安裝了所述應(yīng)用程序時(shí),根據(jù)所述終端設(shè)備與一云端設(shè)備之間通信傳輸?shù)乃俣?,確定下載所述應(yīng)用程序的SELinux策略所需的時(shí)間;時(shí)間判斷子模塊,用于判斷從所述云端設(shè)備下載所述應(yīng)用程序的SELinux策略所需的時(shí)間是否短于動態(tài)生成所述應(yīng)用程序的SELinux策略所需的時(shí)間;請求發(fā)送子模塊,用于當(dāng)從所述云端設(shè)備下載所述應(yīng)用程序的SELinux策略所需的時(shí)間短于動態(tài)生成所述應(yīng)用程序的SELinux策略所需的時(shí)間時(shí),向所述云端設(shè)備發(fā)送所述應(yīng)用程序的SELinux策略請求;以及第二解析子模塊,用于當(dāng)接收到所述云端設(shè)備發(fā)送的無新安裝的所述應(yīng)用程序的SELinux策略的指示時(shí),解析所述應(yīng)用程序的敏感權(quán)限的配置文件。
[0017]根據(jù)本發(fā)明再一方面,提供了一種終端設(shè)備,包括:處理器;以及存儲器,用于存儲所述處理器的可執(zhí)行指令;其中所述處理器配置為經(jīng)由執(zhí)行所述可執(zhí)行指令來執(zhí)行以下操作:解析終端設(shè)備新安裝的應(yīng)用程序的敏感權(quán)限的配置文件;獲得所述應(yīng)用程序涉及的主體和客體對象及所述主體和所述客體對象之間的關(guān)系;以及根據(jù)獲得的所述應(yīng)用程序涉及的主體和客體對象及所述主體和所述客體對象之間的關(guān)系,生成所述應(yīng)用程序的SELinux策略。
[0018]根據(jù)本發(fā)明的SELinux策略的動態(tài)生成方法,能夠動態(tài)生成應(yīng)用程序的SELinux策略,通過SELinux策略的控制保證從第三方應(yīng)用商店下載并安裝的應(yīng)用程序的權(quán)限不會出現(xiàn)過大的情況,從而確保終端設(shè)備的安全性。
[0019]應(yīng)當(dāng)理解的是,以上的一般描述和后文的細(xì)節(jié)描述僅是示例性的,并不能限制本發(fā)明。
【附圖說明】
[0020]通過參照附圖詳細(xì)描述其示例實(shí)施例,本發(fā)明的上述和其它目標(biāo)、特征及優(yōu)點(diǎn)將變得更加顯而易見。
[0021]圖1是根據(jù)一示例性實(shí)施方式示出的一種SELinux策略的動態(tài)生成方法的流程圖。
[0022]圖2是根據(jù)一示例性實(shí)施方式示出的另一種SELinux策略的動態(tài)生成方法的流程圖。
[0023]圖3是根據(jù)一示例性實(shí)施方式示出的一種SELinux策略的動態(tài)生成裝置的框圖。
[0024]圖4是根據(jù)一示例性實(shí)施方式示出的另一種SELinux策略的動態(tài)生成裝置的框圖。
[0025]圖5是根據(jù)一示例性實(shí)施方式示出的再一種SELinux策略的動態(tài)生成裝置的框圖。
【具體實(shí)施方式】
[0026]現(xiàn)在將參考附圖更全面地描述示例實(shí)施方式。然而,示例實(shí)施方式能夠以多種形式實(shí)施,且不應(yīng)被理解為限于在此闡述的范例;相反,提供這些實(shí)施方式使得本發(fā)明將更加全面和完整,并將示例實(shí)施方式的構(gòu)思全面地傳達(dá)給本領(lǐng)域的技術(shù)人員。附圖僅為本發(fā)明的示意性圖解,并非一定是按比例繪制。圖中相同的附圖標(biāo)記表示相同或類似的部分,因而將省略對它們的重復(fù)描述。
[0027]此外,所描述的特征、結(jié)構(gòu)或特性可以以任何合適的方式結(jié)合在一個(gè)或更多實(shí)施方式中。在下面的描述中,提供許多具體細(xì)節(jié)從而給出對本發(fā)明的實(shí)施方式的充分理解。然而,本領(lǐng)域技術(shù)人員將意識到,可以實(shí)踐本發(fā)明的技術(shù)方案而省略所述特定細(xì)節(jié)中的一個(gè)或更多,或者可以采用其它的方法、組元、裝置、步驟等。在其它情況下,不詳細(xì)示出或描述公知結(jié)構(gòu)、方法、裝置、實(shí)現(xiàn)或者操作以避免喧賓奪主而使得本發(fā)明的各方面變得模糊。
[0028]圖1是根據(jù)一示例性實(shí)施方式示出的一種SELinux策略的動態(tài)生成方法的流程圖。如圖1所示,該方法1包括:
[0029]在步驟S102中,當(dāng)終端設(shè)備新安裝了一個(gè)應(yīng)用程序時(shí),解析該應(yīng)用程序的敏感權(quán)限的配置文件。
[0030]—個(gè)應(yīng)用程序的進(jìn)程就是一個(gè)安全的沙盒,其不能干擾其他應(yīng)用程序的進(jìn)程處理。但當(dāng)一個(gè)應(yīng)用程序的進(jìn)程被顯示地聲明為“permiss1ns(許可)”時(shí),該進(jìn)程就可以獲取普通進(jìn)程不具備的能力,例如通過自主訪問控制(DAC)進(jìn)行更加細(xì)化的訪問控制。終端設(shè)備的操作系統(tǒng)中通常均具有敏感權(quán)限控制。
[0031]在步驟S104中,獲得該應(yīng)用程序涉及的主體和客體以及兩者之間的關(guān)系。
[0032]SELinux是一套基于策略的安全系統(tǒng)。在其安全策略中,通過標(biāo)簽的設(shè)定來實(shí)現(xiàn)主體對客體的控制。其中主體可以為終端設(shè)備中運(yùn)行的每個(gè)進(jìn)程,客體則為系統(tǒng)中的所有資源,包括:文件系統(tǒng)、目錄、文件、文件啟動指示符、端口、消息接□和網(wǎng)絡(luò)接口等。每個(gè)進(jìn)程都擁有自己的標(biāo)簽,而每個(gè)客體對象也都擁有自己的標(biāo)簽。通過編寫的SELinux安全策略,來控制進(jìn)程標(biāo)簽可以對客體對象標(biāo)簽進(jìn)行訪問,如文件訪問、讀寫及SOCKET操作等。例如,通過策略配置,允許標(biāo)簽為A的進(jìn)程對標(biāo)簽為B的文件進(jìn)行讀寫操作;或者,允許標(biāo)簽為C的進(jìn)程對標(biāo)簽為D的消息接口進(jìn)行SOCKET通信等。在終端設(shè)備被啟動時(shí),將SELinux策略文件加載到內(nèi)核中,從而實(shí)現(xiàn)后續(xù)SELinux的強(qiáng)制訪問控制。
[0033]因此通過解析該應(yīng)用程序的敏感權(quán)限的配置文件,獲得生成該應(yīng)用程序的SELinux策略所需的主體和客體以及兩者之間的關(guān)系后,即可生成該應(yīng)用程序相應(yīng)的SELinux 策略。
[0034]如上所述,具有敏感權(quán)限的進(jìn)程可以通過自主訪問控制進(jìn)行更加細(xì)化的訪問控制。因此,通過解析敏感權(quán)限的配置文件,可以獲得上述主體和客體對象及兩者之間的關(guān)系。通常,通過第三方應(yīng)用商店下載并安裝的應(yīng)用程序要求訪問的客體對象資源比較固定,如一些公共文件及進(jìn)程間通信等,并且通過參考安全沙盒的機(jī)制被限定在一個(gè)固定目錄和Uid中。而對于其他客體對象資源,則可以通過設(shè)定SELinux策略來限定對這些客體對象的訪問權(quán)限。
[0035]在步驟S106中,根據(jù)獲得的該應(yīng)用程序涉及的主體和客體以及兩者之間的關(guān)系,生成該應(yīng)用程序的SELinux策略。
[0036]例如可以通過調(diào)用SELinux策略生成工具check_pol icy等來根據(jù)獲得的該應(yīng)用程序的SELinux策略所需的主體和客體以及兩者之間的關(guān)系,生成該應(yīng)用程序的SELinux策略。
[0037]上述步驟S102?S106例如可以在應(yīng)用層中的應(yīng)用商店應(yīng)用程序中增加新的SELinux策略生成模塊來實(shí)現(xiàn)。此外,在一些實(shí)施例中,方法10還可以進(jìn)一步包括:在步驟S108中,加載生成的該應(yīng)用程序的SELinux策略。
[0038]具體地,新開發(fā)一個(gè)后臺進(jìn)程,該進(jìn)程為一權(quán)限較高的服務(wù)進(jìn)程,用于與上述SELinux策略生成模塊進(jìn)行通信(例如可以通過進(jìn)程間的dbus消息通信),從而交互SELinux策略生成模塊生成的新安裝的應(yīng)用程序的SELinux策略。該后臺進(jìn)程接收到該SELinux策略后,例如可以通過SELinux策略加載工具load_pol icy將該SELinux加載至終端設(shè)備操作系統(tǒng)的內(nèi)核中。
[0039]本發(fā)明實(shí)施方式的SELinux策略的動態(tài)生成方法,能夠動態(tài)生成應(yīng)用程序的SELinux策略,通過SELinux策略的控制保證從第三方應(yīng)用商店下載并安裝的應(yīng)用程序的權(quán)限不會出現(xiàn)過大的情況,從而確保終端設(shè)備的安全性。
[0040]應(yīng)清楚地理解,本發(fā)明描述了如何形成和使用特定示例,但本發(fā)明的原理不限于這些示例的任何細(xì)節(jié)。相反,基于本發(fā)明公開的內(nèi)容的教導(dǎo),這些原理能夠應(yīng)用于許多其它實(shí)施方式。
[0041]圖2是根據(jù)一示例性實(shí)施方式示出的另一種SELinux策略的動態(tài)生成方法的流程圖。與圖1所示的方法10不同之處在于,該方法進(jìn)一步通過當(dāng)前網(wǎng)絡(luò)的傳輸速度判斷從一云端設(shè)備下載新安裝的應(yīng)用程序的SELinux策略所需的時(shí)間與本地動態(tài)生成該SELinux策略所需的時(shí)間的長短,來確定是根據(jù)如方法10中所述的本地生成的方法來本地生成該SELinux策略,還是從云端設(shè)備下載該SELinux策略。通常本地動態(tài)生成SELinux策略的時(shí)間為一個(gè)固定的時(shí)間,可通過測量獲得該時(shí)間值。
[0042]如圖2所示,該方法20包括:
[0043]在步驟S202中,當(dāng)終端設(shè)備新安裝了一個(gè)應(yīng)用程序時(shí),根據(jù)該終端設(shè)備與一云端設(shè)備之間通信傳輸?shù)乃俣?,確定下載該應(yīng)用程序的SELinux策略所需的時(shí)間。
[0044]雖然不同應(yīng)用程序的SELinux策略文件大小有可能不同,但可以通過一個(gè)預(yù)設(shè)的文件大小,計(jì)算傳輸該SELinux策略所需的大致時(shí)間。該預(yù)設(shè)的文件大小可以為預(yù)估的SELinux策略的文件大小,也可以為根據(jù)一經(jīng)驗(yàn)值設(shè)定的SELinux策略的平均文件大小值。
[0045]此外,終端設(shè)備與云端設(shè)備之間的通信連接還可以為一VPN連接,從而保證SELinux策略傳輸?shù)陌踩浴?br>[0046]在步驟S204中,判斷從云端設(shè)備下載該應(yīng)用程序的SELinux策略所需的時(shí)間是否短于本地動態(tài)生成該應(yīng)用程序的SELinux策略所需的時(shí)間,如果是,則進(jìn)入步驟S206 ;否則,進(jìn)入步驟S214。
[0047]在步驟S206中,向該云端設(shè)備發(fā)送該應(yīng)用程序的SELinux策略請求。
[0048]在步驟S208中,接收云端設(shè)備返回的響應(yīng)。
[0049]在步驟S210中,判斷從云端設(shè)備接收到的響應(yīng),如果接收到的是該新安裝的應(yīng)用程序的SELinux策略,則執(zhí)行步驟S212;如果接收到的是無該新安裝的應(yīng)用程序的SELinux策略的指示,則執(zhí)行步驟S214。
[0050]當(dāng)云端設(shè)備存儲該新安裝的應(yīng)用程序的SELinux策略時(shí),接收從云端設(shè)備返回的該新安裝的應(yīng)用程序的SELinux策略;而當(dāng)云端設(shè)備沒有存儲該新安裝的應(yīng)用程序的SELinux策略時(shí),接收云端設(shè)備發(fā)送的無該新安裝的應(yīng)用程序的SELinux策略的響應(yīng)。
[0051]通常,針對不同型號的終端設(shè)備,即使所安裝的應(yīng)用程序相同,但該應(yīng)用程序?qū)?yīng)的SELinux策略也不同。因此,云端設(shè)備在查找其是否存儲有該新安裝的應(yīng)用程序的SELinux策略時(shí),還需要確定所存儲的該應(yīng)用程序的SELinux策略所對應(yīng)的終端設(shè)備的型號。如果該型號不是申請SELinux策略的終端設(shè)備的型號,則也確認(rèn)為沒有存儲該新安裝的應(yīng)用程序的SELinux策略。終端設(shè)備的型號例如可以攜帶在該應(yīng)用程序的的SELinux策略請求中?;蛘?,云端設(shè)備也可以從與終端設(shè)備所建立的底層通信連接中獲得。
[0052]此外,即使相同型號的終端設(shè)備安裝的相同的應(yīng)用程序,如果該應(yīng)用程序在個(gè)別終端設(shè)備上有特別權(quán)限(例如主體進(jìn)程權(quán)限)的需求,則該應(yīng)用程序?qū)?yīng)的SELinux策略也會不同。因此,終端設(shè)備在向云端設(shè)備請求時(shí),需要在請求中指明特別權(quán)限。而云端設(shè)備在查找是否存儲該應(yīng)用程序的SELinux策略時(shí),也需要判斷所存儲的該應(yīng)用程序的SELinux策略是否有特別權(quán)限的要求。
[0053]此外,云端設(shè)備在接收到終端設(shè)備的策略請求時(shí),云端設(shè)備還可以對該終端設(shè)備及其請求的應(yīng)用程序進(jìn)行審核。其審核標(biāo)準(zhǔn)例如可以是根據(jù)云端設(shè)備已存儲的合法設(shè)備ID號對請求的終端設(shè)備進(jìn)行審核,而對應(yīng)用程序的審核例如可以是根據(jù)終端設(shè)備已存儲的合法應(yīng)用程序?qū)φ埱蟮膽?yīng)用程序進(jìn)行審核。僅當(dāng)終端設(shè)備和應(yīng)用程序的審核均被通過時(shí),云端設(shè)備才會向該終端設(shè)備發(fā)送其請求的應(yīng)用程序的SELinux策略。在一些實(shí)施例中,云端設(shè)備存儲的合法設(shè)備ID和/或合法應(yīng)用程序可以從一數(shù)據(jù)庫中導(dǎo)入。
[0054]在步驟S212中,加載該新安裝的應(yīng)用程序的SELinux策略。
[0055]在步驟S214中,解析該應(yīng)用程序的敏感權(quán)限的配置文件。
[0056]在步驟S216中,獲得該應(yīng)用程序涉及的主體和客體以及兩者之間的關(guān)系。
[0057]在步驟S218中,根據(jù)獲得的該應(yīng)用程序涉及的主體和客體以及兩者之間的關(guān)系,生成該應(yīng)用程序的SELinux策略。
[0058]上述步驟S214?S218與方法10中的步驟S102?S106相同,在此不再贅述。
[0059]步驟S218之后,進(jìn)入步驟S212,加載該新安裝的應(yīng)用程序的SELinux策略。
[0060]本發(fā)明實(shí)施方式的SELinux策略的動態(tài)生成方法,進(jìn)一步提供了一種從云端設(shè)備下載新安裝的SEL i nux策略的方法。如果從云端設(shè)備下載該SEL i nux策略所需的時(shí)間短于動態(tài)生成該SELinux策略的時(shí)間,則可以向云端設(shè)備發(fā)送策略的下載請求,從而加快獲得SELinux策略的時(shí)間。
[0061]本領(lǐng)域技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施方式的全部或部分步驟被實(shí)現(xiàn)為由CPU執(zhí)行的計(jì)算機(jī)程序。在該計(jì)算機(jī)程序被(PU執(zhí)行時(shí),執(zhí)行本發(fā)明提供的上述方法所限定的上述功能。所述的程序可以存儲于一種計(jì)算機(jī)可讀存儲介質(zhì)中,該存儲介質(zhì)可以是只讀存儲器,磁盤或光盤等。
[0062]此外,需要注意的是,上述附圖僅是根據(jù)本發(fā)明示例性實(shí)施方式的方法所包括的處理的示意性說明,而不是限制目的。易于理解,上述附圖所示的處理并不表明或限制這些處理的時(shí)間順序。另外,也易于理解,這些處理可以是例如在多個(gè)模塊中同步或異步執(zhí)行的。
[0063]下述為本發(fā)明裝置實(shí)施例,可以用于執(zhí)行本發(fā)明方法實(shí)施例。對于本發(fā)明裝置實(shí)施例中未披露的細(xì)節(jié),請參照本發(fā)明方法實(shí)施例。
[0064]圖3是根據(jù)一示例性實(shí)施方式示出的一種SELinux策略的動態(tài)生成裝置的框圖。如圖3所示,該裝置30包括:文件解析模塊302、內(nèi)容獲得模塊304及策略生成模塊306。
[0065]文件解析模塊302用于解析終端設(shè)備新安裝的應(yīng)用程序的敏感權(quán)限的配置文件。
[0066]在一些實(shí)施例中,文件解析模塊302包括:第一解析子模塊3022,用于當(dāng)所述終端設(shè)備新安裝了所述應(yīng)用程序時(shí),解析所述應(yīng)用程序的敏感權(quán)限的配置文件。
[0067]內(nèi)容獲得模塊304用于獲得所述應(yīng)用程序涉及的主體和客體對象及所述主體和所述客體對象之間的關(guān)系。
[0068]策略生成模塊306用于根據(jù)獲得的所述應(yīng)用程序涉及的主體和客體對象及所述主體和所述客體對象之間的關(guān)系,生成所述應(yīng)用程序的SELinux策略。
[0069]本發(fā)明實(shí)施方式的SELinux策略的動態(tài)生成裝置,能夠動態(tài)生成應(yīng)用程序的SELinux策略,通過SELinux策略的控制保證從第三方應(yīng)用商店下載并安裝的應(yīng)用程序的權(quán)限不會出現(xiàn)過大的情況,從而確保終端設(shè)備的安全性。
[0070]圖4是根據(jù)一示例性實(shí)施方式示出的另一種SELinux策略的動態(tài)生成裝置的框圖。如圖4所示,該裝置40包括:文件解析模塊402、內(nèi)容獲得模塊404、策略生成模塊406及策略加載模塊408。
[0071]文件解析模塊402用于解析終端設(shè)備新安裝的應(yīng)用程序的敏感權(quán)限的配置文件。
[0072]內(nèi)容獲得模塊404用于獲得所述應(yīng)用程序涉及的主體和客體對象及所述主體和所述客體對象之間的關(guān)系。
[0073]策略生成模塊406用于根據(jù)獲得的所述應(yīng)用程序涉及的主體和客體對象及所述主體和所述客體對象之間的關(guān)系,生成所述應(yīng)用程序的SELinux策略。
[0074]策略加載模塊408用于加載生成的所述應(yīng)用程序的SELinux策略。
[0075]在一些實(shí)施例中,策略加載模塊408包括:獲取子模塊4082及加載子模塊4084。獲取子模塊4082用于借由一后臺服務(wù)進(jìn)程,通過進(jìn)程間消息通信獲取生成的所述應(yīng)用程序的SELinux策略。加載子模塊4084用于將所述應(yīng)用程序的SELinux策略加載至所述終端設(shè)備的操作系統(tǒng)的內(nèi)核中。
[0076]需要注意的是,上述附圖中所示的框圖是功能實(shí)體,不一定必須與物理或邏輯上獨(dú)立的實(shí)體相對應(yīng)??梢圆捎密浖问絹韺?shí)現(xiàn)這些功能實(shí)體,或在一個(gè)或多個(gè)硬件模塊或集成電路中實(shí)現(xiàn)這些功能實(shí)體,或在不同網(wǎng)絡(luò)和/或處理器裝置和/或微控制器裝置中實(shí)現(xiàn)這些功能實(shí)體。
[0077]圖5是根據(jù)一示例性實(shí)施方式示出的再一種SELinux策略的動態(tài)生成裝置的框圖。如圖5所示,該裝置50包括:文件解析模塊502、內(nèi)容獲得模塊504及策略生成模塊506。
[0078]文件解析模塊502包括:時(shí)間確定子模塊5022、時(shí)間判斷子模塊5024、請求發(fā)送子模塊5026及第二解析子模塊5028。
[0079]時(shí)間確定子模塊5022用于當(dāng)所述終端設(shè)備新安裝了所述應(yīng)用程序時(shí),根據(jù)所述終端設(shè)備與一云端設(shè)備之間通信傳輸?shù)乃俣?,確定下載所述應(yīng)用程序的SELinux策略所需的時(shí)間。
[0080]時(shí)間判斷子模塊5024用于判斷從所述云端設(shè)備下載所述應(yīng)用程序的SELinux策略所需的時(shí)間是否短于動態(tài)生成所述應(yīng)用程序的SELinux策略所需的時(shí)間。
[0081]請求發(fā)送子模塊5026用于當(dāng)從所述云端設(shè)備下載所述應(yīng)用程序的SELinux策略所需的時(shí)間短于動態(tài)生成所述應(yīng)用程序的SELinux策略所需的時(shí)間時(shí),向所述云端設(shè)備發(fā)送所述應(yīng)用程序的SELinux策略請求。
[0082]第二解析子模塊5028用于當(dāng)接收到所述云端設(shè)備發(fā)送的無新安裝的所述應(yīng)用程序的SELinux策略的指示時(shí),解析所述應(yīng)用程序的敏感權(quán)限的配置文件。
[0083]內(nèi)容獲得模塊504用于獲得所述應(yīng)用程序涉及的主體和客體對象及所述主體和所述客體對象之間的關(guān)系。
[0084]策略生成模塊506用于根據(jù)獲得的所述應(yīng)用程序涉及的主體和客體對象及所述主體和所述客體對象之間的關(guān)系,生成所述應(yīng)用程序的SELinux策略。
[0085]通過以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員易于理解,這里描述的示例實(shí)施方式可以通過軟件實(shí)現(xiàn),也可以通過軟件結(jié)合必要的硬件的方式來實(shí)現(xiàn)。因此,根據(jù)本發(fā)明實(shí)施方式的技術(shù)方案可以以軟件產(chǎn)品的形式體現(xiàn)出來,該軟件產(chǎn)品可以存儲在一個(gè)非易失性存儲介質(zhì)(可以是CD-ROM,U盤,移動硬盤等)中或網(wǎng)絡(luò)上,包括若干指令以使得一臺計(jì)算設(shè)備(可以是個(gè)人計(jì)算機(jī)、服務(wù)器、移動終端、或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行根據(jù)本發(fā)明實(shí)施方式的方法。
[0086]以上具體地示出和描述了本發(fā)明的示例性實(shí)施方式。應(yīng)可理解的是,本發(fā)明不限于這里描述的詳細(xì)結(jié)構(gòu)、設(shè)置方式或?qū)崿F(xiàn)方法;相反,本發(fā)明意圖涵蓋包含在所附權(quán)利要求的精神和范圍內(nèi)的各種修改和等效設(shè)置。
【主權(quán)項(xiàng)】
1.一種SELinux策略的動態(tài)生成方法,其特征在于,包括: 解析終端設(shè)備新安裝的應(yīng)用程序的敏感權(quán)限的配置文件; 獲得所述應(yīng)用程序涉及的主體和客體對象及所述主體和所述客體對象之間的關(guān)系;以及 根據(jù)獲得的所述應(yīng)用程序涉及的主體和客體對象及所述主體和所述客體對象之間的關(guān)系,生成所述應(yīng)用程序的SELinux策略。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,還包括:加載生成的所述應(yīng)用程序的SELinux 策略。3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述加載生成的所述應(yīng)用程序的SELinux策略包括: 借由一后臺服務(wù)進(jìn)程,通過進(jìn)程間消息通信獲取生成的所述應(yīng)用程序的SELinux策略;以及 將所述應(yīng)用程序的SELinux策略加載至所述終端設(shè)備的操作系統(tǒng)的內(nèi)核中。4.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述解析終端設(shè)備新安裝的應(yīng)用程序的敏感權(quán)限的配置文件包括: 當(dāng)所述終端設(shè)備新安裝了所述應(yīng)用程序時(shí),解析所述應(yīng)用程序的敏感權(quán)限的配置文件。5.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述解析終端設(shè)備新安裝的應(yīng)用程序的敏感權(quán)限的配置文件包括: 當(dāng)所述終端設(shè)備新安裝了所述應(yīng)用程序時(shí),根據(jù)所述終端設(shè)備與一云端設(shè)備之間通信傳輸?shù)乃俣?,確定下載所述應(yīng)用程序的SELinux策略所需的時(shí)間; 判斷從所述云端設(shè)備下載所述應(yīng)用程序的SELinux策略所需的時(shí)間是否短于動態(tài)生成所述應(yīng)用程序的SELinux策略所需的時(shí)間; 當(dāng)從所述云端設(shè)備下載所述應(yīng)用程序的SELinux策略所需的時(shí)間短于動態(tài)生成所述應(yīng)用程序的SELinux策略所需的時(shí)間時(shí),向所述云端設(shè)備發(fā)送所述應(yīng)用程序的SELinux策略請求;以及 當(dāng)接收到所述云端設(shè)備發(fā)送的無新安裝的所述應(yīng)用程序的SELinux策略的指示時(shí),解析所述應(yīng)用程序的敏感權(quán)限的配置文件。6.一種SELinux策略的動態(tài)生成裝置,其特征在于,包括: 文件解析模塊,用于解析終端設(shè)備新安裝的應(yīng)用程序的敏感權(quán)限的配置文件; 內(nèi)容獲得模塊,用于獲得所述應(yīng)用程序涉及的主體和客體對象及所述主體和所述客體對象之間的關(guān)系;以及 策略生成模塊,用于根據(jù)獲得的所述應(yīng)用程序涉及的主體和客體對象及所述主體和所述客體對象之間的關(guān)系,生成所述應(yīng)用程序的SELinux策略。7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,還包括:策略加載模塊,用于加載生成的所述應(yīng)用程序的SELinux策略。8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述策略加載模塊包括: 獲取子模塊,用于借由一后臺服務(wù)進(jìn)程,通過進(jìn)程間消息通信獲取生成的所述應(yīng)用程序的SELinux策略;以及 加載子模塊,用于將所述應(yīng)用程序的SELinux策略加載至所述終端設(shè)備的操作系統(tǒng)的內(nèi)核中。9.根據(jù)權(quán)利要求6或7所述的裝置,其特征在于,所述文件解析模塊包括: 第一解析子模塊,用于當(dāng)所述終端設(shè)備新安裝了所述應(yīng)用程序時(shí),解析所述應(yīng)用程序的敏感權(quán)限的配置文件。10.根據(jù)權(quán)利要求6或7所述的裝置,其特征在于,所述文件解析模塊包括: 時(shí)間確定子模塊,用于當(dāng)所述終端設(shè)備新安裝了所述應(yīng)用程序時(shí),根據(jù)所述終端設(shè)備與一云端設(shè)備之間通信傳輸?shù)乃俣?,確定下載所述應(yīng)用程序的SELinux策略所需的時(shí)間; 時(shí)間判斷子模塊,用于判斷從所述云端設(shè)備下載所述應(yīng)用程序的SELinux策略所需的時(shí)間是否短于動態(tài)生成所述應(yīng)用程序的SELinux策略所需的時(shí)間; 請求發(fā)送子模塊,用于當(dāng)從所述云端設(shè)備下載所述應(yīng)用程序的SELinux策略所需的時(shí)間短于動態(tài)生成所述應(yīng)用程序的SELinux策略所需的時(shí)間時(shí),向所述云端設(shè)備發(fā)送所述應(yīng)用程序的SELinux策略請求;以及 第二解析子模塊,用于當(dāng)接收到所述云端設(shè)備發(fā)送的無新安裝的所述應(yīng)用程序的SELinux策略的指示時(shí),解析所述應(yīng)用程序的敏感權(quán)限的配置文件。11.一種終端設(shè)備,其特征在于,包括: 處理器;以及 存儲器,用于存儲所述處理器的可執(zhí)行指令; 其中所述處理器配置為經(jīng)由執(zhí)行所述可執(zhí)行指令來執(zhí)行以下操作: 解析終端設(shè)備新安裝的應(yīng)用程序的敏感權(quán)限的配置文件; 獲得所述應(yīng)用程序涉及的主體和客體對象及所述主體和所述客體對象之間的關(guān)系;以及 根據(jù)獲得的所述應(yīng)用程序涉及的主體和客體對象及所述主體和所述客體對象之間的關(guān)系,生成所述應(yīng)用程序的SELinux策略。
【文檔編號】G06F9/445GK106095495SQ201610389160
【公開日】2016年11月9日
【申請日】2016年6月2日 公開號201610389160.9, CN 106095495 A, CN 106095495A, CN 201610389160, CN-A-106095495, CN106095495 A, CN106095495A, CN201610389160, CN201610389160.9
【發(fā)明人】蘭書俊
【申請人】北京元心科技有限公司