專利名稱:應(yīng)用軟件可信性的混合度量方法
技術(shù)領(lǐng)域:
:本發(fā)明設(shè)計(jì)是應(yīng)用軟件可信性的一種混合度量方法,并根據(jù)這種方法,設(shè)計(jì)和實(shí)現(xiàn)了一個(gè)安全防護(hù)系統(tǒng),保護(hù)計(jì)算機(jī)系統(tǒng)的安全,阻止病毒木馬的運(yùn)行。
背景技術(shù):
:隨著信息技術(shù)的迅猛發(fā)展,信息安全問題日趨復(fù)雜,系統(tǒng)安全問題層出不窮,在給人類帶來危害的同時(shí)也制約著信息化的發(fā)展進(jìn)程。由防火墻、入侵監(jiān)測(cè)和病毒防范為主構(gòu)成的傳統(tǒng)信息安全系統(tǒng),在變化多端的惡意攻擊手段面前,逐漸顯得無能為力,最后只能導(dǎo)致防火墻越‘砌’越高、入侵檢測(cè)越做越復(fù)雜、惡意代碼庫越做越大,對(duì)新的攻擊入侵毫無防御能力?!袄先龢?、堵漏洞、做高墻、防外攻,防不勝防”就是信息安全的基本現(xiàn)狀[1]。近年來,體現(xiàn)整體安全思想的可信計(jì)算技術(shù)正越來越受到人們的關(guān)注,成為信息安全新的熱點(diǎn)研究方向。它有別于傳統(tǒng)的安全技術(shù),而是從底層和終端開始防范攻擊。隨著可信計(jì)算組織TCG的成立,并推出以可信平臺(tái)模塊TPM(Trusted PlatformModule)為核心的可信計(jì) 算規(guī)范[2],信任體系的研究在國(guó)際上進(jìn)一步引起了研究者們的高度重視。根據(jù)TCG規(guī)范,與傳統(tǒng)的安全體系不同,可信計(jì)算的核心思想是引入一個(gè)安全協(xié)處理器TPM,嵌入到計(jì)算機(jī)平臺(tái)中,利用TPM的度量和約束來保證系統(tǒng)的可信。TPM的典型應(yīng)用就是安全啟動(dòng),其具體原理是指從系統(tǒng)加電的時(shí)刻起,依次對(duì)BIOS、系統(tǒng)I/O、ROM、硬件、系統(tǒng)內(nèi)核進(jìn)行完整性度量,確保系統(tǒng)正常狀態(tài)啟動(dòng),從而有效阻止病毒、木馬、非法程序?qū)ο到y(tǒng)的攻擊和破壞,保證系統(tǒng)免受攻擊,可靠、穩(wěn)定運(yùn)行。TCM采用了中國(guó)密碼算法,TPCM增加了主動(dòng)控制和主動(dòng)度量。但是不管是安全啟動(dòng),還是驗(yàn)證啟動(dòng)中采用的可信度量目前還存在如下問題:從電腦加電到操作系統(tǒng)裝載(稱之為系統(tǒng)引導(dǎo))是一個(gè)順序固定的單一鏈?zhǔn)竭^程,而且BIOS、操作系統(tǒng)裝載器以及操作系統(tǒng)一般相對(duì)穩(wěn)定,因此在可信傳遞過程中的完整性度量實(shí)現(xiàn)起來比較簡(jiǎn)單。但是從操作系統(tǒng)到應(yīng)用的可信傳遞過程有著不同于系統(tǒng)引導(dǎo)過程的特點(diǎn):首先操作系統(tǒng)平臺(tái)之上的應(yīng)用一般不是單一的,并且這些應(yīng)用之間并不存在必然的順序關(guān)系;其次在用戶的一次操作活動(dòng)期間,不一定會(huì)用到所有被允許執(zhí)行的應(yīng)用。目前從電腦加電開始BIOS運(yùn)行到操作系統(tǒng)運(yùn)行前的整個(gè)過程,由于流程可變性小,該領(lǐng)域的可信度量已經(jīng)有了大量的研究并且達(dá)到了實(shí)際的應(yīng)用[3][4][5],而操作系統(tǒng)加載后對(duì)應(yīng)用程序的度量的研究還很不成熟
發(fā)明內(nèi)容
:I應(yīng)用軟件的靜態(tài)度量對(duì)應(yīng)用軟件的靜態(tài)度量采用“白名單法”。在計(jì)算機(jī)系統(tǒng)中存放一個(gè)應(yīng)用軟件的列表,在列表中存放了各個(gè)正版應(yīng)用軟件的HASH度量值。當(dāng)操作系統(tǒng)啟動(dòng)后,在每一個(gè)應(yīng)用軟件運(yùn)行之前,度量這個(gè)應(yīng)用軟件并與數(shù)據(jù)庫(白名單)中的HASH值進(jìn)行比對(duì),比對(duì)通過的應(yīng)用軟件則是可信的,不通過的應(yīng)用軟件則不是可信的。通過這種方法對(duì)應(yīng)用軟件實(shí)現(xiàn)靜態(tài)度量。2應(yīng)用軟件的動(dòng)態(tài)度量應(yīng)用軟件的動(dòng)態(tài)度量方法為:動(dòng)態(tài)監(jiān)控軟件實(shí)例,從中提取軟件行為特征建立軟件的正常行為模型;然后監(jiān)控軟件的實(shí)際運(yùn)行,提取其行為特征并與正常行為模型進(jìn)行比較。如果軟件行為發(fā)生的偏差超過指定閾值,則判定軟件行為不可信。監(jiān)控軟件的實(shí)際運(yùn)行是指監(jiān)控軟件運(yùn)行過程中的行為,比如文件操作,注冊(cè)表修改等軟件行為。3應(yīng)用軟件靜態(tài)度量和動(dòng)態(tài)度量的混合度量目前的軟件存在數(shù)量龐大的不同的版本和配置文件,僅僅利用“白名單法”的靜態(tài)度量是有困難的。因此本文提出對(duì)應(yīng)用軟件進(jìn)行靜態(tài)和動(dòng)態(tài)的混合度量方法。混合度量的方法為:在應(yīng)用軟件啟動(dòng)前先對(duì)應(yīng)用軟件進(jìn)行靜態(tài)度量,對(duì)于靜態(tài)度量結(jié)果為可信的應(yīng)用軟件直接允許其運(yùn)行;因?yàn)殪o態(tài)度量沒有通過的應(yīng)用軟件原因可能是“白名單”數(shù)據(jù)庫的不全面,所以我們對(duì)這部分應(yīng)用軟件進(jìn)行動(dòng)態(tài)度量。通過動(dòng)態(tài)度量來最終決定是否允許其運(yùn)行。1.4Hook SSDTWindows可執(zhí)行程序在內(nèi)核模式中運(yùn)行,并且對(duì)操作系統(tǒng)的所有子系統(tǒng)(Win32、POSIX和OS/2)都提供本地支持。這些本地系統(tǒng)服務(wù)的地址在內(nèi)核結(jié)構(gòu)中稱為系統(tǒng)服務(wù)調(diào)度表(System Service Dispatch Table, SSDT)中列出。該表可以基于系統(tǒng)調(diào)用編號(hào)進(jìn)行索引,以便定位函數(shù)的內(nèi)存地址。還有一個(gè)系統(tǒng)服務(wù)參數(shù)表(System Service ParameterTable, SSPT)指定了每個(gè)系統(tǒng)服務(wù)的函數(shù)參數(shù)的字節(jié)數(shù)。KeServiceDescriptorTable是由內(nèi)核導(dǎo)出的表。該表擁有一個(gè)指針,指向SSDT中包含由Ntoskrnl.exe實(shí)現(xiàn)的核心系統(tǒng)服務(wù)的相應(yīng)部分,它是內(nèi)核的主要組成部分。KeServiceDescriptorTable表還包含一個(gè)指向SSPT的指針。當(dāng)調(diào)用INT2E或SYSENTER指令時(shí)會(huì)激活系統(tǒng)服務(wù)調(diào)度程序。這導(dǎo)致進(jìn)程通過調(diào)用該程序轉(zhuǎn)換到內(nèi)核模式。若將SSDT改為指向rootkit所提供的函數(shù),而不是指向Ntoskrnl.exe或Win32k.sys,當(dāng)非核心的應(yīng)用程序調(diào)用到內(nèi)核中時(shí),該請(qǐng)求由系統(tǒng)服務(wù)調(diào)度程序處理,并且調(diào)用了 rootkit的函數(shù)。這時(shí),rootkit可以將它想要的任何假信息傳回到應(yīng)用程序,從而有效地隱藏自身以及所用的資源。[5]通過微軟已經(jīng)導(dǎo) 出的宏可以很方便地Hook SSDT0
:圖1:系統(tǒng)結(jié)構(gòu)圖。圖2:系統(tǒng)運(yùn)行過程示意圖。
具體實(shí)施方式
:通過對(duì)應(yīng)用軟件可信性混合度量方法的研究,利用這種混合度量方法設(shè)計(jì)出一個(gè)運(yùn)行在操作系統(tǒng)上的安全防護(hù)系統(tǒng),該系統(tǒng)能夠?qū)τ?jì)算機(jī)起到保護(hù)的作用。一.系統(tǒng)架構(gòu)本系統(tǒng)主要由三個(gè)部分組成:服務(wù)器端應(yīng)用程序、客戶端應(yīng)用程序和內(nèi)核層驅(qū)動(dòng)程序,系統(tǒng)結(jié)構(gòu)圖如圖1。
服務(wù)器端的功能包括:1、與客戶端進(jìn)行交互,根據(jù)客戶端發(fā)來的請(qǐng)求查詢數(shù)據(jù)庫,并回復(fù)查詢結(jié)果。2、提取客戶端收集的信息對(duì)服務(wù)器端數(shù)據(jù)庫內(nèi)容的增加。客戶端功能包括:1、與驅(qū)動(dòng)層交互,獲取驅(qū)動(dòng)層傳來的進(jìn)程信息、發(fā)送命令給驅(qū)動(dòng)層2、與服務(wù)器端交互,發(fā)送查詢命令到服務(wù)器端,接受服務(wù)器的返回結(jié)果3、統(tǒng)計(jì)陌生程序出現(xiàn)的次數(shù)和狀況,發(fā)送應(yīng)用軟件的信息到服務(wù)器端驅(qū)動(dòng)層的功能包括:1、監(jiān)控將要運(yùn)行的進(jìn)程,發(fā)送信息到應(yīng)用層的客戶端。2、對(duì)運(yùn)行進(jìn)程的控制操作,如掛起進(jìn)程、結(jié)束進(jìn)程等操作。二.系統(tǒng)運(yùn)行過程在驅(qū)動(dòng)層中設(shè)置一個(gè)回調(diào)函數(shù),當(dāng)有進(jìn)程啟動(dòng)時(shí),回調(diào)函數(shù)捕獲到有進(jìn)程啟動(dòng)的信息然后解析出進(jìn)程名 、進(jìn)程所在路徑等信息,并將這些信息傳遞給應(yīng)用層的客戶端程序,回調(diào)函數(shù)結(jié)束??蛻舳藢?duì)接收到的進(jìn)程求其hash值,并發(fā)送請(qǐng)求信息到服務(wù)器端,服務(wù)器端來完成進(jìn)程信息的查詢。通過與服務(wù)器端“白名單”庫中的進(jìn)程比較來判斷將要啟動(dòng)進(jìn)程的可信性。服務(wù)器端將查詢的結(jié)果返回客戶端,客戶端再根據(jù)返回的結(jié)果做出相應(yīng)的行動(dòng)。如果是可信的進(jìn)程就允許通過,讓其正常運(yùn)行。否則提醒用戶,如果用戶仍然希望這部分進(jìn)程運(yùn)行,就對(duì)這部分進(jìn)程進(jìn)行動(dòng)態(tài)度量。在度量過程中發(fā)現(xiàn)會(huì)產(chǎn)生危害的進(jìn)程阻止其運(yùn)行。系統(tǒng)的整體運(yùn)行過程如圖2。三.系統(tǒng)的實(shí)現(xiàn)病毒和木馬存在于系統(tǒng)中,都無法徹底和進(jìn)程脫離關(guān)系,因此可以通過阻止有害進(jìn)程的運(yùn)行從而達(dá)到阻止病毒和木馬運(yùn)行的目的。根據(jù)以上原理,當(dāng)應(yīng)用軟件啟動(dòng)前需要對(duì)應(yīng)用軟件進(jìn)行攔截,通過使用Hook SSTD方法從驅(qū)動(dòng)層實(shí)現(xiàn)對(duì)應(yīng)用軟件的攔截。在windows操作系統(tǒng)下,用戶的所有對(duì)底層硬件的操作動(dòng)作都是通過驅(qū)動(dòng)程序完成,而不是由操作系統(tǒng)直接給硬件設(shè)備發(fā)出操作信號(hào)。驅(qū)動(dòng)層獲取到應(yīng)用軟件的信息,然后傳到系統(tǒng)客戶端,客戶端來根據(jù)上文提到的應(yīng)用軟件可信性靜態(tài)和動(dòng)態(tài)混合度量的原理來判斷應(yīng)用軟件的可信性。客戶端將判斷后并發(fā)出的命令信息反饋給驅(qū)動(dòng)層,驅(qū)動(dòng)層根據(jù)接收到的命令信息來做出相應(yīng)的行動(dòng),包括掛起進(jìn)程、恢復(fù)進(jìn)程、結(jié)束進(jìn)程等操作。為了解決在客戶端查詢數(shù)據(jù)庫影響系統(tǒng)效率和需要不斷更新客戶端數(shù)據(jù)庫的問題,把數(shù)據(jù)庫的查詢放在服務(wù)器端來完成,客戶端只需發(fā)送請(qǐng)求和接收回復(fù)。為了保證客戶端和服務(wù)器的通信安全性采用SSL協(xié)議。SSL協(xié)議位于TCP/IP協(xié)議與各種應(yīng)用層協(xié)議之間,為數(shù)據(jù)通訊提供安全支持。SSL協(xié)議可分為兩層:SSL記錄協(xié)議(SSL Record Protocol):它建立在可靠的傳輸協(xié)議(如TCP)之上,為高層協(xié)議提供數(shù)據(jù)封裝、壓縮、加密等基本功能的支持。SSL握手協(xié)議(SSL Handshake Protocol):它建立在SSL記錄協(xié)議之上,用于在實(shí)際的數(shù)據(jù)傳輸開始前,通訊雙方進(jìn)行身份認(rèn)證、協(xié)商加密算法、交換加密密鑰等。在系統(tǒng)開發(fā)過程中使用OpenSSL軟件包來開發(fā)通信部分。應(yīng)用軟件的數(shù)量是龐大的,并且每天都會(huì)有新的軟件、新的版本產(chǎn)生,因此需要建立系統(tǒng)自學(xué)習(xí)機(jī)制。當(dāng)用戶遇到陌生的程序,并且這個(gè)程序的出現(xiàn)達(dá)到一定頻率,就將此程序的相關(guān)信息發(fā)送到服務(wù)器讓服務(wù)器驗(yàn)證其可信性,然后加入到數(shù)據(jù)庫中,當(dāng)此程序下次啟動(dòng)時(shí)就可以做出準(zhǔn)確的判斷 ,這樣可以不斷完善數(shù)據(jù)庫。
權(quán)利要求
1.應(yīng)用軟件可信性的靜態(tài)和動(dòng)態(tài)混合度量方法豐富了應(yīng)用軟件可信性度量的研究,既彌補(bǔ)了靜態(tài)度量的不足,又利用動(dòng)態(tài)度量將理論轉(zhuǎn)化到了應(yīng)用,是一種比較新的并且實(shí)用的方法。
2.設(shè)計(jì)的安全防護(hù)系統(tǒng)能夠高效的對(duì)計(jì)算機(jī)進(jìn)行防護(hù),與其他安全軟件相比較,具有不需要大量的惡意代碼庫、有自主學(xué)習(xí)機(jī)制可以發(fā)現(xiàn)新出現(xiàn)的病毒木馬、發(fā)現(xiàn)速度快、反應(yīng)速度快、客戶端不需要經(jīng)常更新等優(yōu)點(diǎn)。
3.利用這種混合度量方法設(shè)計(jì)出一個(gè)運(yùn)行在操作系統(tǒng)上的安全防護(hù)系統(tǒng),該系統(tǒng)同樣可以作為一個(gè)正版軟件的度量系統(tǒng)來使用,避免盜版軟件的使用,保護(hù)軟件著作權(quán),對(duì)于安全性要求特別嚴(yán)格的環(huán)境中可以作為 一個(gè)監(jiān)控系統(tǒng)來使用。
全文摘要
本發(fā)明設(shè)計(jì)針對(duì)目前可信計(jì)算領(lǐng)域利用TPM,TCM或TPCM實(shí)現(xiàn)安全啟動(dòng),操作系統(tǒng)加載后對(duì)應(yīng)用軟件可信性度量的研究還不成熟,提出了應(yīng)用軟件可信性的一種混合度量方法,并根據(jù)這種應(yīng)用軟件可信性混合度量方法,設(shè)計(jì)和實(shí)現(xiàn)了一個(gè)安全防護(hù)系統(tǒng),保護(hù)計(jì)算機(jī)的安全。
文檔編號(hào)G06F17/30GK103226676SQ20131006736
公開日2013年7月31日 申請(qǐng)日期2013年3月4日 優(yōu)先權(quán)日2013年3月4日
發(fā)明者韓永飛, 韓冬冬 申請(qǐng)人:北京密安網(wǎng)絡(luò)技術(shù)股份有限公司