欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種基于安全標(biāo)記隨機(jī)化的操作系統(tǒng)強(qiáng)制訪問控制方法

文檔序號(hào):9491849閱讀:1193來源:國知局
一種基于安全標(biāo)記隨機(jī)化的操作系統(tǒng)強(qiáng)制訪問控制方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及Linux操作系統(tǒng)安全領(lǐng)域,具體涉及一種針對(duì)Linux內(nèi)核級(jí)提權(quán)攻擊進(jìn)行防御的基于安全標(biāo)記隨機(jī)化的操作系統(tǒng)強(qiáng)制訪問控制方法。
【背景技術(shù)】
[0002]隨著Linux操作系統(tǒng)的應(yīng)用范圍越來越廣,系統(tǒng)的安全問題也日益受到關(guān)注。其中,系統(tǒng)的用戶權(quán)限管理決定了系統(tǒng)中各類主體對(duì)系統(tǒng)資源的訪問權(quán)限,成為Linux系統(tǒng)安全的重要基礎(chǔ)之一。在Linux系統(tǒng)中,用戶一般分為系統(tǒng)管理員用戶root與普通用戶兩個(gè)級(jí)別。普通用戶僅擁有與用戶應(yīng)用相關(guān)的權(quán)限,而系統(tǒng)管理員則可以對(duì)系統(tǒng)范圍內(nèi)的所有資源進(jìn)行訪問與管理。由于系統(tǒng)管理員具有“至高無上”的權(quán)限,因此一旦惡意攻擊者具有了 root權(quán)限,就可以訪問系統(tǒng)的所有資源。此外在系統(tǒng)管理過程中也必須避免系統(tǒng)管理員的權(quán)限濫用問題。
[0003]操作系統(tǒng)的強(qiáng)制訪問控制機(jī)制打破了 root用戶的特權(quán),在操作系統(tǒng)內(nèi)部根據(jù)不同的訪問控制安全策略對(duì)系統(tǒng)中各類對(duì)象之間的訪問控制行為進(jìn)行控制管理。在這樣的系統(tǒng)中,即使進(jìn)程的屬主為root,其所有行為也必須同時(shí)滿足強(qiáng)制訪問控制機(jī)制的要求才能夠在系統(tǒng)中被允許發(fā)生。典型的強(qiáng)制訪問控制策略有保護(hù)數(shù)據(jù)機(jī)密性及完整性的BLP/BIBA策略、實(shí)現(xiàn)最小特權(quán)的Capability策略、基于安全域隔離的SELinux策略等等。
[0004]在Linux操作系統(tǒng)中,為了簡化強(qiáng)制訪問控制機(jī)制的開發(fā),并且支持多種強(qiáng)制訪問控制策略的靈活擴(kuò)展,系統(tǒng)中實(shí)現(xiàn)了 LSM強(qiáng)制訪問控制框架,實(shí)現(xiàn)了強(qiáng)制訪問控制的通用框架,并向安全策略開發(fā)人員提供Hook函數(shù),支持以模塊的形式來開發(fā)個(gè)性化的訪問控制策略。目前,在Linux系統(tǒng)中已經(jīng)列入內(nèi)核主線的強(qiáng)制訪問控制模塊有SELinux、AppArmor、SMACK等等。在具有強(qiáng)制訪問控制的Linux操作系統(tǒng)中,即使攻擊者將進(jìn)程的ID修改為root,也并不能在系統(tǒng)中為所欲為,必須通過強(qiáng)制訪問控制機(jī)制的訪問權(quán)限決策,違反安全策略的訪問行為都會(huì)被拒絕。
[0005]具體實(shí)現(xiàn)時(shí),Linux強(qiáng)制訪問控制機(jī)制為系統(tǒng)中的每一個(gè)主、客體對(duì)象關(guān)聯(lián)一個(gè)安全屬性,并且預(yù)先規(guī)定各類安全屬性之間的訪問控制規(guī)則。當(dāng)系統(tǒng)中發(fā)生主體對(duì)客體的訪問時(shí),強(qiáng)制訪問控制機(jī)制將首先獲取主、客體的安全屬性,然后根據(jù)系統(tǒng)已有的訪問控制規(guī)則配置,判斷這次訪問是否可以繼續(xù)進(jìn)行。通常情況下,Linux強(qiáng)制訪問控制機(jī)制的主要結(jié)構(gòu)如附圖1所示,主要包括位于內(nèi)核層的對(duì)象管理模塊、訪問許可決策模塊、訪問規(guī)則配置模塊,以及位于用戶層的核外安全配置管理模塊。這些模塊的主要作用分別為:
籲對(duì)象管理模塊,對(duì)象管理模塊主要負(fù)責(zé)管理操作系統(tǒng)中的各類主體與客體對(duì)象,包括進(jìn)程、文件、socket等等,為系統(tǒng)中的每一個(gè)新生成的對(duì)象都維持一個(gè)安全屬性,以供訪問控制決策時(shí)使用。
[0006]籲訪問規(guī)則配置模塊。訪問規(guī)則配置模塊主要保存系統(tǒng)的安全管理員對(duì)操作系統(tǒng)中所有安全策略配置,包括系統(tǒng)存在的各類主體、客體的安全屬性,以及各不同安全屬性的主客體之間發(fā)生訪問時(shí)的許可規(guī)則。
[0007].訪問控制決策模塊。訪問控制決策模塊在系統(tǒng)中發(fā)生訪問行為時(shí),分別獲取當(dāng)次訪問所涉及的主體與客體的安全屬性,并且查詢?cè)L問規(guī)則配置模塊,查看在當(dāng)前的規(guī)則配置下,這樣的訪問是否允許發(fā)生。如果不被配置規(guī)則允許,就拒絕該次訪問操作。
[0008]?核外安全配置管理模塊。核外安全配置管理模塊主要在用戶層提供對(duì)安全策略的配置接口,以及對(duì)安全策略配置在文件系統(tǒng)中進(jìn)行保存等等。
[0009]然而,隨著運(yùn)行在系統(tǒng)更高級(jí)別的內(nèi)核態(tài)提權(quán)漏洞攻擊方法的出現(xiàn),攻擊者不僅可以篡改進(jìn)程的用戶ID,還可以篡改進(jìn)程的安全屬性。
[0010]下面,以內(nèi)核提權(quán)漏洞CVE-2013-2094為例,介紹進(jìn)彳丁利用內(nèi)核提權(quán)漏洞進(jìn)彳丁包括安全屬性在內(nèi)的提權(quán)攻擊典型攻擊流程:
第一步:利用內(nèi)核存在的邊界條件錯(cuò)誤漏洞,將內(nèi)核空間的函數(shù)指針修改為指向用戶空間的shellcode代碼。在存在該漏洞的內(nèi)核中,在kernel/events/core, c中的perf_swevent_init函數(shù)使用不正確的整數(shù)數(shù)據(jù)類型,允許本地用戶通過特制的perf_event_open系統(tǒng)調(diào)用來提升權(quán)限。
[0011]第二步:在shellcode代碼中實(shí)現(xiàn)將內(nèi)核空間存儲(chǔ)的進(jìn)程權(quán)限信息篡改為特權(quán)進(jìn)程。在進(jìn)程的內(nèi)核棧中,保存進(jìn)程權(quán)限信息的thread_inf0結(jié)構(gòu)總是存放在內(nèi)核棧的底部。因此攻擊者可以根據(jù)內(nèi)核棧中某一變量的地址獲取內(nèi)核?;罚瑥亩@取進(jìn)程task_struct在內(nèi)存中的位置,并進(jìn)一步獲取進(jìn)程cred在內(nèi)存中的位置,直接修改對(duì)應(yīng)內(nèi)存位置存儲(chǔ)的數(shù)據(jù)。步驟包括:(1)獲取進(jìn)程task_strUCt在內(nèi)存中位置。通過將內(nèi)核棧中某一變量地址的低13位清零,獲取內(nèi)核棧基址。在內(nèi)核棧基址位置存儲(chǔ)著指向進(jìn)程task_strUCt的指針,從而獲取進(jìn)程task_strUCt在內(nèi)存中位置。(2)獲取進(jìn)程cred在內(nèi)存中位置。根據(jù)進(jìn)程task_struct結(jié)構(gòu)的特點(diǎn),即進(jìn)程cred和進(jìn)程real_cred指針一般指向同一進(jìn)程cred,并且根據(jù)用戶、組信息可以準(zhǔn)確獲得進(jìn)程cred在內(nèi)存中位置。(3)修改進(jìn)程cred中權(quán)限信息。進(jìn)程cred中存有進(jìn)程的用戶、組信息以及Capabilities等與權(quán)限相關(guān)的信息,根據(jù)cred結(jié)構(gòu)就可以直接修改相關(guān)數(shù)據(jù)。將對(duì)應(yīng)的用戶ID和組ID修改0,即root用戶/組ID,將Capabilities修改為全1。(4)如果系統(tǒng)啟動(dòng)了強(qiáng)制訪問控制安全策略,在cred結(jié)構(gòu)中找到指向的保存進(jìn)程安全屬性的task_security_struct安全結(jié)構(gòu)的指針,進(jìn)而獲取task_security_struct結(jié)構(gòu)的內(nèi)存地址,根據(jù)需要將安全上下文修改為目標(biāo)安全上下文。
[0012]第三步:利用CVE-2013-2094內(nèi)核提權(quán)漏洞,獲取具有root權(quán)限shell。通過第二步當(dāng)前進(jìn)程已經(jīng)擁有了所需的系統(tǒng)管理權(quán)限,調(diào)用execl( “/bin/bash”,”-sh”,NULL)獲取與系統(tǒng)進(jìn)行交互的shell,該shell繼承當(dāng)前進(jìn)程的權(quán)限。
[0013]通過上述實(shí)例可以看出,由于被入侵的進(jìn)程在內(nèi)核態(tài)運(yùn)行、具有更高的運(yùn)行級(jí)別,因此可以直接對(duì)內(nèi)核中的關(guān)鍵數(shù)據(jù)結(jié)構(gòu)進(jìn)行修改,從而攻擊者可以對(duì)在內(nèi)核空間中存儲(chǔ)的進(jìn)程權(quán)限進(jìn)行任意改變,不僅改變進(jìn)程的用戶ID、組ID等信息,并且可以根據(jù)需要對(duì)進(jìn)程的強(qiáng)制訪問控制安全屬性也進(jìn)行修改,繞過系統(tǒng)中強(qiáng)制訪問控制安全機(jī)制的檢查。而基于強(qiáng)制訪問控制的防御方法,由于Linux系統(tǒng)中各類安全策略下的主、客體安全屬性定義在系統(tǒng)編譯時(shí)就已經(jīng)確定,攻擊者可以很容易就確定需要的目標(biāo)安全屬性并將進(jìn)程屬性篡改為目標(biāo)值,導(dǎo)致訪問控制機(jī)制的失效。
[0014]綜上所述,強(qiáng)制訪問控制機(jī)制使用進(jìn)程的安全屬性來代替用戶ID來作為進(jìn)程權(quán)限的標(biāo)識(shí),對(duì)傳統(tǒng)的修改用戶ID的提權(quán)攻擊具有緩解作用。但是目前已經(jīng)有攻擊方法可以進(jìn)一步修改進(jìn)程的安全屬性,攻擊者可以以此獲取想要的系統(tǒng)特權(quán)。因此,研究對(duì)系統(tǒng)的特權(quán)進(jìn)程安全標(biāo)記的保護(hù)措施,讓攻擊者無法獲取特權(quán)進(jìn)程的安全屬性,進(jìn)而保護(hù)系統(tǒng)重要資源的安全具有重要的現(xiàn)實(shí)意義。

