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

        ?

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

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

        杜軍龍,周劍濤

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

        0 概述

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

        然而,在特殊單位中,單一MAC機(jī)制很難完全滿足其通用Linux平臺使用的特殊性與多樣性安全需求,需要多種MAC機(jī)制并存互補(bǔ),以提供更高的系統(tǒng)安全性。目前針對通用Linux系統(tǒng)中的多MAC機(jī)制并存研究較少,以Selinux機(jī)制為代表的具有主/從性的多MAC堆疊并存機(jī)制較為普及,它將Selinux作為主安全模塊,后續(xù)MAC機(jī)制通過mod_reg_security函數(shù)在主模塊中進(jìn)行注冊成為從安全模塊,較好地支持了MAC并存與調(diào)用,但從安全模塊受主安全模塊策略的約束與管理,并且在kernel-2.6.19以后不支持mod_reg_security函數(shù)的使用[7]。文獻(xiàn)[8]設(shè)計了一種在kernel源碼中以安全域數(shù)組的形式實現(xiàn)的多MAC機(jī)制并存管理器,有效地支持了多MAC并存,但這種并存管理器的平臺可遷移性差,對于不愿更改內(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ī)制并存的動態(tài)裝載方法。該方法使MAC機(jī)制以動態(tài)方式載入系統(tǒng)且能與平臺自有MAC機(jī)制實現(xiàn)并存,同時輔以優(yōu)先級調(diào)度算法實現(xiàn)靈活調(diào)度[10]。

        1 通用MAC裝載流程

        目前, Linux操作系統(tǒng)平臺自帶的通用MAC機(jī)制大都是依托Flask模型進(jìn)行工程實現(xiàn)的[11]。Flask模型以進(jìn)程為主體,按照集中式或分散式的策略權(quán)限訪問系統(tǒng)資源客體,存在類型強(qiáng)制與多層安全非強(qiáng)制的形式,同時具備控制精細(xì)、策略靈活與可配置等特點。通用MAC機(jī)制通過更改內(nèi)核全局描述表security_ops中hook地址指向,以KO的形式進(jìn)行動態(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)平臺自帶Flask模型的MAC機(jī)制將獲取內(nèi)核全局描述表security_ops地址,并進(jìn)行地址替換,使之指向MAC機(jī)制中自定義的全局描述表,此時系統(tǒng)平臺的初始化安全模塊default_security_ops失效,MAC機(jī)制裝載成功且生效。

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

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

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

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

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

        2.1 方案設(shè)計

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

        圖2 MAC并存裝載流程

        多種MAC機(jī)制并存裝載沿襲了內(nèi)核安全域擴(kuò)展思想,但在安全模塊加載過程與傳統(tǒng)通用動態(tài)裝載的hook地址替換法不同,它利用跳躍表[13]對內(nèi)核全局描述表security_ops的入口點進(jìn)行重新構(gòu)造,以實現(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ī)制可無上限裝載多個MAC有違系統(tǒng)安全和性能要求,將MAC裝載上限以可配置的方式予以提供。多種MAC機(jī)制還原是對跳躍表裝載方式移除后的環(huán)境歸整,還原為系統(tǒng)平臺自帶MAC的強(qiáng)訪境況。

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

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

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

        2.2 方案實現(xiàn)

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

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

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

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

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

        1) MAC并存裝載與還原

        內(nèi)核安全域已被系統(tǒng)中自帶MAC機(jī)制占用,首先將安全域以SkipList形式進(jìn)行擴(kuò)展,以支持多安全模塊的注冊,以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é)點,SkipList中的各個節(jié)點安全域指針被設(shè)置指向具體安全模塊的file結(jié)構(gòu)。

        MAC并存裝載要對系統(tǒng)內(nèi)核全局描述表security_ops的地址進(jìn)行備份與替換,然而在通用Linux內(nèi)核2.6.22及以上版本[15]中,已經(jīng)不支持通過register_security函數(shù)操作security_ops地址方式,需手動進(jìn)行獲取,其關(guān)鍵數(shù)據(jù)結(jié)構(gòu)實現(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備份地址申請空間并初始化,第3行和第4行將獲取的security_ops地址進(jìn)行備份。

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

        typedef struct skiplist_node{

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

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

        int levels; /*保存結(jié)點的層數(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)先級調(diào)度算法思想,MAC的優(yōu)先級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)先級高先調(diào)用、同等級按照先進(jìn)先出的調(diào)度原則,MAC并存調(diào)度機(jī)制首先調(diào)用的是優(yōu)先級最高的P0級,調(diào)用順序為{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)線(實曲線)所示。

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

        3) 訪問仲裁

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

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

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

        (1)

        4) 安全防篡改

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

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

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

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

        測試條件:

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

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

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

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

        2) 防篡改功能驗證

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

        在Linux通用系統(tǒng)平臺中,創(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操作動作執(zhí)行前,系統(tǒng)輸出提示信息的INFO語句,顯示security_ops地址為ffffffff81ae2420。當(dāng)執(zhí)行insmod操作動作后,系統(tǒng)輸出提示信息WARN語句,顯示系統(tǒng)security_ops地址已被篡改,且篡改后地址為ffffffff81fdadc8。此時安全防篡改模塊將執(zhí)行自修復(fù)功能,重新主動占據(jù)security_ops指向地址。經(jīng)上述security_ops強(qiáng)占測試后,最終確認(rèn)此方法具備安全防篡改功能。

        4 結(jié)束語

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

        猜你喜歡
        內(nèi)核指向仲裁
        萬物皆可IP的時代,我們當(dāng)夯實的IP內(nèi)核是什么?
        強(qiáng)化『高新』內(nèi)核 打造農(nóng)業(yè)『硅谷』
        科學(xué)備考新指向——不等式選講篇
        基于嵌入式Linux內(nèi)核的自恢復(fù)設(shè)計
        Linux內(nèi)核mmap保護(hù)機(jī)制研究
        一種多通道共享讀寫SDRAM的仲裁方法
        電子制作(2018年19期)2018-11-14 02:36:44
        ICSID仲裁中的有效解釋原則:溯源、適用及其略比
        把準(zhǔn)方向盤 握緊指向燈 走好創(chuàng)新路
        傳媒評論(2017年8期)2017-11-08 01:47:36
        兩岸四地間相互執(zhí)行仲裁裁決:過去、現(xiàn)在及將來(上)
        仲裁研究(2015年4期)2015-04-17 02:56:33
        Who?。疲铮酰睿洹。粒恚澹颍椋悖??
        亚洲男人av香蕉爽爽爽爽| 无码人妻久久一区二区三区免费丨 | 18禁裸男晨勃露j毛免费观看| 国产精品亚洲一区二区杨幂| 中文字幕高清一区二区| 亚洲最新国产av网站| 人妻久久久一区二区三区| 五月激情婷婷丁香| 性一交一乱一乱一视频亚洲熟妇 | 亚洲一区二区三区在线观看| 国产一品二品精品在线| 亚洲精品www久久久| 美女在线国产| 国产成年女人特黄特色毛片免| av影片在线免费观看| 99久久久无码国产精品6| 国产在线美女| 亚洲国产av精品一区二| 亚洲乱码无人区卡1卡2卡3| 日本阿v网站在线观看中文| 亚欧免费视频一区二区三区| 久久成人精品国产免费网站| 国产成人亚洲综合| 人妻精品无码一区二区三区| 综合图区亚洲另类偷窥| 婚外情长久的相处之道 | 国产香蕉97碰碰视频va碰碰看 | 东方aⅴ免费观看久久av| 亚洲AV乱码毛片在线播放| 日本女优中文字幕在线播放 | a级毛片在线观看| 中文无码日韩欧免费视频| 亚洲婷婷久久播66性av| 影视av久久久噜噜噜噜噜三级 | 国产美女在线精品亚洲二区| 一区二区三区视频免费观看在线| а天堂中文在线官网在线| 亚洲国产人在线播放首页| 日韩一区二区三区中文字幕| 国产日产一区二区三区四区五区| 国产精品久久久久久久久岛|