專利名稱:基于線程行為的木馬竊取文件檢測(cè)方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)惡意軟件的惡意行為檢測(cè)領(lǐng)域,特別涉及一種基于線程行為的木馬竊取文件檢測(cè)方法和系統(tǒng)。
背景技術(shù):
利用木馬傳輸文件的行為來(lái)保護(hù)文檔安全的技術(shù)目前尚未在主流殺軟中出現(xiàn)。目前的針對(duì)木馬檢測(cè)行為監(jiān)視主要是通過(guò)木馬的創(chuàng)建遠(yuǎn)程線程、服務(wù)、等異常動(dòng)作,而非數(shù)據(jù)安全方面的監(jiān)視?,F(xiàn)有專利《基于進(jìn)程關(guān)聯(lián)的文件傳輸監(jiān)控方法》中采用常規(guī)的網(wǎng)絡(luò)協(xié)議HTTP、FTP、 SMTP的數(shù)據(jù)內(nèi)容來(lái)判斷是否進(jìn)程文件傳輸,這種方法較為準(zhǔn)確的識(shí)別常規(guī)的正常程序的文件傳輸,但由于大部分木馬采用的協(xié)議是非標(biāo)準(zhǔn)的應(yīng)用協(xié)議進(jìn)行文件傳輸,所以標(biāo)準(zhǔn)的協(xié)議解析匹配數(shù)據(jù)無(wú)法檢測(cè)到大部分的木馬竊取文件行為。同時(shí)在應(yīng)用上該方法目的是防止信息泄漏但是對(duì)于用戶主動(dòng)的IE郵件上傳、FTP等工具上傳文件產(chǎn)生誤報(bào),而對(duì)于木馬卻無(wú)法檢測(cè)產(chǎn)生漏報(bào)。另外該專利實(shí)現(xiàn)技術(shù)中需要用文件訪問(wèn)時(shí)間與數(shù)據(jù)包發(fā)送時(shí)間一致來(lái)判斷文件傳輸,這個(gè)方式會(huì)導(dǎo)致一部分木馬在讀取文件后進(jìn)行壓縮處理和特別變換后再發(fā)送導(dǎo)致讀取文件時(shí)間與網(wǎng)絡(luò)發(fā)送時(shí)間并不一致。
發(fā)明內(nèi)容
針對(duì)以上不足,本發(fā)明要解決的技術(shù)問(wèn)題是提供一種基于線程行為的木馬竊取文件檢測(cè)方法和系統(tǒng)。解決進(jìn)程、線程的文件傳輸?shù)臏?zhǔn)確識(shí)別方法,常規(guī)的采用NDIS的網(wǎng)絡(luò)監(jiān)視方法過(guò)于底層導(dǎo)致無(wú)法直接獲取傳輸數(shù)據(jù)的進(jìn)程和線程,即使通過(guò)時(shí)間IP關(guān)聯(lián)也只能得到與進(jìn)程的關(guān)聯(lián)。為了準(zhǔn)確獲得線程讀取文件、網(wǎng)絡(luò)發(fā)送序列,采用內(nèi)核inline hook方式對(duì)于線程的內(nèi)核API調(diào)用過(guò)程進(jìn)行記錄,找出符合發(fā)送文件的模型,同時(shí)由于木馬采用非標(biāo)準(zhǔn)應(yīng)用協(xié)議傳輸文件,通過(guò)線程讀取文件數(shù)據(jù)內(nèi)容與網(wǎng)絡(luò)發(fā)送內(nèi)容進(jìn)行應(yīng)用層協(xié)議無(wú)關(guān)性的BM 匹配方式進(jìn)行特征匹配,以及大小及壓縮格式變換匹配達(dá)到更加準(zhǔn)確的文件傳輸特征識(shí)別。對(duì)于傳輸文件主體的進(jìn)程、線程的發(fā)送文件過(guò)程的隱蔽性的識(shí)別用于識(shí)別是木馬竊取文檔而非普通正常文件操作。竊取文件方式隱蔽性主要體現(xiàn)在主體的窗口屬性、進(jìn)程屬性和利用傀儡進(jìn)程的性質(zhì)。通過(guò)檢測(cè)這些主體的隱蔽性來(lái)判斷是否是木馬竊取,極大減少對(duì)正常文件傳輸?shù)恼`報(bào),提高對(duì)木馬竊取文件的檢測(cè)。為了解決上述技術(shù)問(wèn)題,本發(fā)明提供一種基于線程行為的木馬竊取文件檢測(cè)方法,包括
監(jiān)視線程的文件操作和網(wǎng)絡(luò)操作;所述文件操作包括打開(kāi)文件路徑和讀取文件數(shù)據(jù); 將監(jiān)視的線程和線程所屬的進(jìn)程以及截獲的文件操作及文件讀取數(shù)據(jù)和網(wǎng)絡(luò)操作及網(wǎng)絡(luò)發(fā)送數(shù)據(jù)形成行為序列緩沖隊(duì)列;
根據(jù)緩沖隊(duì)列中的行為序列判斷線程讀取的文件是否為網(wǎng)絡(luò)發(fā)送的文件; 如果線程讀取的文件為網(wǎng)絡(luò)發(fā)送的文件,并且檢查該線程及線程所屬的進(jìn)程具有隱蔽性,則有木馬竊取文件行為。其中,線程是依賴進(jìn)程存在的,一個(gè)進(jìn)程包括多個(gè)線程,進(jìn)程和線程一起作為動(dòng)作執(zhí)行的主體。進(jìn)一步的,安裝內(nèi)核驅(qū)動(dòng)程序,通過(guò)對(duì)內(nèi)核導(dǎo)出函數(shù)進(jìn)行hi ine Hook內(nèi)聯(lián)掛鉤監(jiān)視線程的文件操作和網(wǎng)絡(luò)操作。進(jìn)一步的,進(jìn)行hline Hook內(nèi)聯(lián)掛鉤監(jiān)視線程的文件操作和網(wǎng)絡(luò)操作的內(nèi)核函數(shù)包括文件打開(kāi)函數(shù)NtOpenFile、文件讀取函數(shù)NtReadFile、和網(wǎng)絡(luò)發(fā)送的函數(shù) NtDeviceIoControlFiIe οInline-hook內(nèi)聯(lián)掛鉤,通過(guò)改寫目標(biāo)函數(shù)的頭部為jmp指令而完成掛鉤,在修改的過(guò)程中需要將原來(lái)的指令復(fù)制到新的位置用于hook函數(shù)執(zhí)行完畢后調(diào)用,為防止指令截?cái)嘁簿褪菑?fù)制的指令不完整需要進(jìn)行反匯編得到要復(fù)制的指令地長(zhǎng)度。復(fù)制原有指令后即可覆蓋函數(shù)頭部跳轉(zhuǎn)到監(jiān)視程序從而得到監(jiān)視的API調(diào)用和參數(shù)。進(jìn)一步的,根據(jù)緩沖隊(duì)列中的行為序列判斷線程讀取的文件是否為網(wǎng)絡(luò)發(fā)送的文件,包括
用緩沖隊(duì)列中的行為序列與發(fā)送文件模型進(jìn)行模式匹配,如果匹配成功,并且線程讀取文件數(shù)據(jù)的總大小與線程所訪問(wèn)的文件大小相差不超過(guò)文件大小的30%,則確認(rèn)該線程在進(jìn)行文件發(fā)送;
將網(wǎng)絡(luò)發(fā)送數(shù)據(jù)與線程進(jìn)行文件發(fā)送的數(shù)據(jù)進(jìn)行協(xié)議無(wú)關(guān)性匹配,如果匹配成功,則線程讀取的文件為網(wǎng)絡(luò)操作發(fā)送的文件。進(jìn)一步的,將網(wǎng)絡(luò)發(fā)送數(shù)據(jù)與線程進(jìn)行文件發(fā)送的數(shù)據(jù)進(jìn)行協(xié)議無(wú)關(guān)性匹配,采用串匹配的快速Boyer-Moore算法。針對(duì)相同進(jìn)程或線程傳輸?shù)臄?shù)據(jù)與讀取文件進(jìn)行特征匹配,特征匹配過(guò)程對(duì)網(wǎng)絡(luò)數(shù)據(jù)不進(jìn)行應(yīng)用層協(xié)議解析,而是直接與文件數(shù)據(jù)進(jìn)行串匹配的快速Boyer-Moore算法 (BM算法),判斷讀取文件數(shù)據(jù)與網(wǎng)絡(luò)數(shù)據(jù)是否相同。進(jìn)一步的,滿足隱蔽性條件之一即可判別該線程及線程所屬的進(jìn)程具有隱蔽性, 隱蔽性條件包括進(jìn)程無(wú)窗口、有窗口但是隱藏、后臺(tái)服務(wù)進(jìn)程、瀏覽器進(jìn)程無(wú)常規(guī)主線程、 線程僅包含一個(gè)遠(yuǎn)程注入的線程。隱蔽性與顯示性是對(duì)比的,當(dāng)線程和線程所屬進(jìn)程有下列其中一項(xiàng)即可認(rèn)為是隱蔽性的進(jìn)程無(wú)窗口、有窗口但是隱藏、服務(wù)進(jìn)程、傀儡進(jìn)程比如IE等瀏覽器正常啟動(dòng)又很多線程和窗口,而作為木馬的傀儡進(jìn)程是掛起方式啟動(dòng),并且窗口被隱藏、或者無(wú)窗口??苓M(jìn)程另一個(gè)特征是線程只有一個(gè)遠(yuǎn)程注入的線程。本發(fā)明還提供了一種基于線程行為的木馬竊取文件檢測(cè)系統(tǒng),包括
內(nèi)核監(jiān)視模塊,用于監(jiān)視線程的文件操作和網(wǎng)絡(luò)操作;所述文件操作包括打開(kāi)文件路徑和讀取文件數(shù)據(jù);
行為序列維護(hù)模塊,用于將監(jiān)視的線程和線程所屬的進(jìn)程以及截獲的文件操作及文件讀取數(shù)據(jù)和網(wǎng)絡(luò)操作及網(wǎng)絡(luò)發(fā)送數(shù)據(jù)形成行為序列緩沖隊(duì)列;邏輯判斷模塊,用于根據(jù)緩沖隊(duì)列中的行為序列判斷線程讀取的文件是否為網(wǎng)絡(luò)發(fā)送的文件;
如果線程讀取的文件為網(wǎng)絡(luò)發(fā)送的文件,并且檢查該線程及線程所屬的進(jìn)程具有隱蔽性,則有木馬竊取文件行為。進(jìn)一步的,內(nèi)核監(jiān)視模塊具體用于安裝內(nèi)核驅(qū)動(dòng)程序,通過(guò)對(duì)內(nèi)核導(dǎo)出函數(shù)進(jìn)行 Inline Hook內(nèi)聯(lián)掛鉤監(jiān)視線程的文件操作和網(wǎng)絡(luò)操作。進(jìn)一步的,進(jìn)行hline Hook內(nèi)聯(lián)掛鉤監(jiān)視線程的文件操作和網(wǎng)絡(luò)操作的內(nèi)核函數(shù)包括文件打開(kāi)函數(shù)NtOpenFile、文件讀取函數(shù)NtReadFile、和網(wǎng)絡(luò)發(fā)送的函數(shù) NtDeviceIoControlFiIe ο進(jìn)一步的,邏輯判斷模塊具體包括
模式匹配模塊,用于用緩沖隊(duì)列中的行為序列與發(fā)送文件模型進(jìn)行模式匹配,如果匹配成功,并且線程讀取文件數(shù)據(jù)的總大小與線程所訪問(wèn)的文件大小相差不超過(guò)文件大小的 30%,則確認(rèn)該線程在進(jìn)行文件發(fā)送;
數(shù)據(jù)匹配模塊,將網(wǎng)絡(luò)發(fā)送數(shù)據(jù)與線程進(jìn)行文件發(fā)送的數(shù)據(jù)進(jìn)行協(xié)議無(wú)關(guān)性匹配,如果匹配成功,則線程讀取的文件為網(wǎng)絡(luò)操作發(fā)送的文件;
隱蔽性檢測(cè)模塊,用于判別線程及線程所屬的進(jìn)程具有隱蔽性。進(jìn)一步的,將網(wǎng)絡(luò)操作發(fā)送的應(yīng)用層數(shù)據(jù)與線程讀取的文件數(shù)據(jù)進(jìn)行協(xié)議無(wú)關(guān)性匹配,采用串匹配的快速Boyer-Moore算法。進(jìn)一步的,滿足隱蔽性條件之一即可判別該線程及線程所屬的進(jìn)程具有隱蔽性, 隱蔽性條件包括進(jìn)程無(wú)窗口、有窗口但是隱藏、后臺(tái)服務(wù)進(jìn)程、瀏覽器進(jìn)程無(wú)常規(guī)主線程、 線程僅包含一個(gè)遠(yuǎn)程注入的線程。本發(fā)明的有益效果是
本發(fā)明通過(guò)線程行為序列和發(fā)送數(shù)據(jù)無(wú)協(xié)議匹配可準(zhǔn)確識(shí)別線程文件傳輸行為,同時(shí)通過(guò)隱蔽性判斷,對(duì)木馬傳輸文件具有準(zhǔn)確的識(shí)別率,測(cè)試流行的超過(guò)二十款遠(yuǎn)程控制工具進(jìn)行文件竊取均可檢測(cè),包括灰鴿子、紅狼、彩虹橋、流螢、小牛、暗組、pcshare、野獸、 zxshelKPoisonlvy、網(wǎng)絡(luò)人、網(wǎng)絡(luò)神偷以及一些開(kāi)源工具的變種。同時(shí)對(duì)正常的瀏覽器、即時(shí)通訊工具、FTP等傳輸文件不會(huì)產(chǎn)生誤報(bào),可作為終端文件保護(hù)的方法。
為了更清楚地說(shuō)明本發(fā)明或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明中記載的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為本發(fā)明基于線程行為的木馬竊取文件檢測(cè)方法流程圖2為本發(fā)明基于線程行為的木馬竊取文件檢測(cè)方法具體實(shí)施例流程圖; 圖3為本發(fā)明基于線程行為的木馬竊取文件檢測(cè)系統(tǒng)模塊結(jié)構(gòu)圖。
具體實(shí)施例方式為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明實(shí)施例中的技術(shù)方案,并使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖對(duì)本發(fā)明中技術(shù)方案作進(jìn)一步詳細(xì)的說(shuō)明。本發(fā)明提供一種基于線程行為的木馬竊取文件檢測(cè)方法和系統(tǒng),該方法和系統(tǒng)極大減少對(duì)正常文件傳輸?shù)恼`報(bào),提高對(duì)木馬竊取文件的檢測(cè)。首先介紹本發(fā)明提供的一種基于線程行為的木馬竊取文件檢測(cè)方法,具體實(shí)施步驟如圖1所示,包括
S101、監(jiān)視線程的文件操作和網(wǎng)絡(luò)操作;所述文件操作包括打開(kāi)文件路徑和讀取文件數(shù)據(jù);
安裝內(nèi)核驅(qū)動(dòng)程序,通過(guò)對(duì)內(nèi)核導(dǎo)出函數(shù)進(jìn)行hline Hook內(nèi)聯(lián)掛鉤監(jiān)視線程的文件操作和網(wǎng)絡(luò)操作。進(jìn)行hline Hook內(nèi)聯(lián)掛鉤監(jiān)視線程的文件操作和網(wǎng)絡(luò)操作的內(nèi)核函數(shù)包括文件打開(kāi)函數(shù)NtOpenFile、文件讀取函數(shù)NtReadFile、和網(wǎng)絡(luò)發(fā)送的函數(shù) NtDeviceIoControlFiIe οS102、將監(jiān)視的線程和線程所屬的進(jìn)程以及截獲的文件操作及文件讀取數(shù)據(jù)和網(wǎng)絡(luò)操作及網(wǎng)絡(luò)發(fā)送數(shù)據(jù)形成行為序列緩沖隊(duì)列;
S103、根據(jù)緩沖隊(duì)列中的行為序列判斷線程讀取的文件是否為網(wǎng)絡(luò)發(fā)送的文件; 用緩沖隊(duì)列中的行為序列與發(fā)送文件模型進(jìn)行模式匹配,模型可以匹配多個(gè)文件讀取的操作,實(shí)際中函數(shù)有多個(gè)讀取文件的API操作,這個(gè)操作可以抽象為一個(gè)邏輯文件讀取; 其中,每當(dāng)獲得網(wǎng)絡(luò)發(fā)送行為,對(duì)行為序列進(jìn)行模式匹配,識(shí)別打開(kāi)文件_>邏輯讀取文件_>邏輯發(fā)送數(shù)據(jù)_>邏輯讀取文件_>邏輯發(fā)送數(shù)據(jù),這個(gè)模型中讀取文件的操作是邏輯讀取,實(shí)際API可能是多個(gè)數(shù)據(jù)處理抽象為一個(gè)讀取文件邏輯操作,同樣發(fā)送數(shù)據(jù)的API 也可能是多個(gè),抽象為一個(gè)發(fā)送,如果匹配成功,并且線程讀取文件數(shù)據(jù)的總大小與線程所訪問(wèn)的文件大小相差不超過(guò)文件大小的30%,則確認(rèn)該線程在進(jìn)行文件發(fā)送;其中,文件讀取總大小和文件相差不超過(guò)30%即大小相當(dāng),可以更準(zhǔn)確的確認(rèn)線程是在讀取整個(gè)文件發(fā)送,而不是進(jìn)行其它的文件操作,減少誤報(bào)。將網(wǎng)絡(luò)發(fā)送數(shù)據(jù)與線程進(jìn)行文件發(fā)送的數(shù)據(jù)進(jìn)行協(xié)議無(wú)關(guān)性匹配,如果匹配成功,則線程讀取的文件為網(wǎng)絡(luò)操作發(fā)送的文件。將網(wǎng)絡(luò)操作發(fā)送的應(yīng)用層數(shù)據(jù)與線程讀取的文件數(shù)據(jù)進(jìn)行協(xié)議無(wú)關(guān)性匹配,采用串匹配的快速Boyer-Moore算法。其中,對(duì)網(wǎng)絡(luò)發(fā)送的應(yīng)用層數(shù)據(jù)和文件讀取數(shù)據(jù)進(jìn)行協(xié)議無(wú)關(guān)性匹配,匹配過(guò)程不解析應(yīng)用協(xié)議,直接采用串匹配的快速Boyer-Moore算法(BM算法匹配)。這樣無(wú)論木馬傳輸?shù)膮f(xié)議是HTTP、FTP、還是木馬程序自定義的協(xié)議都可以通過(guò)BM算法搜索讀取的文件數(shù)據(jù)與傳輸?shù)臄?shù)據(jù)進(jìn)行匹配判斷是否是發(fā)送的文件。S104、如果線程讀取的文件為網(wǎng)絡(luò)發(fā)送的文件,并且檢查該線程及線程所屬的進(jìn)程具有隱蔽性,則有木馬竊取文件行為。滿足隱蔽性條件之一即可判別該線程及線程所屬的進(jìn)程具有隱蔽性,隱蔽性條件包括進(jìn)程無(wú)窗口、有窗口但是隱藏、后臺(tái)服務(wù)進(jìn)程、瀏覽器進(jìn)程無(wú)常規(guī)主線程、線程僅包含一個(gè)遠(yuǎn)程注入的線程,通過(guò)識(shí)別服務(wù)后臺(tái)、識(shí)別傀儡進(jìn)程,無(wú)窗口瀏覽器進(jìn)程、判斷是否是非聯(lián)網(wǎng)的系統(tǒng)進(jìn)程等進(jìn)程、線程隱蔽性。
下面給出本發(fā)明基于線程行為的木馬竊取文件檢測(cè)方法的具體實(shí)施方式
,如圖2 所示,包括
S201、安裝驅(qū)動(dòng)HOOK文件,找到內(nèi)核導(dǎo)出函數(shù)中的文件打開(kāi)函數(shù)NtOpenFi 1 e、文件讀取函數(shù)NtReadFile、和網(wǎng)絡(luò)發(fā)送的函數(shù)NtDeviceloControlFile ; 安裝內(nèi)核驅(qū)動(dòng)用于步驟S202中講述的掛鉤內(nèi)核函數(shù)的驅(qū)動(dòng)。S202、通過(guò)對(duì)內(nèi)核導(dǎo)出函數(shù)進(jìn)行^iline Hook,反匯編指令,覆蓋入口,內(nèi)聯(lián)掛鉤監(jiān)視線程的文件操作和網(wǎng)絡(luò)操作;
所述文件操作包括打開(kāi)文件路徑和讀取文件數(shù)據(jù)。S203、將監(jiān)視的線程和線程所屬的進(jìn)程以及截獲的文件操作及文件讀取數(shù)據(jù)和網(wǎng)絡(luò)操作及網(wǎng)絡(luò)發(fā)送數(shù)據(jù)形成行為序列緩沖隊(duì)列。S204、獲取最近線程產(chǎn)生行為數(shù)據(jù),遇到當(dāng)序列里最后一個(gè)操作為發(fā)送數(shù)據(jù)時(shí),進(jìn)行步驟S205。 S205、識(shí)別初步發(fā)送文件模型。判斷當(dāng)序列里最后一個(gè)操作為發(fā)送數(shù)據(jù)時(shí)候,用緩沖隊(duì)列中的行為序列與發(fā)送文件模型進(jìn)行模式匹配;
具體來(lái)說(shuō),每當(dāng)獲得網(wǎng)絡(luò)發(fā)送行為,對(duì)行為序列進(jìn)行模式匹配,識(shí)別打開(kāi)文件_>邏輯讀取文件_>邏輯發(fā)送數(shù)據(jù)_>邏輯讀取文件_>邏輯發(fā)送數(shù)據(jù),這個(gè)模型中讀取文件的操作是邏輯讀取,實(shí)際API可能是多個(gè)數(shù)據(jù)處理抽象為一個(gè)讀取文件邏輯操作,同樣發(fā)送數(shù)據(jù)的API也可能是多個(gè),抽象為一個(gè)發(fā)送,如果匹配成功,并且線程讀取文件數(shù)據(jù)的總大小與線程所訪問(wèn)的文件大小相差不超過(guò)文件大小的30%,則確認(rèn)該線程在進(jìn)行文件發(fā)送,轉(zhuǎn)入步驟S206,否則回到步驟S204,繼續(xù)等待序列里最后一個(gè)操作為發(fā)送數(shù)據(jù)。S206、將網(wǎng)絡(luò)發(fā)送數(shù)據(jù)與線程進(jìn)行文件發(fā)送的數(shù)據(jù)進(jìn)行協(xié)議無(wú)關(guān)性匹配;
將網(wǎng)絡(luò)操作發(fā)送的應(yīng)用層數(shù)據(jù)與線程讀取的文件數(shù)據(jù)進(jìn)行協(xié)議無(wú)關(guān)性匹配,采用串匹配的快速Boyer-Moore算法。如果匹配成功,則線程讀取的文件為網(wǎng)絡(luò)操作發(fā)送的文件, 轉(zhuǎn)入步驟S207,否則回到步驟S204。S207、檢查該線程及線程所屬的進(jìn)程是否具有隱蔽性,如果該線程及線程所屬的進(jìn)程具有隱蔽性,轉(zhuǎn)入步驟S208,否則回到步驟S204 ;
通常滿足隱蔽性條件之一即可判別該線程及線程所屬的進(jìn)程具有隱蔽性,隱蔽性條件包括進(jìn)程無(wú)窗口、有窗口但是隱藏、后臺(tái)服務(wù)進(jìn)程、瀏覽器進(jìn)程無(wú)常規(guī)主線程、線程僅包含一個(gè)遠(yuǎn)程注入的線程,通過(guò)識(shí)別服務(wù)后臺(tái)、識(shí)別傀儡進(jìn)程,無(wú)窗口瀏覽器進(jìn)程、判斷是否是非聯(lián)網(wǎng)的系統(tǒng)進(jìn)程等進(jìn)程、線程隱蔽性。S208、有木馬竊取文件行為。下面舉例說(shuō)明安裝監(jiān)視驅(qū)動(dòng),對(duì)文件與網(wǎng)絡(luò)操作進(jìn)行監(jiān)視,驅(qū)動(dòng)中獲取的信息與上層通信,獲取到的一個(gè)動(dòng)作信息包括如下〈進(jìn)程ID、線程ID、進(jìn)程鏡像、動(dòng)作、數(shù)據(jù)信息 >,將動(dòng)作信息保存到緩沖列表供模型匹配和BM匹配。其中遠(yuǎn)程控制接收指令發(fā)送文件的序列如下 <進(jìn)程ID、線程ID、進(jìn)程鏡像、接收、接收數(shù)據(jù)>
<進(jìn)程ID、線程ID、進(jìn)程鏡像、打開(kāi)文件、讀取文件數(shù)據(jù)> <進(jìn)程ID、線程ID、進(jìn)程鏡像、讀取文件、讀取文件數(shù)據(jù)>
8<進(jìn)程ID、線程ID、進(jìn)程鏡像、發(fā)送、發(fā)送數(shù)據(jù)> <進(jìn)程ID、線程ID、進(jìn)程鏡像、讀取文件、讀取文件數(shù)據(jù)> <進(jìn)程ID、線程ID、進(jìn)程鏡像、發(fā)送、發(fā)送數(shù)據(jù)>
按照上述步驟,通過(guò)對(duì)上述緩沖列表的模型匹配可以初步認(rèn)定線程在發(fā)送文件,然后再對(duì)線程所屬進(jìn)程等環(huán)境檢測(cè)其隱蔽性即可判斷是否是木馬竊取文件。本發(fā)明還提供了一種基于線程行為的木馬竊取文件檢測(cè)系統(tǒng),如圖3所示,該系統(tǒng)包括
內(nèi)核監(jiān)視模塊301,用于監(jiān)視線程的文件操作和網(wǎng)絡(luò)操作;所述文件操作包括打開(kāi)文件路徑和讀取文件數(shù)據(jù);
行為序列維護(hù)模塊302,用于將監(jiān)視的線程和線程所屬的進(jìn)程以及截獲的文件操作及文件讀取數(shù)據(jù)和網(wǎng)絡(luò)操作及網(wǎng)絡(luò)發(fā)送數(shù)據(jù)形成行為序列緩沖隊(duì)列;
邏輯判斷模塊303,用于根據(jù)緩沖隊(duì)列中的行為序列判斷線程讀取的文件是否為網(wǎng)絡(luò)發(fā)送的文件;
如果線程讀取的文件為網(wǎng)絡(luò)發(fā)送的文件,并且檢查該線程及線程所屬的進(jìn)程具有隱蔽性,則有木馬竊取文件行為。內(nèi)核監(jiān)視模塊301具體用于安裝內(nèi)核驅(qū)動(dòng)程序,通過(guò)對(duì)內(nèi)核導(dǎo)出函數(shù)進(jìn)行hline Hook內(nèi)聯(lián)掛鉤監(jiān)視線程的文件操作和網(wǎng)絡(luò)操作。進(jìn)行hi ine Hook內(nèi)聯(lián)掛鉤監(jiān)視線程的文件操作和網(wǎng)絡(luò)操作的內(nèi)核函數(shù)包括文件打開(kāi)函數(shù)NtOpenFile、文件讀取函數(shù)NtReadFile、和網(wǎng)絡(luò)發(fā)送的函數(shù) NtDeviceIoControlFiIe ο邏輯判斷模塊303具體包括
模式匹配模塊3031,用于用緩沖隊(duì)列中的行為序列與發(fā)送文件模型進(jìn)行模式匹配,如果匹配成功,并且線程讀取文件數(shù)據(jù)的總大小與線程所訪問(wèn)的文件大小相差不超過(guò)文件大小的30%,則確認(rèn)該線程在進(jìn)行文件發(fā)送。數(shù)據(jù)匹配模塊3032,將網(wǎng)絡(luò)發(fā)送數(shù)據(jù)與線程進(jìn)行文件發(fā)送的數(shù)據(jù)進(jìn)行協(xié)議無(wú)關(guān)性匹配,如果匹配成功,則線程讀取的文件為網(wǎng)絡(luò)操作發(fā)送的文件;
將網(wǎng)絡(luò)操作發(fā)送的應(yīng)用層數(shù)據(jù)與線程讀取的文件數(shù)據(jù)進(jìn)行協(xié)議無(wú)關(guān)性匹配,采用串匹配的快速Boyer-Moore算法。隱蔽性檢測(cè)模塊3033,用于判別線程及線程所屬的進(jìn)程具有隱蔽性;
滿足隱蔽性條件之一即可判別該線程及線程所屬的進(jìn)程具有隱蔽性,隱蔽性條件包括進(jìn)程無(wú)窗口、有窗口但是隱藏、后臺(tái)服務(wù)進(jìn)程、瀏覽器進(jìn)程無(wú)常規(guī)主線程、線程僅包含一個(gè)遠(yuǎn)程注入的線程。雖然通過(guò)實(shí)施例描繪了本發(fā)明,本領(lǐng)域普通技術(shù)人員知道,本發(fā)明有許多變形和變化而不脫離本發(fā)明的精神,希望所附的權(quán)利要求包括這些變形和變化而不脫離本發(fā)明的精神。
9
權(quán)利要求
1.一種基于線程行為的木馬竊取文件檢測(cè)方法,其特征在于,包括監(jiān)視線程的文件操作和網(wǎng)絡(luò)操作;所述文件操作包括打開(kāi)文件路徑和讀取文件數(shù)據(jù);將監(jiān)視的線程和線程所屬的進(jìn)程以及截獲的文件操作及文件讀取數(shù)據(jù)和網(wǎng)絡(luò)操作及網(wǎng)絡(luò)發(fā)送數(shù)據(jù)形成行為序列緩沖隊(duì)列;根據(jù)緩沖隊(duì)列中的行為序列判斷線程讀取的文件是否為網(wǎng)絡(luò)發(fā)送的文件;如果線程讀取的文件為網(wǎng)絡(luò)發(fā)送的文件,并且檢查該線程及線程所屬的進(jìn)程具有隱蔽性,則有木馬竊取文件行為。
2.如權(quán)利要求1所述的基于線程行為的木馬竊取文件檢測(cè)方法,其特征在于,安裝內(nèi)核驅(qū)動(dòng)程序,通過(guò)對(duì)內(nèi)核導(dǎo)出函數(shù)進(jìn)行hline Hook內(nèi)聯(lián)掛鉤監(jiān)視線程的文件操作和網(wǎng)絡(luò)操作。
3.如權(quán)利要求2所述的基于線程行為的木馬竊取文件檢測(cè)方法,其特征在于,進(jìn)行 Inline Hook內(nèi)聯(lián)掛鉤監(jiān)視線程的文件操作和網(wǎng)絡(luò)操作的內(nèi)核函數(shù)包括文件打開(kāi)函數(shù) NtOpenFile、文件讀取函數(shù) NtReadFile、和網(wǎng)絡(luò)發(fā)送的函數(shù) NtDeviceloControlFile。
4.如權(quán)利要求1所述的基于線程行為的木馬竊取文件檢測(cè)方法,其特征在于,根據(jù)緩沖隊(duì)列中的行為序列判斷線程讀取的文件是否為網(wǎng)絡(luò)發(fā)送的文件,包括用緩沖隊(duì)列中的行為序列與發(fā)送文件模型進(jìn)行模式匹配,如果匹配成功,并且線程讀取文件數(shù)據(jù)的總大小與線程所訪問(wèn)的文件大小相差不超過(guò)文件大小的30%,則確認(rèn)該線程在進(jìn)行文件發(fā)送;將網(wǎng)絡(luò)發(fā)送數(shù)據(jù)與線程進(jìn)行文件發(fā)送的數(shù)據(jù)進(jìn)行協(xié)議無(wú)關(guān)性匹配,如果匹配成功,則線程讀取的文件為網(wǎng)絡(luò)操作發(fā)送的文件。
5.如權(quán)利要求4所述的基于線程行為的木馬竊取文件檢測(cè)方法,其特征在于,將網(wǎng)絡(luò)發(fā)送數(shù)據(jù)與線程進(jìn)行文件發(fā)送的數(shù)據(jù)進(jìn)行協(xié)議無(wú)關(guān)性匹配,采用串匹配的快速 Boyer-Moore 算法。
6.如權(quán)利要求1所述的基于線程行為的木馬竊取文件檢測(cè)方法,其特征在于,滿足隱蔽性條件之一即可判別該線程及線程所屬的進(jìn)程具有隱蔽性,隱蔽性條件包括進(jìn)程無(wú)窗口、有窗口但是隱藏、后臺(tái)服務(wù)進(jìn)程、瀏覽器進(jìn)程無(wú)常規(guī)主線程、線程僅包含一個(gè)遠(yuǎn)程注入的線程。
7.一種基于線程行為的木馬竊取文件檢測(cè)系統(tǒng),其特征在于,包括內(nèi)核監(jiān)視模塊,用于監(jiān)視線程的文件操作和網(wǎng)絡(luò)操作;所述文件操作包括打開(kāi)文件路徑和讀取文件數(shù)據(jù);行為序列維護(hù)模塊,用于將監(jiān)視的線程和線程所屬的進(jìn)程以及截獲的文件操作及文件讀取數(shù)據(jù)和網(wǎng)絡(luò)操作及網(wǎng)絡(luò)發(fā)送數(shù)據(jù)形成行為序列緩沖隊(duì)列;邏輯判斷模塊,用于根據(jù)緩沖隊(duì)列中的行為序列判斷線程讀取的文件是否為網(wǎng)絡(luò)發(fā)送的文件;如果線程讀取的文件為網(wǎng)絡(luò)發(fā)送的文件,并且檢查該線程及線程所屬的進(jìn)程具有隱蔽性,則有木馬竊取文件行為。
8.如權(quán)利要求7所述的基于線程行為的木馬竊取文件檢測(cè)系統(tǒng),其特征在于,內(nèi)核監(jiān)視模塊具體用于安裝內(nèi)核驅(qū)動(dòng)程序,通過(guò)對(duì)內(nèi)核導(dǎo)出函數(shù)進(jìn)行^line Hook內(nèi)聯(lián)掛鉤監(jiān)視線程的文件操作和網(wǎng)絡(luò)操作。
9.如權(quán)利要求8所述的基于線程行為的木馬竊取文件檢測(cè)系統(tǒng),其特征在于,進(jìn)行 Inline Hook內(nèi)聯(lián)掛鉤監(jiān)視線程的文件操作和網(wǎng)絡(luò)操作的內(nèi)核函數(shù)包括文件打開(kāi)函數(shù) NtOpenFile、文件讀取函數(shù) NtReadFile、和網(wǎng)絡(luò)發(fā)送的函數(shù) NtDeviceloControlFile。
10.如權(quán)利要求7所述的基于線程行為的木馬竊取文件檢測(cè)系統(tǒng),其特征在于,邏輯判斷模塊具體包括模式匹配模塊,用于用緩沖隊(duì)列中的行為序列與發(fā)送文件模型進(jìn)行模式匹配,如果匹配成功,并且線程讀取文件數(shù)據(jù)的總大小與線程所訪問(wèn)的文件大小相差不超過(guò)文件大小的 30%,則確認(rèn)該線程在進(jìn)行文件發(fā)送;數(shù)據(jù)匹配模塊,將網(wǎng)絡(luò)發(fā)送數(shù)據(jù)與線程進(jìn)行文件發(fā)送的數(shù)據(jù)進(jìn)行協(xié)議無(wú)關(guān)性匹配,如果匹配成功,則線程讀取的文件為網(wǎng)絡(luò)操作發(fā)送的文件;隱蔽性檢測(cè)模塊,用于判別線程及線程所屬的進(jìn)程具有隱蔽性。
11.如權(quán)利要求10所述的基于線程行為的木馬竊取文件檢測(cè)系統(tǒng),其特征在于, 將網(wǎng)絡(luò)發(fā)送數(shù)據(jù)與線程進(jìn)行文件發(fā)送的數(shù)據(jù)進(jìn)行協(xié)議無(wú)關(guān)性匹配,采用串匹配的快速 Boyer-Moore 算法。
12.如權(quán)利要求7或10所述的基于線程行為的木馬竊取文件檢測(cè)系統(tǒng),其特征在于,滿足隱蔽性條件之一即可判別該線程及線程所屬的進(jìn)程具有隱蔽性,隱蔽性條件包括進(jìn)程無(wú)窗口、有窗口但是隱藏、后臺(tái)服務(wù)進(jìn)程、瀏覽器進(jìn)程無(wú)常規(guī)主線程、線程僅包含一個(gè)遠(yuǎn)程注入的線程。
全文摘要
本發(fā)明提供了一種基于線程行為的木馬竊取文件檢測(cè)方法,包括監(jiān)視線程的文件操作和網(wǎng)絡(luò)操作;將監(jiān)視的線程和線程所屬的進(jìn)程以及截獲的文件操作及文件讀取數(shù)據(jù)和網(wǎng)絡(luò)操作及網(wǎng)絡(luò)發(fā)送數(shù)據(jù)形成行為序列緩沖隊(duì)列;根據(jù)緩沖隊(duì)列中的行為序列判斷線程讀取的文件是否為網(wǎng)絡(luò)發(fā)送的文件;如果線程讀取的文件為網(wǎng)絡(luò)發(fā)送的文件,并且檢查該線程及線程所屬的進(jìn)程具有隱蔽性,則有木馬竊取文件行為。本發(fā)明還提供了一種基于線程行為的木馬竊取文件檢測(cè)系統(tǒng)。本方法和系統(tǒng)極大減少對(duì)正常文件傳輸?shù)恼`報(bào),提高對(duì)木馬竊取文件的檢測(cè)。
文檔編號(hào)G06F21/00GK102394859SQ201110211059
公開(kāi)日2012年3月28日 申請(qǐng)日期2011年7月27日 優(yōu)先權(quán)日2011年7月27日
發(fā)明者康學(xué)斌, 肖新光 申請(qǐng)人:哈爾濱安天科技股份有限公司