【發(fā)明內(nèi)容】

[0015]本發(fā)明要解決的技術(shù)問題:針對(duì)現(xiàn)有技術(shù)的上述問題,提供一種能夠有效抵御攻擊者利用內(nèi)核提權(quán)漏洞修改內(nèi)核空間進(jìn)程安全屬性的攻擊方式,安全性高、可靠性好、性能損失低、對(duì)用戶透明、適用范圍廣的基于安全標(biāo)記隨機(jī)化的操作系統(tǒng)強(qiáng)制訪問控制方法。
[0016]為了解決上述技術(shù)問題,本發(fā)明采用的技術(shù)方案為:
一種基于安全標(biāo)記隨機(jī)化的操作系統(tǒng)強(qiáng)制訪問控制方法,步驟包括:
1)預(yù)先在操作系統(tǒng)的強(qiáng)制訪問控制機(jī)制中構(gòu)建用于記錄安全標(biāo)記的內(nèi)部標(biāo)
當(dāng)前第1頁1 2 3 4 5 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
边坝县| 平遥县| 镇沅| 靖西县| 兰西县| 昂仁县| 砚山县| 正安县| 迁西县| 新田县| 东丽区| 文安县| 永福县| 宁河县| 永善县| 富锦市| 宁波市| 长沙市| 分宜县| 新河县| 淅川县| 阜南县| 肥乡县| 中西区| 科技| 鲁甸县| 绥德县| 安新县| 平阴县| 新龙县| 巴塘县| 宣汉县| 上饶市| 延川县| 饶平县| 舞阳县| 沧源| 安庆市| 泽普县| 南郑县| 蕉岭县|