两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

工業(yè)組態(tài)監(jiān)控軟件執(zhí)行過程動態(tài)保護方法與流程

文檔序號:11515250閱讀:695來源:國知局
工業(yè)組態(tài)監(jiān)控軟件執(zhí)行過程動態(tài)保護方法與流程

本發(fā)明涉屬于工業(yè)控制領(lǐng)域和信息技術(shù)領(lǐng)域,特別涉及一種進程內(nèi)存動態(tài)度量和內(nèi)存增強保護方法。



背景技術(shù):

隨著工業(yè)化與信息化進程的不斷交叉融合,越來越多的信息技術(shù)應(yīng)用到了工業(yè)領(lǐng)域。目前,工業(yè)控制系統(tǒng)已廣泛應(yīng)用于電力、水力、石化、醫(yī)藥、食品制造、交通運輸、航空航天等工業(yè)領(lǐng)域,其中,超過80%的涉及國計民生的關(guān)鍵基礎(chǔ)設(shè)施依靠工業(yè)控制系統(tǒng)來實現(xiàn)自動化作業(yè)。工業(yè)控制系統(tǒng)已經(jīng)成為國家關(guān)鍵基礎(chǔ)設(shè)施的重要組成部分,工業(yè)控制系統(tǒng)的安全關(guān)系到國家的戰(zhàn)略安全。

與此同時,由于工業(yè)控制系統(tǒng)廣泛采用通用軟硬件和網(wǎng)絡(luò)設(shè)施,以及與企業(yè)管理信息系統(tǒng)的集成,導(dǎo)致工業(yè)控制系統(tǒng)越來越開放,并且與企業(yè)內(nèi)網(wǎng),甚至是與互聯(lián)網(wǎng)產(chǎn)生了數(shù)據(jù)交換。也就是說以前工業(yè)控制系統(tǒng)在物理環(huán)境上的相對封閉性以及工業(yè)控制系統(tǒng)軟、硬件的專用性將會被打破,通過互聯(lián)網(wǎng)或企業(yè)內(nèi)網(wǎng)將有可能獲取相關(guān)工業(yè)控制系統(tǒng)較為詳細的信息,再加上運營工業(yè)控制系統(tǒng)的企業(yè)安全意識普遍較差,這樣就給敵對政府、恐怖組織、商業(yè)間諜、內(nèi)部不法人員、外部非法入侵者等創(chuàng)造了可乘之機。

傳統(tǒng)的信息安全技術(shù)比如病毒查殺、防火墻、入侵檢測面對如今越來越隱蔽的病毒技術(shù)已經(jīng)越來越難;即使是比較先進的靜態(tài)白名單技術(shù)在面對諸如反射內(nèi)存注入(rmi)的入侵方式也是無能為力;本發(fā)明是一種系統(tǒng)化的方法來防范包括反射內(nèi)存注入在內(nèi)的病毒攻擊展現(xiàn)的防范方法。比較典型的例子有破壞伊朗核設(shè)施的網(wǎng)震病毒、入侵孟加拉國央行的木馬病毒。



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

為了解決諸如rmi(reflectivememoryinjection,反射內(nèi)存注入)這類繞過計算機文件系統(tǒng)以及以文件系統(tǒng)為基礎(chǔ)的安全軟件監(jiān)控系統(tǒng)的木馬病毒,采用在關(guān)鍵點對進程固有內(nèi)存進行掃描驗證以及對非法執(zhí)行內(nèi)存申請進行控制的方法。

rmi通過修改進程空間代碼達到侵害目的,這種入侵方式運行的病毒代碼不通過loadlibrary加載到內(nèi)存,也沒有實際的病毒文件載體存在,因此無論是病毒查殺還是白名單在加載時度量都無法將病毒阻止掉。

程序固有內(nèi)存空間就是根據(jù)程序的可執(zhí)行文件中模塊正常加載到內(nèi)存中占用的空間,區(qū)別于遠程注入內(nèi)存新申請的線程內(nèi)存等空間。其計算方法根據(jù)進程內(nèi)模塊信息(模塊在內(nèi)存的起始地址、大小)來進行計算。如圖1所示。

