本發(fā)明涉及計算機安全技術(shù)領(lǐng)域,更具體地涉及一種惡意代碼未知自啟動識別方法及系統(tǒng)。
背景技術(shù):
隨著網(wǎng)絡和計算技術(shù)的快速發(fā)展,惡意代碼的啟動方式在逐漸增強,同時互聯(lián)網(wǎng)的開發(fā)性也加快了惡意代碼自啟動技術(shù)的傳播,特別是人們可以直接從網(wǎng)站獲得惡意代碼源碼或通過網(wǎng)絡交流代碼。因此目前網(wǎng)絡上流行的惡意代碼啟動方式層次不窮,種類繁多,特點多樣化。通常,需要惡意代碼分析人員對于未知的惡意代碼樣本進行惡意程序信息結(jié)構(gòu)上的識別、受害者系統(tǒng)中的特征監(jiān)控識別、動態(tài)調(diào)試中的樣本代碼識別、以及反編譯樣本的深度行為識別來提取惡意代碼未知自啟動。對于處理到的結(jié)果也需要人工進行篩選和整理,最終梳理判別出是否為未知的自啟動操作,整個過程非常的耗費時間和精力。
目前的病毒樣本的自啟動方式主要分為已知的啟動目錄啟動、win.ini等配置文件啟動、注冊表啟動、腳本啟動、驅(qū)動文件啟動、創(chuàng)建服務啟動、劫持系統(tǒng)進程啟動、文件關(guān)聯(lián)啟動等自啟動方式。目前,對于未知的啟動項的預防與識別響應方法不夠完善。
技術(shù)實現(xiàn)要素:
為了解決上述技術(shù)問題,提供了根據(jù)本發(fā)明的一種惡意代碼未知自啟動識別方法及系統(tǒng)。
根據(jù)本發(fā)明的第一方面,提供了一種惡意代碼未知自啟動識別方法。該方法包括:
基于運行未知啟動項的惡意代碼,提取并記錄所述惡意代碼的特征信息,產(chǎn)生模塊集合;監(jiān)控系統(tǒng)重啟惡意代碼在運行中新釋放模塊的重新加載,判斷模塊集合中任一模塊在注冊表中出現(xiàn),則對所述任一模塊的自啟動行為提取取樣信息;掃描系統(tǒng)重啟運行時的進程或內(nèi)存,判斷模塊集合中任一模塊在進程或內(nèi)存中出現(xiàn),則對所述任一模塊的自啟動行為提取取樣信息;對所述自啟動行為進行提示。
在一些實施例中,所述方法包括:
將所述取樣信息與已知的自啟動樣本庫進行比外,若未匹配到,則所述取樣信息對應自啟動行為為未知自啟動行為,整理所述取樣信息入庫。
在一些實施例中,所述提示是通過日志記錄標識為未知自啟動行為。
在一些實施例中,所述取樣信息包括加載所述任一模塊的程序加載行為信息、加載所述任一模塊的內(nèi)存數(shù)據(jù)、所述任一模塊的內(nèi)存數(shù)據(jù)。
在一些實施例中,所述特征信息包括進程結(jié)構(gòu)體信息、模塊調(diào)用信息、dll調(diào)用信息、句柄調(diào)用信息、父子進程信息、堆棧調(diào)用信息、注冊表中變化的鍵值信息、系統(tǒng)文件的hash值。
根據(jù)本發(fā)明的第二方面,提供一種惡意代碼未知自啟動識別系統(tǒng),包括:
提取模塊,用于基于運行未知啟動項的惡意代碼,提取并記錄所述惡意代碼的特征信息,產(chǎn)生模塊集合;第一識別模塊,用于監(jiān)控系統(tǒng)重啟惡意代碼在運行中新釋放模塊的重新加載,判斷模塊集合中任一模塊在注冊表中出現(xiàn),則對所述任一模塊的自啟動行為提取取樣信息;第二識別模塊,用于掃描系統(tǒng)重啟運行時的進程或內(nèi)存,判斷模塊集合中任一模塊在進程或內(nèi)存中出現(xiàn),則對所述任一模塊的自啟動行為提取取樣信息;提示模塊,用于對所述自啟動行為進行提示。
在一些實施例中,所述系統(tǒng)還包括:
整理模塊,用于將所述取樣信息與已知的自啟動樣本庫進行比外,若未匹配到,則所述取樣信息對應自啟動行為為未知自啟動行為,整理所述取樣信息入庫。
在一些實施例中,所述提示是通過日志記錄標識為未知自啟動行為。
在一些實施例中,所述取樣信息包括加載所述任一模塊的程序加載行為信息、加載所述任一模塊的內(nèi)存數(shù)據(jù)、所述任一模塊的內(nèi)存數(shù)據(jù)。
在一些實施例中,所述特征信息包括進程結(jié)構(gòu)體信息、模塊調(diào)用信息、dll調(diào)用信息、句柄調(diào)用信息、父子進程信息、堆棧調(diào)用信息、注冊表中變化的鍵值信息、系統(tǒng)文件的hash值。
可以在虛擬化沙箱中運行樣本記錄其進程、模塊和注冊表等操作,產(chǎn)生的模塊集合在重啟沙箱系統(tǒng)后對系統(tǒng)啟動進行監(jiān)控,然后重啟系統(tǒng)檢測樣本模塊、注冊表鍵值、進程內(nèi)存等行為,進而可以快速的識別惡意代碼是否存在自啟動行為,做出相應響應。對于新的病毒樣本,能夠迅速針對惡意代碼是否有未知自啟動行為做出檢出。該技術(shù)可以對大批量樣本的未知自啟動方式進行歸類劃分,同時形成模塊集合特征庫可以用來對樣本自啟動類型進行判別,對惡意代碼自啟動的演化過程進行數(shù)據(jù)分析。
附圖說明
為了更清楚地說明本發(fā)明的技術(shù)方案,下面將對實施例中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明中記載的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為根據(jù)本發(fā)明實施例的一種惡意代碼未知自啟動識別方法的流程圖;
圖2為根據(jù)本發(fā)明實施例的一種惡意代碼未知自啟動識別系統(tǒng)的框圖。
具體實施方式
下面參照附圖對本發(fā)明的優(yōu)選實施例進行詳細說明,在描述過程中省略了對于本發(fā)明來說是不必要的細節(jié)和功能,以防止對本發(fā)明的理解造成混淆。雖然附圖中顯示了示例性實施例,然而應當理解,可以以各種形式實現(xiàn)本發(fā)明而不應被這里闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈景l(fā)明的范圍完整的傳達給本領(lǐng)域的技術(shù)人員。
在下文中,涉及到惡意代碼運行都是基于虛擬化沙箱技術(shù)于沙箱中運行,在將所有惡意代碼啟動和運行產(chǎn)生的操作數(shù)據(jù)統(tǒng)稱為“特征信息”,以方便描述。
圖1示出了根據(jù)本發(fā)明實施例的一種惡意代碼未知自啟動識別方法的流程圖。如圖1所示,方法包括如下步驟:
s110,基于運行未知啟動項的惡意代碼。
基于虛擬化沙箱技術(shù)于沙箱系統(tǒng)中運行惡意代碼,惡意代碼在系統(tǒng)啟動和運行過程中,記錄其進程、模塊和注冊表等操作。
s120,提取并記錄惡意代碼的特征信息,產(chǎn)生模塊集合。
提取并記錄惡意代碼的特征信息,產(chǎn)生含有惡意代碼特征信息的模塊集合。其中,特征信息包括但不限于進程結(jié)構(gòu)體信息、模塊調(diào)用信息、dll調(diào)用信息、句柄調(diào)用信息、父子進程信息、堆棧調(diào)用信息、注冊表中變化的鍵值信息、系統(tǒng)文件的hash值。
s130,重啟系統(tǒng)環(huán)境后,監(jiān)控惡意代碼在運行中新釋放模塊的重新加載。
重啟沙箱系統(tǒng)后,在監(jiān)控識別未知樣本自啟動時,于虛擬化沙箱系統(tǒng)中運行惡意代碼,發(fā)現(xiàn)新釋放模塊的重新加載。監(jiān)控該樣本是否有重新活動跡象,進而區(qū)別樣本是否為活性樣本。
s140,判斷模塊集合中任一模塊在注冊表中出現(xiàn),如果出現(xiàn),則執(zhí)行s170,如果沒有出現(xiàn),則沒有自啟動行為。
基于模塊集合對注冊表中重新加載的新釋放模塊進行比對,判斷是否有惡意代碼模塊集合中任一模塊的進程、模塊、注冊表等特征信息行為在注冊表中出現(xiàn)。
s150,掃描系統(tǒng)重啟運行時的進程或內(nèi)存。
系統(tǒng)完全重啟后對系統(tǒng)進行掃描,在掃描識別未知樣本自啟動時,于虛擬化沙箱系統(tǒng)中運行惡意代碼后,對系統(tǒng)進程或內(nèi)存進行掃描。
s160,判斷模塊集合中任一模塊在進程或內(nèi)存中出現(xiàn),如果出現(xiàn),則執(zhí)行s170,如果沒有出現(xiàn),則沒有自啟動行為。
基于模塊集合的特征信息對進程或內(nèi)存中的模塊特征信息進行比對,判斷是否有惡意代碼模塊集合中任一模塊的進程、模塊、注冊表等特征信息行為在進程或內(nèi)存中出現(xiàn),以此來對惡意代碼樣本是否為活性做一個判斷。
s170,對任一模塊的自啟動行為提取取樣信息。
取樣信息包括加載任一模塊的程序加載行為信息、加載任一模塊的內(nèi)存數(shù)據(jù)、任一模塊的內(nèi)存數(shù)據(jù)。
s180,對自啟動行為進行提示。
本實例中,提示是通過日志記錄標識為未知自啟動。
利用模塊集合對系統(tǒng)啟動進行監(jiān)控或掃描內(nèi)存,進而可以快速的相應識別惡意代碼未知啟動項,做出相應響應。
s190,針對提取到的自啟動行為相關(guān)取樣信息與已知的自啟動樣本庫進行比對,識別未知自啟動行為進行樣本信息入庫。
在系統(tǒng)啟動時監(jiān)控得到的取樣信息和系統(tǒng)啟動后掃描得到的取樣信息與已知的自啟動樣本庫進行比對,若未匹配到相同的自啟動樣本信息,則說明該樣本自啟動為未知自啟動行為,對樣本自啟動行為信息進行整理入庫。若匹配到相同的自啟動樣本信息,則說明該樣本自啟動為已知自啟動行為。
圖2為根據(jù)本發(fā)明實施例的一種惡意代碼未知自啟動識別系統(tǒng)的框圖。如圖2所述,系統(tǒng)可以包括:提取模塊210、第一識別模塊220、第二識別模塊230、提示模塊240。
提取模塊210,用于基于運行未知啟動項的惡意代碼,提取并記錄惡意代碼的特征信息,產(chǎn)生模塊集合。
其中,特征信息包括但不限于進程結(jié)構(gòu)體信息、模塊調(diào)用信息、dll調(diào)用信息、句柄調(diào)用信息、父子進程信息、堆棧調(diào)用信息、注冊表中變化的鍵值信息、系統(tǒng)文件的hash值。
第一識別模塊220,用于監(jiān)控系統(tǒng)重啟惡意代碼在運行中新釋放模塊的重新加載,判斷模塊集合中任一模塊在注冊表中出現(xiàn),則對任一模塊的自啟動行為提取取樣信息。
第二識別模塊230,用于掃描系統(tǒng)重啟運行時的進程或內(nèi)存,判斷模塊集合中任一模塊在進程或內(nèi)存中出現(xiàn),則對任一模塊的自啟動行為提取取樣信息。
其中,取樣信息包括加載任一模塊的程序加載行為信息、加載任一模塊的內(nèi)存數(shù)據(jù)、任一模塊的內(nèi)存數(shù)據(jù)。
提示模塊240,用于對自啟動行為進行提示。
其中,提示是通過日志記錄標識為未知自啟動。
在一些實施例中,還包括:
整理模塊250,用于將取樣信息與已知的自啟動樣本庫進行比外,若未匹配到,則取樣信息對應自啟動行為為未知自啟動行為,整理該取樣信息入庫。
本發(fā)明基于虛擬化沙箱技術(shù)于沙箱中運行惡意代碼記錄其進程、模塊和注冊表等操作,產(chǎn)生的模塊集合對感染系統(tǒng)啟動進行監(jiān)控識別,對于惡意代碼的釋放模塊自啟動加載、注冊表自啟動鍵值、進程內(nèi)存中的自啟動模塊加載都能夠準確掃描、識別,并進行提示。通過這種方法可以對大批量樣本的未知自啟動方式進行歸類劃分,同時形成模塊集合特征庫可以用來對樣本自啟動類型進行判別,對惡意代碼自啟動的演化過程進行數(shù)據(jù)分析。
至此已經(jīng)結(jié)合優(yōu)選實施例對本發(fā)明進行了描述。應該理解,本領(lǐng)域技術(shù)人員在不脫離本發(fā)明的精神和范圍的情況下,可以進行各種其它的改變、替換和添加。因此,本發(fā)明的范圍不局限于上述特定實施例,而應由所附權(quán)利要求所限定。