計(jì)算機(jī)系統(tǒng)和計(jì)算機(jī)相關(guān)技術(shù)的使用繼續(xù)高速增長。計(jì)算機(jī)系統(tǒng)使用的這種增長影響了計(jì)算機(jī)相關(guān)技術(shù)的進(jìn)展。計(jì)算機(jī)系統(tǒng)的確已日益成為商業(yè)領(lǐng)域和個(gè)人消費(fèi)者活動(dòng)密不可分的一部分。計(jì)算機(jī)系統(tǒng)可用于執(zhí)行若干商業(yè)、工業(yè)和學(xué)術(shù)活動(dòng)。包括互聯(lián)網(wǎng)的計(jì)算機(jī)網(wǎng)絡(luò)的使用增長加快了計(jì)算機(jī)的廣泛使用。
許多企業(yè)使用一個(gè)或多個(gè)計(jì)算機(jī)網(wǎng)絡(luò)來在連接到這些網(wǎng)絡(luò)的各計(jì)算機(jī)之間傳送和共享數(shù)據(jù)。雇員的生產(chǎn)力和效率經(jīng)常需要人與計(jì)算機(jī)交互。計(jì)算機(jī)技術(shù)的用戶繼續(xù)需要這些技術(shù)的效率得到提高。使用并依賴于計(jì)算機(jī)的任何人總是希望計(jì)算機(jī)技術(shù)的效率得到提升。
計(jì)算機(jī)和移動(dòng)設(shè)備的廣泛使用已經(jīng)導(dǎo)致存在更多的惡意程序,諸如隱匿程序、間諜軟件、特洛伊木馬等。惡意軟件程序設(shè)計(jì)者不斷適應(yīng)于惡意軟件檢測(cè)技術(shù)的進(jìn)步,這形成了惡意軟件技術(shù)適應(yīng)惡意軟件檢測(cè)技術(shù)進(jìn)步的持續(xù)循環(huán)。
技術(shù)實(shí)現(xiàn)要素:
根據(jù)至少一個(gè)實(shí)施例,描述了一種識(shí)別可疑事件來源的計(jì)算機(jī)實(shí)施的方法。在一個(gè)實(shí)施例中,可在數(shù)據(jù)庫中登記系統(tǒng)事件。在一些情況下,經(jīng)由內(nèi)核模式驅(qū)動(dòng)程序登記系統(tǒng)事件。系統(tǒng)事件可包括計(jì)算機(jī)系統(tǒng)中發(fā)生的任何可檢測(cè)的事件。在一些情況下,系統(tǒng)事件可包括進(jìn)程啟動(dòng)事件、文件系統(tǒng)事件等。可檢測(cè)與第一進(jìn)程相關(guān)聯(lián)的可疑事件,并且可將該第一進(jìn)程識(shí)別為多個(gè)潛在傀儡進(jìn)程中的一個(gè)。可查詢數(shù)據(jù)庫中已登記的系統(tǒng)事件以識(shí)別第二進(jìn)程,其中該第二進(jìn)程被檢測(cè)為啟動(dòng)第一進(jìn)程。
在一些實(shí)施例中,可生成通知。該通知可將第二進(jìn)程識(shí)別為可疑事件的來源,并且/或者指示第二進(jìn)程是潛在的惡意程序??纱_定第二進(jìn)程在啟動(dòng)第一進(jìn)程后關(guān)閉。在識(shí)別到啟動(dòng)第一進(jìn)程的第二進(jìn)程后,可將第一進(jìn)程識(shí)別為傀儡進(jìn)程。
在一個(gè)實(shí)施例中,可經(jīng)由第二進(jìn)程在命令行接口上直接提供的指令啟動(dòng)第一進(jìn)程。除此之外或作為另外一種選擇,可經(jīng)由來自至少一個(gè)文件的指令啟動(dòng)第一進(jìn)程,到達(dá)所述至少一個(gè)文件的路徑由第二進(jìn)程在命令行接口上提供??衫缭跀?shù)據(jù)庫中維護(hù)潛在傀儡進(jìn)程的列表??苓M(jìn)程可為可由另一個(gè)單獨(dú)進(jìn)程配置成執(zhí)行一組指令的任何進(jìn)程??山?jīng)由已登記的系統(tǒng)事件檢測(cè)新的傀儡進(jìn)程,并且可將新的傀儡進(jìn)程添加到潛在傀儡進(jìn)程的列表。潛在傀儡進(jìn)程的列表可包括具有命令行接口的至少一個(gè)進(jìn)程。在一些情況下,潛在傀儡進(jìn)程的列表可包括cmd.exe、rundll.exe、rundll32.exe、regsvr32.exe、dllhost.exe、regedit.exe、taskhost.exe、cscript、wscript、vbscript、perlscript、bash、ldconfig、terminal.app和x-code.app中的至少一者。
還描述了一種被配置成識(shí)別可疑事件來源的計(jì)算設(shè)備。該設(shè)備可包括處理器和與處理器電子通信的存儲(chǔ)器。存儲(chǔ)器可存儲(chǔ)能夠由處理器執(zhí)行以進(jìn)行以下操作的指令:在數(shù)據(jù)庫中登記系統(tǒng)事件,檢測(cè)與第一進(jìn)程相關(guān)聯(lián)的可疑事件,將第一進(jìn)程識(shí)別為多個(gè)潛在傀儡進(jìn)程中的一個(gè),以及查詢數(shù)據(jù)庫中已登記的系統(tǒng)事件以識(shí)別第二進(jìn)程,該第二進(jìn)程啟動(dòng)第一進(jìn)程。
還描述了一種用于識(shí)別可疑事件來源的計(jì)算機(jī)程序產(chǎn)品。計(jì)算機(jī)程序產(chǎn)品可包括存儲(chǔ)指令的非暫態(tài)性計(jì)算機(jī)可讀介質(zhì)。這些指令可由處理器執(zhí)行以在數(shù)據(jù)庫中登記系統(tǒng)事件,檢測(cè)與第一進(jìn)程相關(guān)聯(lián)的可疑事件,將第一進(jìn)程識(shí)別為多個(gè)潛在傀儡進(jìn)程中的一個(gè),以及查詢數(shù)據(jù)庫中已登記的系統(tǒng)事件以識(shí)別第二進(jìn)程,該第二進(jìn)程啟動(dòng)第一進(jìn)程。
來自上述實(shí)施例中的任何一者的特征可根據(jù)本文所述的一般原理彼此結(jié)合地使用。通過結(jié)合附圖和權(quán)利要求書閱讀下面的詳細(xì)描述,將會(huì)更充分地理解這些和其他實(shí)施例、特征和優(yōu)點(diǎn)。
附圖說明
附圖示出了多個(gè)示例性實(shí)施例并且為說明書的一部分。這些附圖結(jié)合下面的描述展示并且說明本發(fā)明的各種原理。
圖1是示出環(huán)境的一個(gè)實(shí)施例的框圖,在該環(huán)境中可實(shí)施本發(fā)明的系統(tǒng)和方法;
圖2是示出環(huán)境的另一個(gè)實(shí)施例的框圖,在該環(huán)境中可實(shí)施本發(fā)明的系統(tǒng)和方法;
圖3是示出來源識(shí)別模塊的一個(gè)例子的框圖;
圖4是示出用于識(shí)別可疑事件來源的方法的一個(gè)實(shí)施例的流程圖;
圖5是示出用于維護(hù)潛在傀儡進(jìn)程列表的方法的一個(gè)實(shí)施例的流程圖;
圖6是示出用于識(shí)別可疑事件來源的方法的一個(gè)實(shí)施例的流程圖;以及
圖7示出了適于實(shí)施本發(fā)明的系統(tǒng)和方法的計(jì)算機(jī)系統(tǒng)的框圖。
雖然本文所述的實(shí)施例易有各種修改和替代形式,但在附圖中以舉例的方式示出了特定實(shí)施例并且將在本文中詳細(xì)描述。然而,本文所述的示例性實(shí)施例并非旨在限于所公開的特定形式。相反,本發(fā)明涵蓋落在所附權(quán)利要求書范圍內(nèi)的所有修改形式、等同形式和替代形式。
具體實(shí)施方式
本文所述的系統(tǒng)和方法涉及識(shí)別可疑事件的來源。更具體地講,本文所述的系統(tǒng)和方法涉及檢測(cè)執(zhí)行導(dǎo)致可疑事件的潛在惡意指令的傀儡進(jìn)程,以及識(shí)別潛在惡意指令的來源。
惡意軟件的創(chuàng)建者不斷地使其技術(shù)進(jìn)化以適應(yīng)惡意軟件檢測(cè)系統(tǒng)。當(dāng)前的基于文件的惡意軟件檢測(cè)系統(tǒng)在著手檢測(cè)適應(yīng)性惡意軟件(諸如多態(tài)性惡意軟件)時(shí)經(jīng)常落后于形勢(shì)。因此,惡意軟件檢測(cè)系統(tǒng)可采用行為學(xué)習(xí)引擎來識(shí)別逃避檢測(cè)的多態(tài)性惡意軟件。此類行為引擎可完全基于惡意軟件如何運(yùn)行來檢測(cè)新的未分類惡意軟件。通過觀察一個(gè)或多個(gè)進(jìn)程的行為,本文所述的系統(tǒng)和方法能夠?qū)⒖梢墒录c根進(jìn)程(例如,惡意進(jìn)程、惡意可執(zhí)行等)相關(guān)聯(lián),此根進(jìn)程即對(duì)所述可疑事件最終負(fù)責(zé)的進(jìn)程。例如,假如行為引擎看到對(duì)Run或RunOnce注冊(cè)表項(xiàng)進(jìn)行寫入的試圖,則該行為引擎可確定哪個(gè)進(jìn)程最終負(fù)責(zé)該寫命令,從而使得行為引擎對(duì)該負(fù)責(zé)進(jìn)程采取措施,諸如終止該進(jìn)程以及/或者刪除與該進(jìn)程相關(guān)聯(lián)的文件。
在一些情況下,等到當(dāng)前系統(tǒng)檢測(cè)到惡意軟件事件時(shí),惡意軟件事件的根進(jìn)程已經(jīng)終止其自身以便掩蓋其曾參與惡意軟件事件。惡意軟件作者可能采用Windows簽署進(jìn)程來執(zhí)行其惡意攻擊,因?yàn)閻阂廛浖?chuàng)建者認(rèn)識(shí)到典型的行為引擎被配置成對(duì)合法的Windows進(jìn)程不采取補(bǔ)救措施,因?yàn)檫@樣做可能會(huì)影響機(jī)器的穩(wěn)定性和/或破壞關(guān)鍵的功能。因此,在一些情況下,惡意軟件作者可能使用“傀儡”進(jìn)程來執(zhí)行其惡意攻擊??苓M(jìn)程可為由主進(jìn)程用來通過代理完成一個(gè)或多個(gè)動(dòng)作的任何次進(jìn)程。這些進(jìn)程在運(yùn)行時(shí)不表現(xiàn)任何動(dòng)作,它們只是退出。次進(jìn)程執(zhí)行經(jīng)由命令行等被告知的任務(wù),因此稱為“傀儡”。例如,惡意軟件作者可創(chuàng)建惡意進(jìn)程,即主進(jìn)程,其被配置成采用Windows進(jìn)程,諸如cmd.exe或rundll32.exe,即次或傀儡進(jìn)程。在一些情況下,惡意進(jìn)程可利用具有命令行接口的進(jìn)程。惡意進(jìn)程可直接在命令行上提供惡意指令作為一條或多條命令行指令。除此之外或作為另外一種選擇,惡意進(jìn)程可在文件中提供惡意指令,其中到達(dá)該文件的路徑在命令行上傳遞。因此,惡意進(jìn)程可將Windows進(jìn)程配置成代表惡意進(jìn)程執(zhí)行一條或多條惡意指令。一旦惡意進(jìn)程將次進(jìn)程配置成執(zhí)行惡意指令,惡意進(jìn)程就可能試圖通過關(guān)閉來掩蓋其蹤跡,僅留下次進(jìn)程可被發(fā)現(xiàn)。一旦惡意進(jìn)程已經(jīng)用惡意指令配置次進(jìn)程,惡意進(jìn)程便關(guān)閉,留下次進(jìn)程執(zhí)行這些指令,這時(shí)惡意進(jìn)程關(guān)閉并且看起來無處可見。因此,在一些實(shí)施例中,確定第一進(jìn)程配置第二進(jìn)程,并且檢測(cè)到來自次進(jìn)程的可疑事件可指示可疑事件和啟動(dòng)進(jìn)程是惡意的。在一些情況下,確定第二進(jìn)程包括命令行接口可指示可疑事件和啟動(dòng)進(jìn)程是惡意的。除此之外或作為另外一種選擇,確定啟動(dòng)進(jìn)程在啟動(dòng)傀儡進(jìn)程后關(guān)閉可指示可疑事件和啟動(dòng)進(jìn)程是惡意的。
在一個(gè)實(shí)施例中,本文所述的系統(tǒng)和方法可保持并維護(hù)潛在傀儡進(jìn)程的列表(例如,通過可執(zhí)行程序名稱、圖像名稱、進(jìn)程名稱、進(jìn)程特征、應(yīng)用程序描述等)。該列表可包括已知為已經(jīng)在過去用作傀儡進(jìn)程的那些進(jìn)程和/或已知為能夠用作傀儡進(jìn)程的那些進(jìn)程。已知windows傀儡進(jìn)程的列表可包括一個(gè)或多個(gè)命令行接口。例如,該列表可包括rundll32.exe、regsvr32.exe、cscript、wscript、dllhost.exe、taskhost.exe、cmd.exe、terminal.app、x-code.app、bash等。
在一個(gè)例子中,傀儡進(jìn)程可直接在命令行上接收惡意指令。所述系統(tǒng)和方法可使用內(nèi)核模式驅(qū)動(dòng)程序跟蹤此類進(jìn)程啟動(dòng),并且在此類傀儡進(jìn)程啟動(dòng)后,可識(shí)別啟動(dòng)傀儡進(jìn)程的所識(shí)別進(jìn)程并且使其為由傀儡進(jìn)程引起的任何可疑事件負(fù)責(zé)。在一些情況下,傀儡進(jìn)程可間接經(jīng)由在命令行上提供的到達(dá)文件(例如,.BAT文件、.CMD文件、.BTM文件、.MSC文件、.JOB文件、.IDL文件、.TLB文件、.EXE文件、.DLL文件、.APP文件等)的路徑接收指令。該文件可包含另外的指令(例如,rundll32.exe)和/或到達(dá)特殊格式指令文件(諸如,在regedit.exe用作傀儡進(jìn)程的情況下,.REG文件)的路徑。在一些情況下,可指示傀儡進(jìn)程在注冊(cè)表中查找組件對(duì)象模型(COM)對(duì)象全局唯一標(biāo)識(shí)符(GUID)以便定位到達(dá)可從中檢索指令的COM動(dòng)態(tài)鏈接庫(DLL)的路徑。此類惡意文件和/或惡意指令可被稱為“死亡投放”文件和/或“死亡投放”指令,因?yàn)樨?fù)責(zé)的惡意進(jìn)程“投放”其程序包并且等到程序包被執(zhí)行的時(shí)候已經(jīng)“死亡”(即,關(guān)閉)。惡意軟件可創(chuàng)建這些死亡投放文件,并且指示操作系統(tǒng)啟動(dòng)傀儡進(jìn)程以將這些死亡投放文件用作其執(zhí)行什么的指令源。因此,本文所述的系統(tǒng)和方法可采用內(nèi)核模式驅(qū)動(dòng)程序來將死亡投放文件的創(chuàng)建追溯到創(chuàng)建它們的進(jìn)程。在一些情況下,這些系統(tǒng)和方法可監(jiān)測(cè)所有進(jìn)程啟動(dòng)。識(shí)別到傀儡進(jìn)程啟動(dòng)后,經(jīng)由直接/間距接收這些死亡投放文件的命令行,這些系統(tǒng)和方法可識(shí)別最終負(fù)責(zé)死亡投放文件的進(jìn)程(例如,惡意進(jìn)程、惡意可執(zhí)行等)并且相應(yīng)地采取補(bǔ)救措施。
圖1是示出環(huán)境100的一個(gè)實(shí)施例的框圖,在該環(huán)境中可實(shí)施本發(fā)明的系統(tǒng)和方法。在一些實(shí)施例中,本文所述的系統(tǒng)和方法可在單個(gè)設(shè)備(例如,設(shè)備105)上執(zhí)行。例如,來源識(shí)別模塊115可位于設(shè)備105上。設(shè)備105的例子包括移動(dòng)設(shè)備、智能電話、個(gè)人計(jì)算設(shè)備、計(jì)算機(jī)、服務(wù)器等。
在一些配置中,設(shè)備105可包括來源識(shí)別模塊115和應(yīng)用程序120。應(yīng)用程序120可允許設(shè)備105與來源識(shí)別模塊115介接。在一個(gè)例子中,設(shè)備105可連接到數(shù)據(jù)庫110。在一個(gè)實(shí)施例中,數(shù)據(jù)庫110可在設(shè)備105內(nèi)部。在另一個(gè)實(shí)施例中,數(shù)據(jù)庫110可在設(shè)備105外部。在一些配置中,數(shù)據(jù)庫110可包括系統(tǒng)事件125和傀儡進(jìn)程130。系統(tǒng)事件125可包括進(jìn)程啟動(dòng)事件、文件系統(tǒng)事件等。在一些情況下,傀儡進(jìn)程130可包括一個(gè)或多個(gè)潛在傀儡進(jìn)程的列表。該列表可包括已知為已經(jīng)用作傀儡進(jìn)程的進(jìn)程和/或有可能用作傀儡進(jìn)程的進(jìn)程。例如,進(jìn)程可由于該進(jìn)程的一個(gè)或多個(gè)特征而被認(rèn)為有可能用作傀儡進(jìn)程。例如,在一些情況下,包括命令行接口的進(jìn)程可比不包括命令行接口的進(jìn)程更有可能用作傀儡進(jìn)程。
來源識(shí)別模塊115可通過以下方式來識(shí)別可疑事件的來源:檢測(cè)可疑事件,確定某一進(jìn)程是否在潛在傀儡進(jìn)程的列表(例如,傀儡進(jìn)程130)上,查詢已存儲(chǔ)的系統(tǒng)事件125,以及/或者生成關(guān)于所檢測(cè)到的可疑事件的通知。下文論述關(guān)于來源識(shí)別模塊115的進(jìn)一步的細(xì)節(jié)。
圖2是示出環(huán)境200的另一個(gè)實(shí)施例的框圖,在該環(huán)境中可實(shí)施本發(fā)明的系統(tǒng)和方法。在一個(gè)實(shí)施例中,設(shè)備105-a可經(jīng)由網(wǎng)絡(luò)205與服務(wù)器210通信以及/或者訪問數(shù)據(jù)庫110-a。數(shù)據(jù)庫110-a可為圖1中的數(shù)據(jù)庫110的一個(gè)例子。網(wǎng)絡(luò)205的例子包括云網(wǎng)絡(luò)、局域網(wǎng)(LAN)、廣域網(wǎng)(WAN)、虛擬專用網(wǎng)(VPN)、無線網(wǎng)絡(luò)(例如,使用802.11)、蜂窩網(wǎng)絡(luò)(例如,使用3G和/或LTE)等。在一些情況下,網(wǎng)絡(luò)205包括互聯(lián)網(wǎng)。
在一些配置中,設(shè)備105-a可為圖1所示的設(shè)備105的一個(gè)例子。如圖所示,設(shè)備105-a可不包括來源識(shí)別模塊115。例如,設(shè)備105-a可包括應(yīng)用程序120,該應(yīng)用程序允許設(shè)備105-a與位于服務(wù)器210上的來源識(shí)別模塊115介接。因此,設(shè)備105-a可被配置成經(jīng)由應(yīng)用程序120、網(wǎng)絡(luò)205和服務(wù)器210執(zhí)行欺詐檢測(cè)模塊115的一個(gè)或多個(gè)功能。在一些實(shí)施例中,設(shè)備105-a和服務(wù)器210兩者都可包括來源識(shí)別模塊115,其中在設(shè)備105-a和服務(wù)器210上單獨(dú)地和/或同時(shí)地執(zhí)行來源識(shí)別模塊115的功能的至少一部分。
在一些實(shí)施例中,服務(wù)器210可包括來源識(shí)別模塊115,并且可連接到數(shù)據(jù)庫110-a。例如,來源識(shí)別模塊115可經(jīng)由網(wǎng)絡(luò)205和服務(wù)器210訪問數(shù)據(jù)庫110-a中的系統(tǒng)事件125和/或傀儡進(jìn)程130。數(shù)據(jù)庫110-a可在服務(wù)器210內(nèi)部或外部。
在一些配置中,應(yīng)用程序120可使得設(shè)備105-a與來源識(shí)別模塊115介接以:通過搜索預(yù)先過濾的網(wǎng)頁來識(shí)別潛在欺詐活動(dòng),在預(yù)先過濾的網(wǎng)頁當(dāng)中檢測(cè)樣式,并且將用戶輸入與所檢測(cè)到的樣式進(jìn)行比較以便向用戶實(shí)時(shí)通知潛在欺詐。因此,經(jīng)由來源識(shí)別模塊115,應(yīng)用程序120可識(shí)別潛在欺詐活動(dòng)并警告用戶此類活動(dòng)。
圖3是示出來源識(shí)別模塊115-a的一個(gè)例子的框圖。來源識(shí)別模塊115-a可為圖1和/或圖2所示的來源識(shí)別模塊115的一個(gè)例子。如圖所示,來源識(shí)別模塊115-a可包括監(jiān)測(cè)模塊305、比較模塊310、識(shí)別模塊315、分類模塊320和通知模塊325。
如上所述,惡意進(jìn)程可以另外的、無害的合法進(jìn)程為目標(biāo),使其代表惡意進(jìn)程執(zhí)行一個(gè)或多個(gè)動(dòng)作。在一些情況下,惡意進(jìn)程可以受信任的進(jìn)程(諸如cmd.exe)為目標(biāo),并將受信任的進(jìn)程配置成代表其執(zhí)行惡意任務(wù)。惡意進(jìn)程可將目標(biāo)進(jìn)程配置成執(zhí)行惡意任務(wù)以躲避檢測(cè),從而允許惡意進(jìn)程在配置目標(biāo)進(jìn)程之后關(guān)閉或終止其自身。因此,惡意進(jìn)程試圖掩蓋其在執(zhí)行惡意指令過程中的任何參與,從而允許惡意進(jìn)程在常規(guī)的惡意軟件檢測(cè)系統(tǒng)下不被檢測(cè)到。因而,惡意進(jìn)程可被稱為啟動(dòng)進(jìn)程或來源進(jìn)程,即最終負(fù)責(zé)由目標(biāo)進(jìn)程引起的任何惡意事件的進(jìn)程。目標(biāo)進(jìn)程可被稱為傀儡進(jìn)程,因?yàn)樗亲罱K控制一切的惡意進(jìn)程。因此,為了防止啟動(dòng)進(jìn)程不被檢測(cè)到,來源識(shí)別模塊115-a可被配置成根據(jù)本文所述的系統(tǒng)和方法來識(shí)別可疑事件的來源。
在一個(gè)實(shí)施例中,監(jiān)測(cè)模塊305可在數(shù)據(jù)庫中登記系統(tǒng)事件。在一些情況下,經(jīng)由內(nèi)核模式驅(qū)動(dòng)程序登記系統(tǒng)事件。監(jiān)測(cè)模塊305可被配置成檢測(cè)與第一進(jìn)程相關(guān)聯(lián)的可疑事件。比較模塊310可確定第一進(jìn)程(例如,占用進(jìn)程)是否是潛在傀儡進(jìn)程列表中的一個(gè)進(jìn)程。例如,可參考已知已經(jīng)被用作傀儡進(jìn)程的進(jìn)程的列表和/或有可能被用作傀儡進(jìn)程的進(jìn)程的列表來確定第一進(jìn)程是否與列表上的進(jìn)程相關(guān)聯(lián)。除此之外或作為另外一種選擇,可基于進(jìn)程的一個(gè)或多個(gè)特征來將進(jìn)程包括在潛在傀儡進(jìn)程的列表中。在一些情況下,潛在傀儡進(jìn)程的列表包括具有命令行接口的至少一個(gè)進(jìn)程。例如,具有命令行接口特征的進(jìn)程可被認(rèn)為比沒有命令行接口特征的進(jìn)程更有可能被惡意實(shí)體用作傀儡進(jìn)程。因此,具有命令行接口特征的進(jìn)程可被包括在潛在傀儡進(jìn)程的列表中。除此之外或作為另外一種選擇,潛在傀儡進(jìn)程的列表可包括以下中的至少一者:cmd.exe、rundll.exe、rundll32.exe、regsvr32.exe、dllhost.exe、regedit.exe、taskhost.exe、cscript、wscript、vbscript、perlscript、bash、ldconfig、terminal.app和x-code.app。
在一個(gè)實(shí)施例中,分類模塊325可維護(hù)潛在傀儡進(jìn)程的列表。分類模塊325可結(jié)合已登記的系統(tǒng)事件檢測(cè)新的傀儡進(jìn)程。例如,基于來源識(shí)別模塊115-a執(zhí)行的分析,該分析可至少部分地基于已登記的系統(tǒng)事件,可確定進(jìn)程X是傀儡進(jìn)程。然而,分類模塊325可確定進(jìn)程X未出現(xiàn)在潛在傀儡進(jìn)程的列表上。因此,在確定進(jìn)程X未被包括在潛在傀儡進(jìn)程的列表中后,分類模塊325可將進(jìn)程X添加到潛在傀儡進(jìn)程的列表中。因此,分類模塊325可通過確定第二進(jìn)程啟動(dòng)第一進(jìn)程來識(shí)別新的傀儡進(jìn)程,該第二進(jìn)程將第一進(jìn)程配置成執(zhí)行導(dǎo)致可疑事件的某些操作,這可觸發(fā)加強(qiáng)對(duì)可疑事件的審查。因此,在確定第二進(jìn)程創(chuàng)建并啟動(dòng)生成可疑事件的第一進(jìn)程并且將第二進(jìn)程識(shí)別為實(shí)際上負(fù)責(zé)可疑事件的進(jìn)程后,可將第一進(jìn)程指定為新的傀儡進(jìn)程并且作為潛在傀儡進(jìn)程添加在潛在傀儡進(jìn)程數(shù)據(jù)庫中。
惡意進(jìn)程可由于目標(biāo)進(jìn)程的某些特征而以特定進(jìn)程為目標(biāo)。例如,目標(biāo)進(jìn)程可包括命令行接口,該命令行接口使得惡意進(jìn)程能夠有效地遠(yuǎn)程控制目標(biāo)進(jìn)程,即使在惡意進(jìn)程已經(jīng)終止或甚至刪除其自身之后也如此。因此,目標(biāo)進(jìn)程可被稱為傀儡進(jìn)程。在識(shí)別啟動(dòng)該進(jìn)程的啟動(dòng)進(jìn)程后,識(shí)別模塊315可將目標(biāo)進(jìn)程指定為傀儡進(jìn)程。在一些情況下,監(jiān)測(cè)模塊305可確定啟動(dòng)進(jìn)程在啟動(dòng)該進(jìn)程后關(guān)閉。在一些情況下,確定啟動(dòng)進(jìn)程在發(fā)起傀儡進(jìn)程后關(guān)閉可提供進(jìn)一步指示并且增加可疑事件和啟動(dòng)進(jìn)程是惡意的可能性。
在一些情況下,監(jiān)測(cè)模塊305可確定傀儡進(jìn)程是由啟動(dòng)進(jìn)程經(jīng)由直接在命令行接口上提供的指令所發(fā)起。除此之外或作為另外一種選擇,監(jiān)測(cè)模塊305可確定傀儡進(jìn)程是經(jīng)由包括在文件中的指令所發(fā)起。例如,監(jiān)測(cè)模塊305可確定啟動(dòng)進(jìn)程負(fù)責(zé)在傀儡進(jìn)程的命令行接口上提供到達(dá)一個(gè)或多個(gè)文件的路徑。因此,在檢測(cè)到由于在命令行接口上提供的指令的執(zhí)行而產(chǎn)生的可疑事件后,識(shí)別模塊315可將啟動(dòng)進(jìn)程識(shí)別為最終負(fù)責(zé)該可疑事件的進(jìn)程。
發(fā)起傀儡進(jìn)程的進(jìn)程可被指定為啟動(dòng)進(jìn)程或來源進(jìn)程。在確定生成可疑事件的進(jìn)程是潛在傀儡進(jìn)程后,識(shí)別模塊315可識(shí)別發(fā)起該傀儡進(jìn)程的啟動(dòng)進(jìn)程。在一些實(shí)施例中,識(shí)別模塊315可通過查詢存儲(chǔ)在數(shù)據(jù)庫中的已登記的系統(tǒng)事件(例如,系統(tǒng)事件125)來識(shí)別啟動(dòng)進(jìn)程。系統(tǒng)事件可包括進(jìn)程啟動(dòng)事件、文件系統(tǒng)事件等。因此,登記在數(shù)據(jù)庫中的系統(tǒng)事件可指示傀儡進(jìn)程由特定進(jìn)程啟動(dòng)。識(shí)別模塊315可將這個(gè)識(shí)別出的特定進(jìn)程指定為啟動(dòng)進(jìn)程。在一些實(shí)施例中,系統(tǒng)事件可指示啟動(dòng)進(jìn)程在發(fā)起傀儡進(jìn)程之后關(guān)閉。因此,所獲得的關(guān)于啟動(dòng)進(jìn)程和/或傀儡進(jìn)程的動(dòng)作、方面或特征的信息可提供關(guān)于可疑事件來源的指示。在一個(gè)實(shí)施例中,通知模塊320可在檢測(cè)到可疑事件和/或識(shí)別出啟動(dòng)進(jìn)程時(shí)生成通知。該通知可將啟動(dòng)進(jìn)程識(shí)別為可疑事件的來源。因此,如上所述,來源識(shí)別模塊115可使用文件系統(tǒng)驅(qū)動(dòng)程序來將死亡投放文件的創(chuàng)建追溯到創(chuàng)建它們的進(jìn)程。來源識(shí)別模塊115可監(jiān)測(cè)所有進(jìn)程啟動(dòng)。因而,當(dāng)來源識(shí)別模塊115檢測(cè)到經(jīng)由直接/間接指向一個(gè)或多個(gè)文件(例如,死亡投放文件)的命令行指令的進(jìn)程啟動(dòng)(例如,傀儡進(jìn)程啟動(dòng))時(shí),來源識(shí)別模塊115將該一個(gè)或多個(gè)文件的創(chuàng)建者作為對(duì)該傀儡進(jìn)程所做的任何事情的負(fù)責(zé)進(jìn)程。
圖4是示出用于識(shí)別可疑事件來源的方法400的一個(gè)實(shí)施例的流程圖。在一些配置中,方法400可通過圖1、圖2和/或圖3中示出的來源識(shí)別模塊115實(shí)施。在一些配置中,方法400可通過圖1和/或圖2中示出的應(yīng)用程序120實(shí)施。
在框405處,可在數(shù)據(jù)庫中登記系統(tǒng)事件。在一些情況下,可經(jīng)由內(nèi)核模式驅(qū)動(dòng)程序登記系統(tǒng)事件。在框410處,可檢測(cè)與第一進(jìn)程相關(guān)聯(lián)的可疑事件。在框415處,可將第一進(jìn)程識(shí)別為多個(gè)潛在傀儡進(jìn)程中的一個(gè)。在框420處,在確定第一進(jìn)程是潛在傀儡進(jìn)程后,可查詢數(shù)據(jù)庫中已登記的系統(tǒng)事件以識(shí)別被檢測(cè)為啟動(dòng)第一進(jìn)程的第二進(jìn)程。
圖5是示出用于維護(hù)潛在傀儡進(jìn)程列表的方法500的一個(gè)實(shí)施例的流程圖。在一些配置中,方法500可通過圖1、圖2和/或圖3中示出的來源識(shí)別模塊115實(shí)施。在一些配置中,方法500可通過圖1和/或圖2中示出的應(yīng)用程序120實(shí)施。
在框505處,維護(hù)潛在傀儡進(jìn)程的列表。在框510處,可經(jīng)由已登記的系統(tǒng)事件檢測(cè)新的傀儡進(jìn)程。例如,可采用內(nèi)核模式驅(qū)動(dòng)程序來檢測(cè)并在數(shù)據(jù)庫中登記系統(tǒng)事件。在框515處,可將新的傀儡進(jìn)程添加到潛在傀儡進(jìn)程的列表。
圖6是示出用于識(shí)別可疑事件來源的方法600的一個(gè)實(shí)施例的流程圖。在一些配置中,方法600可通過圖1、圖2和/或圖3中示出的來源識(shí)別模塊115實(shí)施。在一些配置中,方法600可通過圖1和/或圖2中示出的應(yīng)用程序120實(shí)施。
在框605處,可檢測(cè)到第一進(jìn)程執(zhí)行。如上所述,可在數(shù)據(jù)庫中登記并存儲(chǔ)一個(gè)或多個(gè)系統(tǒng)事件。因此,可將第一進(jìn)程和其他進(jìn)程的操作存儲(chǔ)在這樣的數(shù)據(jù)庫中。在框610處,可檢測(cè)到第一進(jìn)程發(fā)起第二進(jìn)程。在框615處,可檢測(cè)到第二進(jìn)程生成可疑事件。在框620處,可獲得關(guān)于第一進(jìn)程的信息。例如,所登記的系統(tǒng)事件可包括關(guān)于發(fā)起第二進(jìn)程的第一進(jìn)程的數(shù)據(jù)。在一些情況下,所登記的系統(tǒng)事件可指示第一進(jìn)程在發(fā)起第二進(jìn)程之后關(guān)閉。在框625處,可將第二進(jìn)程與潛在傀儡進(jìn)程的列表進(jìn)行比較。此類進(jìn)程的例子包括從命令行接口發(fā)起的進(jìn)程,諸如cmd.exe、rundll32.exe等。在框630處,如果發(fā)現(xiàn)匹配項(xiàng),則可將第二進(jìn)程指定為傀儡進(jìn)程。在框635處,如果沒有匹配項(xiàng),則在確定第一進(jìn)程發(fā)起了第二進(jìn)程后,可將第二進(jìn)程添加到所述列表。例如,在確定第一進(jìn)程發(fā)起了第二進(jìn)程并且第二進(jìn)程生成了可疑事件后,那么可將第一進(jìn)程添加到潛在傀儡進(jìn)程的列表。在框640處,可將第一進(jìn)程識(shí)別為可疑事件的來源。如上所述,在一些情況下,可經(jīng)由通過內(nèi)核模式驅(qū)動(dòng)程序登記的系統(tǒng)事件來識(shí)別第一進(jìn)程。在一些實(shí)施例中,在將第一進(jìn)程識(shí)別為可疑事件的來源后,可生成通知。在一些情況下,該通知可將啟動(dòng)進(jìn)程識(shí)別為可疑事件的來源。除此之外或作為另外一種選擇,該通知可將啟動(dòng)進(jìn)程識(shí)別為潛在惡意進(jìn)程。
圖7示出了適于實(shí)施本發(fā)明的系統(tǒng)和方法的計(jì)算機(jī)系統(tǒng)700的框圖。計(jì)算機(jī)系統(tǒng)700包括使計(jì)算機(jī)系統(tǒng)700的主要子系統(tǒng)互連的總線705,所述子系統(tǒng)諸如中央處理器710、系統(tǒng)存儲(chǔ)器715(通常為RAM,但是也可包括ROM、閃存RAM等)、輸入/輸出控制器720、外部音頻設(shè)備(諸如經(jīng)由音頻輸出接口730的揚(yáng)聲器系統(tǒng)725)、外部設(shè)備(諸如經(jīng)由顯示適配器740的顯示屏735)、鍵盤745(與鍵盤控制器750連接)(或其他輸入設(shè)備)、多個(gè)USB設(shè)備765(與USB控制器770連接),以及存儲(chǔ)接口780。此外,還包括通過串行端口760連接至總線705的鼠標(biāo)755(或其他點(diǎn)擊設(shè)備)以及網(wǎng)絡(luò)接口785(直接連接到總線705)。
總線705允許在中央處理器710和系統(tǒng)存儲(chǔ)器715之間進(jìn)行數(shù)據(jù)通信,如前文提及,系統(tǒng)存儲(chǔ)器可以包括只讀存儲(chǔ)器(ROM)或閃存存儲(chǔ)器(均未示出)以及隨機(jī)存取存儲(chǔ)器(RAM)(未示出)。RAM通常是將操作系統(tǒng)和應(yīng)用程序裝載到其中的主存儲(chǔ)器。除了其他代碼,ROM或閃存存儲(chǔ)器可以包含控制基本硬件操作(如與外圍組件或設(shè)備的交互)的基本輸入輸出系統(tǒng)(BIOS)。例如,用以實(shí)施本發(fā)明的系統(tǒng)和方法的來源識(shí)別模塊115-b可存儲(chǔ)在系統(tǒng)存儲(chǔ)器715中。與計(jì)算機(jī)系統(tǒng)700駐存在一起的應(yīng)用程序(例如,應(yīng)用程序120)通常存儲(chǔ)在非暫態(tài)性計(jì)算機(jī)可讀介質(zhì)上并通過它進(jìn)行訪問,所述非暫態(tài)性計(jì)算機(jī)可讀介質(zhì)諸如硬盤驅(qū)動(dòng)器(例如固定磁盤775)或其他存儲(chǔ)介質(zhì)。此外,通過接口785進(jìn)行訪問時(shí),可以根據(jù)應(yīng)用程序和數(shù)據(jù)通信技術(shù)以電子信號(hào)的形式對(duì)應(yīng)用程序進(jìn)行調(diào)制。
存儲(chǔ)接口780與計(jì)算機(jī)系統(tǒng)700的其他存儲(chǔ)接口一樣可以連接到標(biāo)準(zhǔn)計(jì)算機(jī)可讀介質(zhì)(如固定磁盤驅(qū)動(dòng)器775)以用于存儲(chǔ)和/或檢索信息。固定磁盤驅(qū)動(dòng)器775可以是計(jì)算機(jī)系統(tǒng)700的一部分,或者可以是獨(dú)立的,并且可以通過其他接口系統(tǒng)進(jìn)行訪問。網(wǎng)絡(luò)接口785可以經(jīng)由直接網(wǎng)絡(luò)鏈路提供到遠(yuǎn)程服務(wù)器的直接連接,或經(jīng)由POP(入網(wǎng)點(diǎn))提供到互聯(lián)網(wǎng)的直接連接。網(wǎng)絡(luò)接口785可以使用無線技術(shù)提供此類連接,包括數(shù)字蜂窩電話連接、蜂窩數(shù)字分組數(shù)據(jù)(CDPD)連接、數(shù)字衛(wèi)星數(shù)據(jù)連接等。
很多其他設(shè)備或子系統(tǒng)(未示出)可以通過相似的方式進(jìn)行連接(例如文檔掃描儀、數(shù)碼相機(jī)等)。相反,不需要提供圖7中示出的所有設(shè)備亦可實(shí)施本發(fā)明的系統(tǒng)和方法??梢允褂门c圖7中所示方式不同的方式來使設(shè)備和子系統(tǒng)互連。計(jì)算機(jī)系統(tǒng)的操作(如圖7中所示的操作)是本領(lǐng)域中易知的,在本申請(qǐng)中不進(jìn)行詳細(xì)討論。用以實(shí)施本發(fā)明的代碼可存儲(chǔ)于非暫態(tài)性計(jì)算機(jī)可讀介質(zhì)中,諸如一個(gè)或多個(gè)系統(tǒng)存儲(chǔ)器715或固定磁盤775中。計(jì)算機(jī)系統(tǒng)700上提供的操作系統(tǒng)可為或另外的已知操作系統(tǒng)。
此外,關(guān)于本文所述的信號(hào),本領(lǐng)域的技術(shù)人員將會(huì)認(rèn)識(shí)到,可以將信號(hào)從第一塊直接傳輸?shù)降诙K,或者可以在塊之間修改信號(hào)(例如,放大、衰減、延遲、鎖存、緩沖、反轉(zhuǎn)、過濾或其他修改方式)。盡管上述實(shí)施例的信號(hào)被特性化為從一個(gè)塊傳輸?shù)较乱粋€(gè)塊,但本發(fā)明的系統(tǒng)和方法的其他實(shí)施例可以包括經(jīng)過修改的信號(hào)來代替這些直接傳輸?shù)男盘?hào),只要信號(hào)的信息和/或功能方面在塊之間傳輸。在某種程度上,由于所涉及的電路的物理限制(例如,不可避免地存在一些衰減和延遲),第二塊上的信號(hào)輸入可以概念化為得自第一塊輸出的第一信號(hào)的第二信號(hào)。因此,如本文所用,得自第一信號(hào)的第二信號(hào)包括第一信號(hào)或?qū)Φ谝恍盘?hào)所做的任何修改,無論是由于電路限制還是由于通過不會(huì)改變第一信號(hào)的信息和/或最終功能方面的其他電路元件。
雖然上述公開內(nèi)容使用特定框圖、流程圖和例子闡述了各種實(shí)施例,但每個(gè)框圖組成部分、流程圖步驟、操作和/或本文描述和/或示出的組件可使用多種硬件、軟件或固件(或其任何組合)配置單獨(dú)和/或共同地實(shí)施。此外,包含在其他組件內(nèi)的部件的任何公開內(nèi)容應(yīng)當(dāng)被視為在本質(zhì)上是示例性的,因?yàn)榭蓪?shí)施許多其他體系結(jié)構(gòu)來實(shí)現(xiàn)相同功能。
本文描述和/或示出的過程參數(shù)和步驟順序僅通過舉例的方式給出并且可根據(jù)需要改變。例如,雖然本文示出和/或描述的步驟可以特定順序示出或討論,但這些步驟不必按示出或討論的順序來執(zhí)行。本文描述和/或示出的各種示例性方法也可省略本文描述或示出的步驟中的一者或多者,或除了所公開的那些步驟之外還包括附加步驟。
此外,雖然本文已經(jīng)在全功能計(jì)算系統(tǒng)的背景中描述和/或示出了各種實(shí)施例,但這些示例性實(shí)施例中的一者或多者可作為各種形式的程序產(chǎn)品來分發(fā),而不考慮用于實(shí)際進(jìn)行分發(fā)的計(jì)算機(jī)可讀介質(zhì)的特定類型。本文所公開的實(shí)施例也可使用執(zhí)行某些任務(wù)的軟件模塊來實(shí)施。這些軟件模塊可包括腳本、批文件或可存儲(chǔ)在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)上或計(jì)算系統(tǒng)中的其他可執(zhí)行文件。在一些實(shí)施例中,這些軟件模塊可將計(jì)算系統(tǒng)配置為執(zhí)行本文所公開的示例性實(shí)施例中的一者或多者。
出于闡釋目的,已關(guān)于特定實(shí)施例進(jìn)行了以上描述。然而,以上示例性討論并非旨在是窮舉的或?qū)⒈景l(fā)明限制為所公開的精確形式。鑒于上述教導(dǎo),許多修改形式和變型形式都是可能的。為了最好地解釋本發(fā)明的系統(tǒng)和方法的原理及其實(shí)際應(yīng)用,選擇并描述了實(shí)施例,由此使得其他本領(lǐng)域的技術(shù)人員能最好地利用本發(fā)明的系統(tǒng)和方法以及具有可適合于所設(shè)想的特定用途的各種修改形式的各種實(shí)施例。
除非另有說明,否則在本說明書和權(quán)利要求書中使用的術(shù)語“一”或“一個(gè)”應(yīng)解釋為意指“…中的至少一個(gè)”。此外,為了易于使用,在本說明書和權(quán)利要求書中使用的詞語“包括”和“具有”與詞語“包含”可互換并且與詞語“包含”具有相同含義。此外,將在說明書和權(quán)利要求書中使用的術(shù)語“基于”理解為“至少基于”的含義。