程序固有內(nèi)存空間在程序加載之后是不允許改變的,衡量是否改變可以通過密碼學(xué)原理采用hash值來度量,也就是在關(guān)鍵點計算每個模塊的hash值,并與原始hash進行比較,兩個hash值相等才視為程序沒有被非法篡改。監(jiān)視篡改行為是艱難的,通過篡改的結(jié)果來出發(fā)程序動態(tài)度量;比如配置文件被修改時觸發(fā)程序度量(程序內(nèi)存模塊hash計算),一旦程序被修改就阻止程序繼續(xù)運行或者發(fā)出報警信息。

在工業(yè)控制系統(tǒng)中遠程代碼注入也是不允許的,通過監(jiān)控執(zhí)行內(nèi)存分配來進行控制。

本發(fā)明采用的技術(shù)方案為工業(yè)組態(tài)監(jiān)控軟件執(zhí)行過程動態(tài)保護方法,第一、對于程序固有空間采用動態(tài)完整性度量方法進行度量,以保證程序完整性并在不被破壞的條件下運行,一旦發(fā)現(xiàn)程序完整性被破壞就發(fā)出報警,必要時結(jié)束程序進程;第二、對于非固有內(nèi)存空間在內(nèi)存分配環(huán)節(jié)進行阻止,防止遠程代碼注入;通過這兩個環(huán)節(jié),進程運行空間環(huán)境都有了監(jiān)測和保護機制,保證進程在正確的狀態(tài)下運行。示意圖如圖2所示:

步驟如下:

第一步、消除所有已知的基于內(nèi)存的安全漏洞,確保被攻擊面盡可能??;

第二步、確保操作系統(tǒng)的本地保護功能事實上是啟用,使成功的基于內(nèi)存的開發(fā)不可能;本地保護功能為dep和aslr。

dep是dataexecutionprevention的縮寫,是一種基于軟硬件技術(shù)的內(nèi)存防護方法,能夠在內(nèi)存上執(zhí)行額外檢查以幫助防止在系統(tǒng)上運行惡意代碼。dep有os軟件技術(shù)也有evp硬件支持,新的amd和intelcpu支持evp技術(shù)。

alsr是一種針對緩沖區(qū)溢出的安全保護技術(shù),通過對堆、棧、共享庫映射等線性區(qū)布局的隨機化,以及通過增加攻擊者預(yù)測目的地址的難度,防止攻擊者直接定位攻擊代碼位置,達到阻止溢出攻擊的目的。alsr能夠有效降低緩沖區(qū)溢出攻擊的成功率,linux、freebsd、windows等主流操作系統(tǒng)都已采用了該技術(shù)。

第三步、使用進程內(nèi)存動態(tài)檢測技術(shù)和增強的內(nèi)存保護技術(shù)來識別和阻止企圖進行內(nèi)存注入的侵害:在進程執(zhí)行的關(guān)鍵節(jié)點進行進程內(nèi)存的動態(tài)監(jiān)測,及時預(yù)警、阻止危害行為的發(fā)生,如圖3所示。

3.1在進程執(zhí)行的關(guān)鍵節(jié)點進行進程內(nèi)存空間檢測,檢測進程的內(nèi)存hash值有無被修改;

3.1.1關(guān)鍵節(jié)點是指進程進行的可捕捉而又很重要的操作,這些重要的操作為修改注冊表、非法查看配置文件、日志、關(guān)鍵業(yè)務(wù)文件等;

文件的查看攔截使用已有的節(jié)點安全軟件dte功能即達到控制目的;在禁止的同時要觸發(fā)進程內(nèi)存檢測。注冊表修改攔截使用windowapi攔截技術(shù),這個在節(jié)點安全軟件上也有詳細使用,需要攔截的api是regsetvalueex;將需要攔截的注冊項存儲起來;待這些api函數(shù)被使用時觸發(fā)檢測消息傳送給檢測服務(wù)函數(shù)。

