亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        多種MAC機(jī)制并存的動(dòng)態(tài)裝載方法

        2018-11-20 06:08:44杜軍龍周劍濤
        計(jì)算機(jī)工程 2018年11期
        關(guān)鍵詞:內(nèi)核指向仲裁

        杜軍龍,周劍濤

        (江西省信息中心,南昌 330001)

        0 概述

        強(qiáng)制性訪問控制(Mandatory Access Control,MAC)[1]被美國國家計(jì)算機(jī)安全中心NCSC的安全標(biāo)準(zhǔn)TCSEC列為B級(jí)安全操作系統(tǒng)的基本要求[2]。MAC具有非常強(qiáng)的魯棒性,能夠絕對(duì)執(zhí)行安全管理員預(yù)定的訪問控制策略,有效防止特洛伊木馬的攻擊。目前對(duì)Linux操作系統(tǒng)平臺(tái)的MAC機(jī)制研究較多且側(cè)重點(diǎn)不同,主要研究包括Flask模型、Clark-Wilson模型、Bell-lapadula模型、Biba模型、Chinese-Wall模型、DTE模型和Lattice模型以及各企業(yè)、團(tuán)體自主研發(fā)的設(shè)計(jì)模型等[3-6]。

        然而,在特殊單位中,單一MAC機(jī)制很難完全滿足其通用Linux平臺(tái)使用的特殊性與多樣性安全需求,需要多種MAC機(jī)制并存互補(bǔ),以提供更高的系統(tǒng)安全性。目前針對(duì)通用Linux系統(tǒng)中的多MAC機(jī)制并存研究較少,以Selinux機(jī)制為代表的具有主/從性的多MAC堆疊并存機(jī)制較為普及,它將Selinux作為主安全模塊,后續(xù)MAC機(jī)制通過mod_reg_security函數(shù)在主模塊中進(jìn)行注冊(cè)成為從安全模塊,較好地支持了MAC并存與調(diào)用,但從安全模塊受主安全模塊策略的約束與管理,并且在kernel-2.6.19以后不支持mod_reg_security函數(shù)的使用[7]。文獻(xiàn)[8]設(shè)計(jì)了一種在kernel源碼中以安全域數(shù)組的形式實(shí)現(xiàn)的多MAC機(jī)制并存管理器,有效地支持了多MAC并存,但這種并存管理器的平臺(tái)可遷移性差,對(duì)于不愿更改內(nèi)核的用戶,他們難以接受這種方法。文獻(xiàn)[9]利用擴(kuò)展內(nèi)核hook安全域的形式,以內(nèi)核通用鏈表做載體為系統(tǒng)提供一種多MAC并存機(jī)制,但是該法的綜合決策和鏈?zhǔn)秸{(diào)用存在系統(tǒng)開銷大和靈活性不足問題。

        基于以上問題,在沿襲內(nèi)核hook安全域擴(kuò)展的基礎(chǔ)上,本文提出一種多種MAC機(jī)制并存的動(dòng)態(tài)裝載方法。該方法使MAC機(jī)制以動(dòng)態(tài)方式載入系統(tǒng)且能與平臺(tái)自有MAC機(jī)制實(shí)現(xiàn)并存,同時(shí)輔以優(yōu)先級(jí)調(diào)度算法實(shí)現(xiàn)靈活調(diào)度[10]。

        1 通用MAC裝載流程

        目前, Linux操作系統(tǒng)平臺(tái)自帶的通用MAC機(jī)制大都是依托Flask模型進(jìn)行工程實(shí)現(xiàn)的[11]。Flask模型以進(jìn)程為主體,按照集中式或分散式的策略權(quán)限訪問系統(tǒng)資源客體,存在類型強(qiáng)制與多層安全非強(qiáng)制的形式,同時(shí)具備控制精細(xì)、策略靈活與可配置等特點(diǎn)。通用MAC機(jī)制通過更改內(nèi)核全局描述表security_ops中hook地址指向,以KO的形式進(jìn)行動(dòng)態(tài)裝載[12]。通用MAC裝載及其控制流程如圖1所示。

        圖1 通用MAC裝載流程

        通用MAC裝載流程主要包括以下步驟:

        1)系統(tǒng)開機(jī),內(nèi)核層首先進(jìn)行安全初始化,將內(nèi)核全局描述表security_ops地址指向系統(tǒng)默認(rèn)安全模塊default_security_ops,此過程無任何MAC機(jī)制,僅作為初始化使用。

        2)平臺(tái)自帶Flask模型的MAC機(jī)制將獲取內(nèi)核全局描述表security_ops地址,并進(jìn)行地址替換,使之指向MAC機(jī)制中自定義的全局描述表,此時(shí)系統(tǒng)平臺(tái)的初始化安全模塊default_security_ops失效,MAC機(jī)制裝載成功且生效。

        3)用戶層進(jìn)程訪問客體,首先讀取系統(tǒng)文件目錄項(xiàng),查找系統(tǒng)資源客體inode節(jié)點(diǎn),并獲取inode節(jié)點(diǎn)屬性信息,然后經(jīng)過內(nèi)核接口執(zhí)行程序功能性錯(cuò)誤檢查。

        4)進(jìn)行系統(tǒng)平臺(tái)傳統(tǒng)的DAC權(quán)限檢查校驗(yàn)。

        5)經(jīng)過以上步驟,在用戶進(jìn)程即將訪問客體之前,內(nèi)核層生效的MAC機(jī)制將讀取強(qiáng)訪策略,最終確定主體訪問客體權(quán)限。

        2 并存方案設(shè)計(jì)與實(shí)現(xiàn)

        系統(tǒng)內(nèi)核中的透明安全域是一個(gè)void*類型指針,它將安全模塊中的安全信息和內(nèi)核內(nèi)部對(duì)象聯(lián)系起來,對(duì)MAC機(jī)制的支持具有唯一性,如若安全域被主模塊占用,勢(shì)必導(dǎo)致其他MAC機(jī)制失效。針對(duì)要實(shí)現(xiàn)2種甚至多種MAC機(jī)制的并存問題,本節(jié)對(duì)多種MAC機(jī)制并存動(dòng)態(tài)裝載進(jìn)行設(shè)計(jì)與實(shí)現(xiàn)。

        2.1 方案設(shè)計(jì)

        針對(duì)Linux平臺(tái)需要多種MAC機(jī)制并存以增強(qiáng)系統(tǒng)安全性的需求,提出一種具備靈活調(diào)度的多種MAC機(jī)制并存動(dòng)態(tài)裝載方法。該方法主要分為MAC機(jī)制裝載與還原、并存調(diào)度策略、訪問仲裁和安全防篡改4個(gè)部分,其設(shè)計(jì)裝載流程如圖2所示,其中,header為跳躍表頭。

        圖2 MAC并存裝載流程

        多種MAC機(jī)制并存裝載沿襲了內(nèi)核安全域擴(kuò)展思想,但在安全模塊加載過程與傳統(tǒng)通用動(dòng)態(tài)裝載的hook地址替換法不同,它利用跳躍表[13]對(duì)內(nèi)核全局描述表security_ops的入口點(diǎn)進(jìn)行重新構(gòu)造,以實(shí)現(xiàn)多MAC裝載管理機(jī)制與MAC模塊功能的靜態(tài)分離。跳躍表裝載多MAC的機(jī)制作為與MAC功能模塊交互的唯一途徑,具有順鏈?zhǔn)?先進(jìn)先出的MAC互聯(lián)邏輯)與跳躍式(任意順序的MAC互聯(lián)邏輯)2種調(diào)用,如圖2所示。鑒于系統(tǒng)安全的第一要義是安全,其次是性能,管理機(jī)制可無上限裝載多個(gè)MAC有違系統(tǒng)安全和性能要求,將MAC裝載上限以可配置的方式予以提供。多種MAC機(jī)制還原是對(duì)跳躍表裝載方式移除后的環(huán)境歸整,還原為系統(tǒng)平臺(tái)自帶MAC的強(qiáng)訪境況。

        并存調(diào)度策略摒棄了以往FIFO模型實(shí)現(xiàn)的鏈?zhǔn)巾樞蛘{(diào)度思想,利用優(yōu)先級(jí)算法實(shí)現(xiàn)了多MAC機(jī)制的并存靈活調(diào)度設(shè)計(jì)。優(yōu)先級(jí)P是根據(jù)實(shí)際中不同MAC機(jī)制的側(cè)重點(diǎn)不同進(jìn)行的靜態(tài)標(biāo)簽設(shè)置,如圖2所示。預(yù)定義P為8個(gè)等級(jí),P={P0,P1,…,P7},P0優(yōu)先級(jí)最高,依次逐級(jí)遞減,同等優(yōu)先級(jí)時(shí),按照先進(jìn)先出順序進(jìn)行調(diào)度。

        訪問仲裁是多MAC機(jī)制并存策略最終的決策者,決定了策略最終實(shí)施的成功與否。在已有并存技術(shù)中,全部MAC機(jī)制運(yùn)行后對(duì)返回結(jié)果做統(tǒng)一仲裁的方式具有可行性,但卻要將系統(tǒng)已裝載的MAC都運(yùn)行。簡單說,如果系統(tǒng)中第一個(gè)MAC機(jī)制已確認(rèn)該操作不安全,下面的MAC機(jī)制則不需要運(yùn)行實(shí)施,可直接給出仲裁結(jié)果。鑒于不同MAC機(jī)制具體的權(quán)威性與可信性不同,如若直接給出仲裁結(jié)果,可能導(dǎo)致仲裁偏差與失誤,本文設(shè)計(jì)的訪問仲裁通過引進(jìn)權(quán)重比W的方式對(duì)結(jié)果進(jìn)行修正,以增添仲裁可信性。W可設(shè)置為W={W0,W1,…,Wn},權(quán)重值越大,則影響力越大[14],如圖2所示。

        安全防篡改功能是MAC機(jī)制并存方法在系統(tǒng)中的自安全增強(qiáng)機(jī)制,具備防篡改監(jiān)控和自修復(fù)2個(gè)特點(diǎn),如圖2所示。防篡改監(jiān)控包含監(jiān)控時(shí)間片和地址判斷2個(gè)要素。自修復(fù)是在防篡改監(jiān)控發(fā)現(xiàn)被篡改的情景下做出的并存機(jī)制重載修復(fù)操作。

        2.2 方案實(shí)現(xiàn)

        假設(shè)存在以下條件:

        1)需并存裝載的MAC機(jī)制集合M={M0,M1,…,M6}。

        2)已定義優(yōu)先級(jí)P為8個(gè)等級(jí),P={P0,P1,…,P7}。

        3)已定義權(quán)重W為3個(gè)等級(jí),W={W0,W1,W2}。

        多種MAC機(jī)制并存動(dòng)態(tài)裝載設(shè)計(jì)的實(shí)現(xiàn)過程如下:

        1) MAC并存裝載與還原

        內(nèi)核安全域已被系統(tǒng)中自帶MAC機(jī)制占用,首先將安全域以SkipList形式進(jìn)行擴(kuò)展,以支持多安全模塊的注冊(cè),以file結(jié)構(gòu)的安全域void *f_security為例進(jìn)行擴(kuò)展,擴(kuò)展前為struct file{…void*f_security;…},擴(kuò)展后則為struct file {…struct mskiplist *list;void*f_security;…}。

        file結(jié)構(gòu)安全域擴(kuò)展后的調(diào)用原理如圖3所示。file結(jié)構(gòu)的安全域由之前指向系統(tǒng)自帶MAC機(jī)制的file結(jié)構(gòu),更改為指向SkipList的頭節(jié)點(diǎn),SkipList中的各個(gè)節(jié)點(diǎn)安全域指針被設(shè)置指向具體安全模塊的file結(jié)構(gòu)。

        MAC并存裝載要對(duì)系統(tǒng)內(nèi)核全局描述表security_ops的地址進(jìn)行備份與替換,然而在通用Linux內(nèi)核2.6.22及以上版本[15]中,已經(jīng)不支持通過register_security函數(shù)操作security_ops地址方式,需手動(dòng)進(jìn)行獲取,其關(guān)鍵數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)如下所示:

        static int __coexit_init(void)

        {static struct security_operations sec_ops_bak;

        memset(&sec_ops_bak,0,sizeof(sec_ops_bak));

        sec_ops_p = look_up_symbol("security_ops");

        …;

        memcpy(&sec_ops_bak,sec_ops_p,sizeof(sec_ops_bak));

        …}

        其中,第1行和第2行是為security_ops備份地址申請(qǐng)空間并初始化,第3行和第4行將獲取的security_ops地址進(jìn)行備份。

        多MAC裝載需維護(hù)一個(gè)安全模塊函數(shù)鏈表,該鏈表以跳躍表的數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn),其節(jié)點(diǎn)結(jié)構(gòu)如下所示:

        typedef struct skiplist_node{

        int p; /*優(yōu)先級(jí)*/

        float w; /*權(quán)重*/

        int levels; /*保存結(jié)點(diǎn)的層數(shù)*/

        struct security_operations * security_ops;

        /*MAC機(jī)制中hook函數(shù)表*/

        struct skiplist_node_level{

        struct skiplist_node *forward; /*前指針*/

        }level[]; /*level最大值為32*/

        struct skiplist_node *backward; /*后指針*/

        }skiplist_node;

        將所需并存的MAC機(jī)制M={M0,M1,…,M6}裝載在安全模塊函數(shù)鏈表中,其示意圖如圖4所示。

        圖4 多MAC并存裝載示意圖

        2) MAC并存調(diào)度

        并存調(diào)度策略引入了優(yōu)先級(jí)調(diào)度算法思想,MAC的優(yōu)先級(jí)P以靜態(tài)標(biāo)簽形式存在。已知集合M,設(shè)M與P的自由組合為{M0,P0}、{M1,P7}、{M2,P2}、{M3,P0}、{M4,P1}、{M5,P1}和{M6,P0},如圖5所示。根據(jù)優(yōu)先級(jí)高先調(diào)用、同等級(jí)按照先進(jìn)先出的調(diào)度原則,MAC并存調(diào)度機(jī)制首先調(diào)用的是優(yōu)先級(jí)最高的P0級(jí),調(diào)用順序?yàn)閧M0,P0}、{M3,P0}和{M6,P0},如圖5中所標(biāo)線(長虛曲線)所示;然后,調(diào)用的是{M4,P1}和{M5,P1},如圖5中所標(biāo)線(短虛曲線)所示;最后,調(diào)用的是{M2,P2},如圖5中所標(biāo)線(實(shí)曲線)所示。

        圖5 MAC調(diào)度示意圖

        3) 訪問仲裁

        訪問仲裁中處理的對(duì)象包含MAC集合M={M0,M1,…,M6},權(quán)重W={W0,W1,W2},K表示計(jì)算結(jié)果動(dòng)態(tài)修正系數(shù),R表示當(dāng)前模塊返回結(jié)果,Z表示最后計(jì)算結(jié)果,以Ψ表示訪問仲裁集合,Ψ={M,W,K,R,Z}。

        (1) MAC機(jī)制集合M={M0,M1,…,M6},按照優(yōu)先級(jí)P的順序依次執(zhí)行,并對(duì)應(yīng)返回結(jié)果R={R0,R1,…,Rn}。

        (2)結(jié)果集R結(jié)合模塊權(quán)重W和修正系數(shù)K進(jìn)行決策計(jì)算,得出仲裁結(jié)果Z={undef,Z1,Z2,…,Zn}。其計(jì)算公式為:

        (1)

        4) 安全防篡改

        安全防篡改中的篡改監(jiān)控特征是通過周期輪巡的方式進(jìn)行實(shí)現(xiàn),通過比對(duì)security_ops的入口地址是否被跳躍表以外的地址進(jìn)行替換而做出篡改判斷依據(jù),其時(shí)間片可設(shè)置為3 s,如若被非法篡改,自修復(fù)特征將重新獲取security_ops的入口地址主動(dòng)權(quán),將多MAC機(jī)制重新裝載入系統(tǒng)。

        3 系統(tǒng)性能驗(yàn)證

        本文將該并存方法在Linux通用系統(tǒng)平臺(tái)中進(jìn)行了實(shí)現(xiàn),主要的系統(tǒng)性能驗(yàn)證如下:

        1) 系統(tǒng)功耗性驗(yàn)證

        測試條件:

        (1)系統(tǒng)中已默認(rèn)裝載Flask模型實(shí)現(xiàn)的MAC機(jī)制。

        (2)設(shè)存在系統(tǒng)MAC補(bǔ)充機(jī)制M0和M1,并且M0和M1中的功能hook均返回0,用以忽略hook函數(shù)內(nèi)部的功能影響,以代表訪問過程均安全放行。

        在Linux平臺(tái)條件(1)和(2)的環(huán)境下,實(shí)驗(yàn)對(duì)比了多MAC機(jī)制堆疊并存裝載方法[7]和本文設(shè)計(jì)的多MAC機(jī)制并行裝載方法,分別執(zhí)行10 000次、100 000次和1 000 000次的文件打開與關(guān)閉,并記錄執(zhí)行所用時(shí)間,每一組重復(fù)執(zhí)行10次,然后取其平均值。2組實(shí)驗(yàn)結(jié)果對(duì)比如圖6所示。

        圖6 通用堆疊與并行裝載執(zhí)行時(shí)間對(duì)比

        2) 防篡改功能驗(yàn)證

        假設(shè)在Linux通用系統(tǒng)平臺(tái)中已安裝本文可支持的多種MAC并存動(dòng)態(tài)裝載機(jī)制,同時(shí)該并存動(dòng)態(tài)裝載機(jī)制中包含系統(tǒng)自帶MAC及其補(bǔ)充MAC機(jī)制M0和M1。參照系統(tǒng)syslog審計(jì)方式,在并存動(dòng)態(tài)裝載機(jī)制中每隔一定時(shí)間片主動(dòng)獲取系統(tǒng)時(shí)間與內(nèi)核全局描述表security_ops地址,并通過vfs_write函數(shù)將相關(guān)信息記錄到/var/log/security_ops.log中。

        在Linux通用系統(tǒng)平臺(tái)中,創(chuàng)建文件replace_security_ops.c用以強(qiáng)占并更改security_ops指向地址。在文件replace_security_ops.c中,首先獲取當(dāng)前系統(tǒng)內(nèi)核全局描述表security_ops指向地址,然后更改security_ops指向地址,最終將文件以KO模塊形式編譯生成lsm.ko,通過執(zhí)行insmod命令,將lsm.ko插入內(nèi)核,如圖7所示。

        圖7 安全防篡改測試截圖

        在日志/var/log/security_ops.log中,每隔3 s輸出當(dāng)前security_ops指向地址,在insmod操作動(dòng)作執(zhí)行前,系統(tǒng)輸出提示信息的INFO語句,顯示security_ops地址為ffffffff81ae2420。當(dāng)執(zhí)行insmod操作動(dòng)作后,系統(tǒng)輸出提示信息WARN語句,顯示系統(tǒng)security_ops地址已被篡改,且篡改后地址為ffffffff81fdadc8。此時(shí)安全防篡改模塊將執(zhí)行自修復(fù)功能,重新主動(dòng)占據(jù)security_ops指向地址。經(jīng)上述security_ops強(qiáng)占測試后,最終確認(rèn)此方法具備安全防篡改功能。

        4 結(jié)束語

        本文提出一個(gè)多MAC機(jī)制并存的動(dòng)態(tài)裝載方法,在并存裝載的同時(shí)以優(yōu)先級(jí)調(diào)度算法對(duì)其進(jìn)行靈活調(diào)度。測試結(jié)果表明,相比于通用堆疊并存技術(shù),該方法能夠滿足多種MAC機(jī)制的系統(tǒng)并存需求,系統(tǒng)性能開銷小,并且模塊具備安全防篡改功能。下一步將對(duì)并存方法中的各種MAC機(jī)制運(yùn)行時(shí)間片進(jìn)行研究,在考慮優(yōu)先級(jí)的情況下同時(shí)考慮時(shí)間要素,以先調(diào)用同優(yōu)先級(jí)、時(shí)間片較小的MAC機(jī)制的方式達(dá)到更優(yōu)的調(diào)度方案,進(jìn)而提高系統(tǒng)性能。

        猜你喜歡
        內(nèi)核指向仲裁
        萬物皆可IP的時(shí)代,我們當(dāng)夯實(shí)的IP內(nèi)核是什么?
        強(qiáng)化『高新』內(nèi)核 打造農(nóng)業(yè)『硅谷』
        科學(xué)備考新指向——不等式選講篇
        基于嵌入式Linux內(nèi)核的自恢復(fù)設(shè)計(jì)
        Linux內(nèi)核mmap保護(hù)機(jī)制研究
        一種多通道共享讀寫SDRAM的仲裁方法
        電子制作(2018年19期)2018-11-14 02:36:44
        ICSID仲裁中的有效解釋原則:溯源、適用及其略比
        把準(zhǔn)方向盤 握緊指向燈 走好創(chuàng)新路
        兩岸四地間相互執(zhí)行仲裁裁決:過去、現(xiàn)在及將來(上)
        仲裁研究(2015年4期)2015-04-17 02:56:33
        Who?。疲铮酰睿洹。粒恚澹颍椋悖??
        日韩亚洲欧美中文高清在线| 亚洲国产精品成人久久| 偷偷色噜狠狠狠狠的777米奇| 国产真人无遮挡作爱免费视频| 天天摸天天做天天爽天天舒服| 国产一区二区三区口爆在线| 欧美最猛黑人xxxx| 亚洲欧美精品aaaaaa片| 日本嗯啊在线观看| 91精品国产综合久久精品密臀| 国产欧美一区二区精品久久久| 中文字幕人妻中文av不卡专区| 超清无码AV丝袜片在线观看| 女同一区二区三区在线观看 | 国产精品国产亚洲精品看不卡| 国产人妻精品一区二区三区| 国产一级三级三级在线视| 日本小视频一区二区三区| 亚洲成a∨人片在线观看无码| 亚洲欧洲偷自拍图片区| 亚洲无码性爱视频在线观看| 国产精品亚洲一二三区| 狠狠躁日日躁夜夜躁2020| 黄色毛片在线看| 亚洲日本一区二区在线观看| 亚洲av网一区二区三区| 精品无码一区在线观看| 无码一区二区三区网站| 人妖啪啪综合av一区| 免费高清av一区二区三区| 狼人国产精品亚洲| 中文字幕一区二区三区在线看一区 | 欧美日韩国产成人综合在线影院| 永久免费看黄网站性色| 久久亚洲av午夜福利精品一区| 亚洲国产成人久久综合一区77 | 日产精品久久久久久久蜜臀 | 日本女u久久精品视频| 久久精品国产清自在天天线| 熟女俱乐部五十路二区av| 99久久亚洲精品加勒比|