一種基于Windows內(nèi)核驅(qū)動(dòng)的木馬監(jiān)測(cè)方法
【專利摘要】為防止木馬程序?qū)β?lián)網(wǎng)計(jì)算機(jī)的侵害,本發(fā)明提供一種木馬監(jiān)測(cè)方法,一旦操作系統(tǒng)執(zhí)行命令,該方法對(duì)執(zhí)行命令進(jìn)行分析,首先判斷是否為“CMD.EXE”或“RAR.EXE”,如果是,則分析調(diào)用“CMD.EXE”或“RAR.EXE”進(jìn)程的網(wǎng)絡(luò)連接,如存在網(wǎng)絡(luò)連接,則記錄網(wǎng)絡(luò)連接端口和IP地址,將該進(jìn)程理解為木馬進(jìn)程加以重點(diǎn)監(jiān)測(cè),之后記錄其執(zhí)行的所有命令和文件操作,并對(duì)其子進(jìn)程也進(jìn)行重點(diǎn)監(jiān)測(cè),并將監(jiān)測(cè)記錄發(fā)送到指定服務(wù)器,為發(fā)現(xiàn)計(jì)算機(jī)木馬提供了一種技術(shù)手段,能夠記錄木馬執(zhí)行命令和文件操作,記錄木馬控制方IP地址和端口,記錄所有操作的時(shí)間,同時(shí)將監(jiān)測(cè)記錄通過(guò)網(wǎng)絡(luò)發(fā)送到服務(wù)器,由專業(yè)人員對(duì)記錄進(jìn)行分析,不影響用戶正常使用,正常使用計(jì)算機(jī)無(wú)記錄。
【專利說(shuō)明】—種基于Windows內(nèi)核驅(qū)動(dòng)的木馬監(jiān)測(cè)方法
所屬【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于網(wǎng)絡(luò)安全【技術(shù)領(lǐng)域】,能夠監(jiān)測(cè)聯(lián)網(wǎng)計(jì)算機(jī)木馬操作。
【背景技術(shù)】
[0002]計(jì)算機(jī)木馬危害性很大,雖然殺毒軟件、防火墻等技術(shù)手段可以攔截木馬,但還是有大量計(jì)算機(jī)被木馬控制,給國(guó)家、單位、個(gè)人帶來(lái)?yè)p失。特別是針對(duì)特定殺毒軟件研制的專用木馬,能在只安裝該殺毒軟件的計(jì)算機(jī)內(nèi)運(yùn)行而不被發(fā)現(xiàn)。網(wǎng)絡(luò)入侵檢測(cè)系統(tǒng)是通過(guò)分析網(wǎng)絡(luò)數(shù)據(jù)來(lái)發(fā)現(xiàn)異常并阻斷網(wǎng)絡(luò)入侵的技術(shù)手段,但一般只有大型網(wǎng)絡(luò)系統(tǒng)才配備網(wǎng)絡(luò)入侵檢測(cè)系統(tǒng),且由于網(wǎng)絡(luò)數(shù)據(jù)巨大,難以分析發(fā)現(xiàn)所有的網(wǎng)絡(luò)入侵。
【發(fā)明內(nèi)容】
[0003]本發(fā)明能夠?qū)δ抉R進(jìn)行監(jiān)測(cè),記錄木馬控制方IP地址及網(wǎng)絡(luò)連接端口,記錄木馬運(yùn)行命令,文件操作,并將監(jiān)測(cè)記錄發(fā)送到指定服務(wù)器,專業(yè)人員根據(jù)監(jiān)測(cè)記錄可以判斷木馬性質(zhì)與危害,并采取相應(yīng)防護(hù)措施。
[0004]本發(fā)明提供一種基于Windows內(nèi)核驅(qū)動(dòng)的木馬監(jiān)測(cè)方法,其特征在于包括以下步驟:
[0005]步驟一:獲取進(jìn)程名稱,該進(jìn)程名如果為“cmd.exe”或“rar.exe”,轉(zhuǎn)到步驟二,該進(jìn)程名如果不為“cmd.exe”且不為“rar.exe”,轉(zhuǎn)到步驟七;
[0006]步驟二:如果該進(jìn)程為新進(jìn)程,轉(zhuǎn)到步驟三,如果該進(jìn)程不是新進(jìn)程,轉(zhuǎn)到步驟7 ;
[0007]步驟三:獲取該進(jìn)程的父進(jìn)程ID號(hào),并標(biāo)記為可疑進(jìn)程;
[0008]步驟四:該父進(jìn)程有網(wǎng)絡(luò)連接,轉(zhuǎn)到步驟五,該父進(jìn)程無(wú)網(wǎng)絡(luò)連接,轉(zhuǎn)到步驟六;
[0009]步驟五:記錄該父進(jìn)程名稱、IP地址、端口,并加密發(fā)送到服務(wù)端可疑進(jìn)程列表存儲(chǔ),報(bào)警并繼續(xù)監(jiān)控;
[0010]步驟六:記錄該父進(jìn)程名稱并加密發(fā)送到服務(wù)端可疑進(jìn)程列表存儲(chǔ),繼續(xù)監(jiān)控;
[0011]步驟七:如果服務(wù)端可疑進(jìn)程列表中不存在該進(jìn)程,繼續(xù)監(jiān)控,如果服務(wù)端可疑進(jìn)程列表中存在該進(jìn)程,轉(zhuǎn)到步驟八;
[0012]步驟八:監(jiān)控該進(jìn)程的父進(jìn)程,如果該父進(jìn)程為“cmd.exe”或存在于服務(wù)端可疑進(jìn)程列表中,轉(zhuǎn)到步驟九,如果該父進(jìn)程不為“cmd.exe”且不存在于服務(wù)端可疑進(jìn)程列表中,繼續(xù)監(jiān)控;
[0013]步驟九:該進(jìn)程為可疑進(jìn)程,獲取其運(yùn)行參數(shù),報(bào)警并加密發(fā)送到服務(wù)端可疑進(jìn)程列表存儲(chǔ),繼續(xù)監(jiān)控。
[0014]本發(fā)明解決其技術(shù)問(wèn)題所依據(jù)的原理是:計(jì)算機(jī)木馬的主要作用是實(shí)現(xiàn)對(duì)計(jì)算機(jī)的遠(yuǎn)程控制,既能夠在被控制計(jì)算機(jī)執(zhí)行命令,木馬的另一目的是獲取計(jì)算機(jī)內(nèi)重要文檔數(shù)據(jù)。為增加木馬隱蔽性,木馬一般通過(guò)CMD.EXE在后臺(tái)執(zhí)行操作,為方便獲取文檔,通常使用RAR.EXE將多個(gè)文檔壓縮成一個(gè)文件,再通過(guò)網(wǎng)絡(luò)傳遞出去?;谶@一特性,在后臺(tái)執(zhí)行CMD.EXE和RAR.EXE的進(jìn)程,很大程度上是木馬進(jìn)程,至少是具有木馬特征的進(jìn)程,如果這個(gè)進(jìn)程和網(wǎng)絡(luò)連接,則是木馬的可能性更大。而普通人員使用計(jì)算機(jī),一般不會(huì)執(zhí)行CMD.ΕΧΕ 和 RAR.ΕΧΕ。
[0015]本發(fā)明解決其技術(shù)問(wèn)題采用的技術(shù)方案是:在聯(lián)網(wǎng)計(jì)算機(jī)安裝監(jiān)測(cè)驅(qū)動(dòng),對(duì)32位操作系統(tǒng),Η00Κ系統(tǒng)內(nèi)核函數(shù)NtCreateSection,對(duì)64位操作系統(tǒng),注冊(cè)系統(tǒng)回調(diào)函數(shù)。一旦操作系統(tǒng)執(zhí)行命令,監(jiān)測(cè)驅(qū)動(dòng)對(duì)執(zhí)行命令進(jìn)行分析,首先判斷是否為“CMD.ΕΧΕ”或“RAR.EXE",如果是,則分析調(diào)用“CMD.ΕΧΕ”或“RAR.ΕΧΕ”進(jìn)程的網(wǎng)絡(luò)連接,如存在網(wǎng)絡(luò)連接,則記錄網(wǎng)絡(luò)連接端口和IP地址,將該進(jìn)程理解為木馬進(jìn)程加以重點(diǎn)監(jiān)測(cè),之后記錄其執(zhí)行的所有命令和文件操作,并對(duì)其子進(jìn)程也進(jìn)行重點(diǎn)監(jiān)測(cè)。EXPLORER.ΕΧΕ為桌面應(yīng)用進(jìn)程,也可能調(diào)用CMD.ΕΧΕ,為避免記錄用戶正常操作,只記錄CMD.ΕΧΕ執(zhí)行命令,不記錄EXPLORER.ΕΧΕ執(zhí)行的其它操作。
[0016]本發(fā)明的有益效果是,為發(fā)現(xiàn)計(jì)算機(jī)木馬提供了一種技術(shù)手段,能夠記錄木馬執(zhí)行命令和文件操作,記錄木馬控制方IP地址和端口,記錄所有操作的時(shí)間。將監(jiān)測(cè)記錄通過(guò)網(wǎng)絡(luò)發(fā)送到服務(wù)器,由專業(yè)人員對(duì)記錄進(jìn)行分析,不影響用戶正常使用,正常使用計(jì)算機(jī)無(wú)記錄。
【專利附圖】
【附圖說(shuō)明】
[0017]圖1是本發(fā)明的監(jiān)測(cè)流程圖。
[0018]圖2是本發(fā)明的監(jiān)測(cè)記錄樣本。
[0019]圖3是本發(fā)明的監(jiān)測(cè)記錄樣本。
【具體實(shí)施方式】
[0020]下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明進(jìn)一步說(shuō)明。
[0021]在圖1中,首先獲得當(dāng)前執(zhí)行進(jìn)程的文件名,判斷是否為“cmd.exe”或“rar.exe",如果是則分析該進(jìn)程是否為新進(jìn)程,如果不是新進(jìn)程,則不再處理,直接返回。
[0022]如果是新進(jìn)程,則將該進(jìn)程名及ID號(hào)保存到可疑進(jìn)程列表,再獲得其父進(jìn)程ID和進(jìn)程名,然后查找當(dāng)前網(wǎng)絡(luò)連接進(jìn)程中是否包含該父進(jìn)程,如父進(jìn)程具有網(wǎng)絡(luò)連接,則記錄網(wǎng)絡(luò)連接的本地IP地址和端口、遠(yuǎn)程IP地址和端口,連同父進(jìn)程名一起加密發(fā)送到服務(wù)器。如父進(jìn)程不存在網(wǎng)絡(luò)連接,則只將父進(jìn)程名加密發(fā)送到服務(wù)器。如果父進(jìn)程名不為"explorer, exe”,則將父進(jìn)程名及ID號(hào)保存到可疑進(jìn)程列表。如果當(dāng)前進(jìn)程名不為“cmd.exe”和“rar.exe”,則需判斷當(dāng)前進(jìn)程是否由可疑進(jìn)程調(diào)用。首先判斷可疑進(jìn)程列表是否為空,為空則不再處理,直接返回,否則獲得當(dāng)前進(jìn)程的父進(jìn)程ID和進(jìn)程名,查看父進(jìn)程是否在可疑進(jìn)程列表,如不在,則返回,如果父進(jìn)程為可疑進(jìn)程,則獲取當(dāng)前進(jìn)程的運(yùn)行參數(shù),連同當(dāng)前進(jìn)程名一起加密發(fā)送到服務(wù)器,并將該進(jìn)程保存到可疑進(jìn)程列表,同時(shí),監(jiān)測(cè)驅(qū)動(dòng)注冊(cè)為文件過(guò)濾驅(qū)動(dòng),只處理PostCreate消息。該消息在文件生成完成(PostCreate)后觸發(fā),可獲得文件名信息。如果文件操作的當(dāng)前進(jìn)程為可疑進(jìn)程,則記錄該文件名并加密發(fā)送到服務(wù)器。
[0023]在圖2中,列表第1項(xiàng)為機(jī)器編號(hào),第2項(xiàng)為被監(jiān)測(cè)機(jī)器的人員信息,第3項(xiàng)為記錄時(shí)間,第4項(xiàng)為記錄內(nèi)容。在計(jì)算機(jī)監(jiān)測(cè)驅(qū)動(dòng)安裝時(shí),以硬盤(pán)序列號(hào)為依據(jù)產(chǎn)生安裝編號(hào),服務(wù)器端接收到記錄后,根據(jù)對(duì)應(yīng)編號(hào)保存到相應(yīng)文件中。[0024]監(jiān)測(cè)記錄內(nèi)容“遠(yuǎn)程:”表示該進(jìn)程具有網(wǎng)絡(luò)連接,其后為進(jìn)程名,本地IP地址與端口,遠(yuǎn)程IP地址和端口。
[0025]其它監(jiān)測(cè)記錄為執(zhí)行命令。
[0026]在圖3中,從下向上,第I條記錄為“進(jìn)程:explorer.exe”,表示為當(dāng)前桌面調(diào)用。
[0027]第2條記錄為“net user”,是查看計(jì)算機(jī)用戶信息。
[0028]第3條記錄為“ipconfig/all”,是查看計(jì)算機(jī)網(wǎng)絡(luò)配置情況。
[0029]第4 條記錄為“遠(yuǎn)程:scvhost.exel92.168.1.25:4319192.168.1.22:1353”,表示 scvhost.exe 存在遠(yuǎn)程連接,192.168.1.25:4319 是本地 IP 地址和端 口,192.168.1.22:1353是遠(yuǎn)程IP地址和端口。
[0030]第5 條記錄為 “C:\ffIND0WS\system32\conime.exe”,是輸入法調(diào)用。
[0031]第6條記錄為“netstat-an”,是查看計(jì)算機(jī)網(wǎng)絡(luò)連接情況。
[0032]第7條記錄為“File:C:\新建文件夾\流程圖.doc”,是scvhost.exe操作該文件。
[0033]第8條記錄為“hyclient”,是執(zhí)行程序。
[0034]第10條記錄為“tasklist”,是查看計(jì)算機(jī)進(jìn)程執(zhí)行情況。
[0035]第11 條記錄為“遠(yuǎn)程:hyclient.exel92.168.1.25:1198114.XXX.83.12:8080”,新加載進(jìn)程hyclient.exe網(wǎng)絡(luò)連接情況。
[0036]第12條記錄為“c:\SVCS.exe”,執(zhí)行程序
[0037]第13條記錄為“File:C:\msvsdk.dll”,是文件操作記錄。
【權(quán)利要求】
1.一種基于Windows內(nèi)核驅(qū)動(dòng)的木馬監(jiān)測(cè)方法,其特征在于包括以下步驟:步驟一:獲取進(jìn)程名稱,該進(jìn)程名如果為“cmd.exe”或“rar.exe”,轉(zhuǎn)到步驟二,該進(jìn)程名如果不為“cmd.exe”且不為“rar.exe”,轉(zhuǎn)到步驟七;步驟二:如果該進(jìn)程為新進(jìn)程,轉(zhuǎn)到步驟三,如果該進(jìn)程不是新進(jìn)程,轉(zhuǎn)到步驟7 ;步驟三:獲取該進(jìn)程的父進(jìn)程ID號(hào),并標(biāo)記為可疑進(jìn)程;步驟四:該父進(jìn)程有網(wǎng)絡(luò)連接,轉(zhuǎn)到步驟五,該父進(jìn)程無(wú)網(wǎng)絡(luò)連接,轉(zhuǎn)到步驟六;步驟五:記錄該父進(jìn)程名稱、IP地址、端口,并加密發(fā)送到服務(wù)端可疑進(jìn)程列表存儲(chǔ),報(bào)警并繼續(xù)監(jiān)控;步驟六:記錄該父進(jìn)程名稱并加密發(fā)送到服務(wù)端可疑進(jìn)程列表存儲(chǔ),繼續(xù)監(jiān)控;步驟七:如果服務(wù)端可疑進(jìn)程列表中不存在該進(jìn)程,繼續(xù)監(jiān)控,如果服務(wù)端可疑進(jìn)程列表中存在該進(jìn)程,轉(zhuǎn)到步驟八;步驟八:監(jiān)控該進(jìn)程的父進(jìn)程,如果該父進(jìn)程為“cmd.exe"或存在于服務(wù)端可疑進(jìn)程列表中,轉(zhuǎn)到步驟九,如果該父進(jìn)程不為“cmd.exe"且不存在于服務(wù)端可疑進(jìn)程列表中,繼續(xù)監(jiān)控;步驟九:該進(jìn)程為可疑進(jìn)程,獲取其運(yùn)行參數(shù),報(bào)警并加密發(fā)送到服務(wù)端可疑進(jìn)程列表存儲(chǔ),繼續(xù)監(jiān)控。
【文檔編號(hào)】G06F21/56GK103685233SQ201310566399
【公開(kāi)日】2014年3月26日 申請(qǐng)日期:2013年11月15日 優(yōu)先權(quán)日:2013年11月15日
【發(fā)明者】崔振利 申請(qǐng)人:中國(guó)人民解放軍91635部隊(duì)