国产精品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>

      一種主動防御方法和裝置與流程

      文檔序號:11230209閱讀:325來源:國知局
      一種主動防御方法和裝置與流程
      本發(fā)明涉及軟件安全領(lǐng)域,尤指一種主動防御方法和裝置。
      背景技術(shù)
      :據(jù)相關(guān)機構(gòu)統(tǒng)計,我國80%的關(guān)鍵基礎(chǔ)設(shè)施(電力、交通、能源)依靠嵌入式系統(tǒng)自動化作業(yè),在2020年物聯(lián)網(wǎng)設(shè)備將達到500億規(guī)模。隨著嵌入式系統(tǒng)的發(fā)展也發(fā)現(xiàn)了越來越多問題,各種惡意軟件、病毒、木馬威脅個人、行業(yè)以及國家的安全。已暴露的漏洞和攻擊方法逐年增長,未暴露的問題可能更多,高速發(fā)展的嵌入式系統(tǒng)面臨很多未知的安全隱患。在嵌入式系統(tǒng)領(lǐng)域除了需要面對這些未知的安全隱患,還有存在自身的特點:處理器性能相對it系統(tǒng)的處理器性能低;實時性或關(guān)鍵業(yè)務(wù)性能指標要求較高;嵌入式系統(tǒng)要求長期持續(xù)運行并無需專人維護。因此嵌入式系統(tǒng)的安全問題難以使用it安全領(lǐng)域的方式(例如病毒掃描、經(jīng)常更新補丁)解決。通過對已知的攻擊過程進行分析研究,可以發(fā)現(xiàn)攻擊步驟分為:系統(tǒng)探測、漏洞挖掘、系統(tǒng)突破、系統(tǒng)控制等幾個環(huán)節(jié)。每個環(huán)節(jié)中攻擊者都需要依賴系統(tǒng)中固定的、可預(yù)期的、一致性的規(guī)律,例如系統(tǒng)探測階段可收集系統(tǒng)版本信息,確認是否存在某個已知的安全漏洞;在系統(tǒng)突破和系統(tǒng)控制方面可獲取固定的特權(quán)接口實施系統(tǒng)控制和系統(tǒng)突破。隨著開源社區(qū)的發(fā)展,越來越多的嵌入式設(shè)備使用開源軟件,但也給攻擊者帶來了很多便利,更容易獲取到系統(tǒng)的漏洞和攻擊方案。技術(shù)實現(xiàn)要素:為了解決上述問題,本發(fā)明提出了一種主動防御方法和裝置,能夠提高應(yīng)用程序的安全性。為了達到上述目的,本發(fā)明提出了一種主動防御方法,該方法包括:根據(jù)業(yè)務(wù)源代碼,通過編譯生成多個不同的異構(gòu)版本;根據(jù)多個不同的異構(gòu)版本,將異構(gòu)版本寫入到多個設(shè)備中。優(yōu)選的,所述根據(jù)業(yè)務(wù)源代碼,通過編譯生成多個不同的異構(gòu)版本包括:生成新的系統(tǒng)調(diào)用的頭文件;根據(jù)新的系統(tǒng)調(diào)用的頭文件,對業(yè)務(wù)源代碼進行編譯,生成對應(yīng)的業(yè)務(wù)鏡像文件;根據(jù)新的系統(tǒng)調(diào)用的頭文件,對操作系統(tǒng)進行編譯,生成對應(yīng)的內(nèi)核鏡像文件;根據(jù)生成的業(yè)務(wù)鏡像文件和內(nèi)核鏡像文件,形成業(yè)務(wù)源代碼對應(yīng)的一個異構(gòu)版本。優(yōu)選的,所述生成新的系統(tǒng)調(diào)用的頭文件包括:讀取系統(tǒng)調(diào)用頭文件,所述系統(tǒng)調(diào)用頭文件中記錄有系統(tǒng)調(diào)用號和系統(tǒng)調(diào)用功能之間的映射關(guān)系;針對系統(tǒng)調(diào)用頭文件中記錄的任意一個系統(tǒng)調(diào)用功能,生成一個隨機數(shù);其中,所述隨機數(shù)沒有被其他系統(tǒng)調(diào)用功能占用;將生成的隨機數(shù)作為當前系統(tǒng)調(diào)用功能對應(yīng)的系統(tǒng)調(diào)用號;并將當前系統(tǒng)調(diào)用功能和系統(tǒng)調(diào)用號之間的映射關(guān)系記錄在新的系統(tǒng)調(diào)用頭文件中。優(yōu)選的,所述根據(jù)多個不同的異構(gòu)版本,將異構(gòu)版本寫入到多個設(shè)備中包括:將生成的多個不同的異構(gòu)版本加入到待發(fā)布版本列表中;生成一個隨機數(shù),隨機數(shù)為整數(shù)并且小于或等于當前待發(fā)布版本列表中異構(gòu)版本的數(shù)目,根據(jù)該隨機數(shù)na,將待發(fā)布版本列表中第na個異構(gòu)版本寫入到設(shè)備中;對于寫入到設(shè)備的將該異構(gòu)版本,將該異構(gòu)版本從待發(fā)布版本列表搬移 到已發(fā)布版本列表,并更新兩個版本列表中的版本數(shù)目。優(yōu)選的,在所述生成一個隨機數(shù)之前,還包括:判斷發(fā)布版本列表中異構(gòu)版本的數(shù)目是否為0;如果為0,則將已發(fā)布版本列表中的全部異構(gòu)版本加入到待發(fā)布版本列表中,并對應(yīng)地更新已發(fā)布版本列表和待發(fā)布版本列表中的異構(gòu)版本的數(shù)目;如果不為0,則執(zhí)行所述生成一個隨機數(shù)的步驟。為了達到上述目的,本發(fā)明還提出了一種主動防御裝置,所述裝置包括:異構(gòu)編譯單元,用于根據(jù)業(yè)務(wù)源代碼,通過編譯生成多個不同的異構(gòu)版本;異構(gòu)版本寫入單元,用于根據(jù)多個不同的異構(gòu)版本,將異構(gòu)版本寫入到多個設(shè)備中。優(yōu)選的,所述異構(gòu)編譯單元包括:頭文件生成模塊,用于生成新的系統(tǒng)調(diào)用的頭文件;業(yè)務(wù)鏡像模塊,用于根據(jù)新的系統(tǒng)調(diào)用的頭文件,對業(yè)務(wù)源代碼進行編譯,生成對應(yīng)的業(yè)務(wù)鏡像文件;內(nèi)核鏡像模塊,用于根據(jù)新的系統(tǒng)調(diào)用的頭文件,對操作系統(tǒng)進行編譯,生成對應(yīng)的內(nèi)核鏡像文件;編譯模塊,用于根據(jù)生成的業(yè)務(wù)鏡像文件和內(nèi)核鏡像文件,形成業(yè)務(wù)源代碼對應(yīng)的一個異構(gòu)版本。優(yōu)選的,所述頭文件生成模塊包括:讀取子模塊,用于讀取系統(tǒng)調(diào)用頭文件,所述系統(tǒng)調(diào)用頭文件中記錄有系統(tǒng)調(diào)用號和系統(tǒng)調(diào)用功能之間的映射關(guān)系;隨機數(shù)模塊,用于針對系統(tǒng)調(diào)用頭文件中記錄的任意一個系統(tǒng)調(diào)用功能,生成一個隨機數(shù);其中,所述隨機數(shù)沒有被其他系統(tǒng)調(diào)用功能占用;映射關(guān)系記錄模塊,用于將生成的隨機數(shù)作為當前系統(tǒng)調(diào)用功能對應(yīng)的 系統(tǒng)調(diào)用號;并將當前系統(tǒng)調(diào)用功能和系統(tǒng)調(diào)用號之間的映射關(guān)系記錄在新的系統(tǒng)調(diào)用頭文件中。優(yōu)選的,所述異構(gòu)版本寫入單元包括:待發(fā)布列表模塊,用于將異構(gòu)編譯單元生成的多個不同的異構(gòu)版本加入到待發(fā)布版本列表中;選取模塊,用于生成一個隨機數(shù),隨機數(shù)為整數(shù)并且小于或等于當前待發(fā)布版本列表中異構(gòu)版本的數(shù)目,根據(jù)該隨機數(shù)na,將待發(fā)布版本列表中第na個異構(gòu)版本寫入到設(shè)備中;已發(fā)布列表模塊,用于對于寫入到設(shè)備的將該異構(gòu)版本,將該異構(gòu)版本從待發(fā)布版本列表搬移到已發(fā)布版本列表,并更新兩個版本列表中的版本數(shù)目。優(yōu)選的,所述待發(fā)布列表模塊還用于判斷發(fā)布版本列表中異構(gòu)版本的數(shù)目是否為0;如果為0,則將已發(fā)布版本列表中的全部異構(gòu)版本加入到待發(fā)布版本列表中,并對應(yīng)地更新已發(fā)布版本列表和待發(fā)布版本列表中的異構(gòu)版本的數(shù)目;如果不為0,則通知選取模塊選取所述第na個異構(gòu)版本。與現(xiàn)有技術(shù)相比,本發(fā)明提供的技術(shù)方案包括:根據(jù)業(yè)務(wù)源代碼,通過編譯生成多個不同的異構(gòu)版本;根據(jù)多個不同的異構(gòu)版本,將異構(gòu)版本寫入到多個設(shè)備中。通過本發(fā)明的方案,對于不同的設(shè)備安裝相同的業(yè)務(wù)軟件時,使用不同的異構(gòu)版本,將動態(tài)、多樣、隨機等特征集成到現(xiàn)有軟件系統(tǒng)中,打破攻擊鏈所依賴的固定的、可預(yù)期的、一致性的規(guī)律,使軟件系統(tǒng)具備擬態(tài)主動防御的能力,從而增加攻擊者對系統(tǒng)的不確定性和明顯的攻擊復(fù)雜度,減少攻擊者的機會時間窗口,并增加攻擊者探測和進行攻擊的花銷。附圖說明下面對本發(fā)明實施例中的附圖進行說明,實施例中的附圖是用于對本發(fā)明的進一步理解,與說明書一起用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明保護范 圍的限制。圖1a、圖1b和圖1c分別為本發(fā)明實施例提供的主動防御方法的流程圖;圖2a為本發(fā)明實施例提供的主動防御方法的流程圖;圖2b為待發(fā)布版本列表和已發(fā)布版本列表的示意圖;圖3為本發(fā)明實施例提供的主動防御裝置的結(jié)構(gòu)組成示意圖。具體實施方式為了便于本領(lǐng)域技術(shù)人員的理解,下面結(jié)合附圖對本發(fā)明作進一步的描述,并不能用來限制本發(fā)明的保護范圍。需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的各種方式可以相互組合。參見圖1a,本發(fā)明提出了一種主動防御方法,所述方法包括:步驟100,根據(jù)業(yè)務(wù)源代碼,通過編譯生成多個不同的異構(gòu)版本;步驟200,根據(jù)多個不同的異構(gòu)版本,將異構(gòu)版本寫入到多個設(shè)備中。其中,參見圖1b,步驟100包括:步驟110,生成新的系統(tǒng)調(diào)用的頭文件;步驟120,根據(jù)新的系統(tǒng)調(diào)用的頭文件,對業(yè)務(wù)源代碼進行編譯,生成對應(yīng)的業(yè)務(wù)鏡像文件;步驟130,根據(jù)新的系統(tǒng)調(diào)用的頭文件,對操作系統(tǒng)進行編譯,生成對應(yīng)的內(nèi)核鏡像文件;步驟140,根據(jù)生成的業(yè)務(wù)鏡像文件和內(nèi)核鏡像文件,形成業(yè)務(wù)源代碼對應(yīng)的一個異構(gòu)版本。步驟150,按照步驟110~步驟140形成不同的異構(gòu)版本,直至異構(gòu)版本的數(shù)目達到預(yù)先設(shè)置的異構(gòu)版本預(yù)定數(shù)目。下面對步驟110中生成新的系統(tǒng)調(diào)用的頭文件的過程進行說明。參見圖1c,步驟110包括:步驟111,讀取系統(tǒng)調(diào)用頭文件,所述系統(tǒng)調(diào)用頭文件中記錄有系統(tǒng)調(diào)用號和系統(tǒng)調(diào)用功能之間的映射關(guān)系;步驟112,是否完成述系統(tǒng)調(diào)用頭文件中全部系統(tǒng)調(diào)用功能的遍歷;如果否,則執(zhí)行步驟113;步驟113,針對該當前系統(tǒng)調(diào)用功能,生成一個隨機數(shù);其中,當前系統(tǒng)調(diào)用功能未遍歷的系統(tǒng)調(diào)用功能中的一個;其中隨機數(shù)是動態(tài)生成的。步驟114,檢查該隨機數(shù)是否已經(jīng)被其他的系統(tǒng)調(diào)用功能占用;如果否,則執(zhí)行步驟115;如果是,則執(zhí)行步驟113;步驟115,將生成的隨機數(shù)作為當前系統(tǒng)調(diào)用功能對應(yīng)的系統(tǒng)調(diào)用號;并將當前系統(tǒng)調(diào)用功能和系統(tǒng)調(diào)用號之間的映射關(guān)系記錄在新的系統(tǒng)調(diào)用頭文件中。下面結(jié)合一個具體的示例進行說明。如表1所示,為步驟111中讀取的系統(tǒng)調(diào)用頭文件中記錄的系統(tǒng)調(diào)用號和系統(tǒng)調(diào)用功能之間的映射關(guān)系。系統(tǒng)調(diào)用功能系統(tǒng)調(diào)用號調(diào)用功能1調(diào)用號1調(diào)用功能2調(diào)用號2……調(diào)用功能n調(diào)用號n表1系統(tǒng)調(diào)用頭文件中系統(tǒng)調(diào)用號和系統(tǒng)調(diào)用功能之間的映射關(guān)系表2為根據(jù)步驟112~步驟115生成的新的系統(tǒng)調(diào)用頭文件中記錄的系統(tǒng)調(diào)用號和系統(tǒng)調(diào)用功能之間的映射關(guān)系;新的系統(tǒng)調(diào)用頭文件中,每一個系統(tǒng)調(diào)用號都是不同的,即隨機數(shù)1、隨機數(shù)2…以及隨機數(shù)n都是不同的。表2新的系統(tǒng)調(diào)用頭文件中系統(tǒng)調(diào)用號和系統(tǒng)調(diào)用功能間的映射關(guān)系參見圖2a,其中,步驟200中根據(jù)多個不同的異構(gòu)版本,將異構(gòu)版本寫入到多個設(shè)備中包括:步驟210、將生成的多個不同的異構(gòu)版本加入到待發(fā)布版本列表中;步驟220、判斷發(fā)布版本列表中異構(gòu)版本的數(shù)目是否為0,如果為0,則,執(zhí)行步驟230,如果不為0,則執(zhí)行步驟240;步驟230、則將已發(fā)布版本列表中的全部異構(gòu)版本加入到待發(fā)布版本列表中,并對應(yīng)地更新已發(fā)布版本列表和待發(fā)布版本列表中的異構(gòu)版本的數(shù)目;步驟240、選取待發(fā)布版本列表中的一個,將該異構(gòu)版本寫入到設(shè)備中。步驟240中,生成一個隨機數(shù),隨機數(shù)為整數(shù)并且小于或等于當前待發(fā)布版本列表中異構(gòu)版本的數(shù)目,根據(jù)該隨機數(shù)na,將待發(fā)布版本列表中第na個異構(gòu)版本寫入到設(shè)備中。其中,將該異構(gòu)版本寫入到設(shè)備中具體為將異構(gòu)版本燒寫到設(shè)備中。步驟250、對于寫入到設(shè)備的將該異構(gòu)版本,獲取設(shè)備對應(yīng)的硬件信息(例如mac地址、硬件設(shè)備id等),將此設(shè)備信息記錄到當前選擇的異構(gòu)版本對應(yīng)的已安裝設(shè)備信息中,將該異構(gòu)版本從待發(fā)布版本列表搬移到已發(fā)布版本列表,并更新兩個版本列表中的版本數(shù)目。其中,步驟240和步驟250的順序可以更換。步驟260、是否完成所有設(shè)備的寫入,如果完成,則結(jié)束,如果沒有完成,則執(zhí)行步驟220。如圖2b所示,為待發(fā)布版本列表和已發(fā)布版本列表的示意圖。本發(fā)明實施例中,對于運行相同業(yè)務(wù)軟件的不同設(shè)備,在運行階段可以看到不同設(shè)備使用不同的軟件版本,包括操作系統(tǒng)和業(yè)務(wù)系統(tǒng)都屬于異構(gòu)系統(tǒng)。通過異構(gòu)系統(tǒng)保護了開源操作系統(tǒng)對外界的系統(tǒng)調(diào)用接口,在攻擊者可以獲取到操作系統(tǒng)的源代碼并分析到系統(tǒng)的漏洞的情況下,仍然無法獲取到正確的系統(tǒng)調(diào)用號。操作系統(tǒng)管理系統(tǒng)的核心資源和特權(quán)操作,攻擊者無法預(yù)知操作系統(tǒng)對外接口因此無法訪問關(guān)鍵資源和執(zhí)行特權(quán)操作。當攻擊者使用暴力破解方式獲取單個設(shè)備的外部接口,但暴力破解獲取的接口不適用于其他設(shè)備,無法提供統(tǒng)一的攻擊方案,不能對設(shè)備造成規(guī)模性的威脅。本發(fā)明在運行階段系統(tǒng)未新增任何安全處理流程,例如it安全手段中實時掃描、入侵監(jiān)測等),因此本發(fā)明在運行時不影響系統(tǒng)實時性以及關(guān)鍵業(yè)務(wù)性能等指標,同時也有利于原有嵌入式系統(tǒng)快速部署本專利方案提高產(chǎn)品安全性。本發(fā)明無需改變原有業(yè)務(wù)系統(tǒng),通過底層基礎(chǔ)軟件(操作系統(tǒng)、編譯器)和版本發(fā)布機制引入隨機性特征,破壞攻擊鏈提高系統(tǒng)的安全性。本發(fā)明由于不修改原有系統(tǒng)業(yè)務(wù),因此不影響系統(tǒng)的實時性、關(guān)鍵業(yè)務(wù)性能;同時隨機性和異構(gòu)特征也使得原有系統(tǒng)具備主動防御的特征,可以有效防止非法訪問內(nèi)核關(guān)鍵資源和非法特權(quán)操作的攻擊行為?;谂c上述實施例相同或相似的構(gòu)思,本發(fā)明實施例還提供一種主動防御裝置裝置,參見圖3,本發(fā)明提出的一種主動防御裝置裝置包括:異構(gòu)編譯單元10,用于根據(jù)業(yè)務(wù)源代碼,通過編譯生成多個不同的異構(gòu)版本;異構(gòu)版本寫入單元20,用于根據(jù)多個不同的異構(gòu)版本,將異構(gòu)版本寫入到多個設(shè)備中。本發(fā)明實施例中,所述異構(gòu)編譯單元10包括:頭文件生成模塊11,用于生成新的系統(tǒng)調(diào)用的頭文件;業(yè)務(wù)鏡像模塊12,用于根據(jù)新的系統(tǒng)調(diào)用的頭文件,對業(yè)務(wù)源代碼進行編譯,生成對應(yīng)的業(yè)務(wù)鏡像文件;內(nèi)核鏡像模塊13,用于根據(jù)新的系統(tǒng)調(diào)用的頭文件,對操作系統(tǒng)進行編譯,生成對應(yīng)的內(nèi)核鏡像文件;編譯模塊14,用于根據(jù)生成的業(yè)務(wù)鏡像文件和內(nèi)核鏡像文件,形成業(yè)務(wù)源代碼對應(yīng)的一個異構(gòu)版本。本發(fā)明實施例中,所述頭文件生成模塊11包括:讀取子模塊111,用于讀取系統(tǒng)調(diào)用頭文件,所述系統(tǒng)調(diào)用頭文件中記錄有系統(tǒng)調(diào)用號和系統(tǒng)調(diào)用功能之間的映射關(guān)系;隨機數(shù)模塊112,用于針對系統(tǒng)調(diào)用頭文件中記錄的任意一個系統(tǒng)調(diào)用功能,生成一個隨機數(shù);其中,所述隨機數(shù)沒有被其他系統(tǒng)調(diào)用功能占用;映射關(guān)系記錄模塊113,用于將生成的隨機數(shù)作為當前系統(tǒng)調(diào)用功能對應(yīng)的系統(tǒng)調(diào)用號;并將當前系統(tǒng)調(diào)用功能和系統(tǒng)調(diào)用號之間的映射關(guān)系記錄在新的系統(tǒng)調(diào)用頭文件中。本發(fā)明實施例中,所述異構(gòu)版本寫入單元20包括:待發(fā)布列表模塊21,用于將異構(gòu)編譯單元生成的多個不同的異構(gòu)版本加入到待發(fā)布版本列表中;選取模塊22,用于生成一個隨機數(shù),隨機數(shù)為整數(shù)并且小于或等于當前待發(fā)布版本列表中異構(gòu)版本的數(shù)目,根據(jù)該隨機數(shù)na,將待發(fā)布版本列表中第na個異構(gòu)版本寫入到設(shè)備中;已發(fā)布列表模塊23,用于對于寫入到設(shè)備的將該異構(gòu)版本,將該異構(gòu)版本從待發(fā)布版本列表搬移到已發(fā)布版本列表,并更新兩個版本列表中的版本數(shù)目。本發(fā)明實施例中,所述待發(fā)布列表模塊21還用于判斷發(fā)布版本列表中異構(gòu)版本的數(shù)目是否為0;如果為0,則將已發(fā)布版本列表中的全部異構(gòu)版本加入到待發(fā)布版本列表中,并對應(yīng)地更新已發(fā)布版本列表和待發(fā)布版本列表中的異構(gòu)版本的數(shù)目;如果不為0,則通知選取模塊選取所述第na個異構(gòu)版本。要說明的是,以上所述的實施例僅是為了便于本領(lǐng)域的技術(shù)人員理解而已,并不用于限制本發(fā)明的保護范圍,在不脫離本發(fā)明的發(fā)明構(gòu)思的前提下,本領(lǐng)域技術(shù)人員對本發(fā)明所做出的任何顯而易見的替換和改進等均在本發(fā)明的保護范圍之內(nèi)。當前第1頁12
      當前第1頁1 2 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1