姬一文,楊 釗,王玉成,楊詔鈞,康 昱
(麒麟軟件有限公司,湖南 長沙410000)
隨著計(jì)算機(jī)的普及,人們每天都通過計(jì)算機(jī)和互聯(lián)網(wǎng)獲取信息、進(jìn)行各種活動(dòng),信息技術(shù)已經(jīng)成為人們生活中不可分割的一部分。但計(jì)算機(jī)與網(wǎng)絡(luò)空間并不總是安全的,在給人們帶來便利的同時(shí)也會(huì)帶來巨大的安全威脅。 病毒、木馬等非法或惡意代碼是通過篡改或替換系統(tǒng)應(yīng)用程序而達(dá)到對(duì)系統(tǒng)進(jìn)行攻擊, 進(jìn)而試圖進(jìn)入系統(tǒng)以獲取其非法目的。傳統(tǒng)常規(guī)的安全防護(hù)手段已無法實(shí)時(shí)保障計(jì)算機(jī)的安全可靠,需要一種可靠、高效和實(shí)時(shí)的完整性度量校驗(yàn)機(jī)制來解決存在的問題。
目前程序完整性度量廣泛應(yīng)用于個(gè)人計(jì)算機(jī)、手機(jī)、門禁監(jiān)控、智能電網(wǎng)、信息系統(tǒng)等多個(gè)領(lǐng)域,近年來許多專家學(xué)者對(duì)完整性度量機(jī)制展開了研究,取得了較顯著的成果。 DAVI L[1]提出了一種動(dòng)態(tài)完整性度量與驗(yàn)證架構(gòu),采用加載時(shí)度量結(jié)合動(dòng)態(tài)跟蹤方式來實(shí)現(xiàn)完整性度量驗(yàn)證。 宋生宇[2]提出了一種基于軟件行為分析的動(dòng)態(tài)完整性度量模型,該模型引入進(jìn)程監(jiān)控器,通過監(jiān)控進(jìn)程的修改行為來判斷是否對(duì)其進(jìn)行完整性度量。 張帆[3]等提出了可信度量的一種無干擾行為可信性分析方法,利用無干擾等式判定軟件的真實(shí)行為與系統(tǒng)調(diào)用安全域的預(yù)期行為是否存在偏差,實(shí)現(xiàn)對(duì)軟件的可信實(shí)時(shí)度量。 黃杜娟[4]等從單個(gè)的組件可信度量出發(fā),根據(jù)不同組件的權(quán)重和不同的組合方式,建立了相應(yīng)的系統(tǒng)可信度量模型。 于學(xué)軍[5]等在軟件開發(fā)階段植入可信埋點(diǎn)用于獲取行為動(dòng)作路徑,并針對(duì)這種路徑提出了顯式和隱性判定指標(biāo),在度量上提出基于K-means 聚類的隱性指標(biāo)判定模型。 尹超[6]等基于ARMTrustZone 設(shè)計(jì)出一種安全世界和非安全世界交互的主動(dòng)可信度量機(jī)制。 周敦凱[7]提出一種基于DRTM 的完整性度量模型,引入了DIMM 架構(gòu)和FPGA 動(dòng)態(tài)重構(gòu)技術(shù)搭建可信試驗(yàn)平臺(tái)。陳志鋒[8]等提出了基于內(nèi)存取證的內(nèi)核完整性度量方法,提取靜態(tài)和動(dòng)態(tài)度量對(duì)象,提出了一種隨機(jī)化算法弱化TOC-TOU 攻擊,通過采用哈希和加密運(yùn)算相結(jié)合提高度量的安全性。 王效武[9]等提出了軟件源的可信管控模型,實(shí)現(xiàn)軟件的安全認(rèn)定、度量基準(zhǔn)值統(tǒng)一計(jì)算采集以及可信第三方的集中管控。 龍奔[10]等提出了一種基于度量認(rèn)證的協(xié)同集成度量方法,在軟件部署雙方建立安全傳輸通道。 馬納[11]等通過可信密碼模塊檢測(cè)RTU 各軟件模塊的完整性,闡述了一種RTU 的可信度量認(rèn)證技術(shù)。 迮愷[12]通過引入可信代理模塊,設(shè)計(jì)一種多級(jí)安全訪問控制策略,分別從實(shí)體完整性和機(jī)密性兩方面對(duì)系統(tǒng)中實(shí)體進(jìn)行動(dòng)態(tài)可信性度量。 張家偉[13]提出一種使用星型-鏈?zhǔn)较嘟Y(jié)合信任度量模型的主動(dòng)免疫可信體系結(jié)構(gòu)。 吳濤[14]等提出了一種基于鄰接點(diǎn)的動(dòng)態(tài)完整性度量方法,以鄰接點(diǎn)作為度量模塊的宿主,通過面向內(nèi)存頁的完整性模型和評(píng)估算法,實(shí)現(xiàn)動(dòng)態(tài)完整性度量。 彭朝英[15]等提出了一種基于最小熵的完整性度量。
傳統(tǒng)的完整性度量校驗(yàn)以某一時(shí)刻計(jì)算程序文件的哈希值作為基準(zhǔn)值,另一時(shí)刻再對(duì)該文件進(jìn)行度量,根據(jù)兩次度量的結(jié)果比對(duì)來進(jìn)行程序文件的完整性校驗(yàn),若一致則該文件完整性未遭到破壞,否則表明該文件完整性遭到破壞。
度量和驗(yàn)證是保障系統(tǒng)和應(yīng)用程序完整性的主要技術(shù)。 度量就是采集所需檢測(cè)的應(yīng)用軟件的狀態(tài),驗(yàn)證是將度量結(jié)果和預(yù)期度量值比對(duì),如果一致表示驗(yàn)證通過,否則表示驗(yàn)證失敗。
目前度量方式存在以下不足:
(1)度量為逐級(jí)度量,根據(jù)系統(tǒng)引導(dǎo)從一個(gè)被信任單個(gè)組件度量擴(kuò)展到整個(gè)系統(tǒng),當(dāng)某個(gè)中間組件完整性遭到破壞,并不能迅速找到存在問題的環(huán)節(jié),需要再從頭開始逐級(jí)度量,這將導(dǎo)致較多不必要的度量時(shí)間浪費(fèi);且隨著系統(tǒng)中被度量的組件應(yīng)用增多,組件新增或更換刪除這種時(shí)刻變化的狀態(tài)也將影響信任鏈的穩(wěn)定性。
(2)現(xiàn)有應(yīng)用程序完整性度量校驗(yàn)是通過對(duì)程序的完整性計(jì)算對(duì)比校驗(yàn)的方法。 在操作系統(tǒng)層有海量的應(yīng)用需要執(zhí)行和度量,現(xiàn)有的度量校驗(yàn)算法效率會(huì)影響操作系統(tǒng)啟動(dòng)和運(yùn)行時(shí)間,給用戶帶來不好的使用體驗(yàn)。
針對(duì)目前存在的不足,本文提出一種長短碼聯(lián)合度量校驗(yàn)方法來實(shí)現(xiàn)對(duì)應(yīng)用程序?qū)崟r(shí)高效的控制。
常規(guī)的度量方式即通過計(jì)算系統(tǒng)中可執(zhí)行文件的哈希值來進(jìn)行文件的完整性度量,每次對(duì)可執(zhí)行文件進(jìn)行動(dòng)態(tài)度量時(shí)都需要對(duì)該文件進(jìn)行密碼學(xué)的哈希計(jì)算,需要耗費(fèi)較大的時(shí)間成本。 本文在該基礎(chǔ)上增設(shè)了文件標(biāo)記并與哈希計(jì)算結(jié)合實(shí)現(xiàn)完整性度量,度量之前采集應(yīng)用程序文件的長短碼基準(zhǔn)值;設(shè)置了監(jiān)控模塊,當(dāng)文件內(nèi)容被修改時(shí)監(jiān)控模塊能快速識(shí)別然后自動(dòng)更改其短碼標(biāo)記;在進(jìn)行實(shí)時(shí)度量時(shí)先檢測(cè)短碼標(biāo)記,短碼標(biāo)記則為常規(guī)的字符串,完整性度量簡潔高效。 若短碼標(biāo)記被修改,再檢測(cè)文件的哈希值與基準(zhǔn)值對(duì)比來決策是否執(zhí)行該文件,這種度量方式有效提高了應(yīng)用程序完整性度量的效率。 以下給出該度量方式關(guān)鍵模塊的介紹。
長短碼聯(lián)合度量校驗(yàn)之前首先需要采集度量對(duì)象的基準(zhǔn)值,以該基準(zhǔn)值為之后的校驗(yàn)提供參照標(biāo)準(zhǔn)。 長短碼聯(lián)合度量校驗(yàn)分為短碼檢測(cè)和哈希度量校驗(yàn)兩個(gè)部分,所以在基準(zhǔn)采集部分需要采集短碼標(biāo)記和哈希值兩個(gè)基準(zhǔn)。 應(yīng)用程序文件的短碼標(biāo)記是根據(jù)該文件的創(chuàng)建類型來決定其初始的類型,定義n類短碼標(biāo)記A={A1,A2, …,An}(可信優(yōu)先級(jí)遞增),優(yōu)先級(jí)最低的短碼標(biāo)記A1為唯一不可執(zhí)行的標(biāo)記,如未知文件或遭到破壞的文件;An為可信優(yōu)先級(jí)最高的短碼標(biāo)記,如始終可信的文件。 并且制定相應(yīng)規(guī)則:
(1)當(dāng)應(yīng)用程序pa創(chuàng)建新的應(yīng)用程序文件pb,pb的短碼標(biāo)記會(huì)被自動(dòng)設(shè)置為比pa短碼標(biāo)記優(yōu)先級(jí)低的標(biāo)記;
(2)當(dāng)應(yīng)用程序文件pm內(nèi)容遭到更改破壞,則其可執(zhí)行操作的短碼標(biāo)記會(huì)更改為優(yōu)先級(jí)最低的不可執(zhí)行操作的短碼標(biāo)記。
系統(tǒng)中的應(yīng)用程序組件處于新增或更換刪除這種時(shí)刻變化的狀態(tài),按照以上策略設(shè)置應(yīng)用程序的短碼標(biāo)記可實(shí)現(xiàn)在動(dòng)態(tài)復(fù)雜的狀態(tài)下自動(dòng)精細(xì)地控制應(yīng)用程序的權(quán)限,保證應(yīng)用程序執(zhí)行的安全可靠穩(wěn)定。
基準(zhǔn)的來源存在較多種,這里主要介紹具有代表性的采集方式:系統(tǒng)首次安裝后的程序文件長短碼采集。
在系統(tǒng)安裝后第一次引導(dǎo)時(shí),系統(tǒng)將初始化采集白名單。 通過掃描采集系統(tǒng)中可執(zhí)行文件的哈希值并設(shè)置可執(zhí)行文件的短碼標(biāo)記來完成采集,采集對(duì)象包含:系統(tǒng)二進(jìn)制文件、動(dòng)態(tài)鏈接庫、內(nèi)核模塊和可執(zhí)行腳本文件。 采集完成后存儲(chǔ)到白名單數(shù)據(jù)庫中,其中白名單數(shù)據(jù)庫包含采集對(duì)象的文件路徑、文件的哈希值以及短碼標(biāo)記。 當(dāng)以上采集對(duì)象的采集存儲(chǔ)操作完成后,在系統(tǒng)中設(shè)置初始化完成標(biāo)記來表示初始化白名單采集存儲(chǔ)過程的結(jié)束。 系統(tǒng)初始采集流程見圖1。
圖1 系統(tǒng)初始化白名單采集流程
1.2.1 長短碼聯(lián)合度量校驗(yàn)方法
系統(tǒng)啟動(dòng)后,當(dāng)應(yīng)用程序執(zhí)行時(shí),會(huì)觸發(fā)長短碼聯(lián)合度量校驗(yàn)?zāi)K,實(shí)現(xiàn)對(duì)該應(yīng)用程序?qū)崟r(shí)的度量和校驗(yàn),長短碼聯(lián)合度量校驗(yàn)?zāi)K分為短碼標(biāo)記檢測(cè)和哈希度量校驗(yàn)兩個(gè)部分。
短碼標(biāo)記檢測(cè):請(qǐng)求執(zhí)行的應(yīng)用程序文件進(jìn)行短碼標(biāo)記的檢測(cè)。 短碼標(biāo)記的檢測(cè)主要基于LSM(Linux Security Module)框架實(shí)現(xiàn),LSM 是一個(gè)輕量級(jí)通用訪問控制框架,它的各種不同的安全訪問控制模型能夠以Linux 加載內(nèi)核模塊的形式實(shí)現(xiàn)出來,用戶可以根據(jù)其需求選擇適合的安全模塊加載到Linux 內(nèi)核中,提高了訪問控制機(jī)制的靈活性和易用性。 LSM 通過在內(nèi)核源碼中放置鉤子函數(shù),在應(yīng)用程序執(zhí)行前通過鉤子函數(shù)調(diào)用設(shè)置好的安全模塊函數(shù)來獲得訪問控制權(quán),鉤子函數(shù)收到安全模塊返回的訪問信號(hào)便會(huì)決定該應(yīng)用程序可否執(zhí)行。
本文的長短碼聯(lián)合度量方法的執(zhí)行控制安全模塊采用:檢查主體的短碼標(biāo)記是否為可執(zhí)行標(biāo)記來進(jìn)行控制訪問,如果執(zhí)行控制的主體為非優(yōu)先級(jí)最小的短碼標(biāo)記A1,則允許執(zhí)行控制的應(yīng)用程序執(zhí)行操作;否則安全模塊拒絕訪問,應(yīng)用程序不允許執(zhí)行。
長碼度量校驗(yàn):計(jì)算該文件的哈希值并與該應(yīng)用程序文件的哈?;鶞?zhǔn)值進(jìn)行校驗(yàn),若校驗(yàn)通過則表明該文件的完整性未遭到破壞,允許該文件執(zhí)行。長碼度量校驗(yàn)的前提條件:對(duì)應(yīng)用程序文件進(jìn)行短碼標(biāo)記的檢測(cè),若短碼標(biāo)記為可執(zhí)行標(biāo)記則表明該文件的完整性未遭到破壞,則該應(yīng)用程序可以直接執(zhí)行操作; 否則表明該應(yīng)用程序文件的內(nèi)容被更改,需要再進(jìn)行長碼度量校驗(yàn)。
1.2.2 長短碼聯(lián)合度量的監(jiān)控模塊
當(dāng)文件被訪問,如執(zhí)行、讀操作、寫操作等事件發(fā)生時(shí),將會(huì)觸發(fā)內(nèi)核完整性監(jiān)控模塊。 文件完整性監(jiān)控模塊對(duì)文件的讀操作、寫操作、重命名操作、移動(dòng)操作等均有監(jiān)控,當(dāng)這些事件觸發(fā)時(shí),該監(jiān)控模塊將檢查文件內(nèi)容的完整性,如果文件內(nèi)容有變更,即完整性被破壞了,將觸發(fā)應(yīng)用程序短碼標(biāo)記變更,并同步白名單數(shù)據(jù)庫的對(duì)應(yīng)項(xiàng),顯示為已被篡改,可達(dá)到通過短碼標(biāo)記實(shí)時(shí)顯示標(biāo)記文件完整性的功能;如果文件內(nèi)容未變更將返回。
監(jiān)控模塊也是基于LSM 框架實(shí)現(xiàn)的,LSM 會(huì)在內(nèi)核源碼中放置鉤子函數(shù)。 當(dāng)應(yīng)用程序文件被訪問控制,如寫操作、重命名操作、移動(dòng)操作等觸發(fā)到監(jiān)控模塊,監(jiān)控模塊會(huì)通過鉤子函數(shù)調(diào)用相應(yīng)的安全模塊來對(duì)被操作的應(yīng)用程序文件標(biāo)記更改。 根據(jù)1.1 節(jié)的規(guī)則(2),當(dāng)執(zhí)行控制客體文件被執(zhí)行寫操作時(shí),會(huì)觸發(fā)鉤子函數(shù)調(diào)用相應(yīng)的安全模塊,來更改該文件的短碼標(biāo)記為最小優(yōu)先級(jí)A1,表明該文件的內(nèi)容遭到更改,完整性遭到破壞,并將標(biāo)記同步到白名單數(shù)據(jù)庫相應(yīng)的項(xiàng)。 如果非寫操作則文件內(nèi)容未遭到破壞,則直接省去了哈希值度量的時(shí)間上的浪費(fèi),極大提高了度量校驗(yàn)效率。 監(jiān)控模塊可以細(xì)分為以下幾種監(jiān)控:
(1)普通文件的監(jiān)控
普通文件的監(jiān)控是利用LSM 框架中的鉤子函數(shù)file_permission 和inode_permission 實(shí)現(xiàn)的,這兩個(gè)函數(shù)負(fù)責(zé)訪問權(quán)限的過濾和普通文件的執(zhí)行請(qǐng)求控制。 若應(yīng)用程序被執(zhí)行的是寫操作,則修改實(shí)時(shí)的短碼標(biāo)記為A1,表明該文件的完整性被破壞,下次該應(yīng)用請(qǐng)求執(zhí)行時(shí)便不會(huì)允許該程序執(zhí)行。
(2)內(nèi)核模塊的監(jiān)控
內(nèi)核模塊的監(jiān)控只有擁有系統(tǒng)自帶或第三方應(yīng)用標(biāo)記的內(nèi)核模塊才允許被加載,模塊被修改后標(biāo)記將丟失。 在LSM 模塊的函數(shù)中通過檢查模塊文件的執(zhí)行控制標(biāo)記來實(shí)現(xiàn)對(duì)模塊加載的控制。
(3)共享庫的監(jiān)控
二進(jìn)制程序通過mmap 調(diào)用來對(duì)需要的共享庫進(jìn)行加載和映射,在LSM 模塊的file_mmap 鉤子函數(shù)中,先過濾映射類型和請(qǐng)求權(quán)限,然后只對(duì)請(qǐng)求執(zhí)行權(quán)限的非匿名非共享映射的文件進(jìn)行標(biāo)記檢查即可。
定義1(度量基準(zhǔn)):度量基準(zhǔn)是在度量校驗(yàn)前采集的參考標(biāo)準(zhǔn),如系統(tǒng)初始化中采集的應(yīng)用程序哈希值和短碼標(biāo)記構(gòu)成的集合;度量基準(zhǔn)中哈希集合記為TP={t1,t2,…,tn},每個(gè)元素ti(1≤i≤n)表示應(yīng)用程序的基準(zhǔn)哈希值;度量基準(zhǔn)中短碼標(biāo)記集合記為LP={l1,l2,…,ln},每個(gè)元素li(1≤i≤n)表示應(yīng)用程序的基準(zhǔn)短碼標(biāo)記。 設(shè)定TPS={ts1,ts2,…,tsn}表示應(yīng)用程序?qū)崟r(shí)的哈希值tsi(1 ≤i≤n)的集合,LPS={ls1,ls2,…,lsn}表示應(yīng)用程序擴(kuò)展屬性中的實(shí)時(shí)短碼標(biāo)記lsi(1≤i≤n)的集合,初始階段LPS=LP,TPS=TP,即t1=ts1,t2=ts2,…,tn=tsn;l1=ls1,l2=ls2,…,ln=lsn。
定義2(監(jiān)控操作):監(jiān)控函數(shù)fmonitor用于監(jiān)控應(yīng)用程序pi∈P(P為當(dāng)前運(yùn)行應(yīng)用程序的集合)的文件內(nèi)容是否被更改,若是被執(zhí)行寫操作則文件內(nèi)容被更改,將應(yīng)用程序的實(shí)時(shí)短碼標(biāo)記lsi設(shè)置為A1;否則不做任何操作。
定義3(檢測(cè)函數(shù)):檢測(cè)函數(shù)fdetect用于檢測(cè)應(yīng)用程序pi的文件短碼標(biāo)記是否為可執(zhí)行標(biāo)記。 如果lsi=A1,則fdetect(pi)=false;否則fdetect(pi)=true。
定義4(校驗(yàn)函數(shù)):校驗(yàn)函數(shù)fcheck用于校驗(yàn)應(yīng)用程序此時(shí)的哈希值是否與度量基準(zhǔn)中的哈希值相同,如果t1=ts1,則fcheck(pi)=true,否則fcheck(pi)=false。
定義5(決策函數(shù)):決策函數(shù)fdecision用于判斷應(yīng)用程序pi是否允許執(zhí)行,按照下文2.2 節(jié)的決策規(guī)則來判斷該文件的完整性和決定fdecision(pi)的取值,fdecision(pi)=true 即運(yùn)行執(zhí)行,fdecision(pi)=false 即不允許執(zhí)行。
定義6(更新函數(shù)):更新函數(shù)fupdate用于更新應(yīng)用程序pi的實(shí)時(shí)短碼標(biāo)記和哈希基準(zhǔn)值,當(dāng)fdetect(pi)=false 并且fcheck(pi)=true,則會(huì)將li賦值給lsi,將tsi賦值給ti。
基于長短碼聯(lián)合度量校驗(yàn)的控制決策規(guī)則如下:
首先利用fdetect檢測(cè)應(yīng)用程序pi文件的短碼標(biāo)記是否為可執(zhí)行標(biāo)記;若fdetect返回true,則表明文件內(nèi)容未被修改, 程序文件的完整性未被破壞,fdecision(pi)返回true,pi允許繼續(xù)執(zhí)行;否則需要再用fcheck來校驗(yàn)pi的哈希值,若fcheck返回true,則fdecision(pi)返回true,允許pi繼續(xù)執(zhí)行并通過fupdate來執(zhí)行更新操作;否則fdecision(pi)返回false,pi被拒絕繼續(xù)執(zhí)行。
基于長短碼聯(lián)合度量校驗(yàn)的總體控制流程如圖2 所示。
長短碼聯(lián)合度量校驗(yàn)總體步驟如下:
(1)系統(tǒng)啟動(dòng),判斷是否首次啟動(dòng),如果不是則直接轉(zhuǎn)步驟(2);否則按1.1 節(jié)的方式進(jìn)行初始化白名單采集,如果有需要驗(yàn)簽的軟件包通過驗(yàn)證也將進(jìn)行白名單采集, 得到哈?;鶞?zhǔn)集合TP={t1,t2,…,tn}、哈希的實(shí)時(shí)度量集合TPS={ts1,ts2,…,tsn}、短碼標(biāo)記基準(zhǔn)值集合LP={l1,l2,…,ln}和程序?qū)崟r(shí)的短碼標(biāo)記集合LPS={ls1,ls2,…,lsn}。
(2)將核外白名單哈希表的數(shù)據(jù)拷貝至內(nèi)存。
(3)應(yīng)用程序pi請(qǐng)求執(zhí)行,利用fdetect檢測(cè)pi的實(shí)時(shí)短碼標(biāo)記lsi是否等于不可執(zhí)行標(biāo)記A1,如果該函數(shù)返回true 則轉(zhuǎn)步驟(5),否則轉(zhuǎn)步驟(4)。
(4)計(jì)算應(yīng)用程序pi的實(shí)時(shí)哈希值lsi,如果此時(shí)的哈希值lsi與哈?;鶞?zhǔn)集合TP 中pi的哈希基準(zhǔn)值相同,即li=lsi,則執(zhí)行fupdate將短碼標(biāo)記基準(zhǔn)中pi的短碼標(biāo)記li更新程序?qū)崟r(shí)短碼標(biāo)記lsi,實(shí)時(shí)哈希值tsi更新哈希基準(zhǔn)值ti,轉(zhuǎn)步驟(5);否則表明程序不合法或完整性遭破壞,pi不被允許執(zhí)行,流程結(jié)束。
(5)應(yīng)用程序文件的完整性未破壞,應(yīng)用程序允許執(zhí)行,流程結(jié)束。
圖2 長短碼聯(lián)合度量校驗(yàn)總體流程圖
將本文提出的長短碼度量和常規(guī)Hash 度量、僅標(biāo)記度量進(jìn)行對(duì)比, 這三類度量方法都運(yùn)行在FT-1500A(64 位,4 核)CPU、8 GB 內(nèi) 存 和Linux-4.4.4.131 內(nèi)核的PC 上。 利用測(cè)試工具UnixBench 對(duì)這三類度量方法進(jìn)行系統(tǒng)調(diào)用和系統(tǒng)整體性能方面的測(cè)試比較,結(jié)果對(duì)比見表1。 表1 分別列出在4 核CPU 單進(jìn)程和多進(jìn)程實(shí)驗(yàn)下的對(duì)比結(jié)果,其中系統(tǒng)調(diào)用為考察每秒鐘可以執(zhí)行的Execl 系統(tǒng)調(diào)用的次數(shù)。
表1 常規(guī)Hash 值度量和長短碼度量以及原始系統(tǒng)的結(jié)果對(duì)比
本文提出的基于長短碼聯(lián)合度量校驗(yàn)方法是先度量請(qǐng)求執(zhí)行程序的短碼標(biāo)記,即較快速的字符串比較,僅當(dāng)該應(yīng)用程序?qū)崟r(shí)短碼標(biāo)記為A1時(shí)才進(jìn)入耗時(shí)的Hash 度量,相比常規(guī)的度量(僅Hash 度量)具有較大的性能優(yōu)勢(shì);與僅標(biāo)記度量相比能有效避免較多錯(cuò)誤的決策判斷,如僅改變標(biāo)記為可執(zhí)行的應(yīng)用程序文件的路徑會(huì)導(dǎo)致標(biāo)記變?yōu)锳1,僅標(biāo)記度量則判斷該應(yīng)用程序?yàn)椴豢蓤?zhí)行,但是文件的完整性未遭到破壞,而長短碼度量通過再次Hash度量和更新應(yīng)用程序的實(shí)時(shí)標(biāo)記能有效避免類似情況的發(fā)生。 實(shí)驗(yàn)結(jié)果表明在Execl 系統(tǒng)調(diào)用和系統(tǒng)整體性能上本文所提方法明顯優(yōu)于僅Hash 度量,并與僅標(biāo)記度量基本持平。 實(shí)驗(yàn)結(jié)果驗(yàn)證了該方法的有效性。
本文綜合分析了Linux 操作系統(tǒng)文件系統(tǒng)的機(jī)制特點(diǎn),設(shè)計(jì)文件監(jiān)控模塊,實(shí)現(xiàn)對(duì)文件完整性實(shí)時(shí)標(biāo)記,當(dāng)文件被改動(dòng)時(shí),可主動(dòng)標(biāo)記區(qū)分識(shí)別被篡改文件。 結(jié)合文件完整性度量校驗(yàn)方法,優(yōu)化度量和校驗(yàn)流程,結(jié)合文件完整性監(jiān)控模塊和文件度量校驗(yàn)?zāi)K, 聯(lián)合實(shí)現(xiàn)對(duì)文件長短碼聯(lián)合度量校驗(yàn),大大提高度量校驗(yàn)的準(zhǔn)確性和高效性。