国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種實(shí)時(shí)度量方法及裝置與流程

      文檔序號(hào):11545453閱讀:295來(lái)源:國(guó)知局
      一種實(shí)時(shí)度量方法及裝置與流程

      本發(fā)明涉及it(informationtechnology,信息技術(shù))與信息安全領(lǐng)域,尤其涉及一種實(shí)時(shí)度量方法及裝置。



      背景技術(shù):

      嵌入式系統(tǒng)廣泛的應(yīng)用于通信、工控、交通等行業(yè),但是對(duì)傳統(tǒng)it系統(tǒng)而言,嵌入式系統(tǒng)的處理器性能普遍低于服務(wù)器和pc(personalcomputer,個(gè)人計(jì)算機(jī))的處理器性能,并且嵌入式系統(tǒng)常常處于無(wú)人值守的狀態(tài),不同于it系統(tǒng)可以專門的管理員角色并可以經(jīng)常對(duì)系統(tǒng)安全進(jìn)行持續(xù)維護(hù)或升級(jí)版本,所以在嵌入式系統(tǒng)的安全問(wèn)題不能照搬it系統(tǒng)的使用殺毒軟件、持續(xù)更新補(bǔ)丁等思路,需要考慮適合嵌入式系統(tǒng)的主動(dòng)安全機(jī)制實(shí)現(xiàn)安全自動(dòng)化。

      在現(xiàn)有技術(shù)中,可信計(jì)算利用tpm/tcm可信芯片在啟動(dòng)時(shí)對(duì)操作系統(tǒng)、業(yè)務(wù)系統(tǒng)等逐級(jí)進(jìn)行完整性度量,可以確保系統(tǒng)啟動(dòng)時(shí)系統(tǒng)是可信的、未被篡改的。ibm在此基礎(chǔ)上開(kāi)發(fā)ima/prima采用基于linux的lsm(linuxsecuritymodule)鉤子機(jī)制,在文件讀寫、關(guān)鍵函數(shù)調(diào)用的過(guò)程中對(duì)當(dāng)前函數(shù)行為的主體、客體或強(qiáng)制訪問(wèn)控制策略進(jìn)行完整性度量,保證系統(tǒng)運(yùn)行時(shí)可信并且未被篡改。采用這種動(dòng)態(tài)完整性度量方法,其度量時(shí)機(jī)依賴linux的lsm注冊(cè)鉤子函數(shù)點(diǎn),度量時(shí)機(jī)是否完整依賴lsm鉤子是否完整。而在具體執(zhí)行時(shí),動(dòng)態(tài)度量的時(shí)機(jī)來(lái)源于固定的事件、或周期性的定時(shí)度量、或者由用戶或外部系統(tǒng)決定,這樣就存在toctou(timeofcheck,timeofuse)攻擊的風(fēng)險(xiǎn),也即當(dāng)度量時(shí)系統(tǒng)完整性未被攻擊,但在使用時(shí)卻被攻擊注入黑客代碼。



      技術(shù)實(shí)現(xiàn)要素:

      本發(fā)明要解決的主要技術(shù)問(wèn)題是,提供一種度量方法及裝置,避免現(xiàn)有技 術(shù)中由于不能實(shí)時(shí)的度量而導(dǎo)致的存在toctou攻擊風(fēng)險(xiǎn)的問(wèn)題。

      為解決上述問(wèn)題,本發(fā)明提供一種實(shí)時(shí)度量方法,包括:

      實(shí)時(shí)監(jiān)控被監(jiān)控區(qū)域上的操作;所述被監(jiān)控區(qū)域?yàn)槊舾行畔?duì)應(yīng)的存儲(chǔ)地址,所述敏感信息為預(yù)先定義的需要進(jìn)行度量的信息;

      當(dāng)監(jiān)控到所述被監(jiān)控區(qū)域上針對(duì)被監(jiān)控區(qū)域發(fā)起的敏感操作,判斷所述敏感操作是否合法;

      若判斷結(jié)果為所述敏感操作為合法,允許所述敏感操作繼續(xù)執(zhí)行;

      若判斷結(jié)果為所述敏感操作為非法,阻止所述敏感操作繼續(xù)執(zhí)行。

      本發(fā)明一種實(shí)施例中,在實(shí)時(shí)監(jiān)控被監(jiān)控區(qū)域上的操作之前還包括:確定敏感信息,并判斷所述敏感信息是否已在系統(tǒng)中被創(chuàng)建,若是,則讀取所述敏感信息對(duì)應(yīng)的存儲(chǔ)地址,并將所述存儲(chǔ)地址設(shè)置為被監(jiān)控區(qū)域。

      本發(fā)明一種實(shí)施例中,判斷所述操作是否合法包括:判斷所述敏感操作是否合法包括:通過(guò)判斷所述敏感操作或執(zhí)行所述敏感操作的主體是否滿足對(duì)應(yīng)的度量規(guī)則來(lái)判斷所述敏感操作是否合法,若滿足,則所述敏感操作是合法的;若不滿足,則所述敏感操作是非法的。

      本發(fā)明一種實(shí)施例中,所述敏感信息包括棧、堆、進(jìn)程和內(nèi)核關(guān)鍵數(shù)據(jù);

      當(dāng)所述敏感信息為棧時(shí),所述度量規(guī)則包括:當(dāng)前操作地址屬于所述棧的有效范圍、訪問(wèn)所述棧的主體為所述棧的所有者、所述棧符合應(yīng)用程序二進(jìn)制接口規(guī)范約定;

      當(dāng)所述敏感信息為堆時(shí),所述度量規(guī)則包括:當(dāng)前操作的地址不屬于空閑堆空間范圍、當(dāng)前操作區(qū)間不得跨越不同的堆空間對(duì)象、當(dāng)前操作線程為合法線程;

      當(dāng)所述敏感信息為進(jìn)程時(shí),所述度量規(guī)則包括:當(dāng)前進(jìn)程對(duì)應(yīng)的代碼段可被操作、當(dāng)前進(jìn)程的棧區(qū)間可執(zhí)行;

      當(dāng)所述敏感信息為內(nèi)核關(guān)鍵數(shù)據(jù)時(shí),所述度量規(guī)則包括:關(guān)鍵數(shù)據(jù)的訪問(wèn) 線程屬于合法線程、執(zhí)行操作的程序的地址屬于合法可信的代碼區(qū)間。

      本發(fā)明一種實(shí)施例中,當(dāng)所述敏感操作為非法時(shí),通知用戶。

      本發(fā)明一種實(shí)施例中,在監(jiān)控到所述被監(jiān)控區(qū)域上針對(duì)被監(jiān)控區(qū)域發(fā)起的敏感操作之后,判斷所述敏感操作是否合法之前還包括:產(chǎn)生異常,使所述敏感操作過(guò)程被中斷。

      本發(fā)明一種實(shí)施例中,當(dāng)所述敏感操作為非法的,若所敏感述操作處于內(nèi)核態(tài),則調(diào)用系統(tǒng)異常接口觸發(fā)系統(tǒng)異常;若所述敏感操作處于用戶態(tài),則系統(tǒng)不再為所述操作的執(zhí)行分配資源。

      本發(fā)明一種實(shí)施例中,實(shí)時(shí)監(jiān)控被監(jiān)控區(qū)域上的操作包括:通過(guò)內(nèi)存管理單元實(shí)時(shí)監(jiān)控對(duì)內(nèi)存的操作,并判斷所述操作是否是針對(duì)被監(jiān)控區(qū)域發(fā)起的敏感操作。

      本發(fā)明還提供一種實(shí)時(shí)度量裝置,包括:

      監(jiān)控模塊:用于實(shí)時(shí)監(jiān)控被監(jiān)控區(qū)域上的操作,所述被監(jiān)控區(qū)域?yàn)槊舾行畔?duì)應(yīng)的存儲(chǔ)地址,所述敏感信息為預(yù)先定義的需要進(jìn)行度量的信息;

      判斷模塊:用于當(dāng)監(jiān)控到所述被監(jiān)控區(qū)上針對(duì)被監(jiān)控區(qū)域發(fā)起的敏感操作,判斷所述敏感操作是否合法;

      第一執(zhí)行模塊:用于當(dāng)判斷結(jié)果為所述敏感操作為合法,允許所述敏感操作繼續(xù)執(zhí)行;

      第二執(zhí)行模塊:用于判斷結(jié)果為所述敏感操作為非法,阻止所述敏感操作

      繼續(xù)執(zhí)行。

      本發(fā)明一種實(shí)施例中,還包括設(shè)置模塊,用于在實(shí)時(shí)監(jiān)控被監(jiān)控區(qū)域上的操作之前,確定敏感信息,并判斷所述敏感信息是否已在系統(tǒng)中被創(chuàng)建,若是,則讀取所述敏感信息對(duì)應(yīng)的存儲(chǔ)地址,并將所述存儲(chǔ)地址設(shè)置為被監(jiān)控區(qū)域。

      本發(fā)明一種實(shí)施例中,還包括通知模塊,用于當(dāng)所述敏感操作為非法時(shí), 通知用戶。

      本發(fā)明一種實(shí)施例中,還包括異常產(chǎn)生模塊,用于在監(jiān)控到所述被監(jiān)控區(qū)域上針對(duì)被監(jiān)控區(qū)域發(fā)起的敏感操作之后,判斷所述敏感操作是否合法之前產(chǎn)生異常,使所述敏感操作過(guò)程被中斷。

      本發(fā)明一種實(shí)施例中,所述監(jiān)控模塊包括內(nèi)存管理單元,內(nèi)存管理單元實(shí)時(shí)監(jiān)控對(duì)內(nèi)存的操作,并判斷所述操作是否是針對(duì)被監(jiān)控區(qū)域發(fā)起的敏感操作。

      本發(fā)明的有益效果是:本發(fā)明提供了一種實(shí)時(shí)度量方法及裝置,實(shí)時(shí)度量裝置實(shí)時(shí)地監(jiān)控被監(jiān)控區(qū)域上的操作,該被監(jiān)控區(qū)域是敏感信息對(duì)應(yīng)的存儲(chǔ)地址,而該敏感信息是預(yù)先定義的需要進(jìn)行度量的信息;當(dāng)監(jiān)控到被監(jiān)控區(qū)域上有針對(duì)被監(jiān)控區(qū)域發(fā)起的敏感操作的時(shí)候,判斷該操作是否合法,如果合法就允許繼續(xù)執(zhí)行,而如果不合法的話,便阻止其繼續(xù)運(yùn)行。每當(dāng)被監(jiān)控區(qū)域上有針對(duì)被監(jiān)控區(qū)域發(fā)起的敏感操作,就會(huì)進(jìn)行判斷,看該操作是否合法,通過(guò)判斷敏感操作的合法性實(shí)現(xiàn)實(shí)時(shí)度量;而不需要等到某一固定時(shí)間或固定周期通過(guò)判斷數(shù)據(jù)的合法性進(jìn)行度量,解決現(xiàn)有技術(shù)中存在toctou攻擊風(fēng)險(xiǎn)的問(wèn)題,達(dá)到降低toctou攻擊風(fēng)險(xiǎn)的效果。

      附圖說(shuō)明

      圖1為本發(fā)明實(shí)施例一中實(shí)施實(shí)時(shí)度量方法的流程圖;

      圖2為本發(fā)明實(shí)施例一中實(shí)施實(shí)時(shí)度量方法中設(shè)置被監(jiān)控區(qū)域的流程圖;

      圖3為本發(fā)明實(shí)施例一中實(shí)時(shí)度量裝置的結(jié)構(gòu)示意圖。

      具體實(shí)施方式

      下面通過(guò)具體實(shí)施方式結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步詳細(xì)說(shuō)明。

      實(shí)施例一:

      本實(shí)施例提供一種實(shí)時(shí)度量方法,該方法尤其適用于但不限于嵌入式系統(tǒng),其與現(xiàn)有技術(shù)相比具有可以避免toctou攻擊風(fēng)險(xiǎn)的優(yōu)點(diǎn),請(qǐng)參見(jiàn)圖1,包括:

      s101:實(shí)時(shí)監(jiān)控被監(jiān)控區(qū)域上的操作;

      s102:當(dāng)監(jiān)控到所述被監(jiān)控區(qū)上針對(duì)被監(jiān)控區(qū)域發(fā)起的敏感的操作,判斷所述敏感操作是否合法,若是,則執(zhí)行s103,否則,執(zhí)行s104;

      s103:允許該敏感操作繼續(xù)執(zhí)行;

      s104:阻止該敏感操作繼續(xù)執(zhí)行。

      在執(zhí)行步驟s101之前,通常還需要設(shè)置敏感信息對(duì)應(yīng)的被監(jiān)控區(qū)域。在一種具體實(shí)施方式中,通常會(huì)設(shè)置有數(shù)據(jù)庫(kù),在設(shè)置被監(jiān)控區(qū)域的過(guò)程中,若檢測(cè)到敏感信息正在被系統(tǒng)創(chuàng)建,此時(shí)會(huì)計(jì)算該敏感信息的運(yùn)行地址,并將所述運(yùn)行地址設(shè)置為被監(jiān)控區(qū)域;并將其對(duì)應(yīng)關(guān)系存儲(chǔ)到數(shù)據(jù)庫(kù)中,該數(shù)據(jù)庫(kù)專門用于存放敏感信息的相關(guān)信息,該數(shù)據(jù)庫(kù)可以使用數(shù)組、鏈表、樹(shù)等數(shù)據(jù)結(jié)構(gòu)進(jìn)行存儲(chǔ),并且可以提供相應(yīng)檢索。通常該敏感信息是由用戶來(lái)選擇確定的,根據(jù)需求和實(shí)際使用場(chǎng)景的綜合考量,將那些對(duì)安全性要求比較高或者容易遭受攻擊的對(duì)象確定為敏感信息。所以,事實(shí)上被監(jiān)控區(qū)域就是敏感信息對(duì)應(yīng)的存儲(chǔ)地址,而這些敏感信息就是預(yù)先定義的需要進(jìn)行度量的信息,設(shè)置被監(jiān)控區(qū)域的具體設(shè)置過(guò)程請(qǐng)參考圖2,包括:

      s201:確定敏感信息;

      s202:判斷該敏感信息是否已在系統(tǒng)中創(chuàng)建,若是,則執(zhí)行s203;否則,執(zhí)行s204;

      s203:讀取該敏感信息對(duì)應(yīng)的地址,并將該地址設(shè)置為被監(jiān)控區(qū)域;

      s204:結(jié)束本次對(duì)被監(jiān)控區(qū)域的設(shè)置。

      設(shè)置好被監(jiān)控區(qū)域后,執(zhí)行s101,實(shí)時(shí)地監(jiān)控被監(jiān)控區(qū)域上的操作,當(dāng)監(jiān)控到被監(jiān)控區(qū)域上有針對(duì)被監(jiān)控區(qū)域發(fā)起的敏感操作時(shí),就需要判斷該敏感操作是否合法,當(dāng)合法的時(shí)候,允許該敏感操作繼續(xù)執(zhí)行,否則阻止該敏感操作繼續(xù)執(zhí)行。在監(jiān)控到被監(jiān)控區(qū)上針對(duì)被監(jiān)控區(qū)域發(fā)起的敏感操作之后,判斷該敏感操作是否合法之前,通常要產(chǎn)生異常,使正在進(jìn)行的操作中斷,以便于后續(xù)根據(jù)判斷結(jié)果采取不同的措施。

      在一種具體實(shí)施例中,判斷該敏感操作是否合法,可以通過(guò)判斷該敏感操作或者執(zhí)行該敏感操作的執(zhí)行主體是否滿足度量規(guī)則來(lái)實(shí)現(xiàn)的,當(dāng)滿足時(shí)為合法,否則為非法。關(guān)于度量規(guī)則,是根據(jù)敏感信息及其操作權(quán)限來(lái)進(jìn)行設(shè)置的,根據(jù)實(shí)際情況,敏感信息通常會(huì)包括,棧、堆、進(jìn)程和內(nèi)核關(guān)鍵數(shù)據(jù)。當(dāng)敏感信息為棧時(shí),度量規(guī)則包括:當(dāng)前操作地址屬于該棧的有效范圍、訪問(wèn)該棧的主體為該棧的所有者、該棧符合應(yīng)用程序二進(jìn)制接口規(guī)范約定;當(dāng)敏感信息為堆時(shí),度量規(guī)則包括:當(dāng)前操作的地址不屬于空閑堆空間范圍、當(dāng)前操作區(qū)間不得跨越不同的堆空間對(duì)象、當(dāng)前操作線程為合法線程;當(dāng)敏感信息為進(jìn)程時(shí),度量規(guī)則包括:當(dāng)前進(jìn)程對(duì)應(yīng)的代碼段可被操作、當(dāng)前進(jìn)程的棧區(qū)間可執(zhí)行;當(dāng)敏感信息為內(nèi)核關(guān)鍵數(shù)據(jù)時(shí),度量規(guī)則包括:關(guān)鍵數(shù)據(jù)的訪問(wèn)線程屬于合法線程、執(zhí)行操作的程序的地址屬于合法可信的代碼區(qū)間。本實(shí)施例中的“敏感操作”通常包括“讀”、“寫”或“執(zhí)行”,進(jìn)行判斷時(shí),該敏感操作或敏感操作的主體應(yīng)當(dāng)同時(shí)滿足對(duì)應(yīng)的所有度量規(guī)則,例如,當(dāng)敏感信息為堆,對(duì)應(yīng)的敏感操作為讀,此時(shí)要判斷對(duì)該堆進(jìn)行讀的敏感操作是否合法,就需要判斷當(dāng)前訪問(wèn)地址是否不屬于空閑堆空間范圍,還要判斷函數(shù)訪問(wèn)區(qū)間是否沒(méi)有跨越不同堆空間對(duì)象,還要判斷當(dāng)前訪問(wèn)線程是否是合法線程;當(dāng)上述幾個(gè)判斷結(jié)果都為“是”,那么證明,對(duì)該“堆”進(jìn)行的“讀”敏感操作是合法的,就允許對(duì) 該“堆”進(jìn)行“讀”敏感操作;但是若上述判斷結(jié)果中有任意一個(gè)判斷的結(jié)果為“否”,也就是不滿足度量規(guī)則,此時(shí)將組織對(duì)該“堆”進(jìn)行“讀”敏感操作。

      當(dāng)判斷為某一敏感操作為非法的之后,需要阻止該敏感操作的繼續(xù)運(yùn)行,一種常用的方式是,判斷該敏感操作是處于內(nèi)核態(tài)還是用戶態(tài),如果是處于內(nèi)核態(tài)的話,則調(diào)用系統(tǒng)異常接口觸發(fā)系統(tǒng)異常,而如果是處于用戶態(tài)的話,系統(tǒng)將執(zhí)行該敏感操作的程序掛起,不在為該敏感操作的執(zhí)行分配資源。在阻止該敏感操作繼續(xù)執(zhí)行時(shí),還會(huì)向用戶通知,通知的方式可以是以提示框的形式,也可以以其他方式。

      若用戶覺(jué)得沒(méi)有必要再進(jìn)行度量,也可以取消度量,或者檢測(cè)到敏感信息已經(jīng)消亡,不存在系統(tǒng)中也會(huì)自動(dòng)取消度量。只需要從數(shù)據(jù)中刪除敏感信息,被監(jiān)控區(qū)域,以及對(duì)應(yīng)的度量規(guī)則。如果是用戶主動(dòng)取消的度量,那么在取消度量后,之前被阻止的敏感操作現(xiàn)在可以被允許執(zhí)行。

      在一種具體實(shí)施方式中,可以通過(guò)內(nèi)存管理單元實(shí)時(shí)監(jiān)控被監(jiān)控區(qū)域上的操作。實(shí)時(shí)監(jiān)控被監(jiān)控區(qū)域上的操作包括:通過(guò)內(nèi)存管理單元實(shí)時(shí)監(jiān)控對(duì)內(nèi)存的操作,并判斷所述操作是否是針對(duì)被監(jiān)控區(qū)域發(fā)起的敏感操作。內(nèi)存管理單元位于cpu內(nèi)部,用于管理虛擬地址和物理內(nèi)存的硬件。用戶先設(shè)置敏感信息,并確定被監(jiān)控區(qū)域,以及對(duì)應(yīng)的度量規(guī)則。將設(shè)置好的數(shù)據(jù)信息保存到數(shù)據(jù)庫(kù)中,內(nèi)存管理單元會(huì)監(jiān)控?cái)?shù)據(jù)庫(kù)中的被監(jiān)控區(qū)域上的敏感操作,當(dāng)有任何程序(包括合法程序和黑客攻擊程序)訪問(wèn)被監(jiān)控設(shè)備時(shí),內(nèi)存管理單元都會(huì)產(chǎn)生異常,并自動(dòng)保存當(dāng)前訪問(wèn)現(xiàn)場(chǎng)(包括當(dāng)前訪問(wèn)地址、當(dāng)前程序地址寄存器、當(dāng)前棧幀寄存器等)。由于內(nèi)存管理單元的屬性,現(xiàn)在市面上的內(nèi)存管理單元管理通常都是通過(guò)分頁(yè)的方式進(jìn)行內(nèi)存管理的,程序訪問(wèn)敏感信息的時(shí)候,內(nèi)存 管理單元可以獲得監(jiān)控頁(yè)面,該監(jiān)控頁(yè)面是該程序?qū)γ舾行畔?zhí)行實(shí)際敏感操作時(shí)采用的地址。將該控制頁(yè)面與被監(jiān)控區(qū)域的地址進(jìn)行對(duì)比看其是否一致,若不一致,則可能是程序運(yùn)行時(shí)地址錯(cuò)誤等錯(cuò)誤,此時(shí)只需要按照敏感操作系統(tǒng)原本設(shè)置的異常處理規(guī)則進(jìn)行處理即可;若是一致,則證明當(dāng)前程序訪問(wèn)的確實(shí)可能是敏感信息,由于前面已經(jīng)說(shuō)過(guò)內(nèi)存管理單元關(guān)心的只是地址,而且是分頁(yè)進(jìn)行管理,在一頁(yè)上可能有敏感信息,也可能有非敏感信息,所以還要看敏感信息是不是被該程序敏感操作,如果不是,那么該程序訪問(wèn)的對(duì)象并不是隱私信息,則允許該敏感操作繼續(xù)執(zhí)行;如果是,就需要按照度量規(guī)則對(duì)該程序針對(duì)該隱私信息進(jìn)行的敏感操作進(jìn)行度量,具體度量過(guò)程包括看該敏感操作或執(zhí)行該敏感操作的主體是否滿足對(duì)應(yīng)的度量規(guī)則,當(dāng)滿足時(shí),則通過(guò)了度量,證明其是合法的;若不滿足,則其不合法。

      下面以幾個(gè)具體示例對(duì)本實(shí)施例中的實(shí)時(shí)度量方法進(jìn)行說(shuō)明:

      示例一:當(dāng)隱私信息為棧時(shí)。用戶先設(shè)置敏感信息,也即線程或進(jìn)程的棧;然后將該棧以及其地址、對(duì)應(yīng)的度量規(guī)則添加到數(shù)據(jù)庫(kù)中;由于后續(xù)需要看針對(duì)該隱私信息的敏感操作是否滿足度量規(guī)則,所以此時(shí)還需要獲取一些度量基準(zhǔn)值,因?yàn)闂5亩攘恳?guī)則是要求當(dāng)前敏感操作地址屬于該棧的有效范圍、訪問(wèn)該棧的主體為該棧的所有者、該棧符合應(yīng)用程序二進(jìn)制接口規(guī)范約定,所以還需要獲取該棧的線程或進(jìn)程所有者、棧對(duì)應(yīng)線程或進(jìn)程有效代碼段區(qū)間;并在內(nèi)存管理單元中取消相應(yīng)地址空間對(duì)應(yīng)頁(yè)表的敏感操作訪問(wèn)權(quán)限,監(jiān)控該棧對(duì)應(yīng)的地址上的敏感操作。

      若此時(shí)黑客試圖從外部對(duì)此棧發(fā)起非法篡改的攻擊,達(dá)到控制流程或破壞執(zhí)行流程的目的。由于內(nèi)存管理單元已對(duì)棧的敏感操作進(jìn)行實(shí)時(shí)監(jiān)控,此時(shí)針對(duì)該棧的敏感操作被內(nèi)存管理單元監(jiān)控并產(chǎn)生異常;實(shí)時(shí)度量模塊根據(jù)之前獲 取的該棧的地址與動(dòng)態(tài)度量的監(jiān)控頁(yè)面進(jìn)行匹配,找到該棧并確認(rèn)當(dāng)前正在被敏感操作;然后根據(jù)棧對(duì)應(yīng)的度量規(guī)則對(duì)該敏感操作進(jìn)行度量,具體包括:確認(rèn)當(dāng)前訪問(wèn)地址是否屬于當(dāng)前棧幀的有效范圍、訪問(wèn)棧幀的主體是否為棧的所有者、當(dāng)前棧幀是否符合abi規(guī)定的棧幀結(jié)構(gòu)。由于此時(shí)黑客訪問(wèn)線程并非棧的所有者線程,因此不符合第二條規(guī)則約束。此時(shí)通過(guò)異常處理模塊進(jìn)行后續(xù)處理:首先通過(guò)信號(hào)等機(jī)制通知用戶;其次由于當(dāng)前處于用戶態(tài)因此修改線程的運(yùn)行標(biāo)志,掛起已被攻擊的非法訪問(wèn)線程。

      示例二:當(dāng)隱私信息為內(nèi)核關(guān)鍵數(shù)據(jù)時(shí)。敏感操作系統(tǒng)的內(nèi)核是整個(gè)系統(tǒng)的根基,尤其是內(nèi)核的關(guān)鍵數(shù)據(jù)是安全性保障的基礎(chǔ)。

      用戶先設(shè)置敏感信息,也即內(nèi)核的關(guān)鍵數(shù)據(jù),例如系統(tǒng)所有線程的線程控制塊;然后將該棧以及其地址、對(duì)應(yīng)的度量規(guī)則添加到數(shù)據(jù)庫(kù)中;由于后續(xù)需要看針對(duì)該隱私信息的敏感操作是否滿足度量規(guī)則,所以此時(shí)還需要獲取一些度量基準(zhǔn)值,因?yàn)獒槍?duì)內(nèi)核關(guān)鍵數(shù)據(jù)的度量規(guī)則是要求關(guān)鍵數(shù)據(jù)的訪問(wèn)線程屬于合法線程、當(dāng)前程序地址屬于合法可信的代碼區(qū)間,所以還需要獲取該內(nèi)核關(guān)鍵數(shù)據(jù)的合法訪問(wèn)線程組、合法訪問(wèn)代碼區(qū)間;并在內(nèi)存管理單元中取消相應(yīng)地址空間對(duì)應(yīng)頁(yè)表的敏感操作訪問(wèn)權(quán)限,監(jiān)控該內(nèi)核關(guān)鍵數(shù)據(jù)對(duì)應(yīng)的地址上的敏感操作。

      當(dāng)黑客程序試圖通過(guò)插入外部?jī)?nèi)核模塊,在內(nèi)核模塊中對(duì)線程控制塊進(jìn)行訪問(wèn),以便達(dá)到控制線程執(zhí)行的目的。由于內(nèi)存管理單元已對(duì)內(nèi)核關(guān)鍵數(shù)據(jù)的敏感操作進(jìn)行實(shí)時(shí)監(jiān)控,此時(shí)針對(duì)該內(nèi)核關(guān)鍵數(shù)據(jù)的敏感操作被內(nèi)存管理單元監(jiān)控并產(chǎn)生異常;實(shí)時(shí)度量模塊根據(jù)之前獲取的該內(nèi)核關(guān)鍵數(shù)據(jù)的地址與動(dòng)態(tài)度量的監(jiān)控頁(yè)面進(jìn)行匹配,找到該內(nèi)核關(guān)鍵數(shù)據(jù)并確認(rèn)當(dāng)前正在被敏感操作;然后根據(jù)內(nèi)核關(guān)鍵數(shù)據(jù)對(duì)應(yīng)的度量規(guī)則對(duì)該敏感操作進(jìn)行度量,具體包括:關(guān) 鍵數(shù)據(jù)的訪問(wèn)線程是否為合法的線程、當(dāng)前程序地址是否屬于合法可信的代碼區(qū)間。由于此時(shí)程序地址為模塊地址而不在內(nèi)核鏡像代碼區(qū)間范圍內(nèi),不符合第二條規(guī)則約束。此時(shí)通過(guò)異常處理模塊進(jìn)行后續(xù)處理:首先通過(guò)信號(hào)等機(jī)制通知用戶;其次由于當(dāng)前處于內(nèi)核態(tài)因此直接調(diào)用系統(tǒng)異常接口掛起當(dāng)前訪問(wèn)上下文。

      本實(shí)施例還提供一種實(shí)時(shí)度量裝置3,包括監(jiān)控模塊31用于實(shí)時(shí)監(jiān)控被監(jiān)控區(qū)域上的操作,該被監(jiān)控區(qū)域?yàn)槊舾行畔?duì)應(yīng)的存儲(chǔ)地址,該敏感信息為預(yù)先定義的需要進(jìn)行度量的信息;判斷模塊32用于當(dāng)監(jiān)控到所述被監(jiān)控區(qū)上針對(duì)被監(jiān)控區(qū)域發(fā)起的敏感操作,判斷所述敏感操作是否合法;第一執(zhí)行模塊33用于當(dāng)判斷結(jié)果為所述敏感操作為合法,允許所述敏感操作繼續(xù)執(zhí)行;第二執(zhí)行模塊34用于判斷結(jié)果為所述敏感操作為非法,阻止所述敏感操作繼續(xù)執(zhí)行。在一種具體實(shí)施方式中,實(shí)時(shí)度量裝置3還包括設(shè)置模塊35,用于在實(shí)時(shí)監(jiān)控被監(jiān)控區(qū)域上的操作之前,確定敏感信息,并判斷所述敏感信息是否已在系統(tǒng)中被創(chuàng)建,若是,則讀取所述敏感信息對(duì)應(yīng)的存儲(chǔ)地址,并將所述存儲(chǔ)地址設(shè)置為被監(jiān)控區(qū)域;還包括通知模塊36用于當(dāng)所述敏感操作為非法時(shí),通知用戶;還包括異常產(chǎn)生模塊37于在監(jiān)控到所述被監(jiān)控區(qū)域上針對(duì)被監(jiān)控區(qū)域發(fā)起的敏感操作之后,判斷所述敏感操作是否合法之前產(chǎn)生異常,使所述敏感操作過(guò)程被中斷。在本發(fā)明一種具體實(shí)施方式中,監(jiān)控模塊為內(nèi)存管理單元,內(nèi)存管理單元實(shí)時(shí)監(jiān)控對(duì)內(nèi)存的操作,并判斷所述操作是否是針對(duì)被監(jiān)控區(qū)域發(fā)起的敏感操作。

      在一種具體實(shí)施方式中,第一執(zhí)行模塊33允許敏感操作繼續(xù)執(zhí)行時(shí),先設(shè)置cpu的單步寄存器或在下一條指令處插入斷點(diǎn)指令,恢復(fù)被監(jiān)控區(qū)域上相關(guān)敏感操作的權(quán)限設(shè)置,允許相應(yīng)敏感操作執(zhí)行;異常返回后被程序繼續(xù)執(zhí)行, 并在下一條指令中發(fā)生單步異?;驍帱c(diǎn)異常,在單步異?;驍帱c(diǎn)異常中重新取消相應(yīng)頁(yè)表的行為權(quán)限標(biāo)志,并取消單步寄存標(biāo)志或恢復(fù)斷點(diǎn)處的原始指令。

      在一種具體實(shí)施方式中,第二執(zhí)行模塊34,判斷非法訪問(wèn)處于內(nèi)核態(tài)還是用戶態(tài),對(duì)于如果異常訪問(wèn)發(fā)生在內(nèi)核態(tài),調(diào)用系統(tǒng)的異常接口,觸發(fā)系統(tǒng)異常;如果異常訪問(wèn)發(fā)生在用戶態(tài),設(shè)置用戶態(tài)線程的運(yùn)行標(biāo)志位,掛起非法訪問(wèn)線程。

      采用本實(shí)施例中方案,實(shí)時(shí)度量裝置實(shí)時(shí)度量裝置實(shí)時(shí)地監(jiān)控被監(jiān)控區(qū)域上的操作,該被監(jiān)控區(qū)域是敏感信息對(duì)應(yīng)的存儲(chǔ)地址,而該敏感信息是預(yù)先定義的需要進(jìn)行度量的信息;當(dāng)實(shí)時(shí)度量裝置監(jiān)控到被監(jiān)控區(qū)域上針對(duì)被監(jiān)控區(qū)域發(fā)起的敏感操作時(shí)候,判斷該敏感操作是否合法,如果合法就允許繼續(xù)執(zhí)行,而如果不合法的話,便阻止其繼續(xù)運(yùn)行。每當(dāng)被監(jiān)控區(qū)域上有敏感操作,就會(huì)進(jìn)行判斷,看該敏感操作是否合法,避免出現(xiàn)tocto攻擊,達(dá)到降低toctou攻擊風(fēng)險(xiǎn)的效果。另一方面,本實(shí)施例中的方案根據(jù)度量規(guī)則對(duì)被監(jiān)控區(qū)域上的敏感操作進(jìn)行合法性判斷,整個(gè)過(guò)程在執(zhí)行程序的時(shí)候?qū)崟r(shí)進(jìn)行,因此在進(jìn)行度量時(shí),只需要獲取度量需要的相關(guān)信息,不需要獲取整個(gè)軟件的所有信息,因此與現(xiàn)有技術(shù)相比,還具有性能開(kāi)銷小,同時(shí)耗時(shí)較短的優(yōu)點(diǎn)。

      顯然,本領(lǐng)域的技術(shù)人員應(yīng)該明白,上述本發(fā)明的各模塊或各步驟可以用通用的計(jì)算裝置來(lái)實(shí)現(xiàn),它們可以集中在單個(gè)的計(jì)算裝置上,或者分布在多個(gè)計(jì)算裝置所組成的網(wǎng)絡(luò)上,可選地,它們可以用計(jì)算裝置可執(zhí)行的程序代碼來(lái)實(shí)現(xiàn),從而,可以將它們存儲(chǔ)在存儲(chǔ)介質(zhì)(rom/ram、磁碟、光盤)中由計(jì)算裝置來(lái)執(zhí)行,并且在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟,或者將它們分別制作成各個(gè)集成電路模塊,或者將它們中的多個(gè)模塊或步驟制作成單個(gè)集成電路模塊來(lái)實(shí)現(xiàn)。所以,本發(fā)明不限制于任何特定的硬 件和軟件結(jié)合。

      以上內(nèi)容是結(jié)合具體的實(shí)施方式對(duì)本發(fā)明所作的進(jìn)一步詳細(xì)說(shuō)明,不能認(rèn)定本發(fā)明的具體實(shí)施只局限于這些說(shuō)明。對(duì)于本發(fā)明所屬技術(shù)領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干簡(jiǎn)單推演或替換,都應(yīng)當(dāng)視為屬于本發(fā)明的保護(hù)范圍。

      當(dāng)前第1頁(yè)1 2 
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1