基于Windows系統(tǒng)的軟件程序異常行為分析方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種基于Windows系統(tǒng)的軟件程序異常行為分析方法。
【背景技術(shù)】
[0002]隨著網(wǎng)絡(luò)安全風(fēng)險(xiǎn)的日益增長(zhǎng),安全問(wèn)題的復(fù)雜性日益加大,經(jīng)過(guò)綜合FBI和CSI對(duì)484家企業(yè)的調(diào)查及中國(guó)國(guó)家計(jì)算機(jī)網(wǎng)絡(luò)應(yīng)急協(xié)調(diào)中心CNCERT/CC的調(diào)查結(jié)果顯示:大約76%的網(wǎng)絡(luò)安全威脅來(lái)自于內(nèi)部,由此可知其危害程度是遠(yuǎn)遠(yuǎn)超過(guò)黑客攻擊及病毒造成的損失,而這些威脅絕大部分與內(nèi)部各種網(wǎng)絡(luò)訪問(wèn)行為有關(guān);因此,迫切需要一種安全手段對(duì)上述問(wèn)題進(jìn)行有效的監(jiān)控和管理。系統(tǒng)程序行為監(jiān)測(cè)正是在這樣的背景下產(chǎn)生的,系統(tǒng)異常行為分析程序可通過(guò)分析系統(tǒng)中各進(jìn)程的行為,智能判定是否有病毒、木馬異?;蛘呶kU(xiǎn)操作。計(jì)算機(jī)信息系統(tǒng)安全需求和體系結(jié)構(gòu)的共性,其構(gòu)成要素是安全手段、系統(tǒng)單元及國(guó)際標(biāo)準(zhǔn)化組織(ISO)制定的開(kāi)放系統(tǒng)互連參考模型(OSI)。本地系統(tǒng)對(duì)網(wǎng)絡(luò)系統(tǒng)中的安全設(shè)備和網(wǎng)絡(luò)設(shè)備、應(yīng)用系統(tǒng)和運(yùn)行狀況進(jìn)行全面的監(jiān)測(cè)、分析、評(píng)估是保障網(wǎng)絡(luò)安全的重要手段。目前,國(guó)內(nèi)企業(yè)的信息系統(tǒng)大多還是Windows系統(tǒng),包括一些IDC企業(yè)的很大一部分服務(wù)器系統(tǒng)也是Windows Server,所以對(duì)于Windows系統(tǒng)下的監(jiān)測(cè)更是重中之重。
【發(fā)明內(nèi)容】
[0003]本發(fā)明要解決的技術(shù)問(wèn)題,在于提供一種基于Windows系統(tǒng)的軟件程序異常行為分析方法。
[0004]本發(fā)明是這樣實(shí)現(xiàn)的:一種基于Windows系統(tǒng)的軟件程序異常行為分析方法,包括如下步驟:
[0005]步驟1、用戶選定一軟件程序,對(duì)該軟件程序的軟件行為信息進(jìn)行捕獲;
[0006]步驟2、建立白名單庫(kù)、黑名單庫(kù)及危險(xiǎn)行為庫(kù);
[0007]步驟3、根據(jù)白名單庫(kù)、黑名單庫(kù)及危險(xiǎn)行為庫(kù),將捕獲到的軟件行為信息通過(guò)遺傳算法進(jìn)行分析,得到分析結(jié)果;
[0008]步驟4、將分析結(jié)果進(jìn)行顯示。
[0009]進(jìn)一步地,所述步驟I進(jìn)一步具體為:用戶選定一軟件程序,在Windows系統(tǒng)中建立鉤子程序,通過(guò)鉤子程序?qū)υ撥浖绦虻能浖袨樾畔⑦M(jìn)行捕獲。
[0010]進(jìn)一步地,所述步驟I中,將捕獲的軟件行為信息進(jìn)行存儲(chǔ)。
[0011]進(jìn)一步地,所述軟件行為信息包括進(jìn)線程行為、注冊(cè)表行為、文件行為、網(wǎng)絡(luò)行為和驅(qū)動(dòng)行為。
[0012]進(jìn)一步地,所述步驟4進(jìn)一步具體為:將分析結(jié)果進(jìn)行顯示,并將分析結(jié)果存儲(chǔ)至對(duì)應(yīng)的庫(kù)中。
[0013]本發(fā)明具有如下優(yōu)點(diǎn):本發(fā)明一種基于Windows系統(tǒng)的軟件程序異常行為分析方法,大大降低了由于內(nèi)部引起的網(wǎng)絡(luò)安全隱患。
【附圖說(shuō)明】
[0014]下面參照附圖結(jié)合實(shí)施例對(duì)本發(fā)明作進(jìn)一步的說(shuō)明。
[0015]圖1為本發(fā)明方法執(zhí)行流程圖。
【具體實(shí)施方式】
[0016]本發(fā)明基于Windows系統(tǒng)的軟件程序異常行為分析方法,包括如下步驟:
[0017]步驟1、用戶選定一軟件程序,在Windows系統(tǒng)中建立鉤子程序,通過(guò)鉤子程序?qū)υ撥浖绦虻能浖袨樾畔⑦M(jìn)行捕獲,將捕獲的軟件行為信息進(jìn)行存儲(chǔ),所述軟件行為信息包括進(jìn)線程行為、注冊(cè)表行為、文件行為、網(wǎng)絡(luò)行為和驅(qū)動(dòng)行為;
[0018]步驟2、建立白名單庫(kù)、黑名單庫(kù)及危險(xiǎn)行為庫(kù);
[0019]步驟3、根據(jù)白名單庫(kù)、黑名單庫(kù)及危險(xiǎn)行為庫(kù),將捕獲到的軟件行為信息通過(guò)遺傳算法進(jìn)行分析,得到分析結(jié)果;
[0020]步驟4、將分析結(jié)果進(jìn)行顯示,并將分析結(jié)果存儲(chǔ)至對(duì)應(yīng)的庫(kù)中。
[0021]本發(fā)明一種【具體實(shí)施方式】如下:
[0022]一、系統(tǒng)構(gòu)架:系統(tǒng)由一個(gè)可執(zhí)行程序、規(guī)則庫(kù)(本地或云端)、日志文件、被分析軟件等組成。
[0023]系統(tǒng)組成功能:
[0024]1、整體系統(tǒng)的構(gòu)建:
[0025](I)、驅(qū)動(dòng)監(jiān)測(cè)模塊;
[0026]a.在SSDT表中,HOOK要用到的函數(shù);
[0027]b.與控制層的數(shù)據(jù)實(shí)現(xiàn)交換。
[0028](2)、數(shù)據(jù)傳輸控制模塊(DLL)
[0029]a.在ring3H00K網(wǎng)絡(luò)功能函數(shù);
[0030]b.與驅(qū)動(dòng)層交互;
[0031 ] c.接收用戶界面層的輸入數(shù)據(jù)信息,并發(fā)送數(shù)據(jù)返回界面層。
[0032](3)、用戶功能模塊
[0033]a.監(jiān)測(cè)程序行為;
[0034]b.顯示被監(jiān)測(cè)程序的行為過(guò)程;
[0035]c.生成日志,并記錄到access數(shù)據(jù)庫(kù);
[0036]d.產(chǎn)生報(bào)告(報(bào)告經(jīng)過(guò)篩選和判斷);
[0037]e.自定義程序安全行為(黑白名單的維護(hù))。
[0038](4)、使用遺傳算法來(lái)學(xué)習(xí)和定義規(guī)則模塊。
[0039]程序可以自行總結(jié)一些規(guī)則,并根據(jù)這些規(guī)則自動(dòng)判斷軟件行為是否危險(xiǎn)。
[0040]二、驅(qū)動(dòng)監(jiān)測(cè)
[0041]驅(qū)動(dòng)程序負(fù)責(zé)監(jiān)測(cè)系統(tǒng)程序的行為。具體實(shí)現(xiàn)流程如下:
[0042]驅(qū)動(dòng)層(ringO):驅(qū)動(dòng)安裝后,會(huì)執(zhí)行InitDataO,此函數(shù)功能就是獲取該程序需要hook的系統(tǒng)服務(wù)函數(shù)(即存放于SSDT的函數(shù))的地址,使用自定義的函數(shù)替換。
[0043]在驅(qū)動(dòng)控制函數(shù)包含了兩個(gè)控制碼:
[0044]0CTRL_PR0CESS_M0NIT0R_0N 和 10CTRL_PR0CESS_M0NIT0R_0FF,分別用來(lái)實(shí)現(xiàn)開(kāi)啟hook和關(guān)閉hook。同時(shí)為了實(shí)現(xiàn)和ring3層程序的數(shù)據(jù)和控制交互,ring3層程序在發(fā)送開(kāi)啟hook控制碼是同時(shí)發(fā)送了在該層申請(qǐng)的緩沖區(qū),ringO程序通過(guò)映射
[0045]Il獲取用戶層傳送過(guò)來(lái)的緩沖區(qū)地址
[0046]dwBuffAddress = *(DWORD*)p1Buffer ;
[0047]//根據(jù)虛擬地址獲取物理地址
[0048]pPhysicalAddr = MmGetPhysicalAddress((PVOID)dwBuffAddress);
[0049]//把物理地址映射到虛擬地址
[0050]g_pMyBuff = (PMY_BUFF)MmMap1Space
[0051](pPhysicalAddr, sizeof(MY_BUFF), (MEM0RY_CACHING_TYPE)0);
[0052]然后在ringO層可以“直接”訪問(wèn)該緩沖區(qū),從而實(shí)現(xiàn)了 ringO和ring3的交互。本程序采用內(nèi)核層Η00Κ技術(shù)。
[0053]三、數(shù)據(jù)傳輸控制
[0054]DLL(控制)層:該層首先以服務(wù)的形式安裝驅(qū)動(dòng)程序,加載驅(qū)動(dòng),建立設(shè)備連接然后開(kāi)啟網(wǎng)絡(luò)功能Η00Κ (使用的是消息Η00Κ中的全局Η00Κ,基于一個(gè)hook模板庫(kù))