劉意先 劉宏偉
摘要:為了實(shí)現(xiàn)對(duì)計(jì)算機(jī)主機(jī)的安全檢測(cè),并對(duì)其安全性做出合適的評(píng)估,設(shè)計(jì)并實(shí)現(xiàn)了一種采用Windows API接口對(duì)計(jì)算機(jī)安全狀態(tài)進(jìn)行檢測(cè)的系統(tǒng)。系統(tǒng)首先調(diào)用操作系統(tǒng)的系統(tǒng)調(diào)用提取計(jì)算機(jī)的各種軟硬件信息,然后將該結(jié)果與信任項(xiàng)、黑名單進(jìn)行比對(duì)。比對(duì)的結(jié)果通過(guò)打分的方式顯示出計(jì)算機(jī)的安全程度,分值越高相應(yīng)的安全程度越高。經(jīng)過(guò)測(cè)試,該系統(tǒng)能正確的提取操作系統(tǒng)注冊(cè)表注冊(cè)表、瀏覽器、進(jìn)程、軟硬件配置等信息,并能根據(jù)這些信息給相應(yīng)對(duì)的安全評(píng)估。
關(guān)鍵詞:計(jì)算機(jī)安全;安全檢測(cè);安全評(píng)估;Windows編程接口
中圖分類(lèi)號(hào):TP309 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2014)16-4034-04
The Design and Implementation of Computer Detection and Evaluation System
LIU Yi-xian, LIU Hong-wei
(Information Security and Countermeasure Experiment Teaching Center of Xian University of Posts and Telecommunications, Xian 710121, China)
Abstract: To realize the security detection and make a appropriate evaluation to the computer, design and implement a system with Windows application programming interface to detect the computer security status. First the system extracts all kinds of software and hardware information of the computer. Then it compares the detection result with the trust list and black list. After the comparison the system gives the score to the computer to show the safety level of the computer. The test result of the system shows it can correctly extracts information about the registry table of the operating system, the browser, the processes, the software and hardware configuration. It also shows the system can make the corresponding security evaluation according to the information.
Key words: computer security; security detection; security evaluation; Windows API
隨著網(wǎng)絡(luò)技術(shù)的快速發(fā)展,計(jì)算機(jī)使用者可以快捷的獲得各種網(wǎng)絡(luò)資源,包括文檔、圖片、視頻以及軟件等[1-2]。與此同時(shí),計(jì)算機(jī)也面臨著隨之而來(lái)的各種威脅和風(fēng)險(xiǎn)。為了防止可能出現(xiàn)的安全問(wèn)題,對(duì)計(jì)算機(jī)系統(tǒng)進(jìn)行相應(yīng)的安全檢測(cè)是一個(gè)有效而必要的工作[3-4]。該文針對(duì)常見(jiàn)的Windows操作系統(tǒng)設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)計(jì)算機(jī)安全檢測(cè)系統(tǒng),能對(duì)計(jì)算機(jī)的各種軟硬件信息進(jìn)行檢測(cè),包括硬件配置、軟件安裝、注冊(cè)表、進(jìn)程等。系統(tǒng)根據(jù)預(yù)設(shè)的信任列表和黑名單對(duì)計(jì)算機(jī)系統(tǒng)進(jìn)行綜合評(píng)估并給出分值,可以幫助用戶(hù)對(duì)計(jì)算機(jī)的安全狀態(tài)獲得全面的了解。
1 系統(tǒng)的整體結(jié)構(gòu)
系統(tǒng)根據(jù)Windows平臺(tái)在使用中可能出現(xiàn)安全問(wèn)題的方面,要檢測(cè)的項(xiàng)目包括系統(tǒng)硬件、安裝的軟件、啟動(dòng)項(xiàng)、瀏覽器狀況、進(jìn)程、網(wǎng)絡(luò)連接以及注冊(cè)表。根據(jù)檢查的結(jié)果系統(tǒng)再比對(duì)預(yù)設(shè)的檢查項(xiàng)的信任列表和黑名單對(duì)系統(tǒng)進(jìn)行評(píng)估,最終給出評(píng)測(cè)結(jié)果。結(jié)構(gòu)如圖1所示。
2 檢測(cè)功能的實(shí)現(xiàn)
系統(tǒng)的檢測(cè)主要從軟硬件環(huán)境以及常用的安全配置相關(guān)信息等及格方面進(jìn)行。在Windows平臺(tái)上進(jìn)行這些檢測(cè)需要通過(guò)系統(tǒng)的API來(lái)進(jìn)行。Windows API是提供給用戶(hù)的可調(diào)用的編程接口,通過(guò)該接口用戶(hù)能對(duì)操作系統(tǒng)進(jìn)行深入的操作和設(shè)置[5]。
2.1 系統(tǒng)硬件檢測(cè)
檢測(cè)主要目標(biāo)是檢測(cè)系統(tǒng)基礎(chǔ)的硬件信息。設(shè)計(jì)方案是首先通過(guò)調(diào)用Windows提供的系統(tǒng)API函數(shù)和WMI接口,獲得基礎(chǔ)信息,最后通過(guò)VariantToString函數(shù)來(lái)將獲得的信息轉(zhuǎn)換成字符串。
WMI 是一種規(guī)范和基礎(chǔ)結(jié)構(gòu),通過(guò)它可以訪(fǎng)問(wèn)、配置、管理和監(jiān)視所有的 — 幾乎所有的 Windows 資源。WMI的使用要通過(guò)三步實(shí)現(xiàn),首先初始化,然后創(chuàng)建WMI的名字空間,最后通過(guò)WQL進(jìn)行查詢(xún)。WQL是WMI中的查詢(xún)語(yǔ)言Windows管理規(guī)范查詢(xún)語(yǔ)言[6-8]。
2.2 系統(tǒng)安裝軟件信息
該功能是檢測(cè)系統(tǒng)安裝軟件的基本信息,包括軟件名稱(chēng),發(fā)行商,版本,安裝日期,卸載命令及參數(shù)。注冊(cè)表中會(huì)存有相關(guān)信息[9]。設(shè)計(jì)方案是首先通過(guò)Windows提供的API對(duì)系統(tǒng)的注冊(cè)表進(jìn)行打開(kāi)和查詢(xún),獲取SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall該路徑下的信息,然后篩選將有用的信息進(jìn)行輸出。通過(guò)如下API函數(shù)打開(kāi)注冊(cè)表:endprint
RegOpenKeyEx(HKEY_LOCAL_MACHINE,_T("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall"),NULL, KEY_READ, &hKey)
2.3 系統(tǒng)啟動(dòng)項(xiàng)檢測(cè)
啟動(dòng)項(xiàng)檢測(cè)的目的是檢測(cè)系統(tǒng)啟動(dòng)項(xiàng)的信息,包括啟動(dòng)軟件名稱(chēng)和存儲(chǔ)路徑。該模塊設(shè)計(jì)與檢測(cè)系統(tǒng)安裝軟件信息相似,也是通過(guò)對(duì)注冊(cè)表進(jìn)行查詢(xún)來(lái)獲取相應(yīng)的信息。設(shè)計(jì)方案是首先通過(guò)對(duì)注冊(cè)表進(jìn)行操作查詢(xún)?nèi)缦侣窂?/p>
Software\\Microsoft\\Windows\\CurrentVersion\\Run
從該路徑下獲得軟件的注冊(cè)表信息, 在獲取到系統(tǒng)啟動(dòng)項(xiàng)基本信息后再對(duì)信息進(jìn)行格式化輸出。
2.4 系統(tǒng)進(jìn)程檢測(cè)
操作臺(tái)系統(tǒng)中的正在運(yùn)行的惡意程序可以通過(guò)對(duì)進(jìn)程的檢測(cè)進(jìn)行發(fā)現(xiàn)[10]。進(jìn)程檢測(cè)的信息包括進(jìn)程名稱(chēng)、進(jìn)程ID、線(xiàn)程數(shù)量、所使用的.dll文件。設(shè)計(jì)方案是通過(guò)Windows系統(tǒng)提供的API函數(shù),對(duì)系統(tǒng)的當(dāng)前進(jìn)程設(shè)定一個(gè)快照,然后通過(guò)這個(gè)快照來(lái)獲取相應(yīng)的進(jìn)程信息,然后對(duì)進(jìn)程信息進(jìn)行格式化輸出。通過(guò)如下的API系統(tǒng)函數(shù)設(shè)定快照:
HANDLE WINAPI CreateToolhelp32Snapshot(
DWORD dwFlags,
DWORD th32ProcessID
)
2.5 系統(tǒng)瀏覽器狀況檢測(cè)
瀏覽器檢測(cè)主要包括通過(guò)IE瀏覽器打開(kāi)網(wǎng)站名稱(chēng)和使用的瀏覽器名稱(chēng)。設(shè)計(jì)方案是通過(guò)系統(tǒng)系統(tǒng)提供的API函數(shù)來(lái)監(jiān)控系統(tǒng)打開(kāi)的窗口,篩選出瀏覽器窗口,并對(duì)瀏覽器打開(kāi)的網(wǎng)頁(yè)進(jìn)行記錄,最后對(duì)這些監(jiān)控信息進(jìn)行格式化輸出。通過(guò)如下的API系統(tǒng)函數(shù)來(lái)監(jiān)控:
WINUSERAPI int WINAPI GetWindowTextA(
__in HWND hWnd,
__out_ecount(nMaxCount) LPSTR lpString,
__in int nMaxCount);
2.6 系統(tǒng)網(wǎng)路連接檢測(cè)
檢測(cè)系統(tǒng)的網(wǎng)絡(luò)連接情況檢測(cè)信息包括Pid、名稱(chēng)、Local Addr、Local Port、Remote Addr、Remote Port、State、Path。設(shè)計(jì)方案是通過(guò)系統(tǒng)的API函數(shù)獲得系統(tǒng)當(dāng)前的狀態(tài)快照,然后在快照中篩選出網(wǎng)絡(luò)連接,通過(guò)對(duì)快照的解析,得到網(wǎng)絡(luò)連接的信息并進(jìn)行格式化輸出。
最后通過(guò)自定義函數(shù)來(lái)獲取網(wǎng)絡(luò)連接名稱(chēng)和路徑:
2.7 系統(tǒng)注冊(cè)表檢測(cè)
主要目的是檢測(cè)系統(tǒng)的注冊(cè)表信息。設(shè)計(jì)方案是通過(guò)調(diào)用系統(tǒng)的API函數(shù)來(lái)對(duì)注冊(cè)表進(jìn)行相應(yīng)的操作,并且用相應(yīng)的格式進(jìn)行顯示。通過(guò)如下API系統(tǒng)函數(shù)來(lái)操作注冊(cè)表:
LONG WINAPI RegOpenKeyEx //打開(kāi)注冊(cè)表
LONG WINAPI RegQueryValueEx //查詢(xún)注冊(cè)表
LONG WINAPI RegEnumKeyEx //枚舉注冊(cè)表信息
LONG WINAPI RegCloseKey //關(guān)閉注冊(cè)表
3 系統(tǒng)的安全評(píng)估
經(jīng)過(guò)檢測(cè)后系統(tǒng)將得到各種檢測(cè)項(xiàng)目的結(jié)果,該結(jié)果為多個(gè)字符串組。系統(tǒng)根據(jù)不同的項(xiàng)目系統(tǒng)預(yù)設(shè)了相應(yīng)的信任項(xiàng)列表和黑名單列表,信任項(xiàng)是系統(tǒng)已知的各種安全的應(yīng)用或設(shè)置項(xiàng)的字符串,黑名單列表則存有已知的具有風(fēng)險(xiǎn)的相應(yīng)的設(shè)置或應(yīng)用名稱(chēng)等。檢測(cè)結(jié)果和這種列表進(jìn)行比對(duì)并進(jìn)行評(píng)分。最后將所有的檢測(cè)項(xiàng)目的評(píng)分結(jié)果綜合給出系統(tǒng)的評(píng)估結(jié)果。
3.1 檢測(cè)項(xiàng)目的評(píng)估
檢測(cè)項(xiàng)目[K]檢測(cè)結(jié)果記錄數(shù)記為NK,其中在信任項(xiàng)列表的數(shù)量記為[NT],在黑名單列表項(xiàng)中的數(shù)量記為[NB],不在這兩個(gè)列表中的數(shù)目記為[NU],由此可得到相應(yīng)項(xiàng)目[K]的評(píng)估的得分[SK] 可以由以下表達(dá)式得出:
[SK=NT+NU×0.8NK×100] (1)
不在信任項(xiàng)列表或者黑名單列表中的項(xiàng)目由于風(fēng)險(xiǎn)不確定,考慮到可能出現(xiàn)危險(xiǎn)的可能性,將這種情況安全的可能性設(shè)定為0.8,由此可以從(1)中可以得出項(xiàng)目的評(píng)估結(jié)果。
3.2 系統(tǒng)的評(píng)估
對(duì)于整個(gè)系統(tǒng)檢測(cè)項(xiàng)目有I項(xiàng),各項(xiàng)檢測(cè)評(píng)分為[S1] …[SI] ,對(duì)于整個(gè)系統(tǒng)的的評(píng)估結(jié)果[SO] 可由下式得出:
[SO=i=1ISiI×100] (2)
[SO]代表了系統(tǒng)的整體安全情況,通過(guò)該分值使用者可以方便的理解計(jì)算機(jī)的安全狀態(tài)。
4 系統(tǒng)的測(cè)試
系統(tǒng)在聯(lián)想Y400型主機(jī)上進(jìn)行了相應(yīng)的測(cè)試,主機(jī)所用的操作系統(tǒng)為Windows 7。各項(xiàng)功都能正常運(yùn)行,如圖2能正確顯示該主機(jī)的軟件安裝情況。
系統(tǒng)也能根據(jù)所有的檢測(cè)結(jié)果對(duì)系統(tǒng)做出相應(yīng)的安全評(píng)估,如圖3所示。
5 總結(jié)與展望
本文通過(guò)利用Windows API的接口實(shí)現(xiàn)了對(duì)主機(jī)的系統(tǒng)的安全檢測(cè)和評(píng)估,檢測(cè)的結(jié)果是真實(shí)可信的。對(duì)于系統(tǒng)的評(píng)估方法,可以加入動(dòng)態(tài)的調(diào)整信任項(xiàng)和黑名單,使評(píng)估的結(jié)果更加符合安全狀態(tài)發(fā)展的趨勢(shì),使計(jì)算機(jī)的保持較好的安全狀態(tài)。
參考文獻(xiàn):
[1] Kedgley M. File integrity monitoring in the modern threat landscape[J]. Network Security,2014,2014(2):5-8.
[2] Chunqi Tian, Xiaojian Liu, Lisheng Wang, Shihong Zou.Spreading evidence models for trust propagation and aggregation in peer-to-peer networks[J]. Concurrency and Computation: Practice and Experience,2014,26(2):601-614.
[3] Zhiyong Shan, Xin Wang. Growing grapes in your computer to defend against malware[J]. IEEE Transactions on Information Forensics and Security,2014,9(2):196-207.
[4] Liu Xin, Liu Ren-ren, Wu Xiang-bo. A secret inline hook technology[J]. Control and Intelligent Systems,2014,42(1):24-30.
[5] 徐江峰,邵向陽(yáng). 基于HOOK API技術(shù)的進(jìn)程監(jiān)控系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J]. 計(jì)算機(jī)工程與設(shè)計(jì),2011(4):1330-1333.
[6] 陳永建,朱娟,黎桂林. 基于WMI的實(shí)時(shí)監(jiān)控系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J]. 微計(jì)算機(jī)信息,2005(21):52-54.
[7] 鐘偉,唐發(fā)根. 通用應(yīng)用系統(tǒng)性能評(píng)測(cè)環(huán)境的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用,2004(3):141-144.
[8] 徐鯤,孫輝. Windows NT下對(duì)磁盤(pán)性能監(jiān)測(cè)的研究[J]. 計(jì)算機(jī)科學(xué),2012(S3):301-304.
[9] 白金榮,王俊峰,趙宗渠,等. 基于敏感Native API的惡意軟件檢測(cè)方法[J]. 計(jì)算機(jī)工程,2012(13):9-12.
[10] 藍(lán)智靈,宋宇波,唐磊. 基于直接內(nèi)核對(duì)象操作的進(jìn)程偽裝保護(hù)方法[J].東南大學(xué)學(xué)報(bào):自然科學(xué)版,2013(1):24-29.endprint
RegOpenKeyEx(HKEY_LOCAL_MACHINE,_T("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall"),NULL, KEY_READ, &hKey)
2.3 系統(tǒng)啟動(dòng)項(xiàng)檢測(cè)
啟動(dòng)項(xiàng)檢測(cè)的目的是檢測(cè)系統(tǒng)啟動(dòng)項(xiàng)的信息,包括啟動(dòng)軟件名稱(chēng)和存儲(chǔ)路徑。該模塊設(shè)計(jì)與檢測(cè)系統(tǒng)安裝軟件信息相似,也是通過(guò)對(duì)注冊(cè)表進(jìn)行查詢(xún)來(lái)獲取相應(yīng)的信息。設(shè)計(jì)方案是首先通過(guò)對(duì)注冊(cè)表進(jìn)行操作查詢(xún)?nèi)缦侣窂?/p>
Software\\Microsoft\\Windows\\CurrentVersion\\Run
從該路徑下獲得軟件的注冊(cè)表信息, 在獲取到系統(tǒng)啟動(dòng)項(xiàng)基本信息后再對(duì)信息進(jìn)行格式化輸出。
2.4 系統(tǒng)進(jìn)程檢測(cè)
操作臺(tái)系統(tǒng)中的正在運(yùn)行的惡意程序可以通過(guò)對(duì)進(jìn)程的檢測(cè)進(jìn)行發(fā)現(xiàn)[10]。進(jìn)程檢測(cè)的信息包括進(jìn)程名稱(chēng)、進(jìn)程ID、線(xiàn)程數(shù)量、所使用的.dll文件。設(shè)計(jì)方案是通過(guò)Windows系統(tǒng)提供的API函數(shù),對(duì)系統(tǒng)的當(dāng)前進(jìn)程設(shè)定一個(gè)快照,然后通過(guò)這個(gè)快照來(lái)獲取相應(yīng)的進(jìn)程信息,然后對(duì)進(jìn)程信息進(jìn)行格式化輸出。通過(guò)如下的API系統(tǒng)函數(shù)設(shè)定快照:
HANDLE WINAPI CreateToolhelp32Snapshot(
DWORD dwFlags,
DWORD th32ProcessID
)
2.5 系統(tǒng)瀏覽器狀況檢測(cè)
瀏覽器檢測(cè)主要包括通過(guò)IE瀏覽器打開(kāi)網(wǎng)站名稱(chēng)和使用的瀏覽器名稱(chēng)。設(shè)計(jì)方案是通過(guò)系統(tǒng)系統(tǒng)提供的API函數(shù)來(lái)監(jiān)控系統(tǒng)打開(kāi)的窗口,篩選出瀏覽器窗口,并對(duì)瀏覽器打開(kāi)的網(wǎng)頁(yè)進(jìn)行記錄,最后對(duì)這些監(jiān)控信息進(jìn)行格式化輸出。通過(guò)如下的API系統(tǒng)函數(shù)來(lái)監(jiān)控:
WINUSERAPI int WINAPI GetWindowTextA(
__in HWND hWnd,
__out_ecount(nMaxCount) LPSTR lpString,
__in int nMaxCount);
2.6 系統(tǒng)網(wǎng)路連接檢測(cè)
檢測(cè)系統(tǒng)的網(wǎng)絡(luò)連接情況檢測(cè)信息包括Pid、名稱(chēng)、Local Addr、Local Port、Remote Addr、Remote Port、State、Path。設(shè)計(jì)方案是通過(guò)系統(tǒng)的API函數(shù)獲得系統(tǒng)當(dāng)前的狀態(tài)快照,然后在快照中篩選出網(wǎng)絡(luò)連接,通過(guò)對(duì)快照的解析,得到網(wǎng)絡(luò)連接的信息并進(jìn)行格式化輸出。
最后通過(guò)自定義函數(shù)來(lái)獲取網(wǎng)絡(luò)連接名稱(chēng)和路徑:
2.7 系統(tǒng)注冊(cè)表檢測(cè)
主要目的是檢測(cè)系統(tǒng)的注冊(cè)表信息。設(shè)計(jì)方案是通過(guò)調(diào)用系統(tǒng)的API函數(shù)來(lái)對(duì)注冊(cè)表進(jìn)行相應(yīng)的操作,并且用相應(yīng)的格式進(jìn)行顯示。通過(guò)如下API系統(tǒng)函數(shù)來(lái)操作注冊(cè)表:
LONG WINAPI RegOpenKeyEx //打開(kāi)注冊(cè)表
LONG WINAPI RegQueryValueEx //查詢(xún)注冊(cè)表
LONG WINAPI RegEnumKeyEx //枚舉注冊(cè)表信息
LONG WINAPI RegCloseKey //關(guān)閉注冊(cè)表
3 系統(tǒng)的安全評(píng)估
經(jīng)過(guò)檢測(cè)后系統(tǒng)將得到各種檢測(cè)項(xiàng)目的結(jié)果,該結(jié)果為多個(gè)字符串組。系統(tǒng)根據(jù)不同的項(xiàng)目系統(tǒng)預(yù)設(shè)了相應(yīng)的信任項(xiàng)列表和黑名單列表,信任項(xiàng)是系統(tǒng)已知的各種安全的應(yīng)用或設(shè)置項(xiàng)的字符串,黑名單列表則存有已知的具有風(fēng)險(xiǎn)的相應(yīng)的設(shè)置或應(yīng)用名稱(chēng)等。檢測(cè)結(jié)果和這種列表進(jìn)行比對(duì)并進(jìn)行評(píng)分。最后將所有的檢測(cè)項(xiàng)目的評(píng)分結(jié)果綜合給出系統(tǒng)的評(píng)估結(jié)果。
3.1 檢測(cè)項(xiàng)目的評(píng)估
檢測(cè)項(xiàng)目[K]檢測(cè)結(jié)果記錄數(shù)記為NK,其中在信任項(xiàng)列表的數(shù)量記為[NT],在黑名單列表項(xiàng)中的數(shù)量記為[NB],不在這兩個(gè)列表中的數(shù)目記為[NU],由此可得到相應(yīng)項(xiàng)目[K]的評(píng)估的得分[SK] 可以由以下表達(dá)式得出:
[SK=NT+NU×0.8NK×100] (1)
不在信任項(xiàng)列表或者黑名單列表中的項(xiàng)目由于風(fēng)險(xiǎn)不確定,考慮到可能出現(xiàn)危險(xiǎn)的可能性,將這種情況安全的可能性設(shè)定為0.8,由此可以從(1)中可以得出項(xiàng)目的評(píng)估結(jié)果。
3.2 系統(tǒng)的評(píng)估
對(duì)于整個(gè)系統(tǒng)檢測(cè)項(xiàng)目有I項(xiàng),各項(xiàng)檢測(cè)評(píng)分為[S1] …[SI] ,對(duì)于整個(gè)系統(tǒng)的的評(píng)估結(jié)果[SO] 可由下式得出:
[SO=i=1ISiI×100] (2)
[SO]代表了系統(tǒng)的整體安全情況,通過(guò)該分值使用者可以方便的理解計(jì)算機(jī)的安全狀態(tài)。
4 系統(tǒng)的測(cè)試
系統(tǒng)在聯(lián)想Y400型主機(jī)上進(jìn)行了相應(yīng)的測(cè)試,主機(jī)所用的操作系統(tǒng)為Windows 7。各項(xiàng)功都能正常運(yùn)行,如圖2能正確顯示該主機(jī)的軟件安裝情況。
系統(tǒng)也能根據(jù)所有的檢測(cè)結(jié)果對(duì)系統(tǒng)做出相應(yīng)的安全評(píng)估,如圖3所示。
5 總結(jié)與展望
本文通過(guò)利用Windows API的接口實(shí)現(xiàn)了對(duì)主機(jī)的系統(tǒng)的安全檢測(cè)和評(píng)估,檢測(cè)的結(jié)果是真實(shí)可信的。對(duì)于系統(tǒng)的評(píng)估方法,可以加入動(dòng)態(tài)的調(diào)整信任項(xiàng)和黑名單,使評(píng)估的結(jié)果更加符合安全狀態(tài)發(fā)展的趨勢(shì),使計(jì)算機(jī)的保持較好的安全狀態(tài)。
參考文獻(xiàn):
[1] Kedgley M. File integrity monitoring in the modern threat landscape[J]. Network Security,2014,2014(2):5-8.
[2] Chunqi Tian, Xiaojian Liu, Lisheng Wang, Shihong Zou.Spreading evidence models for trust propagation and aggregation in peer-to-peer networks[J]. Concurrency and Computation: Practice and Experience,2014,26(2):601-614.
[3] Zhiyong Shan, Xin Wang. Growing grapes in your computer to defend against malware[J]. IEEE Transactions on Information Forensics and Security,2014,9(2):196-207.
[4] Liu Xin, Liu Ren-ren, Wu Xiang-bo. A secret inline hook technology[J]. Control and Intelligent Systems,2014,42(1):24-30.
[5] 徐江峰,邵向陽(yáng). 基于HOOK API技術(shù)的進(jìn)程監(jiān)控系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J]. 計(jì)算機(jī)工程與設(shè)計(jì),2011(4):1330-1333.
[6] 陳永建,朱娟,黎桂林. 基于WMI的實(shí)時(shí)監(jiān)控系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J]. 微計(jì)算機(jī)信息,2005(21):52-54.
[7] 鐘偉,唐發(fā)根. 通用應(yīng)用系統(tǒng)性能評(píng)測(cè)環(huán)境的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用,2004(3):141-144.
[8] 徐鯤,孫輝. Windows NT下對(duì)磁盤(pán)性能監(jiān)測(cè)的研究[J]. 計(jì)算機(jī)科學(xué),2012(S3):301-304.
[9] 白金榮,王俊峰,趙宗渠,等. 基于敏感Native API的惡意軟件檢測(cè)方法[J]. 計(jì)算機(jī)工程,2012(13):9-12.
[10] 藍(lán)智靈,宋宇波,唐磊. 基于直接內(nèi)核對(duì)象操作的進(jìn)程偽裝保護(hù)方法[J].東南大學(xué)學(xué)報(bào):自然科學(xué)版,2013(1):24-29.endprint
RegOpenKeyEx(HKEY_LOCAL_MACHINE,_T("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall"),NULL, KEY_READ, &hKey)
2.3 系統(tǒng)啟動(dòng)項(xiàng)檢測(cè)
啟動(dòng)項(xiàng)檢測(cè)的目的是檢測(cè)系統(tǒng)啟動(dòng)項(xiàng)的信息,包括啟動(dòng)軟件名稱(chēng)和存儲(chǔ)路徑。該模塊設(shè)計(jì)與檢測(cè)系統(tǒng)安裝軟件信息相似,也是通過(guò)對(duì)注冊(cè)表進(jìn)行查詢(xún)來(lái)獲取相應(yīng)的信息。設(shè)計(jì)方案是首先通過(guò)對(duì)注冊(cè)表進(jìn)行操作查詢(xún)?nèi)缦侣窂?/p>
Software\\Microsoft\\Windows\\CurrentVersion\\Run
從該路徑下獲得軟件的注冊(cè)表信息, 在獲取到系統(tǒng)啟動(dòng)項(xiàng)基本信息后再對(duì)信息進(jìn)行格式化輸出。
2.4 系統(tǒng)進(jìn)程檢測(cè)
操作臺(tái)系統(tǒng)中的正在運(yùn)行的惡意程序可以通過(guò)對(duì)進(jìn)程的檢測(cè)進(jìn)行發(fā)現(xiàn)[10]。進(jìn)程檢測(cè)的信息包括進(jìn)程名稱(chēng)、進(jìn)程ID、線(xiàn)程數(shù)量、所使用的.dll文件。設(shè)計(jì)方案是通過(guò)Windows系統(tǒng)提供的API函數(shù),對(duì)系統(tǒng)的當(dāng)前進(jìn)程設(shè)定一個(gè)快照,然后通過(guò)這個(gè)快照來(lái)獲取相應(yīng)的進(jìn)程信息,然后對(duì)進(jìn)程信息進(jìn)行格式化輸出。通過(guò)如下的API系統(tǒng)函數(shù)設(shè)定快照:
HANDLE WINAPI CreateToolhelp32Snapshot(
DWORD dwFlags,
DWORD th32ProcessID
)
2.5 系統(tǒng)瀏覽器狀況檢測(cè)
瀏覽器檢測(cè)主要包括通過(guò)IE瀏覽器打開(kāi)網(wǎng)站名稱(chēng)和使用的瀏覽器名稱(chēng)。設(shè)計(jì)方案是通過(guò)系統(tǒng)系統(tǒng)提供的API函數(shù)來(lái)監(jiān)控系統(tǒng)打開(kāi)的窗口,篩選出瀏覽器窗口,并對(duì)瀏覽器打開(kāi)的網(wǎng)頁(yè)進(jìn)行記錄,最后對(duì)這些監(jiān)控信息進(jìn)行格式化輸出。通過(guò)如下的API系統(tǒng)函數(shù)來(lái)監(jiān)控:
WINUSERAPI int WINAPI GetWindowTextA(
__in HWND hWnd,
__out_ecount(nMaxCount) LPSTR lpString,
__in int nMaxCount);
2.6 系統(tǒng)網(wǎng)路連接檢測(cè)
檢測(cè)系統(tǒng)的網(wǎng)絡(luò)連接情況檢測(cè)信息包括Pid、名稱(chēng)、Local Addr、Local Port、Remote Addr、Remote Port、State、Path。設(shè)計(jì)方案是通過(guò)系統(tǒng)的API函數(shù)獲得系統(tǒng)當(dāng)前的狀態(tài)快照,然后在快照中篩選出網(wǎng)絡(luò)連接,通過(guò)對(duì)快照的解析,得到網(wǎng)絡(luò)連接的信息并進(jìn)行格式化輸出。
最后通過(guò)自定義函數(shù)來(lái)獲取網(wǎng)絡(luò)連接名稱(chēng)和路徑:
2.7 系統(tǒng)注冊(cè)表檢測(cè)
主要目的是檢測(cè)系統(tǒng)的注冊(cè)表信息。設(shè)計(jì)方案是通過(guò)調(diào)用系統(tǒng)的API函數(shù)來(lái)對(duì)注冊(cè)表進(jìn)行相應(yīng)的操作,并且用相應(yīng)的格式進(jìn)行顯示。通過(guò)如下API系統(tǒng)函數(shù)來(lái)操作注冊(cè)表:
LONG WINAPI RegOpenKeyEx //打開(kāi)注冊(cè)表
LONG WINAPI RegQueryValueEx //查詢(xún)注冊(cè)表
LONG WINAPI RegEnumKeyEx //枚舉注冊(cè)表信息
LONG WINAPI RegCloseKey //關(guān)閉注冊(cè)表
3 系統(tǒng)的安全評(píng)估
經(jīng)過(guò)檢測(cè)后系統(tǒng)將得到各種檢測(cè)項(xiàng)目的結(jié)果,該結(jié)果為多個(gè)字符串組。系統(tǒng)根據(jù)不同的項(xiàng)目系統(tǒng)預(yù)設(shè)了相應(yīng)的信任項(xiàng)列表和黑名單列表,信任項(xiàng)是系統(tǒng)已知的各種安全的應(yīng)用或設(shè)置項(xiàng)的字符串,黑名單列表則存有已知的具有風(fēng)險(xiǎn)的相應(yīng)的設(shè)置或應(yīng)用名稱(chēng)等。檢測(cè)結(jié)果和這種列表進(jìn)行比對(duì)并進(jìn)行評(píng)分。最后將所有的檢測(cè)項(xiàng)目的評(píng)分結(jié)果綜合給出系統(tǒng)的評(píng)估結(jié)果。
3.1 檢測(cè)項(xiàng)目的評(píng)估
檢測(cè)項(xiàng)目[K]檢測(cè)結(jié)果記錄數(shù)記為NK,其中在信任項(xiàng)列表的數(shù)量記為[NT],在黑名單列表項(xiàng)中的數(shù)量記為[NB],不在這兩個(gè)列表中的數(shù)目記為[NU],由此可得到相應(yīng)項(xiàng)目[K]的評(píng)估的得分[SK] 可以由以下表達(dá)式得出:
[SK=NT+NU×0.8NK×100] (1)
不在信任項(xiàng)列表或者黑名單列表中的項(xiàng)目由于風(fēng)險(xiǎn)不確定,考慮到可能出現(xiàn)危險(xiǎn)的可能性,將這種情況安全的可能性設(shè)定為0.8,由此可以從(1)中可以得出項(xiàng)目的評(píng)估結(jié)果。
3.2 系統(tǒng)的評(píng)估
對(duì)于整個(gè)系統(tǒng)檢測(cè)項(xiàng)目有I項(xiàng),各項(xiàng)檢測(cè)評(píng)分為[S1] …[SI] ,對(duì)于整個(gè)系統(tǒng)的的評(píng)估結(jié)果[SO] 可由下式得出:
[SO=i=1ISiI×100] (2)
[SO]代表了系統(tǒng)的整體安全情況,通過(guò)該分值使用者可以方便的理解計(jì)算機(jī)的安全狀態(tài)。
4 系統(tǒng)的測(cè)試
系統(tǒng)在聯(lián)想Y400型主機(jī)上進(jìn)行了相應(yīng)的測(cè)試,主機(jī)所用的操作系統(tǒng)為Windows 7。各項(xiàng)功都能正常運(yùn)行,如圖2能正確顯示該主機(jī)的軟件安裝情況。
系統(tǒng)也能根據(jù)所有的檢測(cè)結(jié)果對(duì)系統(tǒng)做出相應(yīng)的安全評(píng)估,如圖3所示。
5 總結(jié)與展望
本文通過(guò)利用Windows API的接口實(shí)現(xiàn)了對(duì)主機(jī)的系統(tǒng)的安全檢測(cè)和評(píng)估,檢測(cè)的結(jié)果是真實(shí)可信的。對(duì)于系統(tǒng)的評(píng)估方法,可以加入動(dòng)態(tài)的調(diào)整信任項(xiàng)和黑名單,使評(píng)估的結(jié)果更加符合安全狀態(tài)發(fā)展的趨勢(shì),使計(jì)算機(jī)的保持較好的安全狀態(tài)。
參考文獻(xiàn):
[1] Kedgley M. File integrity monitoring in the modern threat landscape[J]. Network Security,2014,2014(2):5-8.
[2] Chunqi Tian, Xiaojian Liu, Lisheng Wang, Shihong Zou.Spreading evidence models for trust propagation and aggregation in peer-to-peer networks[J]. Concurrency and Computation: Practice and Experience,2014,26(2):601-614.
[3] Zhiyong Shan, Xin Wang. Growing grapes in your computer to defend against malware[J]. IEEE Transactions on Information Forensics and Security,2014,9(2):196-207.
[4] Liu Xin, Liu Ren-ren, Wu Xiang-bo. A secret inline hook technology[J]. Control and Intelligent Systems,2014,42(1):24-30.
[5] 徐江峰,邵向陽(yáng). 基于HOOK API技術(shù)的進(jìn)程監(jiān)控系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J]. 計(jì)算機(jī)工程與設(shè)計(jì),2011(4):1330-1333.
[6] 陳永建,朱娟,黎桂林. 基于WMI的實(shí)時(shí)監(jiān)控系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J]. 微計(jì)算機(jī)信息,2005(21):52-54.
[7] 鐘偉,唐發(fā)根. 通用應(yīng)用系統(tǒng)性能評(píng)測(cè)環(huán)境的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用,2004(3):141-144.
[8] 徐鯤,孫輝. Windows NT下對(duì)磁盤(pán)性能監(jiān)測(cè)的研究[J]. 計(jì)算機(jī)科學(xué),2012(S3):301-304.
[9] 白金榮,王俊峰,趙宗渠,等. 基于敏感Native API的惡意軟件檢測(cè)方法[J]. 計(jì)算機(jī)工程,2012(13):9-12.
[10] 藍(lán)智靈,宋宇波,唐磊. 基于直接內(nèi)核對(duì)象操作的進(jìn)程偽裝保護(hù)方法[J].東南大學(xué)學(xué)報(bào):自然科學(xué)版,2013(1):24-29.endprint