本發(fā)明涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,具體涉及一種目標(biāo)樣本文件的檢測方法和裝置。
背景技術(shù):
隨著互聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,人們對于網(wǎng)絡(luò)的使用愈加頻繁,通過網(wǎng)絡(luò)可以進行工作、學(xué)習(xí)、生活、娛樂等多方面的事宜,給人們帶來了極大的便利。然而,當(dāng)前互聯(lián)網(wǎng)技術(shù)中存在系統(tǒng)級的內(nèi)核漏洞,這些漏洞給惡意開發(fā)者以可乘之機,惡意開發(fā)者們通過威脅樣本文件利用這些漏洞對各種客戶端、服務(wù)端所在的終端進行攻擊,獲取用戶的個人信息,威脅用戶的信息安全,給用戶的人身、財產(chǎn)等方面損失。其中特別地,惡意開發(fā)者們在通過威脅樣本文件進行漏洞利用的過程中,常常采用修改進程屬性的手段來獲取系統(tǒng)級權(quán)限進而執(zhí)行非法操作。
因此,如何有效、全面地對互聯(lián)網(wǎng)中進行漏洞利用攻擊的可疑樣本進行挖掘、檢測和處理,是當(dāng)前亟待解決的重要問題。
技術(shù)實現(xiàn)要素:
鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的目標(biāo)樣本文件的檢測方法和裝置。
依據(jù)本發(fā)明的一個方面,提供了一種目標(biāo)樣本文件的檢測方法,包括:
從數(shù)據(jù)源接收目標(biāo)樣本文件,將所述目標(biāo)樣本文件投放到沙箱中運行;
監(jiān)聽所述目標(biāo)樣本文件在沙箱中運行的過程中是否發(fā)生進程屬性修改事件;
是則,確定所述目標(biāo)樣本文件是威脅樣本文件;
否則,確定所述目標(biāo)樣本文件不是威脅樣本文件。
可選地,所述將所述目標(biāo)樣本文件投放到沙箱中運行包括:
在沙箱中創(chuàng)建所述目標(biāo)樣本文件對應(yīng)的進程,通過該進程執(zhí)行所述目標(biāo)樣本文件在沙箱中的運行;
在創(chuàng)建所述目標(biāo)樣本文件對應(yīng)的進程時,記錄所述目標(biāo)樣本文件對應(yīng)的進程的初始屬性值。
可選地,所述監(jiān)聽所述目標(biāo)樣本文件在沙箱中運行的過程中是否發(fā)生進程屬性修改事件包括:
監(jiān)聽所述目標(biāo)樣本文件在沙箱中執(zhí)行的指定操作事件;
當(dāng)監(jiān)聽到指定操作事件發(fā)生時,攔截所述指定操作事件,獲取當(dāng)前所述目標(biāo)樣本文件對應(yīng)的進程的指定屬性值;
將當(dāng)前所述目標(biāo)樣本文件對應(yīng)的進程的指定屬性值與所述目標(biāo)樣本文件對應(yīng)的進程的初始屬性值進行匹配,如果至少一項匹配不成功,確定所述目標(biāo)樣本文件在沙箱中運行的過程中發(fā)生進程屬性修改事件;否則,確定所述目標(biāo)樣本文件在沙箱中運行的過程中未發(fā)生進程屬性修改事件。
可選地,所述目標(biāo)樣本文件對應(yīng)的進程的初始屬性值包括如下一種或多種:Privileges屬性值、UserSID屬性值、OwnerSID屬性值;
所述當(dāng)前所述目標(biāo)樣本文件對應(yīng)的進程的指定屬性值包括如下一種或多種:所述目標(biāo)樣本文件對應(yīng)的進程的令牌中的Privileges屬性值、TokenUser屬性值、TokenOwner屬性值。
可選地,所述監(jiān)聽所述目標(biāo)樣本文件在沙箱中運行的過程中是否發(fā)生進程屬性修改事件包括:
監(jiān)聽所述目標(biāo)樣本文件在沙箱中執(zhí)行的指定操作事件;
當(dāng)監(jiān)聽到指定操作事件發(fā)生時,攔截所述指定操作事件;
判斷當(dāng)前所述目標(biāo)樣本文件對應(yīng)的進程的令牌的訪問控制列表是否處于置空狀態(tài),是則,確定所述目標(biāo)樣本文件在沙箱中運行的過程中發(fā)生進程屬性修改事件;否則,確定所述目標(biāo)樣本文件在沙箱中運行的過程中未發(fā)生進程屬性修改事件。
可選地,該方法進一步包括:
當(dāng)確定所述目標(biāo)樣本文件在沙箱中運行的過程中發(fā)生進程屬性修改事件時,強制結(jié)束所述指定操作事件;
當(dāng)確定所述目標(biāo)樣本文件在沙箱中運行的過程中未發(fā)生進程屬性修改事件時,允許所述指定操作事件繼續(xù)執(zhí)行。
可選地,所述指定操作事件包括:對執(zhí)行指定操作的函數(shù)進行調(diào)用的事件;
所述指定操作包括:對沙箱中的內(nèi)存、特權(quán)、注冊表、進程、線程、和/或文件進行創(chuàng)建和/或讀寫的操作。
可選地,所述監(jiān)聽所述目標(biāo)樣本文件在沙箱中執(zhí)行的指定操作事件包括:
在執(zhí)行指定操作的函數(shù)上掛載鉤子函數(shù),攔截指示對執(zhí)行所述指定操作的函數(shù)進行調(diào)用的消息;
判斷所述指示對執(zhí)行所述指定操作的函數(shù)進行調(diào)用的消息的發(fā)送者是否為所述目標(biāo)樣本文件;
是則,確定監(jiān)聽到所述目標(biāo)樣本文件在沙箱中執(zhí)行的指定操作事件,否則放行所述指示對執(zhí)行所述指令操作的函數(shù)進行調(diào)用的消息。
可選地,該方法進一步包括:
記錄所述目標(biāo)樣本文件在沙箱中運行的運行日志;
當(dāng)確定所述目標(biāo)樣本文件是威脅樣本文件時,根據(jù)所述目標(biāo)樣本文件在沙箱中運行的運行日志獲得所述目標(biāo)樣本文件相關(guān)的特征信息;
將所述目標(biāo)樣本相關(guān)的特征信息放入威脅數(shù)據(jù)庫中。
可選地,所述目標(biāo)樣本文件相關(guān)的特征信息包括:
目標(biāo)樣本文件的靜態(tài)特征信息,
和/或,
目標(biāo)樣本文件的行為特征信息。
可選地,該方法進一步包括:
將所述目標(biāo)樣本相關(guān)的特征信息反饋給數(shù)據(jù)源。
依據(jù)本發(fā)明的另一個方面,提供了一種目標(biāo)樣本文件的檢測裝置,包括:
樣本接收單元,適于從數(shù)據(jù)源接收目標(biāo)樣本文件;
檢測處理單元,適于將所述目標(biāo)樣本文件投放到沙箱中運行,監(jiān)聽所述目標(biāo)樣本文件在沙箱中運行的過程中是否發(fā)生進程屬性修改事件;是則,確定所述目標(biāo)樣本文件是威脅樣本文件;否則,確定所述目標(biāo)樣本文件不是威脅樣本文件。
可選地,所述檢測處理單元,適于在沙箱中創(chuàng)建所述目標(biāo)樣本文件對應(yīng)的進程,通過該進程執(zhí)行所述目標(biāo)樣本文件在沙箱中的運行;在創(chuàng)建所述目標(biāo)樣本文件對應(yīng)的進程時,記錄所述目標(biāo)樣本文件對應(yīng)的進程的初始屬性值。
可選地,所述檢測處理單元,適于監(jiān)聽所述目標(biāo)樣本文件在沙箱中執(zhí)行的指定操作事件;當(dāng)監(jiān)聽到指定操作事件發(fā)生時,攔截所述指定操作事件,獲取當(dāng)前所述目標(biāo)樣本文件對應(yīng)的進程的指定屬性值;將當(dāng)前所述目標(biāo)樣本文件對應(yīng)的進程的指定屬性值與所述目標(biāo)樣本文件對應(yīng)的進程的初始屬性值進行匹配,如果至少一項匹配不成功,確定所述目標(biāo)樣本文件在沙箱中運行的過程中發(fā)生進程屬性修改事件;否則,確定所述目標(biāo)樣本文件在沙箱中運行的過程中未發(fā)生進程屬性修改事件。
可選地,所述目標(biāo)樣本文件對應(yīng)的進程的初始屬性值包括如下一種或多種:Privileges屬性值、UserSID屬性值、OwnerSID屬性值;
所述當(dāng)前所述目標(biāo)樣本文件對應(yīng)的進程的指定屬性值包括如下一種或多種:所述目標(biāo)樣本文件對應(yīng)的進程的令牌中的Privileges屬性值、TokenUser屬性值、TokenOwner屬性值。
可選地,所述檢測處理單元,適于監(jiān)聽所述目標(biāo)樣本文件在沙箱中執(zhí)行的指定操作事件;當(dāng)監(jiān)聽到指定操作事件發(fā)生時,攔截所述指定操作事件;判斷當(dāng)前所述目標(biāo)樣本文件對應(yīng)的進程的令牌的訪問控制列表是否處于置空狀態(tài),是則,確定所述目標(biāo)樣本文件在沙箱中運行的過程中發(fā)生進程屬性修改事件;否則,確定所述目標(biāo)樣本文件在沙箱中運行的過程中未發(fā)生進程屬性修改事件。
可選地,所述檢測處理單元,進一步適于當(dāng)確定所述目標(biāo)樣本文件在沙箱中運行的過程中發(fā)生進程屬性修改事件時,強制結(jié)束所述指定操作事件;當(dāng)確定所述目標(biāo)樣本文件在沙箱中運行的過程中未發(fā)生進程屬性修改事件時,允許所述指定操作事件繼續(xù)執(zhí)行。
可選地,所述指定操作事件包括:對執(zhí)行指定操作的函數(shù)進行調(diào)用的事件;
所述指定操作包括:對沙箱中的內(nèi)存、特權(quán)、注冊表、進程、線程、和/或文件進行創(chuàng)建和/或讀寫的操作。
可選地,所述檢測處理單元,適于在執(zhí)行指定操作的函數(shù)上掛載鉤子函數(shù),攔截指示對執(zhí)行所述指定操作的函數(shù)進行調(diào)用的消息;判斷所述指示對執(zhí)行所述指定操作的函數(shù)進行調(diào)用的消息的發(fā)送者是否為所述目標(biāo)樣本文件;是則,確定監(jiān)聽到所述目標(biāo)樣本文件在沙箱中執(zhí)行的指定操作事件,否則放行所述指示對執(zhí)行所述指令操作的函數(shù)進行調(diào)用的消息。
可選地,所述檢測處理單元,進一步適于記錄所述目標(biāo)樣本文件在沙箱中運行的運行日志;當(dāng)確定所述目標(biāo)樣本文件是威脅樣本文件時,根據(jù)所述目標(biāo)樣本文件在沙箱中運行的運行日志獲得所述目標(biāo)樣本文件相關(guān)的特征信息;將所述目標(biāo)樣本相關(guān)的特征信息放入威脅數(shù)據(jù)庫中。
可選地,所述目標(biāo)樣本文件相關(guān)的特征信息包括:
目標(biāo)樣本文件的靜態(tài)特征信息,
和/或,
目標(biāo)樣本文件的行為特征信息。
可選地,所述檢測處理單元,進一步適于將所述目標(biāo)樣本相關(guān)的特征信息反饋給數(shù)據(jù)源。
由上述可知,根據(jù)本發(fā)明的技術(shù)方案將從數(shù)據(jù)源接收的目標(biāo)樣本文件投放到沙箱中進行檢測,當(dāng)檢測出目標(biāo)樣本文件在沙箱中運行的過程中發(fā)生進程屬性修改事件時,確定目標(biāo)樣本文件為威脅樣本文件。本方案以沙箱作為虛擬載體運行目標(biāo)樣本文件,能夠清晰地檢測到目標(biāo)樣本文件的所有運行軌跡,全面分析得到目標(biāo)樣本文件相關(guān)的特征信息,根據(jù)目標(biāo)樣本文件相關(guān)的特征信息可以更為準(zhǔn)確地判斷所述目標(biāo)樣本文件在虛擬機中運行的過程中是否發(fā)生進程屬性修改事件,進而確定出威脅樣本文件,為后續(xù)信息安全防護提供參考和依據(jù)。
上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點能夠更明顯易懂,以下特舉本發(fā)明的具體實施方式。
附圖說明
通過閱讀下文優(yōu)選實施方式的詳細(xì)描述,各種其他的優(yōu)點和益處對于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實施方式的目的,而并不認(rèn)為是對本發(fā)明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中:
圖1示出了根據(jù)本發(fā)明一個實施例的一種目標(biāo)樣本文件的檢測方法的流程圖;
圖2示出了根據(jù)本發(fā)明一個實施例的一種目標(biāo)樣本文件的檢測裝置的示意圖。
具體實施方式
下面將參照附圖更詳細(xì)地描述本公開的示例性實施例。雖然附圖中顯示了本公開的示例性實施例,然而應(yīng)當(dāng)理解,可以以各種形式實現(xiàn)本公開而不應(yīng)被這里闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。
圖1示出了根據(jù)本發(fā)明一個實施例的一種目標(biāo)樣本文件的檢測方法的流程圖。如圖1所示,該方法包括:
步驟S110,從數(shù)據(jù)源接收目標(biāo)樣本文件。
步驟S120,將所述目標(biāo)樣本文件投放到沙箱中運行;監(jiān)聽所述目標(biāo)樣本文件在沙箱中運行的過程中是否發(fā)生進程屬性修改事件。
步驟S130,是則,確定所述目標(biāo)樣本文件是威脅樣本文件。
步驟S140,否則,確定所述目標(biāo)樣本文件不是威脅樣本文件。
可見,圖1所示的方法將從數(shù)據(jù)源接收的目標(biāo)樣本文件投放到沙箱中進行檢測,當(dāng)檢測出目標(biāo)樣本文件在沙箱中運行的過程中發(fā)生進程屬性修改事件時,確定目標(biāo)樣本文件為威脅樣本文件。本方案以沙箱作為虛擬載體運行目標(biāo)樣本文件,能夠清晰地檢測到目標(biāo)樣本文件的所有運行軌跡,全面分析得到目標(biāo)樣本文件相關(guān)的特征信息,根據(jù)目標(biāo)樣本文件相關(guān)的特征信息可以更為準(zhǔn)確地判斷所述目標(biāo)樣本文件在虛擬機中運行的過程中是否發(fā)生進程屬性修改事件,進而確定出威脅樣本文件,為后續(xù)信息安全防護提供參考和依據(jù)。
在本發(fā)明的一個實施例中,圖1所示的方法進一步包括:記錄所述目標(biāo)樣本文件在沙箱中運行的運行日志;當(dāng)確定所述目標(biāo)樣本文件是威脅樣本文件時,根據(jù)所述目標(biāo)樣本文件在沙箱中運行的運行日志獲得所述目標(biāo)樣本文件相關(guān)的特征信息;將所述目標(biāo)樣本相關(guān)的特征信息放入威脅數(shù)據(jù)庫中。
其中,通過分析目標(biāo)樣本文件對應(yīng)的運行日志得到的目標(biāo)樣本文件相關(guān)的特征信息包括:目標(biāo)樣本文件的靜態(tài)特征信息,和/或,目標(biāo)樣本文件的行為特征信息。也就是說,對于放入沙箱中運行的目標(biāo)樣本文件,無論是該目標(biāo)樣本文件的靜態(tài)特征,還是該目標(biāo)樣本文件在運行過程中的動態(tài)行為特征,均可以被解構(gòu)出來,均可以從本方案的視角觀察到,即掌握了一個目標(biāo)樣本文件的完整的檔案,進而對于該目標(biāo)樣本文件是不是具有威脅的威脅樣本、如果是威脅樣本如何對該可疑樣本進行預(yù)防、查殺等問題均可以找到準(zhǔn)確的答案。
隨著本方案的不斷實施,所掌握的目標(biāo)樣本文件的檔案不斷被完善,即威脅數(shù)據(jù)庫中的數(shù)據(jù)不斷被完善。在本發(fā)明的一個實施例中,上述將判定為威脅樣本的目標(biāo)樣本文件相關(guān)的特征信息放入威脅數(shù)據(jù)庫中包括:根據(jù)所述判定為威脅樣本的可疑樣本相關(guān)的特征信息對威脅數(shù)據(jù)庫中原有的數(shù)據(jù)進行更新。
進一步地,圖1所述的方法還可以將所述目標(biāo)樣本相關(guān)的特征信息反饋給數(shù)據(jù)源。可以看到,在本方案中,從數(shù)據(jù)源接收目標(biāo)樣本文件,對目標(biāo)樣本文件進行檢測實現(xiàn)對威脅數(shù)據(jù)庫的補充更新,威脅數(shù)據(jù)庫向數(shù)據(jù)源推送補目標(biāo)樣本文件相關(guān)的特征信息,數(shù)據(jù)源根據(jù)該推送的目標(biāo)樣本文件相關(guān)的特征信息進行打點記錄,更精確地攔截、記錄目標(biāo)樣本文件,以及向威脅數(shù)據(jù)庫反饋推送結(jié)果,形成了正反饋閉環(huán),能夠不斷地擴充完善各種類型的目標(biāo)樣本文件的完整的特征信息的管理,目標(biāo)樣本文件的特征信息越完善清晰,越能夠找到預(yù)防查殺威脅樣本的策略,并可以及時將預(yù)防查殺威脅樣本的策略統(tǒng)一推送到數(shù)據(jù)源中對于各個數(shù)據(jù)源的預(yù)防查殺策略進行統(tǒng)一的調(diào)整,建立起非常嚴(yán)密的安全防護機制,從更高的格局保障互聯(lián)網(wǎng)信息安全。
在本發(fā)明的一個實施例中,本方案檢測所述目標(biāo)樣本文件在沙箱中運行的過程中是否發(fā)生進程屬性修改事件包括以下兩種方案:
方案一,步驟S120將所述目標(biāo)樣本文件投放到沙箱中運行包括:在沙箱中創(chuàng)建所述目標(biāo)樣本文件對應(yīng)的進程,通過該進程執(zhí)行所述目標(biāo)樣本文件在沙箱中的運行;在創(chuàng)建所述目標(biāo)樣本文件對應(yīng)的進程時,記錄所述目標(biāo)樣本文件對應(yīng)的進程的初始屬性值。
則步驟S120監(jiān)聽所述目標(biāo)樣本文件在沙箱中運行的過程中是否發(fā)生進程屬性修改事件包括:
步驟S121,監(jiān)聽所述目標(biāo)樣本文件在沙箱中執(zhí)行的指定操作事件。
步驟S122,當(dāng)監(jiān)聽到指定操作事件發(fā)生時,攔截所述指定操作事件,獲取當(dāng)前所述目標(biāo)樣本文件對應(yīng)的進程的指定屬性值。
步驟S123,將當(dāng)前所述目標(biāo)樣本文件對應(yīng)的進程的指定屬性值與所述目標(biāo)樣本文件對應(yīng)的進程的初始屬性值進行匹配,如果至少一項匹配不成功,確定所述目標(biāo)樣本文件在沙箱中運行的過程中發(fā)生進程屬性修改事件;否則,確定所述目標(biāo)樣本文件在沙箱中運行的過程中未發(fā)生進程屬性修改事件。
方案二,步驟S120監(jiān)聽所述目標(biāo)樣本文件在沙箱中運行的過程中是否發(fā)生進程屬性修改事件包括:
步驟S121’,監(jiān)聽所述目標(biāo)樣本文件在沙箱中執(zhí)行的指定操作事件。
步驟S122’,當(dāng)監(jiān)聽到指定操作事件發(fā)生時,攔截所述指定操作事件。
步驟S123’,判斷當(dāng)前所述目標(biāo)樣本文件對應(yīng)的進程的令牌的訪問控制列表是否處于置空狀態(tài),是則,確定所述目標(biāo)樣本文件在沙箱中運行的過程中發(fā)生進程屬性修改事件;否則,確定所述目標(biāo)樣本文件在沙箱中運行的過程中未發(fā)生進程屬性修改事件。
在上述方案一或方案二的基礎(chǔ)上,進一步地,上述過程還包括:
步驟S124,當(dāng)確定所述目標(biāo)樣本文件在沙箱中運行的過程中發(fā)生進程屬性修改事件時,強制結(jié)束所述指定操作事件。
步驟S125,當(dāng)確定所述目標(biāo)樣本文件在沙箱中運行的過程中未發(fā)生進程屬性修改事件時,允許所述指定操作事件繼續(xù)執(zhí)行。
其中具體地,上述指定操作事件包括:對執(zhí)行指定操作的函數(shù)進行調(diào)用的事件;所述指定操作包括:對沙箱中的內(nèi)存、特權(quán)、注冊表、進程、線程、和/或文件進行創(chuàng)建和/或讀寫的操作。則上述步驟S121或步驟S121’中監(jiān)聽所述目標(biāo)樣本文件在沙箱中執(zhí)行的指定操作事件包括:在執(zhí)行指定操作的函數(shù)上掛載鉤子函數(shù),攔截指示對執(zhí)行所述指定操作的函數(shù)進行調(diào)用的消息;判斷所述指示對執(zhí)行所述指定操作的函數(shù)進行調(diào)用的消息的發(fā)送者是否為所述目標(biāo)樣本文件;是則,確定監(jiān)聽到所述目標(biāo)樣本文件在沙箱中執(zhí)行的指定操作事件,否則放行所述指示對執(zhí)行所述指令操作的函數(shù)進行調(diào)用的消息。
通過一個具體的例子來說明本方案的實施過程:基于現(xiàn)有技術(shù)中惡意的威脅樣本文件通常采取對自身進程屬性進行修改的方式獲得系統(tǒng)權(quán)限,進而執(zhí)行惡意操作危害用戶信息安全的手段,本方案旨在于服務(wù)器側(cè)創(chuàng)建沙箱作為目標(biāo)樣本文件的虛擬運行載體,通過監(jiān)控目標(biāo)樣本文件在沙箱中運行的過程中是否發(fā)生進程屬性修改事件來獲知是否發(fā)生內(nèi)核漏洞利用的事件,即通過威脅樣本文件在沙箱中的行為特征來動態(tài)地確定目標(biāo)樣本文件是否為威脅樣本文件。本例中,沙箱中包括4個模塊:Agent.exe,虛擬機通信代理模塊,負(fù)責(zé)檢測模塊和樣本文件的接收,Analyzer進程的創(chuàng)建,與虛擬機外部服務(wù)器端進程實時數(shù)據(jù)交互、日志和文件傳遞。Analyzer.exe,內(nèi)部調(diào)度管控模塊,負(fù)責(zé)樣本文件類型識別、LoadHP進程的創(chuàng)建,內(nèi)部檢測超時設(shè)定和限制,操作系統(tǒng)屏幕模擬點擊實現(xiàn),屏幕截取實現(xiàn),與Agent的數(shù)據(jù)通信。LoadHP.exe,檢測輔助操作模塊,負(fù)責(zé)加載檢測主模塊驅(qū)動程序,通過配置文件選項控制各檢測功能開關(guān),與核心模塊驅(qū)動程序之間通信和交互,樣本文件進程的啟動。Honeypot.sys,檢測實現(xiàn)核心模塊,驅(qū)動程序?qū)崿F(xiàn)。在操作系統(tǒng)內(nèi)核中設(shè)置進程創(chuàng)建回調(diào)通知、對指定的內(nèi)核API掛鉤,在HOOK處理函數(shù)中判定進程是否提權(quán),打點并生成檢測結(jié)果日志等。
在從數(shù)據(jù)源接收到目標(biāo)樣本本件,將目標(biāo)樣本文件投放到沙箱中運行,則本例在Agent.exe、Analyzer.exe和Honeypot.sys三個模塊的交互下,利用Honeypot.sys驅(qū)動程序來對目標(biāo)樣本文件在沙箱中運行的過程中是否發(fā)生進程屬性修改事件進行檢測,具體流程如下:
1、Honeypot.sys驅(qū)動程序在加載時初始化驅(qū)動程序必須的相關(guān)數(shù)據(jù)結(jié)構(gòu)對象和變量。
2、Honeypot.sys驅(qū)動程序進行初始化,根據(jù)用戶層進程LoadHP.exe發(fā)送的IO控制碼執(zhí)行相關(guān)的初始化操作,創(chuàng)建日志記錄線程。Honeypot在接收到標(biāo)記為“內(nèi)核利用監(jiān)控”的IO控制碼時,根據(jù)傳入Buffer的數(shù)據(jù),選擇進入對應(yīng)的分發(fā)處理例程中。監(jiān)聽所述目標(biāo)樣本文件在沙箱中執(zhí)行的指定操作事件,具體方式是:HOOK SSDT中對沙箱中的內(nèi)存、特權(quán)、注冊表、進程、線程、和/或文件進行創(chuàng)建和/或讀寫等操作的敏感API,并設(shè)置新的進程創(chuàng)建通知回調(diào)例程。
3、Honeypot.sys驅(qū)動程序開啟監(jiān)控,根據(jù)LoadHP.exe發(fā)送的相關(guān)IOCTL開啟內(nèi)核層行為監(jiān)控總控開關(guān)。
4.通知和記錄,在系統(tǒng)創(chuàng)建新進程時,進入前面設(shè)置的進程創(chuàng)建通知例程,將新進程添加進進程創(chuàng)建記錄LIST,以及,在該例程中記錄新創(chuàng)建的進程的初始屬性值,如在目標(biāo)樣本文件對應(yīng)的進程被創(chuàng)建時,記錄目標(biāo)樣本文件對應(yīng)的進程的如下一種或多種初始屬性值:Privileges屬性值、UserSID屬性值、OwnerSID屬性值等屬性值。
5.監(jiān)控和檢測,檢測目標(biāo)樣本文件在虛擬機中運行的過程中是否發(fā)生系統(tǒng)進程令牌替換事件:通過對前述指定操作行為的各敏感API的HOOK,當(dāng)上述敏感API在新創(chuàng)建的進程中被調(diào)用時,攔截該調(diào)用事件,先跳轉(zhuǎn)到本方案自己實現(xiàn)的Fake函數(shù)中,在Fake函數(shù)中判斷當(dāng)前進程是否在前面維護的進程LIST中,因為進程LIST中記錄的均是系統(tǒng)創(chuàng)建的進程,則當(dāng)前判斷的目的是判斷當(dāng)前調(diào)用事件的發(fā)起方是否為目標(biāo)樣本文件對應(yīng)的進程或者是否為目標(biāo)樣本文件所創(chuàng)建的進程,如果是的話,說明是目標(biāo)樣本文件所執(zhí)行的操作,進行系統(tǒng)進程Token替換的檢測。
具體地,在調(diào)用原API之前,獲取當(dāng)前所述目標(biāo)樣本文件對應(yīng)的進程的如下一種或多種指定屬性值:所述目標(biāo)樣本文件對應(yīng)的進程的令牌中的Privileges屬性值、TokenUser屬性值、TokenOwner屬性值。將當(dāng)前所述目標(biāo)樣本文件對應(yīng)的進程的指定屬性值與所述目標(biāo)樣本文件對應(yīng)的進程的初始屬性值進行匹配,即比對這3個數(shù)據(jù)和該進程創(chuàng)建時記錄的初始Privileges、UserSID、OwnerSID是否相同,如果至少一項匹配不成功,則判斷檢出該樣本進程提權(quán),確定所述目標(biāo)樣本文件在沙箱中運行的過程中發(fā)生進程屬性修改事件,目標(biāo)樣本文件為威脅樣本文件,打點并按照格式生成檢測結(jié)果日志,將日志Buffer插入日志緩沖LIST;否則,確定所述目標(biāo)樣本文件在沙箱中運行的過程中未發(fā)生進程屬性修改事件,目標(biāo)樣本文件不是威脅樣本文件。則如果檢測結(jié)束后,如果目標(biāo)樣本數(shù)據(jù)不是威脅樣本,在Fake函數(shù)中調(diào)用原敏感API繼續(xù)執(zhí)行,并向Caller返回其返回的值。
檢測過程的最后一步,在確定目標(biāo)樣本文件為威脅文件時:
6.日志生成,在Honeypot日志記錄線程中,持續(xù)不斷地檢查日志緩沖LIST中是否又新的日志Buffer插入。將新的日志Buffer追加寫入到配置選項中指定路徑的配置文件中,并釋放日志緩沖LIST中該日志Buffer的節(jié)點。
對本例中生成檢測結(jié)果日志的細(xì)節(jié)進行說明:該方案打點檢出日志生成形式為緩存方式打點。檢出日志被暫存于日志緩沖LIST中。日志記錄線程輪詢該日志緩沖LIST并依照FIFO的方式依次處理各日志節(jié)點,將檢測結(jié)果日志內(nèi)容追加寫入日志記錄文件actions.log中,在檢測完成后由外部相關(guān)調(diào)度模塊進程獲取并處理該日志文件。其中,檢測結(jié)果日志中的打點數(shù)據(jù)包括:環(huán)境和文件基本信息,檢出功能點觸發(fā)數(shù)據(jù)等。其中環(huán)境和文件基本信息以流水日志等形式輸出,檢出功能點觸發(fā)數(shù)據(jù)以行為日志actions.log的形式輸出。如檢測結(jié)果日志中包括:1.環(huán)境和文件基本信息:樣本進程文件MD5,進樣本程文件路徑,主要系統(tǒng)模塊名稱和文件版本等。2.檢出功能點觸發(fā)數(shù)據(jù):對于進程Token屬性值檢測來說,進程ID,線程ID,Privileges掩碼描述序列,UserSID,OwnerSID,檢出時所在Hooked API等。
在本發(fā)明的一個實施例中,除了檢測所述目標(biāo)樣本文件在虛擬機中運行的過程中是否發(fā)生內(nèi)核漏洞利用之外,還有相關(guān)的輔助檢測流程,包括檢測進程保護機制和檢測文件保護機制:
檢測進程保護機制用于保護檢測模塊相關(guān)進程地址空間,防止被虛擬機沙箱逃逸的惡意樣本進程訪問、釋放或泄漏,導(dǎo)致檢測模塊機密信息失竊。初步的準(zhǔn)備工作包括:1.LoadHP.exe,在LoadHP進程加載驅(qū)動階段完成后,讀取Honeypot.ini配置文件中的“ourproc”等字段的值,并解析獲得1個或多個檢測模塊的進程名,通過進程名獲取檢測模塊各進程的PID,依次通過IO控制碼方式發(fā)送給Honeypot驅(qū)動程序。2.Honeypot.sys,Honeypot在接收到標(biāo)記為“進程ID過濾”的IO控制碼時,從輸入Buffer中獲取當(dāng)次傳遞的PID的值,并根據(jù)PID獲取對應(yīng)進程EPROCESS地址,將該EPROCESS指針插入進程過濾LIST。在此基礎(chǔ)上,輔助檢測過程包括:HOOK對進程、線程、內(nèi)存地址空間操作的關(guān)鍵NTAPI,在Fake函數(shù)中針對上下背景文所在進程的EPROCESS地址和操作目標(biāo)進程的EPROCESS地址,在上述進程過濾LIST中進行匹配。如果上下背景文進程EPROCESS地址不在進程過濾LIST中,而操作目標(biāo)進程EPROCESS地址在進程過濾LIST中成功匹配,則可判定其他進程試圖訪問檢測模塊各進程集中的某個進程。進行阻止,返回拒絕訪問的狀態(tài)碼,不繼續(xù)向下調(diào)用,以終止當(dāng)前上下背景文進程對該API的調(diào)用。如果未能成功匹配,則屬于對應(yīng)API正常調(diào)用的其他情況。不進行阻止,繼續(xù)調(diào)用原API向下執(zhí)行,并向Caller返回其返回的值。
檢測文件保護機制用于保護檢測模塊和檢測結(jié)果日志相關(guān)各文件目錄,防止被某些樣本進程訪問、篡改、加密、損毀,造成檢測失敗或結(jié)果異常,影響沙箱系統(tǒng)穩(wěn)定和性能。初步的準(zhǔn)備工作包括:1.LoadHP.exe,在LoadHP進程加載驅(qū)動階段完成后,讀取Honeypot.ini配置文件中的“ourpath”等字段的值,并解析獲得1個或多個檢測結(jié)果日志的目錄路徑名,將各路徑Buffer依次通過IO控制碼方式發(fā)送給Honeypot驅(qū)動程序。2.Honeypot.sys,Honeypot在接收到標(biāo)記為“私有目錄”的IO控制碼時,從輸入Buffer中獲取當(dāng)次傳遞的目錄路徑的Buffer,并根據(jù)Buffer構(gòu)造UNICODE_STRING字符串對象,將該字符串對象插入私有目錄LIST。在此基礎(chǔ)上,輔助檢測過程包括:注冊文件系統(tǒng)過濾,實現(xiàn)各主要IRP分發(fā)函數(shù)。在READ,WRITE,CREATE,SET_INFORMATION,DIRECTORY_CONTROL等分發(fā)函數(shù)的自實現(xiàn)函數(shù)體中,判斷當(dāng)前IRP中FILE_OBJECT的文件路徑UNICODE_STRING對象是否能夠在私有目錄LIST中成功匹配。如果未能成功匹配,則當(dāng)前操作不是對檢測日志目錄或檢測模塊目錄進行的,跳過當(dāng)前棧單元,并將IRP繼續(xù)向下分發(fā)。如果成功匹配,意味著當(dāng)前文件操作確實是針對檢測日志目錄或檢測模塊目錄進行的。這時獲取上下背景文進程的EPROCESS地址,并判斷該EPROCESS地址是否能夠在“檢測進程保護”機制中的進程過濾LIST中成功匹配。如果成功匹配,則判定屬于檢測模塊進程自身對檢測日志目錄和檢測模塊目錄的訪問,跳過當(dāng)前棧單元,并將IRP繼續(xù)向下分發(fā)。如果未能成功匹配,意味著屬于第三方的進程訪問檢測日志目錄或檢測模塊目錄。賦值IRP的IO狀態(tài)域拒絕訪問等錯誤碼,完成IRP的IO請求,返回當(dāng)前IRP分發(fā)函數(shù),使當(dāng)前的文件訪問操作失敗。
圖2示出了根據(jù)本發(fā)明一個實施例的一種目標(biāo)樣本文件的檢測裝置的示意圖。如圖2所示,目標(biāo)樣本文件的檢測裝置200包括:
樣本接收單元210,適于從數(shù)據(jù)源接收目標(biāo)樣本文件。
檢測處理單元220,適于將所述目標(biāo)樣本文件投放到沙箱中運行,監(jiān)聽所述目標(biāo)樣本文件在沙箱中運行的過程中是否發(fā)生進程屬性修改事件;是則,確定所述目標(biāo)樣本文件是威脅樣本文件;否則,確定所述目標(biāo)樣本文件不是威脅樣本文件。
可見,圖2所示的裝置將從數(shù)據(jù)源接收的目標(biāo)樣本文件投放到沙箱中進行檢測,當(dāng)檢測出目標(biāo)樣本文件在沙箱中運行的過程中發(fā)生進程屬性修改事件時,確定目標(biāo)樣本文件為威脅樣本文件。本方案以沙箱作為虛擬載體運行目標(biāo)樣本文件,能夠清晰地檢測到目標(biāo)樣本文件的所有運行軌跡,全面分析得到目標(biāo)樣本文件相關(guān)的特征信息,根據(jù)目標(biāo)樣本文件相關(guān)的特征信息可以更為準(zhǔn)確地判斷所述目標(biāo)樣本文件在虛擬機中運行的過程中是否發(fā)生進程屬性修改事件,進而確定出威脅樣本文件,為后續(xù)信息安全防護提供參考和依據(jù)。
在本發(fā)明的一個實施例中,檢測處理單元220,適于在沙箱中創(chuàng)建所述目標(biāo)樣本文件對應(yīng)的進程,通過該進程執(zhí)行所述目標(biāo)樣本文件在沙箱中的運行;在創(chuàng)建所述目標(biāo)樣本文件對應(yīng)的進程時,記錄所述目標(biāo)樣本文件對應(yīng)的進程的初始屬性值。
則,檢測處理單元220,適于監(jiān)聽所述目標(biāo)樣本文件在沙箱中執(zhí)行的指定操作事件;當(dāng)監(jiān)聽到指定操作事件發(fā)生時,攔截所述指定操作事件,獲取當(dāng)前所述目標(biāo)樣本文件對應(yīng)的進程的指定屬性值;將當(dāng)前所述目標(biāo)樣本文件對應(yīng)的進程的指定屬性值與所述目標(biāo)樣本文件對應(yīng)的進程的初始屬性值進行匹配,如果至少一項匹配不成功,確定所述目標(biāo)樣本文件在沙箱中運行的過程中發(fā)生進程屬性修改事件;否則,確定所述目標(biāo)樣本文件在沙箱中運行的過程中未發(fā)生進程屬性修改事件。
其中,所述目標(biāo)樣本文件對應(yīng)的進程的初始屬性值包括如下一種或多種:Privileges屬性值、UserSID屬性值、OwnerSID屬性值;所述當(dāng)前所述目標(biāo)樣本文件對應(yīng)的進程的指定屬性值包括如下一種或多種:所述目標(biāo)樣本文件對應(yīng)的進程的令牌中的Privileges屬性值、TokenUser屬性值、TokenOwner屬性值。
在本發(fā)明的另一個實施例中,檢測處理單元220,適于監(jiān)聽所述目標(biāo)樣本文件在沙箱中執(zhí)行的指定操作事件;當(dāng)監(jiān)聽到指定操作事件發(fā)生時,攔截所述指定操作事件;判斷當(dāng)前所述目標(biāo)樣本文件對應(yīng)的進程的令牌的訪問控制列表是否處于置空狀態(tài),是則,確定所述目標(biāo)樣本文件在沙箱中運行的過程中發(fā)生進程屬性修改事件;否則,確定所述目標(biāo)樣本文件在沙箱中運行的過程中未發(fā)生進程屬性修改事件。
進一步地,檢測處理單元220,還適于當(dāng)確定所述目標(biāo)樣本文件在沙箱中運行的過程中發(fā)生進程屬性修改事件時,強制結(jié)束所述指定操作事件;當(dāng)確定所述目標(biāo)樣本文件在沙箱中運行的過程中未發(fā)生進程屬性修改事件時,允許所述指定操作事件繼續(xù)執(zhí)行。
其中,所述指定操作事件包括:對執(zhí)行指定操作的函數(shù)進行調(diào)用的事件;所述指定操作包括:對沙箱中的內(nèi)存、特權(quán)、注冊表、進程、線程、和/或文件進行創(chuàng)建和/或讀寫的操作。
具體地,檢測處理單元220,適于在執(zhí)行指定操作的函數(shù)上掛載鉤子函數(shù),攔截指示對執(zhí)行所述指定操作的函數(shù)進行調(diào)用的消息;判斷所述指示對執(zhí)行所述指定操作的函數(shù)進行調(diào)用的消息的發(fā)送者是否為所述目標(biāo)樣本文件;是則,確定監(jiān)聽到所述目標(biāo)樣本文件在沙箱中執(zhí)行的指定操作事件,否則放行所述指示對執(zhí)行所述指令操作的函數(shù)進行調(diào)用的消息。
在本發(fā)明的一個實施例中,檢測處理單元220,進一步適于記錄所述目標(biāo)樣本文件在沙箱中運行的運行日志;當(dāng)確定所述目標(biāo)樣本文件是威脅樣本文件時,根據(jù)所述目標(biāo)樣本文件在沙箱中運行的運行日志獲得所述目標(biāo)樣本文件相關(guān)的特征信息;將所述目標(biāo)樣本相關(guān)的特征信息放入威脅數(shù)據(jù)庫中。
其中,所述目標(biāo)樣本文件相關(guān)的特征信息包括:目標(biāo)樣本文件的靜態(tài)特征信息,和/或,目標(biāo)樣本文件的行為特征信息。
在本發(fā)明的一個實施例中,檢測處理單元220,進一步適于將所述目標(biāo)樣本相關(guān)的特征信息反饋給數(shù)據(jù)源。
需要說明的是,圖2所示裝置的具體實施例與圖1所示方法的各實施例對應(yīng)相同,上文中已進行了詳細(xì)說明,在此不再贅述。
綜上所述,本發(fā)明的技術(shù)方案將從數(shù)據(jù)源接收的目標(biāo)樣本文件投放到沙箱中進行檢測,當(dāng)檢測出目標(biāo)樣本文件在沙箱中運行的過程中發(fā)生進程屬性修改事件時,確定目標(biāo)樣本文件為威脅樣本文件。本方案以沙箱作為虛擬載體運行目標(biāo)樣本文件,能夠清晰地檢測到目標(biāo)樣本文件的所有運行軌跡,全面分析得到目標(biāo)樣本文件相關(guān)的特征信息,根據(jù)目標(biāo)樣本文件相關(guān)的特征信息可以更為準(zhǔn)確地判斷所述目標(biāo)樣本文件在虛擬機中運行的過程中是否發(fā)生進程屬性修改事件,進而確定出威脅樣本文件,為后續(xù)信息安全防護提供參考和依據(jù)。
需要說明的是:
在此提供的算法和顯示不與任何特定計算機、虛擬裝置或者其它設(shè)備固有相關(guān)。各種通用裝置也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類裝置所要求的結(jié)構(gòu)是顯而易見的。此外,本發(fā)明也不針對任何特定編程語言。應(yīng)當(dāng)明白,可以利用各種編程語言實現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對特定語言所做的描述是為了披露本發(fā)明的最佳實施方式。
在此處所提供的說明書中,說明了大量具體細(xì)節(jié)。然而,能夠理解,本發(fā)明的實施例可以在沒有這些具體細(xì)節(jié)的情況下實踐。在一些實例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對本說明書的理解。
類似地,應(yīng)當(dāng)理解,為了精簡本公開并幫助理解各個發(fā)明方面中的一個或多個,在上面對本發(fā)明的示例性實施例的描述中,本發(fā)明的各個特征有時被一起分組到單個實施例、圖、或者對其的描述中。然而,并不應(yīng)將該公開的方法解釋成反映如下意圖:即所要求保護的本發(fā)明要求比在每個權(quán)利要求中所明確記載的特征更多的特征。更確切地說,如下面的權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個實施例的所有特征。因此,遵循具體實施方式的權(quán)利要求書由此明確地并入該具體實施方式,其中每個權(quán)利要求本身都作為本發(fā)明的單獨實施例。
本領(lǐng)域那些技術(shù)人員可以理解,可以對實施例中的設(shè)備中的模塊進行自適應(yīng)性地改變并且把它們設(shè)置在與該實施例不同的一個或多個設(shè)備中。可以把實施例中的模塊或單元或組件組合成一個模塊或單元或組件,以及此外可以把它們分成多個子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設(shè)備的所有過程或單元進行組合。除非另外明確陳述,本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的每個特征可以由提供相同、等同或相似目的的替代特征來代替。
此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實施例包括其它實施例中所包括的某些特征而不是其它特征,但是不同實施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實施例。例如,在下面的權(quán)利要求書中,所要求保護的實施例的任意之一都可以以任意的組合方式來使用。
本發(fā)明的各個部件實施例可以以硬件實現(xiàn),或者以在一個或者多個處理器上運行的軟件模塊實現(xiàn),或者以它們的組合實現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可以在實踐中使用微處理器或者數(shù)字信號處理器(DSP)來實現(xiàn)根據(jù)本發(fā)明實施例的目標(biāo)樣本文件的檢測裝置中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者裝置程序(例如,計算機程序和計算機程序產(chǎn)品)。這樣的實現(xiàn)本發(fā)明的程序可以存儲在計算機可讀介質(zhì)上,或者可以具有一個或者多個信號的形式。這樣的信號可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號上提供,或者以任何其他形式提供。
應(yīng)該注意的是上述實施例對本發(fā)明進行說明而不是對本發(fā)明進行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計出替換實施例。在權(quán)利要求中,不應(yīng)將位于括號之間的任何參考符號構(gòu)造成對權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個”不排除存在多個這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當(dāng)編程的計算機來實現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個可以是通過同一個硬件項來具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序??蓪⑦@些單詞解釋為名稱。
本發(fā)明公開了A1、一種目標(biāo)樣本文件的檢測方法,其中,包括:
從數(shù)據(jù)源接收目標(biāo)樣本文件,將所述目標(biāo)樣本文件投放到沙箱中運行;
監(jiān)聽所述目標(biāo)樣本文件在沙箱中運行的過程中是否發(fā)生進程屬性修改事件;
是則,確定所述目標(biāo)樣本文件是威脅樣本文件;
否則,確定所述目標(biāo)樣本文件不是威脅樣本文件。
A2、如A1所述的方法,其中,所述將所述目標(biāo)樣本文件投放到沙箱中運行包括:
在沙箱中創(chuàng)建所述目標(biāo)樣本文件對應(yīng)的進程,通過該進程執(zhí)行所述目標(biāo)樣本文件在沙箱中的運行;
在創(chuàng)建所述目標(biāo)樣本文件對應(yīng)的進程時,記錄所述目標(biāo)樣本文件對應(yīng)的進程的初始屬性值。
A3、如A2所述的方法,其中,所述監(jiān)聽所述目標(biāo)樣本文件在沙箱中運行的過程中是否發(fā)生進程屬性修改事件包括:
監(jiān)聽所述目標(biāo)樣本文件在沙箱中執(zhí)行的指定操作事件;
當(dāng)監(jiān)聽到指定操作事件發(fā)生時,攔截所述指定操作事件,獲取當(dāng)前所述目標(biāo)樣本文件對應(yīng)的進程的指定屬性值;
將當(dāng)前所述目標(biāo)樣本文件對應(yīng)的進程的指定屬性值與所述目標(biāo)樣本文件對應(yīng)的進程的初始屬性值進行匹配,如果至少一項匹配不成功,確定所述目標(biāo)樣本文件在沙箱中運行的過程中發(fā)生進程屬性修改事件;否則,確定所述目標(biāo)樣本文件在沙箱中運行的過程中未發(fā)生進程屬性修改事件。
A4、如A3所述的方法,其中,所述目標(biāo)樣本文件對應(yīng)的進程的初始屬性值包括如下一種或多種:Privileges屬性值、UserSID屬性值、OwnerSID屬性值;
所述當(dāng)前所述目標(biāo)樣本文件對應(yīng)的進程的指定屬性值包括如下一種或多種:所述目標(biāo)樣本文件對應(yīng)的進程的令牌中的Privileges屬性值、TokenUser屬性值、TokenOwner屬性值。
A5、如A1所述的方法,其中,所述監(jiān)聽所述目標(biāo)樣本文件在沙箱中運行的過程中是否發(fā)生進程屬性修改事件包括:
監(jiān)聽所述目標(biāo)樣本文件在沙箱中執(zhí)行的指定操作事件;
當(dāng)監(jiān)聽到指定操作事件發(fā)生時,攔截所述指定操作事件;
判斷當(dāng)前所述目標(biāo)樣本文件對應(yīng)的進程的令牌的訪問控制列表是否處于置空狀態(tài),是則,確定所述目標(biāo)樣本文件在沙箱中運行的過程中發(fā)生進程屬性修改事件;否則,確定所述目標(biāo)樣本文件在沙箱中運行的過程中未發(fā)生進程屬性修改事件。
A6、如A3或A5所述的方法,其中,該方法進一步包括:
當(dāng)確定所述目標(biāo)樣本文件在沙箱中運行的過程中發(fā)生進程屬性修改事件時,強制結(jié)束所述指定操作事件;
當(dāng)確定所述目標(biāo)樣本文件在沙箱中運行的過程中未發(fā)生進程屬性修改事件時,允許所述指定操作事件繼續(xù)執(zhí)行。
A7、如A6所述的方法,其中,所述指定操作事件包括:對執(zhí)行指定操作的函數(shù)進行調(diào)用的事件;
所述指定操作包括:對沙箱中的內(nèi)存、特權(quán)、注冊表、進程、線程、和/或文件進行創(chuàng)建和/或讀寫的操作。
A8、如A7所述的方法,其中,所述監(jiān)聽所述目標(biāo)樣本文件在沙箱中執(zhí)行的指定操作事件包括:
在執(zhí)行指定操作的函數(shù)上掛載鉤子函數(shù),攔截指示對執(zhí)行所述指定操作的函數(shù)進行調(diào)用的消息;
判斷所述指示對執(zhí)行所述指定操作的函數(shù)進行調(diào)用的消息的發(fā)送者是否為所述目標(biāo)樣本文件;
是則,確定監(jiān)聽到所述目標(biāo)樣本文件在沙箱中執(zhí)行的指定操作事件,否則放行所述指示對執(zhí)行所述指令操作的函數(shù)進行調(diào)用的消息。
A9、如A1所述的方法,其中,該方法進一步包括:
記錄所述目標(biāo)樣本文件在沙箱中運行的運行日志;
當(dāng)確定所述目標(biāo)樣本文件是威脅樣本文件時,根據(jù)所述目標(biāo)樣本文件在沙箱中運行的運行日志獲得所述目標(biāo)樣本文件相關(guān)的特征信息;
將所述目標(biāo)樣本相關(guān)的特征信息放入威脅數(shù)據(jù)庫中。
A10、如A9所述的方法,其中,所述目標(biāo)樣本文件相關(guān)的特征信息包括:
目標(biāo)樣本文件的靜態(tài)特征信息,
和/或,
目標(biāo)樣本文件的行為特征信息。
A11、如A9所述的方法,其中,該方法進一步包括:
將所述目標(biāo)樣本相關(guān)的特征信息反饋給數(shù)據(jù)源。
本發(fā)明還公開了B12、一種目標(biāo)樣本文件的檢測裝置,其中,包括:
樣本接收單元,適于從數(shù)據(jù)源接收目標(biāo)樣本文件;
檢測處理單元,適于將所述目標(biāo)樣本文件投放到沙箱中運行,監(jiān)聽所述目標(biāo)樣本文件在沙箱中運行的過程中是否發(fā)生進程屬性修改事件;是則,確定所述目標(biāo)樣本文件是威脅樣本文件;否則,確定所述目標(biāo)樣本文件不是威脅樣本文件。
B13、如B12所述的裝置,其中,
所述檢測處理單元,適于在沙箱中創(chuàng)建所述目標(biāo)樣本文件對應(yīng)的進程,通過該進程執(zhí)行所述目標(biāo)樣本文件在沙箱中的運行;在創(chuàng)建所述目標(biāo)樣本文件對應(yīng)的進程時,記錄所述目標(biāo)樣本文件對應(yīng)的進程的初始屬性值。
B14、如B13所述的裝置,其中,
所述檢測處理單元,適于監(jiān)聽所述目標(biāo)樣本文件在沙箱中執(zhí)行的指定操作事件;當(dāng)監(jiān)聽到指定操作事件發(fā)生時,攔截所述指定操作事件,獲取當(dāng)前所述目標(biāo)樣本文件對應(yīng)的進程的指定屬性值;將當(dāng)前所述目標(biāo)樣本文件對應(yīng)的進程的指定屬性值與所述目標(biāo)樣本文件對應(yīng)的進程的初始屬性值進行匹配,如果至少一項匹配不成功,確定所述目標(biāo)樣本文件在沙箱中運行的過程中發(fā)生進程屬性修改事件;否則,確定所述目標(biāo)樣本文件在沙箱中運行的過程中未發(fā)生進程屬性修改事件。
B15、如B14所述的裝置,其中,所述目標(biāo)樣本文件對應(yīng)的進程的初始屬性值包括如下一種或多種:Privileges屬性值、UserSID屬性值、OwnerSID屬性值;
所述當(dāng)前所述目標(biāo)樣本文件對應(yīng)的進程的指定屬性值包括如下一種或多種:所述目標(biāo)樣本文件對應(yīng)的進程的令牌中的Privileges屬性值、TokenUser屬性值、TokenOwner屬性值。
B16、如B12所述的裝置,其中,
所述檢測處理單元,適于監(jiān)聽所述目標(biāo)樣本文件在沙箱中執(zhí)行的指定操作事件;當(dāng)監(jiān)聽到指定操作事件發(fā)生時,攔截所述指定操作事件;判斷當(dāng)前所述目標(biāo)樣本文件對應(yīng)的進程的令牌的訪問控制列表是否處于置空狀態(tài),是則,確定所述目標(biāo)樣本文件在沙箱中運行的過程中發(fā)生進程屬性修改事件;否則,確定所述目標(biāo)樣本文件在沙箱中運行的過程中未發(fā)生進程屬性修改事件。
B17、如B14或B16所述的裝置,其中,
所述檢測處理單元,進一步適于當(dāng)確定所述目標(biāo)樣本文件在沙箱中運行的過程中發(fā)生進程屬性修改事件時,強制結(jié)束所述指定操作事件;當(dāng)確定所述目標(biāo)樣本文件在沙箱中運行的過程中未發(fā)生進程屬性修改事件時,允許所述指定操作事件繼續(xù)執(zhí)行。
B18、如B17所述的裝置,其中,所述指定操作事件包括:對執(zhí)行指定操作的函數(shù)進行調(diào)用的事件;
所述指定操作包括:對沙箱中的內(nèi)存、特權(quán)、注冊表、進程、線程、和/或文件進行創(chuàng)建和/或讀寫的操作。
B19、如B18所述的裝置,其中,
所述檢測處理單元,適于在執(zhí)行指定操作的函數(shù)上掛載鉤子函數(shù),攔截指示對執(zhí)行所述指定操作的函數(shù)進行調(diào)用的消息;判斷所述指示對執(zhí)行所述指定操作的函數(shù)進行調(diào)用的消息的發(fā)送者是否為所述目標(biāo)樣本文件;是則,確定監(jiān)聽到所述目標(biāo)樣本文件在沙箱中執(zhí)行的指定操作事件,否則放行所述指示對執(zhí)行所述指令操作的函數(shù)進行調(diào)用的消息。
B20、如B12所述的裝置,其中,
所述檢測處理單元,進一步適于記錄所述目標(biāo)樣本文件在沙箱中運行的運行日志;當(dāng)確定所述目標(biāo)樣本文件是威脅樣本文件時,根據(jù)所述目標(biāo)樣本文件在沙箱中運行的運行日志獲得所述目標(biāo)樣本文件相關(guān)的特征信息;將所述目標(biāo)樣本相關(guān)的特征信息放入威脅數(shù)據(jù)庫中。
B21、如B20所述的裝置,其中,所述目標(biāo)樣本文件相關(guān)的特征信息包括:
目標(biāo)樣本文件的靜態(tài)特征信息,
和/或,
目標(biāo)樣本文件的行為特征信息。
B22、如B20所述的裝置,其中,
所述檢測處理單元,進一步適于將所述目標(biāo)樣本相關(guān)的特征信息反饋給數(shù)據(jù)源。