dte是指增強的domain-type訪問控制安全模型;dte根據(jù)主體所在域權(quán)限實現(xiàn)對型所屬客體進行訪問,如圖4dte控制模型,首先文件打開進入openhook(process+user:file),openhook(process+user:file)對應(yīng)權(quán)限屬性domain-type:rwe,domain/域主題(進程+用戶)集合以及type/型客體(文件)集合。

3.1.2進程內(nèi)存空間檢測:每個進程的內(nèi)存hash在數(shù)據(jù)庫中進行記錄,檢測時要對比數(shù)據(jù)庫中的hash值是否有變動;每個進程都包含一系列的模塊,包括程序本身和一系列dll;其枚舉過程如下:

*使用函數(shù)openprocess打開進程;

*使用module32first/module32next遍歷進程,每個調(diào)用獲取到moduleentry32數(shù)據(jù)結(jié)構(gòu),其成員modbaseaddr/modbasesize標(biāo)識模塊在內(nèi)存中的位置和大小,用于計算其hash值;szmodule/szexepath用于標(biāo)識模塊的名稱和路徑。對比庫中已有hash值,如果不匹配則代表進程內(nèi)存已經(jīng)被改變,根據(jù)已有策略阻止進程運行或者發(fā)出預(yù)警;

3.2攔截windowsapi函數(shù)virtualallocex

病毒進行遠程代碼注入時要調(diào)用virtualallocex函數(shù)來為自己注入代碼分配空間,這些被分配的代碼是為新的線程和參數(shù)來分配的;如果能夠識別/攔截病毒分配內(nèi)存的行為,那么代碼自然無法注入到新的線程里;如果病毒選擇注入到進程固有空間,那么步驟3.1的進程空間動態(tài)度量技術(shù)發(fā)出預(yù)警甚至關(guān)閉受害程序。

當(dāng)virtualallocex函數(shù)第五個參數(shù)是page_execute_readwrite時進行攔截,首先檢測此進程是否在步驟3.1中允許動態(tài)修改代碼的權(quán)限表中;如果不在直接拒絕;如果在則檢測第二個函數(shù)參數(shù)地址是不是在進程固有空間中,如果第二個函數(shù)參數(shù)地址在進程固有空間在則允許,如果第二個函數(shù)參數(shù)地址不在進程固有空間則禁止;地址是否在固有空間參考步驟3.2.2來進行計算。

4、拒絕任何通過驗證的白名單程序來安裝程序的企圖。

即使通過白名單驗證的程序也不能安裝新軟件,安裝了新軟件也無法運行。

附圖說明

圖1為進程固有空間示意圖。

圖2為本方法的實施流程圖。

圖3為進程內(nèi)存動態(tài)檢測應(yīng)用示意圖。

圖4為dte控制模型圖。

圖5為windowsapivirtualallocex攔截示意圖。

圖6為遠程代碼注入攔截流程圖。

具體實施方式

1消除所有已知的安全漏洞:比如使用gs編譯選項編譯軟件,盡可能消除緩沖區(qū)溢出漏洞;比如實現(xiàn)seh校驗機制;及時打os補丁,升級軟件到安全版本等等;

2確保操作系統(tǒng)的本地保護功能已經(jīng)啟用

2.1啟用dep

在計算機屬性--->系統(tǒng)--->性能能屬性--->數(shù)據(jù)執(zhí)行保護,打開dep設(shè)置;使操作系統(tǒng)、服務(wù)以及應(yīng)用啟用dep功能。

2.2使用啟用alsr的操作系統(tǒng)

現(xiàn)在主流操作系統(tǒng)基本上都實現(xiàn)了alsr:openbsd、linux2.6.12及以后、windowserver2008、windows7、vista、windowsserver2008r2、macosx、ios4.3。

3實現(xiàn)進程內(nèi)存空間動態(tài)度量和執(zhí)行內(nèi)存分配檢測

3.1系統(tǒng)關(guān)鍵節(jié)點進行保護

3.1.1注冊表修改通知

