操作系統(tǒng)中的內(nèi)核模塊加載控制方法
【專利摘要】本發(fā)明公開(kāi)一種操作系統(tǒng)中的內(nèi)核模塊加載控制方法,步驟為:1)執(zhí)行操作系統(tǒng)引導(dǎo)過(guò)程中,通過(guò)內(nèi)核態(tài)下的內(nèi)核密封模塊關(guān)閉所有用戶的內(nèi)核模塊處理能力,并啟用內(nèi)核密封模塊用戶驗(yàn)證功能,使得操作系統(tǒng)內(nèi)核進(jìn)入密封狀態(tài);2)在操作系統(tǒng)運(yùn)行過(guò)程中,通過(guò)內(nèi)核密封模塊截獲內(nèi)核模塊操作請(qǐng)求,并對(duì)發(fā)起內(nèi)核模塊操作請(qǐng)求的用戶或應(yīng)用進(jìn)行用戶驗(yàn)證,若驗(yàn)證通過(guò),則開(kāi)啟用戶或者應(yīng)用的內(nèi)核模塊處理能力,并通過(guò)操作系統(tǒng)內(nèi)核加載或卸載用戶或者應(yīng)用所請(qǐng)求的目標(biāo)內(nèi)核模塊。本發(fā)明具有能夠?qū)崿F(xiàn)內(nèi)核模塊加載的安全控制以及內(nèi)核模塊密封保護(hù)、安全性能高、內(nèi)核模塊加載的靈活性強(qiáng)、實(shí)現(xiàn)方法簡(jiǎn)單、通用性強(qiáng)的優(yōu)點(diǎn)。
【專利說(shuō)明】操作系統(tǒng)中的內(nèi)核模塊加載控制方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及l(fā)inux操作系統(tǒng)中內(nèi)核安全【技術(shù)領(lǐng)域】,尤其涉及一種操作系統(tǒng)中的內(nèi) 核模塊加載控制方法。
【背景技術(shù)】
[0002] 軟件模塊加載是Linux操作系統(tǒng)的一項(xiàng)基本功能,允許Linux操作系統(tǒng)內(nèi)核通過(guò) 模塊加載和卸載實(shí)現(xiàn)對(duì)驅(qū)動(dòng)支持和軟件功能的控制。Linux操作系統(tǒng)支持動(dòng)態(tài)加載和卸載 內(nèi)核模塊,這為擴(kuò)充系統(tǒng)功能和驅(qū)動(dòng)開(kāi)發(fā)帶來(lái)了極大的便利,但也為惡意用戶破壞系統(tǒng)提 供了可乘之機(jī)。如果內(nèi)核模塊被惡意地卸載,系統(tǒng)會(huì)喪失相應(yīng)功能,難以正常運(yùn)轉(zhuǎn);如果內(nèi) 核模塊能被隨意加載,則非法者可能植入惡意模塊,擾亂和破壞系統(tǒng)的正常運(yùn)轉(zhuǎn),因此對(duì)操 作系統(tǒng)內(nèi)核模塊加載的控制是確保系統(tǒng)平臺(tái)安全的重要途徑。Linux操作系統(tǒng)內(nèi)核模塊的 加載主要包括以下幾個(gè)階段: (1)操作系統(tǒng)的啟動(dòng)階段。
[0003] 操作系統(tǒng)的啟動(dòng)階段從主引導(dǎo)區(qū)調(diào)入操作系統(tǒng)裝載程序一直到操作系統(tǒng)內(nèi)核運(yùn) 行完畢,并運(yùn)行Init進(jìn)程,該階段主要加載了操作系統(tǒng)基本環(huán)境。
[0004] (2)內(nèi)核模塊動(dòng)態(tài)加載階段。
[0005] 操作系統(tǒng)運(yùn)行過(guò)程中,根據(jù)需要在內(nèi)核態(tài)加載軟件模塊。
[0006] (3)內(nèi)核模塊動(dòng)態(tài)卸載階段。
[0007] 操作系統(tǒng)運(yùn)行過(guò)程中,根據(jù)用戶或軟件控制在內(nèi)核態(tài)卸載已經(jīng)加載的軟件模塊。
[0008] 目前通用Linux內(nèi)核模塊的加載過(guò)程中,缺乏有效的安全控制,內(nèi)核態(tài)用戶均具 有內(nèi)核模塊處理能力(CAP_M0DULE),內(nèi)核模塊處理能力(CAP_M0DULE)是Linux操作系統(tǒng) 安全機(jī)制中定義的一種能力,用以控制軟件模塊加載操作,通過(guò)內(nèi)核模塊處理能力(CAP_ MODULE)能夠動(dòng)態(tài)加載和卸載內(nèi)核模塊。正如前文所述,由于目前Linux操作系統(tǒng)下內(nèi)核態(tài) 用戶可以隨意動(dòng)態(tài)加載和卸載內(nèi)核模塊,因此使得操作系統(tǒng)內(nèi)核面臨惡意模塊加載和安全 模塊被卸載的風(fēng)險(xiǎn),從而威脅整個(gè)計(jì)算機(jī)的安全。
【發(fā)明內(nèi)容】
[0009] 本發(fā)明要解決的技術(shù)問(wèn)題就在于:針對(duì)現(xiàn)有技術(shù)存在的技術(shù)問(wèn)題,本發(fā)明提供一 種能夠?qū)崿F(xiàn)內(nèi)核模塊加載的安全控制以及內(nèi)核模塊密封保護(hù)、安全性能高、內(nèi)核模塊加載 的靈活性強(qiáng)、實(shí)現(xiàn)方法簡(jiǎn)單、通用性強(qiáng)的操作系統(tǒng)中的內(nèi)核模塊加載控制方法。
[0010] 為解決上述技術(shù)問(wèn)題,本發(fā)明提出的技術(shù)方案為: 一種操作系統(tǒng)中的內(nèi)核模塊加載控制方法,其體實(shí)施步驟如下: 1) 在執(zhí)行操作系統(tǒng)引導(dǎo)過(guò)程中,通過(guò)在內(nèi)核態(tài)下加載的內(nèi)核密封模塊關(guān)閉所有用戶的 內(nèi)核模塊處理能力,并啟用所述內(nèi)核密封模塊的用戶驗(yàn)證功能,使得操作系統(tǒng)的內(nèi)核模塊 進(jìn)入密封狀態(tài); 2) 在操作系統(tǒng)運(yùn)行過(guò)程中,通過(guò)所述內(nèi)核密封模塊截獲操作系統(tǒng)內(nèi)核接收到的用于加 載或卸載內(nèi)核模塊的內(nèi)核模塊操作請(qǐng)求,并對(duì)發(fā)起內(nèi)核模塊操作請(qǐng)求的用戶或者應(yīng)用進(jìn)行 用戶驗(yàn)證,若驗(yàn)證通過(guò),則開(kāi)啟所述發(fā)起內(nèi)核模塊操作請(qǐng)求的用戶或者應(yīng)用的內(nèi)核模塊處 理能力,使得操作系統(tǒng)的內(nèi)核模塊相對(duì)所述發(fā)起加載內(nèi)核模塊請(qǐng)求的用戶或者應(yīng)用進(jìn)入臨 時(shí)開(kāi)放狀態(tài),通過(guò)操作系統(tǒng)內(nèi)核加載或卸載所述內(nèi)核模塊操作請(qǐng)求的目標(biāo)內(nèi)核模塊,且在 執(zhí)行內(nèi)核模塊操作請(qǐng)求完畢后關(guān)閉所有用戶的內(nèi)核模塊處理能力使操作系統(tǒng)的內(nèi)核模塊 恢復(fù)密封狀態(tài);若驗(yàn)證不通過(guò),則拒絕所述內(nèi)核模塊操作請(qǐng)求。
[0011] 優(yōu)選地,所述步驟1)中在內(nèi)核態(tài)下加載的內(nèi)核密封模塊被配置為具備安全管理員 角色。
[0012] 優(yōu)選地,所述步驟1)中所述內(nèi)核密封模塊的用戶驗(yàn)證功能具體是指用戶密碼驗(yàn)證 功能。
[0013] 優(yōu)選地,所述步驟2)的具體實(shí)施步驟為: 2. 1)在操作系統(tǒng)運(yùn)行過(guò)程中,通過(guò)所述內(nèi)核密封模塊截獲操作系統(tǒng)內(nèi)核接收到的內(nèi)核 模塊操作請(qǐng)求,并判斷所截獲內(nèi)核模塊操作請(qǐng)求的操作類型,如果操作類型為加載內(nèi)核模 塊,則跳轉(zhuǎn)執(zhí)行步驟2. 2);如果操作類型為卸載內(nèi)核模塊,則跳轉(zhuǎn)執(zhí)行步驟2. 6); 2. 2)所述內(nèi)核密封模塊對(duì)發(fā)起內(nèi)核模塊操作請(qǐng)求的用戶或者應(yīng)用進(jìn)行用戶驗(yàn)證,對(duì)發(fā) 起加載內(nèi)核模塊請(qǐng)求的用戶或應(yīng)用進(jìn)行用戶密碼驗(yàn)證; 2. 3)所述內(nèi)核密封模塊獲取用戶輸入的驗(yàn)證密碼,并通過(guò)所述用戶驗(yàn)證功能對(duì)用戶輸 入的驗(yàn)證密碼進(jìn)行驗(yàn)證,若驗(yàn)證通過(guò),則轉(zhuǎn)入執(zhí)行步驟2. 4);若驗(yàn)證不通過(guò),則判定用戶密 碼驗(yàn)證失敗,終止操作并退出; 2. 4)所述內(nèi)核密封模塊使用安全管理員角色開(kāi)啟所述發(fā)起加載內(nèi)核模塊請(qǐng)求的用戶 或者應(yīng)用的內(nèi)核模塊處理能力,使得操作系統(tǒng)的內(nèi)核模塊相對(duì)所述發(fā)起加載內(nèi)核模塊請(qǐng)求 的用戶或者應(yīng)用進(jìn)入臨時(shí)開(kāi)放狀態(tài),并通過(guò)操作系統(tǒng)內(nèi)核加載所述內(nèi)核模塊操作請(qǐng)求的目 標(biāo)內(nèi)核模塊; 2. 5)在所述目標(biāo)內(nèi)核模塊加載完成后,所述內(nèi)核密封模塊使用安全管理員角色關(guān)閉所 有用戶的內(nèi)核模塊處理能力,使得操作系統(tǒng)的內(nèi)核模塊恢復(fù)密封狀態(tài),內(nèi)核模塊操作請(qǐng)求 執(zhí)行完畢并退出; 2. 6)所述內(nèi)核密封模塊首先判定截獲的內(nèi)核模塊操作請(qǐng)求的目標(biāo)內(nèi)核模塊,如果目標(biāo) 內(nèi)核模塊為所述內(nèi)核密封模塊則終止操作并退出;否則,所述內(nèi)核密封模塊對(duì)發(fā)起內(nèi)核模 塊操作請(qǐng)求的用戶或者應(yīng)用進(jìn)行用戶驗(yàn)證,對(duì)發(fā)起內(nèi)核模塊操作請(qǐng)求的用戶或應(yīng)用進(jìn)行用 戶密碼驗(yàn)證; 2. 7)所述內(nèi)核密封模塊獲取用戶輸入的驗(yàn)證密碼,并通過(guò)所述用戶驗(yàn)證功能對(duì)用戶輸 入的驗(yàn)證密碼進(jìn)行驗(yàn)證,若驗(yàn)證通過(guò),則轉(zhuǎn)入執(zhí)行步驟2. 8);若驗(yàn)證不通過(guò),則判定用戶密 碼驗(yàn)證失敗,終止操作并退出; 2. 8)所述內(nèi)核密封模塊使用安全管理員角色開(kāi)啟所述發(fā)起卸載內(nèi)核模塊請(qǐng)求的用戶 或者應(yīng)用的內(nèi)核模塊處理能力,使得操作系統(tǒng)的內(nèi)核模塊相對(duì)所述發(fā)起內(nèi)核模塊操作請(qǐng)求 的用戶或者應(yīng)用進(jìn)入臨時(shí)開(kāi)放狀態(tài),并通過(guò)操作系統(tǒng)內(nèi)核卸載所述內(nèi)核模塊操作請(qǐng)求的目 標(biāo)內(nèi)核模塊; 2. 9)在所述目標(biāo)內(nèi)核模塊卸載完成后,所述內(nèi)核密封模塊使用安全管理員角色關(guān)閉所 有用戶的內(nèi)核模塊處理能力,使得操作系統(tǒng)的內(nèi)核模塊恢復(fù)密封狀態(tài),內(nèi)核模塊操作請(qǐng)求 執(zhí)行完畢 與現(xiàn)有技術(shù)相比,本發(fā)明操作系統(tǒng)中的內(nèi)核模塊加載控制方法的優(yōu)點(diǎn)在于: 1)本發(fā)明采用能力機(jī)制,通過(guò)控制內(nèi)核模塊處理能力實(shí)現(xiàn)內(nèi)核模塊的密封狀態(tài)控制, 只有驗(yàn)證通過(guò)操作系統(tǒng)的內(nèi)核模塊才會(huì)相對(duì)發(fā)起加載內(nèi)核模塊請(qǐng)求的用戶或者應(yīng)用進(jìn)入 臨時(shí)開(kāi)放狀態(tài),若驗(yàn)證不通過(guò)則拒絕所述內(nèi)核模塊操作請(qǐng)求,只有具有內(nèi)核模塊處理能力 的用戶或者應(yīng)用才能在系統(tǒng)正常運(yùn)轉(zhuǎn)時(shí)加載或卸載內(nèi)核模塊,且在執(zhí)行內(nèi)核模塊操作請(qǐng)求 完畢后關(guān)閉所有用戶的內(nèi)核模塊處理能力使操作系統(tǒng)的內(nèi)核模塊恢復(fù)密封狀態(tài),從而能夠 有效保護(hù)內(nèi)核模塊的完整性,實(shí)現(xiàn)對(duì)操作系統(tǒng)內(nèi)核的密封保護(hù),既能保持動(dòng)態(tài)內(nèi)核模塊的 靈活性,又能解除對(duì)內(nèi)核模塊隨意加載或惡意卸載的安全隱患。
[0014] 2)本發(fā)明采用能力機(jī)制來(lái)實(shí)現(xiàn)內(nèi)核模塊的密封狀態(tài)控制,通過(guò)修改內(nèi)核對(duì)內(nèi)核模 塊加載和卸載的流程,增加基于用戶驗(yàn)證的安全控制環(huán)節(jié),控制用戶或應(yīng)用的內(nèi)核模塊加 載和卸載能力,同時(shí)通過(guò)使內(nèi)核模塊處于密封狀態(tài),實(shí)現(xiàn)安全可控制的內(nèi)核模塊密封,確保 內(nèi)核模塊不被隨意加載或惡意卸載,大大提升了操作系統(tǒng)內(nèi)核的安全性,與現(xiàn)有技術(shù)的通 用Linux的操作系統(tǒng)內(nèi)核模塊加載過(guò)程相比具有更好的安全性。
[0015] 3)本發(fā)明不需要改變操作系統(tǒng)內(nèi)核且不需要改變操作系統(tǒng)引導(dǎo)過(guò)程、操作系統(tǒng)運(yùn) 行過(guò)程的執(zhí)行順序,不會(huì)對(duì)操作系統(tǒng)及應(yīng)用程序的運(yùn)行造成影響,具有通用性好的優(yōu)點(diǎn)。
【專利附圖】
【附圖說(shuō)明】
[0016] 圖1為本發(fā)明實(shí)施例方法的實(shí)施步驟流程示意圖。
[0017] 圖2為本發(fā)明實(shí)施例中涉及的各實(shí)體之間的關(guān)系示意圖。
[0018] 圖3為應(yīng)用本發(fā)明實(shí)施例方法的操作系統(tǒng)引導(dǎo)過(guò)程的執(zhí)行流程示意圖。
[0019] 圖4為應(yīng)用本發(fā)明實(shí)施例方法的操作系統(tǒng)運(yùn)行過(guò)程的執(zhí)行流程示意圖。
【具體實(shí)施方式】
[0020] 以下結(jié)合說(shuō)明書附圖和具體優(yōu)選的實(shí)施例對(duì)本發(fā)明作進(jìn)一步描述,但并不因此而 限制本發(fā)明的保護(hù)范圍。
[0021] 如圖1所示,本實(shí)施例操作系統(tǒng)中的內(nèi)核模塊加載控制方法的實(shí)施步驟如下: 1) 在執(zhí)行操作系統(tǒng)引導(dǎo)過(guò)程中,通過(guò)在內(nèi)核態(tài)下加載的內(nèi)核密封模塊關(guān)閉所有用戶的 內(nèi)核模塊處理能力CAP_M0DULE,并啟用內(nèi)核密封模塊的用戶驗(yàn)證功能,使得操作系統(tǒng)的內(nèi) 核模塊進(jìn)入密封狀態(tài); 2) 在操作系統(tǒng)運(yùn)行過(guò)程中,通過(guò)內(nèi)核密封模塊截獲操作系統(tǒng)內(nèi)核接收到的用于加載 或卸載內(nèi)核模塊的內(nèi)核模塊操作請(qǐng)求,并對(duì)發(fā)起內(nèi)核模塊操作請(qǐng)求的用戶或者應(yīng)用進(jìn)行用 戶驗(yàn)證,若驗(yàn)證通過(guò),則開(kāi)啟發(fā)起內(nèi)核模塊操作請(qǐng)求的用戶或者應(yīng)用的內(nèi)核模塊處理能力 CAP_M0DULE,使得操作系統(tǒng)的內(nèi)核模塊相對(duì)發(fā)起加載內(nèi)核模塊請(qǐng)求的用戶或者應(yīng)用進(jìn)入臨 時(shí)開(kāi)放狀態(tài),通過(guò)操作系統(tǒng)內(nèi)核加載或卸載內(nèi)核模塊操作請(qǐng)求的目標(biāo)內(nèi)核模塊,且在執(zhí)行 內(nèi)核模塊操作請(qǐng)求完畢后關(guān)閉所有用戶的內(nèi)核模塊處理能力CAP_M0DULE使操作系統(tǒng)的內(nèi) 核模塊恢復(fù)密封狀態(tài);若驗(yàn)證不通過(guò),則拒絕所述內(nèi)核模塊操作請(qǐng)求。
[0022] 本實(shí)施例是基于操作系統(tǒng)內(nèi)核安全機(jī)制,在軟件模塊加載和卸載的流程中增加基 于用戶驗(yàn)證的安全控制環(huán)節(jié),以加強(qiáng)對(duì)內(nèi)核模塊加載的安全控制;通過(guò)能力機(jī)制完成內(nèi)核 密封,只有具有內(nèi)核模塊處理能力CAP_MODULE的用戶才能在系統(tǒng)正常運(yùn)轉(zhuǎn)時(shí)加載或卸載 模塊,實(shí)現(xiàn)對(duì)操作系統(tǒng)內(nèi)核的密封保護(hù)。
[0023] 本實(shí)施例中,步驟1)中在內(nèi)核態(tài)下加載的內(nèi)核密封模塊被配置為具備安全管理員 角色。內(nèi)核密封模塊的基本功能包括:標(biāo)志內(nèi)核模塊的密封狀態(tài)、控制用戶或者應(yīng)用的內(nèi) 核模塊處理能力CAP_M0DULE、以及用戶驗(yàn)證。用戶通過(guò)與角色關(guān)聯(lián)獲得相應(yīng)的內(nèi)核模塊處 理能力CAP_M0DULE,若安全管理員使所有角色不具有這個(gè)能力,即關(guān)閉內(nèi)核模塊處理能力 CAP_M0DULE,則內(nèi)核處于密封狀態(tài);操作系統(tǒng)啟動(dòng)時(shí),系統(tǒng)初始化進(jìn)程(Init進(jìn)程)具備模 塊管理能力,可以加載必要的內(nèi)核模塊,啟動(dòng)完成后則操作系統(tǒng)的內(nèi)核模塊進(jìn)入密封狀態(tài), 對(duì)用戶(包括系統(tǒng)管理員)不分配內(nèi)核模塊處理能力,使得任何用戶都不能對(duì)內(nèi)核模塊進(jìn)行 操作。系統(tǒng)正常運(yùn)轉(zhuǎn)時(shí),內(nèi)核處于密封狀態(tài),沒(méi)有特權(quán)的用戶或進(jìn)程既不能嵌入新的內(nèi)核模 塊,也不能卸載內(nèi)核模塊;如果系統(tǒng)管理員要進(jìn)行內(nèi)核模塊操作,則必須通過(guò)內(nèi)核密封模塊 的用戶驗(yàn)證,此時(shí)即使惡意用戶竊取了系統(tǒng)管理員帳號(hào),也不能加載或卸載內(nèi)核模塊,既能 保持內(nèi)核動(dòng)態(tài)模塊的靈活性,又能解除安全隱患,保護(hù)操作系統(tǒng)內(nèi)核的安全性。
[0024] 本實(shí)施例中,步驟1)中內(nèi)核密封模塊的用戶驗(yàn)證功能具體是指用戶密碼驗(yàn)證功 能。啟動(dòng)內(nèi)核密封模塊時(shí),內(nèi)核密封模塊針對(duì)發(fā)起內(nèi)核模塊操作請(qǐng)求的用戶或應(yīng)用進(jìn)行用 戶密碼驗(yàn)證,驗(yàn)證用戶或應(yīng)用的內(nèi)核模塊處理能力CAP_M0DULE。
[0025] 如圖2所示,本實(shí)施例涉及的實(shí)體包括安全管理員、操作系統(tǒng)內(nèi)核、內(nèi)核密封模 塊、軟件模塊(內(nèi)核模塊)、內(nèi)核模塊處理能力,其中安全管理員用于執(zhí)行操作系統(tǒng)安全配置 和管理操作的用戶角色,內(nèi)核密封模塊具備安全管理員角色,且具有控制用戶的內(nèi)核模塊 處理能力CAP_M0DULE的功能。
[0026] 如圖3所示,應(yīng)用本實(shí)施例的操作系統(tǒng)的引導(dǎo)過(guò)程如下:S1)系統(tǒng)加電,進(jìn)入操作 系統(tǒng)引導(dǎo)階段;由Grub操作系統(tǒng)加載器加載操作系統(tǒng)內(nèi)核映像,創(chuàng)建內(nèi)核關(guān)鍵數(shù)據(jù)結(jié)構(gòu), 創(chuàng)建并運(yùn)行內(nèi)核Init進(jìn)程;S2)內(nèi)核Init進(jìn)程根據(jù)系統(tǒng)配置確定需要加載的內(nèi)核模塊和需 要?jiǎng)?chuàng)建的守護(hù)進(jìn)程,加載內(nèi)核模塊、創(chuàng)建守護(hù)進(jìn)程并開(kāi)始接收用戶的輸入。S3)由內(nèi)核Init 進(jìn)程加載內(nèi)核密封模塊,由內(nèi)核密封模塊使用安全管理員角色關(guān)閉所有用戶的內(nèi)核模塊處 理能力CAP_M0DULE,啟用內(nèi)核密封模塊的用戶驗(yàn)證功能(具體是指啟用內(nèi)核模塊處理能力 密碼的驗(yàn)證功能),啟動(dòng)對(duì)內(nèi)核加載的密碼保護(hù)功能,使得操作系統(tǒng)的內(nèi)核模塊進(jìn)入密封狀 態(tài)。由上述操作系統(tǒng)引導(dǎo)過(guò)程可知,本實(shí)施例并不會(huì)改變操作系統(tǒng)引導(dǎo)過(guò)程中和運(yùn)行中的 模塊加載順序,對(duì)操作系統(tǒng)和應(yīng)用軟件的運(yùn)行均不會(huì)造成影響,具有通用性好的優(yōu)點(diǎn)。
[0027] 本實(shí)施例中,步驟2)的具體實(shí)施步驟如下: 2. 1)在操作系統(tǒng)運(yùn)行過(guò)程中,通過(guò)內(nèi)核密封模塊截獲操作系統(tǒng)內(nèi)核接收到的內(nèi)核模塊 操作請(qǐng)求,并判斷所截獲內(nèi)核模塊操作請(qǐng)求的操作類型,如果操作類型為加載內(nèi)核模塊,則 跳轉(zhuǎn)執(zhí)行步驟2. 2);如果操作類型為卸載內(nèi)核模塊,則跳轉(zhuǎn)執(zhí)行步驟2. 6)。
[0028] 2. 2)內(nèi)核密封模塊對(duì)發(fā)起內(nèi)核模塊操作請(qǐng)求的用戶或者應(yīng)用進(jìn)行用戶驗(yàn)證,對(duì)發(fā) 起加載內(nèi)核模塊請(qǐng)求的用戶或應(yīng)用進(jìn)行用戶密碼驗(yàn)證。本實(shí)施例中,對(duì)發(fā)起加載內(nèi)核模塊 請(qǐng)求的用戶或應(yīng)用進(jìn)行用戶密碼驗(yàn)證具體是指內(nèi)核密封模塊彈出密碼驗(yàn)證窗口以便用戶 輸入密碼。
[0029] 2. 3)內(nèi)核密封模塊獲取用戶輸入的驗(yàn)證密碼,并通過(guò)用戶驗(yàn)證功能對(duì)用戶輸入的 驗(yàn)證密碼進(jìn)行驗(yàn)證,若驗(yàn)證通過(guò),則轉(zhuǎn)入執(zhí)行步驟2. 4);若驗(yàn)證不通過(guò),則判定用戶密碼驗(yàn) 證失敗,終止操作并退出。本實(shí)施例中,內(nèi)核密封模塊啟用用戶驗(yàn)證功能時(shí)初始化設(shè)定有驗(yàn) 證密碼,如果用戶密碼與驗(yàn)證密碼一致,則判定驗(yàn)證通過(guò),否則判定驗(yàn)證不通過(guò);此外,也可 以利用操作系統(tǒng)自帶的用戶驗(yàn)證功能來(lái)實(shí)現(xiàn)用戶密碼驗(yàn)證。
[0030] 2. 4)內(nèi)核密封模塊使用安全管理員角色開(kāi)啟發(fā)起加載內(nèi)核模塊請(qǐng)求的用戶或者 應(yīng)用的內(nèi)核模塊處理能力CAP_M0DULE,使得操作系統(tǒng)的內(nèi)核模塊相對(duì)發(fā)起加載內(nèi)核模塊請(qǐng) 求的用戶或者應(yīng)用進(jìn)入臨時(shí)開(kāi)放狀態(tài),并通過(guò)操作系統(tǒng)內(nèi)核加載內(nèi)核模塊操作請(qǐng)求的目標(biāo) 內(nèi)核模塊。
[0031] 2. 5)在目標(biāo)內(nèi)核模塊加載完成后,內(nèi)核密封模塊使用安全管理員角色關(guān)閉所有用 戶的內(nèi)核模塊處理能力CAP_M0DULE,使得操作系統(tǒng)的內(nèi)核模塊恢復(fù)密封狀態(tài),內(nèi)核模塊操 作請(qǐng)求執(zhí)行完畢并退出。
[0032] 2. 6)內(nèi)核密封模塊首先判定截獲的內(nèi)核模塊操作請(qǐng)求的目標(biāo)內(nèi)核模塊,如果目標(biāo) 內(nèi)核模塊為內(nèi)核密封模塊則終止操作并退出;否則,內(nèi)核密封模塊對(duì)發(fā)起內(nèi)核模塊操作請(qǐng) 求的用戶或者應(yīng)用進(jìn)行用戶驗(yàn)證,對(duì)發(fā)起內(nèi)核模塊操作請(qǐng)求的用戶或應(yīng)用進(jìn)行用戶密碼驗(yàn) 證。本實(shí)施例中,對(duì)發(fā)起內(nèi)核模塊操作請(qǐng)求的用戶或應(yīng)用進(jìn)行用戶密碼驗(yàn)證具體是指內(nèi)核 密封模塊彈出密碼驗(yàn)證窗口以便用戶輸入密碼。
[0033] 2. 7)內(nèi)核密封模塊獲取用戶輸入的驗(yàn)證密碼,并通過(guò)用戶驗(yàn)證功能對(duì)用戶輸入的 驗(yàn)證密碼進(jìn)行驗(yàn)證,若驗(yàn)證通過(guò),則轉(zhuǎn)入執(zhí)行步驟2. 8);若驗(yàn)證不通過(guò),則判定用戶密碼驗(yàn) 證失敗,終止操作并退出。本實(shí)施例中,內(nèi)核密封模塊啟用用戶驗(yàn)證功能時(shí)初始化設(shè)定有驗(yàn) 證密碼,如果用戶密碼與驗(yàn)證密碼一致,則判定驗(yàn)證通過(guò),否則判定驗(yàn)證不通過(guò);此外,也可 以利用操作系統(tǒng)自帶的用戶驗(yàn)證功能來(lái)實(shí)現(xiàn)用戶密碼驗(yàn)證。
[0034] 2. 8)內(nèi)核密封模塊使用安全管理員角色開(kāi)啟發(fā)起卸載內(nèi)核模塊請(qǐng)求的用戶或者 應(yīng)用的內(nèi)核模塊處理能力CAP_M0DULE,使得操作系統(tǒng)的內(nèi)核模塊相對(duì)發(fā)起內(nèi)核模塊操作請(qǐng) 求的用戶或者應(yīng)用進(jìn)入臨時(shí)開(kāi)放狀態(tài),并通過(guò)操作系統(tǒng)內(nèi)核卸載內(nèi)核模塊操作請(qǐng)求的目標(biāo) 內(nèi)核模塊。
[0035] 2. 9)在目標(biāo)內(nèi)核模塊卸載完成后,內(nèi)核密封模塊使用安全管理員角色關(guān)閉所有用 戶的內(nèi)核模塊處理能力CAP_M0DULE,使得操作系統(tǒng)的內(nèi)核模塊恢復(fù)密封狀態(tài),內(nèi)核模塊操 作請(qǐng)求執(zhí)行完畢。
[0036] 需要說(shuō)明的是,本實(shí)施例中密碼保護(hù)功能功能是借助于安全管理員的密碼驗(yàn)證功 能實(shí)現(xiàn),因此需要保證安全管理員角色的安全性。
[0037] 如圖4所示,應(yīng)用本發(fā)明實(shí)施例方法的操作系統(tǒng)運(yùn)行過(guò)程中,操作系統(tǒng)處于執(zhí)行 狀態(tài),內(nèi)核模塊初始處于密封狀態(tài)。用戶或者應(yīng)用發(fā)起內(nèi)核模塊操作請(qǐng)求包括加載內(nèi)核模 塊和卸載內(nèi)核模塊,針對(duì)加載內(nèi)核模塊,則內(nèi)核密封模塊執(zhí)行內(nèi)核模塊加載控制;針對(duì)卸載 內(nèi)核模塊操作,內(nèi)核密封模塊執(zhí)行內(nèi)核模塊卸載控制。在內(nèi)核模塊加載控制時(shí),操作系統(tǒng)的 內(nèi)核會(huì)首先受到內(nèi)核模塊操作請(qǐng)求(具體為內(nèi)核模塊加載請(qǐng)求),然后內(nèi)核密封模塊會(huì)彈出 密碼驗(yàn)證窗口,此時(shí)用戶需要輸入密碼并進(jìn)行驗(yàn)證。內(nèi)核密封模塊內(nèi)置的驗(yàn)證內(nèi)核模塊用 于實(shí)現(xiàn)內(nèi)核密封模塊的用戶驗(yàn)證功能,對(duì)用戶輸入的密碼進(jìn)行驗(yàn)證,如果驗(yàn)證通過(guò),則開(kāi)啟 發(fā)起卸載內(nèi)核模塊請(qǐng)求的用戶或者應(yīng)用的內(nèi)核模塊處理能力CAP_M0DULE,使得操作系統(tǒng)的 內(nèi)核模塊相對(duì)發(fā)起加載內(nèi)核模塊請(qǐng)求的用戶或者應(yīng)用進(jìn)入臨時(shí)開(kāi)放狀態(tài),并通過(guò)操作系統(tǒng) 內(nèi)核加載內(nèi)核模塊操作請(qǐng)求的目標(biāo)內(nèi)核模塊。在目標(biāo)內(nèi)核模塊加載完成后,內(nèi)核密封模塊 使用安全管理員角色關(guān)閉所有用戶的內(nèi)核模塊處理能力CAP_MODULE,使得操作系統(tǒng)的內(nèi)核 模塊恢復(fù)密封狀態(tài)。在內(nèi)核模塊卸載控制時(shí),操作系統(tǒng)的內(nèi)核會(huì)首先受到內(nèi)核模塊操作請(qǐng) 求(具體為內(nèi)核模塊卸載請(qǐng)求),內(nèi)核密封模塊首先判定截獲的內(nèi)核模塊操作請(qǐng)求的目標(biāo)內(nèi) 核模塊,如果目標(biāo)內(nèi)核模塊為內(nèi)核密封模塊則終止操作并退出;否則,內(nèi)核密封模塊會(huì)彈出 密碼驗(yàn)證窗口,此時(shí)用戶需要輸入密碼并進(jìn)行驗(yàn)證。內(nèi)核密封模塊內(nèi)置的驗(yàn)證內(nèi)核模塊用 于實(shí)現(xiàn)內(nèi)核密封模塊的用戶驗(yàn)證功能,對(duì)用戶輸入的密碼進(jìn)行驗(yàn)證,如果驗(yàn)證通過(guò),則開(kāi)啟 發(fā)起卸載內(nèi)核模塊請(qǐng)求的用戶或者應(yīng)用的內(nèi)核模塊處理能力CAP_MODULE,使得操作系統(tǒng)的 內(nèi)核模塊相對(duì)發(fā)起內(nèi)核模塊卸載請(qǐng)求的用戶或者應(yīng)用進(jìn)入臨時(shí)開(kāi)放狀態(tài),并通過(guò)操作系統(tǒng) 內(nèi)核卸載內(nèi)核模塊操作請(qǐng)求的目標(biāo)內(nèi)核模塊。在目標(biāo)內(nèi)核模塊卸載完成后,內(nèi)核密封模塊 使用安全管理員角色關(guān)閉所有用戶的內(nèi)核模塊處理能力CAP_MODULE,使得操作系統(tǒng)的內(nèi)核 模塊恢復(fù)密封狀態(tài)。
[0038] 上述只是本發(fā)明的較佳實(shí)施例,并非對(duì)本發(fā)明作任何形式上的限制。雖然本發(fā)明 已以較佳實(shí)施例揭露如上,然而并非用以限定本發(fā)明。任何熟悉本領(lǐng)域的技術(shù)人員,在不脫 離本發(fā)明技術(shù)方案范圍的情況下,都可利用上述揭示的技術(shù)內(nèi)容對(duì)本發(fā)明技術(shù)方案做出許 多可能的變動(dòng)和修飾,或修改為等同變化的等效實(shí)施例。因此,凡是未脫離本發(fā)明技術(shù)方案 的內(nèi)容,依據(jù)本發(fā)明技術(shù)實(shí)質(zhì)對(duì)以上實(shí)施例所做的任何簡(jiǎn)單修改、等同變化及修飾,均應(yīng)落 在本發(fā)明技術(shù)方案保護(hù)的范圍內(nèi)。
【權(quán)利要求】
1. 一種操作系統(tǒng)中的內(nèi)核模塊加載控制方法,其特征在于實(shí)施步驟如下: 1) 在執(zhí)行操作系統(tǒng)引導(dǎo)過(guò)程中,通過(guò)在內(nèi)核態(tài)下加載的內(nèi)核密封模塊關(guān)閉所有用戶的 內(nèi)核模塊處理能力,并啟用所述內(nèi)核密封模塊的用戶驗(yàn)證功能,使得操作系統(tǒng)的內(nèi)核模塊 進(jìn)入密封狀態(tài); 2) 在操作系統(tǒng)運(yùn)行過(guò)程中,通過(guò)所述內(nèi)核密封模塊截獲操作系統(tǒng)內(nèi)核接收到的用于加 載或卸載內(nèi)核模塊的內(nèi)核模塊操作請(qǐng)求,并對(duì)發(fā)起內(nèi)核模塊操作請(qǐng)求的用戶或者應(yīng)用進(jìn)行 用戶驗(yàn)證,若驗(yàn)證通過(guò),則開(kāi)啟所述發(fā)起內(nèi)核模塊操作請(qǐng)求的用戶或者應(yīng)用的內(nèi)核模塊處 理能力,使得操作系統(tǒng)的內(nèi)核模塊相對(duì)所述發(fā)起加載內(nèi)核模塊請(qǐng)求的用戶或者應(yīng)用進(jìn)入臨 時(shí)開(kāi)放狀態(tài),通過(guò)操作系統(tǒng)內(nèi)核加載或卸載所述內(nèi)核模塊操作請(qǐng)求的目標(biāo)內(nèi)核模塊,且在 執(zhí)行內(nèi)核模塊操作請(qǐng)求完畢后關(guān)閉所有用戶的內(nèi)核模塊處理能力使操作系統(tǒng)的內(nèi)核模塊 恢復(fù)密封狀態(tài);若驗(yàn)證不通過(guò),則拒絕所述內(nèi)核模塊操作請(qǐng)求。
2. 根據(jù)權(quán)利要求1所述的操作系統(tǒng)中的內(nèi)核模塊加載控制方法,其特征在于:所述步 驟1)中在內(nèi)核態(tài)下加載的內(nèi)核密封模塊被配置為具備安全管理員角色。
3. 根據(jù)權(quán)利要求1或2所述的操作系統(tǒng)中的內(nèi)核模塊加載控制方法,其特征在于,所述 步驟1)中所述內(nèi)核密封模塊的用戶驗(yàn)證功能具體是指用戶密碼驗(yàn)證功能。
4. 根據(jù)權(quán)利要求3所述的操作系統(tǒng)中的內(nèi)核模塊加載控制方法,其特征在于,所述步 驟2)的具體實(shí)施步驟如下: 2. 1)在操作系統(tǒng)運(yùn)行過(guò)程中,通過(guò)所述內(nèi)核密封模塊截獲操作系統(tǒng)內(nèi)核接收到的內(nèi)核 模塊操作請(qǐng)求,并判斷所截獲內(nèi)核模塊操作請(qǐng)求的操作類型,如果操作類型為加載內(nèi)核模 塊,則跳轉(zhuǎn)執(zhí)行步驟2. 2);如果操作類型為卸載內(nèi)核模塊,則跳轉(zhuǎn)執(zhí)行步驟2. 6); 2. 2)所述內(nèi)核密封模塊對(duì)發(fā)起內(nèi)核模塊操作請(qǐng)求的用戶或者應(yīng)用進(jìn)行用戶驗(yàn)證,對(duì)發(fā) 起加載內(nèi)核模塊請(qǐng)求的用戶或應(yīng)用進(jìn)行用戶密碼驗(yàn)證; 2. 3)所述內(nèi)核密封模塊獲取用戶輸入的驗(yàn)證密碼,并通過(guò)所述用戶驗(yàn)證功能對(duì)用戶輸 入的驗(yàn)證密碼進(jìn)行驗(yàn)證,若驗(yàn)證通過(guò),則轉(zhuǎn)入執(zhí)行步驟2. 4);若驗(yàn)證不通過(guò),則判定用戶密 碼驗(yàn)證失敗,終止操作并退出; 2. 4)所述內(nèi)核密封模塊使用安全管理員角色開(kāi)啟所述發(fā)起加載內(nèi)核模塊請(qǐng)求的用戶 或者應(yīng)用的內(nèi)核模塊處理能力,使得操作系統(tǒng)的內(nèi)核模塊相對(duì)所述發(fā)起加載內(nèi)核模塊請(qǐng)求 的用戶或者應(yīng)用進(jìn)入臨時(shí)開(kāi)放狀態(tài),并通過(guò)操作系統(tǒng)內(nèi)核加載所述內(nèi)核模塊操作請(qǐng)求的目 標(biāo)內(nèi)核模塊; 2. 5)在所述目標(biāo)內(nèi)核模塊加載完成后,所述內(nèi)核密封模塊使用安全管理員角色關(guān)閉所 有用戶的內(nèi)核模塊處理能力,使得操作系統(tǒng)的內(nèi)核模塊恢復(fù)密封狀態(tài),內(nèi)核模塊操作請(qǐng)求 執(zhí)行完畢并退出; 2. 6)所述內(nèi)核密封模塊首先判定截獲的內(nèi)核模塊操作請(qǐng)求的目標(biāo)內(nèi)核模塊,如果目標(biāo) 內(nèi)核模塊為所述內(nèi)核密封模塊則終止操作并退出;否則,所述內(nèi)核密封模塊對(duì)發(fā)起內(nèi)核模 塊操作請(qǐng)求的用戶或者應(yīng)用進(jìn)行用戶驗(yàn)證,對(duì)發(fā)起內(nèi)核模塊操作請(qǐng)求的用戶或應(yīng)用進(jìn)行用 戶密碼驗(yàn)證; 2. 7)所述內(nèi)核密封模塊獲取用戶輸入的驗(yàn)證密碼,并通過(guò)所述用戶驗(yàn)證功能對(duì)用戶輸 入的驗(yàn)證密碼進(jìn)行驗(yàn)證,若驗(yàn)證通過(guò),則轉(zhuǎn)入執(zhí)行步驟2. 8);若驗(yàn)證不通過(guò),則判定用戶密 碼驗(yàn)證失敗,終止操作并退出; 2. 8)所述內(nèi)核密封模塊使用安全管理員角色開(kāi)啟所述發(fā)起卸載內(nèi)核模塊請(qǐng)求的用戶 或者應(yīng)用的內(nèi)核模塊處理能力,使得操作系統(tǒng)的內(nèi)核模塊相對(duì)所述發(fā)起內(nèi)核模塊操作請(qǐng)求 的用戶或者應(yīng)用進(jìn)入臨時(shí)開(kāi)放狀態(tài),并通過(guò)操作系統(tǒng)內(nèi)核卸載所述內(nèi)核模塊操作請(qǐng)求的目 標(biāo)內(nèi)核模塊; 2. 9)在所述目標(biāo)內(nèi)核模塊卸載完成后,所述內(nèi)核密封模塊使用安全管理員角色關(guān)閉所 有用戶的內(nèi)核模塊處理能力,使得操作系統(tǒng)的內(nèi)核模塊恢復(fù)密封狀態(tài),內(nèi)核模塊操作請(qǐng)求 執(zhí)行完畢。
【文檔編號(hào)】G06F21/52GK104112098SQ201410340870
【公開(kāi)日】2014年10月22日 申請(qǐng)日期:2014年7月17日 優(yōu)先權(quán)日:2014年7月17日
【發(fā)明者】廖湘科, 黃辰林, 董攀, 陳松政, 魏立峰, 丁滟, 羅軍 申請(qǐng)人:中國(guó)人民解放軍國(guó)防科學(xué)技術(shù)大學(xué)