對系統(tǒng)注冊表修改函數(shù)regsetvalueex進行攔截,對于關(guān)鍵的修改要通知系統(tǒng)服務(wù)程序進行對應(yīng)程序的進程內(nèi)存動態(tài)度量;攔截方法見virtualallocex攔截方法如圖5所示。

3.1.2配置文件修改保護

使用dte訪問控制模型對系統(tǒng)配置文件進行保護;如果配置文件受到攻擊向系統(tǒng)發(fā)送消息進行進程動態(tài)度量;

3.1.3修改業(yè)務(wù)文件保護

使用dte訪問控制模型對系統(tǒng)業(yè)務(wù)文件進行保護;對于業(yè)務(wù)文件受到攻擊時要向系統(tǒng)發(fā)送消息進行進程動態(tài)度量;

3.1.4修改敏感文件保護

使用dte模型對系統(tǒng)敏感文件進行保護;對于敏感文件受到的攻擊要向系統(tǒng)發(fā)送消息進行進程的動態(tài)度量;

3.2進程動態(tài)度量

3.2.1進程hash值計算

*使用函數(shù)openprocess打開進程;

*使用module32first/module32next遍歷進程,每個調(diào)用獲取到moduleentry32數(shù)據(jù)結(jié)構(gòu),其成員modbaseaddr/modbasesize標(biāo)識模塊在內(nèi)存中的位置和大小,用于計算其hash值;szmodule/szexepath用于標(biāo)識模塊的名稱和路徑。對比庫中已有hash值,如果不匹配則代表進程內(nèi)存已經(jīng)被改變,根據(jù)已有策略阻止進程運行或者發(fā)出預(yù)警;每個模塊計算一個hash值并進行對比,任何一個模塊除了問題都要進行預(yù)警或者結(jié)束進程;進程hash可以在進程啟動時建立hash表來完成初始值的構(gòu)建,或者使用pe文件進行進程hash值初始化,也可以使用掃描方式將所有hash計算好后存取來使用。本方法必須要和傳統(tǒng)白名單方式結(jié)合使用。

3.2.2動態(tài)度量

系統(tǒng)收到步驟3.1傳送來的消息后即可啟動進程動態(tài)檢查。通過計算進程每個模塊的hash值并和存儲在數(shù)據(jù)庫初始化到內(nèi)存中的hash值進行對比,任何一個模塊出了問題都代表進程已經(jīng)被篡改了。

3.2.3攔截virtualallocex

對于系統(tǒng)調(diào)用virtualallocex進行攔截,如果它在分配一個可執(zhí)行可寫的內(nèi)存空間,將拒絕分配內(nèi)存;內(nèi)存屬性使用其函數(shù)第五個參數(shù)是不是page_execute_readwrite來判斷。如果待分配的內(nèi)存位于程序的固有內(nèi)存空間,也就是其在使用函數(shù)module32first/module32next找到的內(nèi)存區(qū)域之內(nèi)將允許內(nèi)存分配。遠程代碼注入需要為注入的代碼提供運行空間,包括線程空間和參數(shù)的空間;示意圖見圖6所示。通過攔截virtualallocex函數(shù)將使注入代碼無法獲得運行空間從而阻止其運行。選擇攔截virtualallocex是因為結(jié)合進程固有內(nèi)存完整性檢擦可以覆蓋進程環(huán)境空間,覆蓋代碼注入的存在基礎(chǔ)。

4.拒絕任何通過白名單驗證程序進行安裝程序企圖

即使通過白名單驗證的程序也不能隨便安裝新的軟件,安裝后也無法運行。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
东方市| 岚皋县| 监利县| 隆化县| 台安县| 尼木县| 海阳市| 清水河县| 万年县| 民乐县| 花莲县| 清苑县| 鄂伦春自治旗| 封丘县| 广元市| 景谷| 隆林| 荔波县| 湟中县| 商都县| 阜新市| 沁水县| 故城县| 康保县| 永仁县| 南澳县| 随州市| 胶南市| 逊克县| 孝义市| 郴州市| 建德市| 东乌珠穆沁旗| 沙田区| 犍为县| 虹口区| 云林县| 齐河县| 抚远县| 通海县| 辽宁省|