專利名稱:自恢復(fù)性能設(shè)備的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算設(shè)備,尤其涉及恢復(fù)和還原受惡意軟件感染的計算設(shè)備。
背景技術(shù):
現(xiàn)有的反病毒技術(shù)被設(shè)計成對由諸如病毒或蠕蟲等惡意軟件攻擊而損壞或破壞的文件和數(shù)據(jù)進行隔離或殺毒,此處一般將惡意軟件攻擊稱為惡意軟件。然而,反轉(zhuǎn)損壞需要關(guān)于在攻擊中使用的惡意軟件的知識,諸如由特定病毒造成的損壞的類型和反轉(zhuǎn)損壞的指令。獲取這樣的知識是一個勞動密集型過程,因為反病毒研究者必須對特定的病毒進行反向工程,并開發(fā)反轉(zhuǎn)損壞的指令,即,必須開發(fā)標(biāo)識并移除惡意軟件的簽名。因此,在獲取修復(fù)受攻擊影響的文件和數(shù)據(jù)所必需的簽名時總是存在延遲。此外,所得的修復(fù)可能不能涵蓋惡意軟件的變種,這需要獲取更新的簽名。這是尤其是成問題的,因為受到攻擊的設(shè)備通常是未安裝反病毒軟件,或使得他們的反病毒預(yù)訂失效從而沒有更新簽名的消費者的個人計算機。
惡意軟件有時在受攻擊的設(shè)備中開啟“后門”,其它惡意軟件可以惡意利用該“后門”來進一步危及該設(shè)備的安全。因為不總是可能知道哪種其它惡意軟件惡意利用后門并安裝其自身,設(shè)備可能處于感染的不定狀態(tài)中,且使用基于簽名的移除可能無法容易地修復(fù)損壞。
惡意軟件也可以將設(shè)備留在其中操作系統(tǒng)文件不再完好的狀態(tài)中。這要求在試圖修復(fù)剩余的損壞之前替換損壞的操作系統(tǒng)文件的恢復(fù)步驟。
在某些情況下,由惡意軟件引起的損壞可能是不可修復(fù)的。例如,通過文件傳染源傳播的惡意軟件可以用不可逆轉(zhuǎn)的方式損壞可執(zhí)行數(shù)據(jù)或用戶數(shù)據(jù),使得文件受感染或被禁用。惡意軟件也可以惡意地刪除現(xiàn)有反病毒技術(shù)不能還原的文件。
與惡意軟件在被檢測到之前能夠感染大量的設(shè)備的速度相連的這些問題,以及能通過繞過現(xiàn)有反病毒防御來滲透進程的惡意軟件的流行,向防御惡意軟件攻擊提出了諸多挑戰(zhàn)。
發(fā)明內(nèi)容
本發(fā)明的原理可以克服本領(lǐng)域的現(xiàn)有技術(shù)的前述問題,本發(fā)明的原理針對用于從惡意軟件攻擊中恢復(fù)的方法、系統(tǒng)、計算機程序產(chǎn)品和數(shù)據(jù)結(jié)構(gòu)。
根據(jù)本發(fā)明的一個方面,分析設(shè)備以確定在檢測到由攻擊產(chǎn)生的感染的時刻與設(shè)備能夠被還原至的更早的時間點之間是否做出了任何改變。當(dāng)沒有做出改變時,設(shè)備的狀態(tài)可以被還原至該更早的時間點。當(dāng)做出了改變時,至少部分地基于該改變是否是在估算感染發(fā)生之后進行的,來還原設(shè)備的狀態(tài)。可以基于進行了何種改變、改變是善意的還是由惡意軟件引起的、以及是否安裝了新軟件來進一步還原設(shè)備的狀態(tài)。
根據(jù)本發(fā)明的一個其它方面,從設(shè)備狀態(tài)的改變中揭露可以指示感染的存在的證據(jù)。證據(jù)可以由從為設(shè)備使用的文件系統(tǒng)維護的變化日志中解析和/或聚集的信息來揭露。證據(jù)也可以由檢查存儲在設(shè)備上的歸檔和活動數(shù)據(jù)之間的差別來揭露,這些差別包括在不同時間點上設(shè)備的磁盤狀態(tài)之間的差別。證據(jù)可以包括指示感染實際或可能發(fā)生的時間的證據(jù)。指示感染實際或可能發(fā)生的時間的證據(jù)可以被分析來確定對感染發(fā)生的實際時間的估算。
根據(jù)本發(fā)明的一個其它方面,設(shè)備可以被還原至的更早時間點,被稱為還原點,可以由在對應(yīng)的更早時間點上保存的設(shè)備的可用磁盤狀態(tài)來確定。可以通過磁盤狀態(tài)接口來評估可用的已保存磁盤狀態(tài)的可信度。磁盤狀態(tài)接口可以結(jié)合一個或多個惡意軟件提供者來操作,以評估磁盤狀態(tài)的可信度,用于從惡意軟件攻擊中恢復(fù)以及其它使用目的。可信度的評估可以包括根據(jù)分級方案對磁盤狀態(tài)分級,分級方案指示了感染的存在或不存在,或者感染的存在與否未知。
根據(jù)本發(fā)明的又一方面,處理設(shè)備來標(biāo)識自從估算發(fā)生感染的時間以來做出的改變。改變可以包括文件和其它數(shù)據(jù)的添加、修改以及刪除,且可以包括善意的或由惡意軟件引起的改變。文件和其它數(shù)據(jù)包括,但不限于,操作系統(tǒng)文件和/或包括注冊表項的其它系統(tǒng)數(shù)據(jù),以及用戶文件和/或其它用戶數(shù)據(jù)。不包括臨時性的改變。
根據(jù)本發(fā)明的另一方面,還處理設(shè)備來確定自從還原點以來是否安裝了新軟件。當(dāng)沒有安裝新軟件時,設(shè)備可以通過將操作系統(tǒng)文件和/或包括注冊表項的其它系統(tǒng)數(shù)據(jù)的狀態(tài)還原至還原點來至少部分地恢復(fù)。
根據(jù)本發(fā)明的再一方面,可以通過選擇性地恢復(fù)在估算感染發(fā)生的時間之后做出的改變,包括基于用戶確認來選擇性地恢復(fù)改變,來恢復(fù)設(shè)備。還可以通過基于已保存磁盤狀態(tài)的可信度從對應(yīng)于還原點的已保存磁盤狀態(tài)中選擇性地恢復(fù)改變來恢復(fù)設(shè)備。
根據(jù)本發(fā)明的一個其它方面,可以在用戶界面中呈現(xiàn)改變來便于恢復(fù)設(shè)備,包括向設(shè)備用戶提示確認恢復(fù)哪些改變和/或如何恢復(fù)它們,還包括向設(shè)備用戶呈現(xiàn)可從中恢復(fù)改變的已保存磁盤狀態(tài)的可信度。
當(dāng)結(jié)合附圖參考以下詳細描述時,可以更容易地領(lǐng)會和更好地理解本發(fā)明的前述方面和眾多伴隨的優(yōu)點,附圖中圖1描述了根據(jù)本發(fā)明而形成的用于從惡意軟件攻擊中恢復(fù)的示例性系統(tǒng)的概述;圖2描述了根據(jù)本發(fā)明,示出可在其中使用用于從惡意軟件攻擊中恢復(fù)的系統(tǒng)的典型情形的時間線;圖3描述了根據(jù)本發(fā)明而形成的圖1中所示的示例性系統(tǒng)的其它方面;圖4描述了根據(jù)本發(fā)明而形成的圖1中所示的示例性系統(tǒng)的其它方面;圖5是示出根據(jù)本發(fā)明而形成的,由通用計算機系統(tǒng)執(zhí)行的用于從惡意軟件攻擊中恢復(fù)的邏輯的某些方面的流程圖;圖6是示出根據(jù)本發(fā)明而形成的,由通用計算機系統(tǒng)執(zhí)行的用于從惡意軟件攻擊中恢復(fù)的邏輯的某些其它方面的流程圖;圖7是示出根據(jù)本發(fā)明而形成的,由通用計算機系統(tǒng)執(zhí)行的用于從惡意軟件攻擊中恢復(fù)的邏輯的某些其它方面的流程圖;圖8A-8C是用于實現(xiàn)圖1-7中所示的方法和系統(tǒng)的某些方面的示例性用戶界面的截圖;以及圖9A-9E是用于實現(xiàn)圖1-7中所示的方法和系統(tǒng)的某些其它方面的示例性用戶界面的截圖。
具體實施例方式
以下討論旨在提供適于實現(xiàn)本發(fā)明的各種特征的計算系統(tǒng)的簡要概括描述。計算系統(tǒng)將在可用于分布式計算環(huán)境的個人計算機的通用環(huán)境中描述,在分布式計算環(huán)境中,補充任務(wù)可以由通過通信網(wǎng)絡(luò)連接的遠程計算設(shè)備來執(zhí)行。然而,本領(lǐng)域的技術(shù)人員可以理解,本發(fā)明可以使用眾多其它計算機系統(tǒng)配置來實現(xiàn)。例如,本發(fā)明可以使用運行在獨立環(huán)境中的個人計算機來實現(xiàn),或使用多處理器系統(tǒng)、小型機、大型機等來實現(xiàn)。除了上述常規(guī)計算機系統(tǒng)之外,本領(lǐng)域的技術(shù)人員可以認識到,本發(fā)明可以在其它類型的計算設(shè)備上實現(xiàn),包括膝上型計算機、圖形輸入板計算機、個人數(shù)字助理(PDA)或者其上安裝計算機軟件或其它數(shù)字內(nèi)容的任何設(shè)備。
為方便起見,適于實現(xiàn)本發(fā)明的各種特征的計算系統(tǒng)的眾多描述可以包括對用來存儲和檢索駐留在存儲卷上的文件的Windows NT操作系統(tǒng)和文件系統(tǒng)(NTFS)的引用。然而,本領(lǐng)域的技術(shù)人員可以認識到,這些引用僅是說明性的,且不用作對本發(fā)明的一般應(yīng)用的限制。例如,本發(fā)明可以在其它操作系統(tǒng)和文件系統(tǒng)的環(huán)境中實現(xiàn),諸如Windows操作系統(tǒng)的其它版本中使用的文件分配表(FAT)和OS/2高性能文件系統(tǒng)(HPFS),或者LINUX操作系統(tǒng)及其相關(guān)聯(lián)的文件系統(tǒng)。
本發(fā)明的某些方面可以按照由操作系統(tǒng)結(jié)合個人計算機來執(zhí)行或訪問的程序來描述。然而,本領(lǐng)域的技術(shù)人員可以認識到,這些方面也可以結(jié)合各種其它類型的程序模塊或數(shù)據(jù)結(jié)構(gòu)來實現(xiàn)。一般而言,程序模塊和數(shù)據(jù)結(jié)構(gòu)包括例程、子例程、程序、子程序、方法、接口、進程、過程、函數(shù)、組件、模式等,它們執(zhí)行特定的任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型。
圖1描述了根據(jù)本發(fā)明而形成的用于從惡意軟件攻擊中恢復(fù)的示例性系統(tǒng)100的概述。如圖所示,系統(tǒng)100包括恢復(fù)分析器114和恢復(fù)進程126以及其它組件,恢復(fù)分析器114和恢復(fù)進程126一起實現(xiàn)過程來還原設(shè)備,并從在較早的時間點使用歸檔進程134歸檔的一卷或多卷數(shù)據(jù)的已保存磁盤狀態(tài)中恢復(fù)數(shù)據(jù)。在操作中,恢復(fù)分析器114分析設(shè)備來揭示該設(shè)備已被惡意軟件攻擊的證據(jù)。在一個實施例中,恢復(fù)分析器114還確定對實際感染時間的估算,以及在估算的感染時間之前的時間點歸檔的已保存磁盤狀態(tài)的可用性?;謴?fù)進程126使用已保存磁盤狀態(tài)120來還原在攻擊中損壞的設(shè)備和/或恢復(fù)在攻擊中損壞的數(shù)據(jù),即恢復(fù)設(shè)備的性能。
攻擊的證據(jù)以及對感染時間的估算可以基于從設(shè)備上的一個或多個源118中收集的信息,源118包括但不限于,已保存磁盤狀態(tài)120、活動數(shù)據(jù)122和由運行在設(shè)備上文件系統(tǒng)生成的變化日志124。在一個實施例中,信息由狀態(tài)改變剖析器/聚集器模塊116來剖析和聚集,該模塊可以從狀態(tài)改變和其它系統(tǒng)監(jiān)察信息中揭示可以指示感染的存在的證據(jù)。
例如,在一個實施例中,狀態(tài)變化日志124可以被實現(xiàn)為Windows NT文件系統(tǒng)(“NTFS”)變化日志。由于文件、目錄和其它NTFS對象被添加、刪除和修改,NTFS以流的方式輸入變化日志記錄,設(shè)備上的每一卷對應(yīng)一條記錄。每一記錄指示變化的類型和改變的對象。特定記錄從流開頭的偏移量被稱為該特定記錄的更新序號(USN)。新的記錄被追加到流的尾部,之后,文件系統(tǒng)使用該改變的文件或目錄的最新的USN值來更新主文件表(“MFT”)項。
在一個實施例中,從中可還原設(shè)備和恢復(fù)數(shù)據(jù)的已保存磁盤狀態(tài)120可以是由諸如Windows卷陰影復(fù)制服務(wù)(“VSS”)(也被稱為陰影副本)的歸檔進程134自動提供的數(shù)據(jù)卷的時間點副本。然而,可以理解,可以使用其它手段來保存設(shè)備中的磁盤狀態(tài),而不背離所附權(quán)利要求書的范圍,只要磁盤狀態(tài)對還原設(shè)備和/或恢復(fù)數(shù)據(jù)的目的足夠可信。例如,在一個實施例中,已保存磁盤狀態(tài)120可以由自動或按需生成設(shè)備上的數(shù)據(jù)快照的歸檔進程生成,或者可以從對其保持鏡像叢的卷中持久保存的磁盤狀態(tài)中獲取,或者從使用獨立存儲設(shè)備或子系統(tǒng)復(fù)制的數(shù)據(jù)中獲取。
在一個實施例中,狀態(tài)改變剖析器/聚集器模塊116剖析變化日志124中的信息或者檢查已保存磁盤狀態(tài)120來揭露可指示實際感染時間的證據(jù)。以這種方式,狀態(tài)改變剖析器/聚集器模塊116可以向恢復(fù)分析器114提供足夠的信息,以使得分析器至少能夠確定對實際感染時間的估算,即,確定可能感染時間。應(yīng)該理解,可以按類似的方式使用除變化日志124和已保存磁盤狀態(tài)120之外的系統(tǒng)監(jiān)察信息的其它來源,來揭露證據(jù)并確定可能感染時間。例如,也可以使用查明進程創(chuàng)建時間的進程監(jiān)察日志和來自設(shè)備管理控制臺輸出日志的其它記錄的事件,只要被揭露的證據(jù)足夠充分來以充足的特殊性等級確定可能感染時間。在某些實例中,證據(jù)甚至可能足夠充分來確定實際感染時間。從而,在隨后的描述中,對確定可能感染時間的引用可以被理解為包括確定實際感染時間,(如果揭露了足夠充分的證據(jù))。
在一個實施例中,一旦確定了可能感染時間,那么根據(jù)本發(fā)明,可以啟動恢復(fù)進程126來從惡意軟件攻擊中恢復(fù)?;蛘?,分析器114可以改為在其中觸發(fā)事件保證設(shè)備的常規(guī)殺毒的情形中啟動經(jīng)典反病毒殺毒進程128,這些情形例如,反病毒簽名指示惡意軟件是相對簡單的且殺毒是良好定義的。
在一個典型實施例中,恢復(fù)進程126可以被分成兩個進程,即執(zhí)行系統(tǒng)回退來恢復(fù)系統(tǒng)文件的系統(tǒng)還原進程130,以及恢復(fù)用戶文件的用戶數(shù)據(jù)回退進程132?;謴?fù)進程126可以啟動進程130和132中的一個或兩個,以使用在可能感染時間之前保存的磁盤狀態(tài)來還原設(shè)備上的系統(tǒng)和/或選擇性地恢復(fù)設(shè)備上的數(shù)據(jù)。
在一個實施例中,結(jié)合用戶界面執(zhí)行恢復(fù)進程126,這將在圖4-9中更詳細描述。用戶界面便于設(shè)備的用戶確認恢復(fù)過程。
包含在恢復(fù)分析器114和恢復(fù)進程126中的恢復(fù)過程的操作可以由一個或多個感染檢測器104觸發(fā)。在一個實施例中,感染檢測器104包括行為觸發(fā)器引擎106和反病毒觸發(fā)器引擎108中的至少一個。感染檢測器104可以適用于使用最小簽名和/或其它檢測試探110和簽名更新112來檢測觸發(fā)恢復(fù)過程的操作的事件。例如匹配簽名的事件等事件一般向與由已知病毒或其它類型的惡意軟件引起的損壞相關(guān)的類型的設(shè)備發(fā)送信號指示可能或?qū)嶋H損壞。然而,事件也可以包括對設(shè)備上其它類型的可疑行為或信息的發(fā)現(xiàn),這些行為或信息不是基于簽名的,但指示惡意軟件存的在。例如,為了減少對反病毒簽名定義的依賴,最小簽名和/或其它檢測試探110可以包括不尋常磁盤或網(wǎng)絡(luò)活動的出現(xiàn)或可疑數(shù)據(jù)的存在等等。可選地,或除此之外,可以通過手動觸發(fā)器102來手動地觸發(fā)恢復(fù)分析器114和恢復(fù)進程126的操作。
圖2描述了根據(jù)本發(fā)明的實施例,示出可在其中使用用于從惡意軟件攻擊中恢復(fù)的上述系統(tǒng)100的典型情景200的時間線。如圖所示,時間箭頭204表示時間的經(jīng)過,而平行的記錄箭頭202表示在所表示的時間經(jīng)過中在變化日志中自動記錄所有磁盤改變事件。類似地,平行的存儲箭頭218表示在所表示的時間經(jīng)過中出現(xiàn)并可能已保存的時刻“t”的磁盤狀態(tài)。在圖中,突出顯示了四個時刻,t還原204A、t感染204B、t檢測204C以及t恢復(fù)204D。時刻t還原204A表示已保存磁盤狀態(tài)可用于恢復(fù)設(shè)備的感染前狀態(tài)的時刻,如參考標(biāo)號206所示。時刻t感染204B表示設(shè)備實際被病毒、蠕蟲或其它類型的惡意軟件感染的時刻,如參考標(biāo)號208所示。時刻t檢測204C表示檢測到病毒、蠕蟲或其它類型的惡意軟件的感染的時刻,如參考標(biāo)號210所示。最后,時刻t恢復(fù)204D表示啟動恢復(fù)的時刻,即設(shè)備的磁盤狀態(tài)是感染的和未感染的狀態(tài)的混合的時候,如參考標(biāo)號212所示。
繼續(xù)參考圖2,在處理框220處,系統(tǒng)的分析器114一般通過使用如上參考圖1所示的狀態(tài)改變剖析器/聚集器116的服務(wù)來分析設(shè)備以確定對實際感染時間t感染204B的估算,即可能感染時間。在某些情況下,系統(tǒng)的分析器114可能能夠確定實際感染時間t感染204B,而不僅是估算。在所示情形中,可能感染時間或?qū)嶋H感染時間t感染204B(視具體情況而定)以及例如在時刻t還原204A保存的可用磁盤狀態(tài)的感染前磁盤狀態(tài),被輸入至恢復(fù)進程126來確定是否能夠恢復(fù)設(shè)備的操作系統(tǒng)和用戶數(shù)據(jù)。在某些情況下,如參考標(biāo)號214所示,通過使用先前已保存的磁盤狀態(tài),系統(tǒng)還原進程130用于將設(shè)備還原至它在可能感染時間或?qū)嶋H感染時間t感染204B之前的狀態(tài)。可選地,或除此之外,如參考標(biāo)號216所示,通過使用先前已保存的磁盤狀態(tài),用戶回退進程132用于將磁盤上受感染的文件或其它數(shù)據(jù)回退至它們在可能感染時間或?qū)嶋H感染時間t感染204B之前的狀態(tài)。
在典型情形中,可能存在若干已保存的磁盤狀態(tài)t還原204A,從中,設(shè)備的操作系統(tǒng)和用戶數(shù)據(jù)可以使用系統(tǒng)還原進程130和/或用戶回退進程132來恢復(fù)。然而,不是所有可用的已保存磁盤狀態(tài)t還原204A都是可信的。例如,在某些設(shè)備中,預(yù)期到一個或多個系統(tǒng)組件和/或其它第三方應(yīng)用程序時常依賴于陰影副本,操作系統(tǒng)會通過在定期基礎(chǔ)上取得陰影副本來保存磁盤狀態(tài)。陰影副本一般跨病毒/惡意軟件感染以及后繼的殺毒的生存周期而持久保存。給定它們的只讀性質(zhì),陰影副本自身可能被感染,且不是“可清潔的”。
由于受感染的磁盤狀態(tài)可能長時間地被持久保存在陰影副本中,因此對諸如系統(tǒng)還原130和用戶回退進程132等依賴于陰影副本的應(yīng)用程序而言,獲取陰影副本可信度的驗證是謹慎的??尚哦鹊燃壙梢匀Q于使用的類型而不同。例如,當(dāng)執(zhí)行系統(tǒng)還原時,陰影副本可以遵循或不遵循比當(dāng)執(zhí)行單個文件(例如,用戶數(shù)據(jù))還原時的更高標(biāo)準(zhǔn)的可信度。從而,在一個實施例中,系統(tǒng)還原130和用戶回退進程132可以獲取對可從中恢復(fù)設(shè)備的操作系統(tǒng)和用戶數(shù)據(jù)的一個或多個已保存磁盤狀態(tài)t還原204A的可信度的驗證,這將在下文參考圖4更詳細描述。
圖3描述了根據(jù)本發(fā)明形成的圖1中所示的示例性系統(tǒng)100的其它方面。如圖所示,當(dāng)使用含有示例性系統(tǒng)100的某些或全部組件的回退和恢復(fù)系統(tǒng)來配置時,客戶機設(shè)備300可以被轉(zhuǎn)化為自恢復(fù)性能計算機。在一個實施例中,回退恢復(fù)分析器114包括可以由感染檢測器104或手動觸發(fā)器102調(diào)用來確定客戶機設(shè)備300是否可以使用恢復(fù)進程126來恢復(fù)自身性能的應(yīng)用程序編程接口304。在某些情況下,突然調(diào)用分析器的事件,例如惡意軟件攻擊的檢測,可能使得客戶機設(shè)備300從攻擊中恢復(fù)的最好方法是使用經(jīng)典殺毒進程128。這可能是例如當(dāng)攻擊相對簡單或是由公知病毒引起時的情況,其后果是被良好定義且可逆轉(zhuǎn)的。在這樣的情況下,用于證明惡意軟件攻擊的簽名可以被編碼來確??偸鞘褂媒?jīng)典防病毒殺毒進程。
在一個典型的實施例中,客戶機設(shè)備300從攻擊中恢復(fù)(且通常在攻擊可能被傳播到連接至設(shè)備300的其它設(shè)備之前)的替換和可能更有效的方法可以是使用回退和恢復(fù)進程126來取代嘗試經(jīng)典殺毒。使用如分析器114所確定的可能感染時間(或?qū)嶋H感染時間t感染204B,視情況而定),回退恢復(fù)進程126使用受惡意軟件感染的文件和數(shù)據(jù)的感染前已保存的磁盤狀態(tài)306來向用戶提供恢復(fù)其設(shè)備的選項。該選項可以作為系統(tǒng)還原進程130和用戶數(shù)據(jù)回退進程132的一部分向用戶提供,這兩個進程的每一個都可以使用回退和恢復(fù)用戶界面310來接收允許對該選項進行選擇和確認的用戶輸入308。用戶界面的示例將參考圖8A-C和圖9A-E來更詳細地描述和示出。在一個實施例中,可以作為系統(tǒng)還原進程130和用戶數(shù)據(jù)回退進程132的一部分向用戶呈現(xiàn)的選項可取決于可能已經(jīng)被惡意軟件攻擊感染的文件和數(shù)據(jù)的感染前已保存的磁盤狀態(tài)306的可信度。在一個典型的實施例中,可以如參考圖4詳細描述的來確定感染前已保存的磁盤狀態(tài)306的可信度。
圖4描述了根據(jù)本發(fā)明形成的圖1中所示的示例性系統(tǒng)的其它方面。如圖所示,系統(tǒng)還原進程130和用戶數(shù)據(jù)回退進程132中的任一個或全部可以使用含有磁盤狀態(tài)接口404等的磁盤狀態(tài)分級子系統(tǒng)400,來確定是否有包括感染前已保存的磁盤狀態(tài)306的任何可用的已保存磁盤狀態(tài)402能夠被驗證為可信的。一般而言,可信磁盤狀態(tài)是沒有被感染的狀態(tài),而不可信磁盤狀態(tài)是受到感染的狀態(tài)或者是感染的存在或不存在未知或不能以其它方式確定的狀態(tài)。在一個典型實施例中,系統(tǒng)還原進程130和/或用戶數(shù)據(jù)回退進程132查詢磁盤狀態(tài)的狀況,例如,特定的已保存磁盤狀態(tài)t還原204A,此處也被稱為陰影副本。磁盤狀態(tài)接口404協(xié)助將查詢412傳送給能夠分析諸如磁盤狀態(tài)t還原204A等磁盤狀態(tài)的一個或多個反病毒提供者406,以確定針對該反病毒提供者被設(shè)計來檢測的特定病毒、蠕蟲或其它惡意軟件的可信性。以這種方式,磁盤狀態(tài)接口404生成關(guān)于對應(yīng)于已保存磁盤狀態(tài)t還原204A的還原點是否是較佳的信息。例如,非較佳還原點可能受到在當(dāng)前攻擊之前發(fā)生的其它惡意軟件攻擊的感染,或者可能被諸如間諜軟件或廣告軟件等不受歡迎的軟件污染。
在一個實施例中,如果已保存磁盤狀態(tài)被確定為可信的,那么查詢412包括該已保存磁盤狀態(tài)的預(yù)期使用的指示。該預(yù)期使用可以包括諸如從磁盤狀態(tài)還原系統(tǒng)、還原單個文件、備份系統(tǒng)、備份單個文件等的使用。在某些情況下,預(yù)期的使用可能影響對已保存磁盤狀態(tài)是否可信的判斷。例如,如上所述,當(dāng)預(yù)期使用是還原系統(tǒng)時,所需的可信度等級可能比當(dāng)預(yù)期使用是還原單個用戶文件時更嚴(yán)格。
作為默認動作,如果反病毒提供者406不可用或者不能夠確定可信度,那么磁盤狀態(tài)接口404可以試圖獨立地確定磁盤狀態(tài)的總的可信度。一旦確定可信度之后,磁盤狀態(tài)接口聚集查詢412的結(jié)果(如果適用),并將結(jié)果返回至請求者,例如系統(tǒng)還原進程130或用戶數(shù)據(jù)回退進程132。請求者而后可以確定是否繼續(xù)已保存磁盤狀態(tài)的預(yù)期使用。
繼續(xù)參考圖4,在一個實施例中,磁盤狀態(tài)的可信度根據(jù)分級方案來分級。例如,如圖4所示,對一個或多個可用磁盤狀態(tài)402的可信度的判斷可以導(dǎo)致相應(yīng)的已分級磁盤狀態(tài)408。系統(tǒng)還原130或用戶數(shù)據(jù)回退進程132可以使用已分級磁盤狀態(tài)408,以在如上參考圖3所述的用戶界面310中向用戶提供用于還原其設(shè)備或恢復(fù)其文件的選項。
在一個實施例中,用于對已保存磁盤狀態(tài)分級的分級方案可以包括著色方案。例如,著色方案使用特定的顏色來可視地表示特定的可信度等級,例如,紅色表示受感染的磁盤狀態(tài),黃色表示未知磁盤狀態(tài),而綠色表示未受感染的磁盤狀態(tài),即“感染前”的磁盤狀態(tài)。當(dāng)然,可以理解,著色方案僅是分級方案的一個示例,可以在本發(fā)明中使用其它的分級方案,而不背離所附權(quán)利要求書的范圍。例如,可以使用某些圖標(biāo)或數(shù)字代替顏色來表示可信度等級。
在一個實施例中,系統(tǒng)還原130或用戶數(shù)據(jù)回退132進程可以在用戶界面130中向用戶呈現(xiàn)已保存磁盤狀態(tài)的可信度等級。使用顏色來指導(dǎo)用戶作出關(guān)于是否繼續(xù)從已保存磁盤狀態(tài)中還原其系統(tǒng)或恢復(fù)其文件的決定。例如,當(dāng)在用戶界面310中將可從中執(zhí)行還原的可用磁盤狀態(tài)描述為受感染、未知或較不可信時,用戶可以決定放棄特定系統(tǒng)還原選項。另一方面,當(dāng)在用戶界面310中將可從中執(zhí)行恢復(fù)的可用磁盤狀態(tài)示為未知時,用戶可以決定冒險執(zhí)行特定用戶數(shù)據(jù)恢復(fù)選項。
應(yīng)該注意,設(shè)備300的其它類型的組件可以為除還原系統(tǒng)或恢復(fù)用戶數(shù)據(jù)以外的其它目的來調(diào)用磁盤狀態(tài)接口404。例如,可能存在其它類型的磁盤狀態(tài)客戶機程序410,諸如查看系統(tǒng)或用戶數(shù)據(jù)的以往版本或備份的應(yīng)用程序或創(chuàng)建備份數(shù)據(jù)的應(yīng)用程序,這些應(yīng)用程序可能對與之交互的磁盤狀態(tài)可信度感興趣。
圖5是示出根據(jù)本發(fā)明形成的,由用于從惡意軟件攻擊中恢復(fù)的方法執(zhí)行的邏輯500的某些方面的流程圖。在判定框502處,恢復(fù)分析器114確定在檢測到惡意軟件攻擊的時刻t檢測和設(shè)備能夠被還原至的時刻之間是否在設(shè)備上存在任何軟件安裝活動。在大多數(shù)情況下,t還原是可能感染時刻t感染之前的時刻,在t還原時刻時可能有可用的已保存磁盤狀態(tài)。在一個典型實施例中,可以通過檢查軟件添加和移除歷史記錄來作出是否存在任何軟件安裝活動的判斷。
在一個典型實施例中,當(dāng)不存在軟件安裝活動時,那么處理在判定框504A處繼續(xù),在那里恢復(fù)分析器114確定在同一時間幀內(nèi)是否存在任何用戶數(shù)據(jù)活動。在存在用戶數(shù)據(jù)活動但沒有軟件安裝活動的情況下,如參考圖6更詳細描述的來執(zhí)行用于恢復(fù)設(shè)備的方法。否則,在判定框504B處,在那些既存在軟件安裝和用戶數(shù)據(jù)活動的情況下,如參考圖7更詳細描述的來執(zhí)行用于恢復(fù)設(shè)備的方法。
繼續(xù)參考圖5,在一個實施例中,當(dāng)既不存在軟件安裝又不存在用戶數(shù)據(jù)活動時,如處理框506所述,向設(shè)備的用戶給出選項來執(zhí)行完全磁盤還原??梢酝ㄟ^使用例如可用的感染前已保存磁盤狀態(tài)120重寫活動數(shù)據(jù)122來將設(shè)備的卷重配置到感染時間t感染之前的給定點上存在的狀態(tài),以完成完全磁盤還原。因為完全磁盤還原可能破壞在設(shè)備感染之后創(chuàng)建或修改的用戶數(shù)據(jù),該選項對用戶而言不總是可以接受的。
圖6是示出根據(jù)本發(fā)明形成的,由用于從惡意軟件攻擊中恢復(fù)的方法所執(zhí)行的邏輯600的某些方面的流程圖。在處理框602處,在其中曾經(jīng)存在用戶數(shù)據(jù)活動但沒有軟件安裝活動的那些情況下,設(shè)備可以將系統(tǒng)文件狀態(tài)自動還原至感染之前的狀態(tài)。例如,最初參考圖1描述的系統(tǒng)還原進程130可以用于將系統(tǒng)文件的狀態(tài)自動還原至t還原的狀態(tài)。在一個典型的實施例中,t還原可以是可能感染時間t感染之前,受感染系統(tǒng)文件和其它數(shù)據(jù)有可用的已保存磁盤狀態(tài)的最后時刻??梢杂眠@種方式還原的系統(tǒng)文件和其它數(shù)據(jù)一般包括所有的操作系統(tǒng)文件以及系統(tǒng)注冊表項。
在判定框604處,在其中用戶數(shù)據(jù)活動包括在感染時間t感染之后對新文件的創(chuàng)建的那些情況下,向用戶給出刪除這些新文件的選項。例如,在判定框606處,最初參考圖1描述的用戶數(shù)據(jù)回退進程132可以使用用戶界面進程310。如在處理框610中所述,最初參考圖3描述的用戶界面進程310用于提示用戶在刪除新文件之前提供用戶確認608。
在判定框612處,在其中用戶數(shù)據(jù)活動包括在感染時間t感染之后對現(xiàn)有文件的修改的那些情況下,設(shè)備確定該修改是至少一部分歸因于惡意軟件攻擊,還是僅歸因于用戶。在處理框614處,該設(shè)備可以自動將受惡意軟件感染的文件的狀態(tài)還原至感染前的狀態(tài)。例如,可以使用最初參考圖1描述的用戶回退進程132,來將受惡意軟件感染的用戶文件的狀態(tài)還原至t還原的狀態(tài)。在一個典型實施例中,t還原可以是可能感染時間t感染之前,受感染用戶文件和其它數(shù)據(jù)有可用的已保存磁盤狀態(tài)的最后時刻。
在判定框616處,在其中設(shè)備確定修改僅歸因于用戶的那些情況下,然后向用戶給出還原文件的選項。例如,如在處理框620中所述,在判定框616處,用戶數(shù)據(jù)回退進程132可以使用用戶界面處理310來提示用戶在還原這些用戶文件之前提供用戶確認618。
一旦受感染的系統(tǒng)和用戶文件被自動或選擇性地還原,并且設(shè)備從惡意軟件攻擊中恢復(fù)之后,處理在終止框622處結(jié)束。以這種方式,設(shè)備可以能夠更迅速地從惡意軟件攻擊中恢復(fù),而無需不必要地中斷用戶活動,而使用常規(guī)惡意軟件殺毒一般可能中斷用戶活動。
圖7是示出根據(jù)本發(fā)明形成的,由用于從惡意軟件中恢復(fù)的方法執(zhí)行的邏輯700的某些方面的流程圖。在其中既存在用戶數(shù)據(jù)活動又存在軟件安裝活動的那些情況下,設(shè)備可以依據(jù)該活動是由惡意軟件引起的還是善意的來選擇性地還原某些系統(tǒng)文件的狀態(tài)。在進行之前,在判定框702處,可以使用用戶界面進程310來接收關(guān)于安裝的軟件能否被重新安裝的用戶確認信息704。在用戶確認軟件的重新安裝是可能的情況下,例如必需的安裝盤可用,那么處理可以沿分支至圖6的入口點“A”,且設(shè)備的系統(tǒng)還原和選擇性恢復(fù)可以如參考圖6所述的來繼續(xù)。
繼續(xù)參考圖7,在其中用戶不希望必須重新安裝軟件的那些情況下,處理繼續(xù)確定某些系統(tǒng)文件的狀態(tài)是否可以用減少對在還原最近可用點t還原之后發(fā)生的軟件安裝活動的影響的方式來恢復(fù)。例如,在處理框706處,可以使用系統(tǒng)還原進程130來將在感染時刻t感染已保存的磁盤狀態(tài)與在首次檢測到惡意軟件攻擊的時刻t檢測已保存的磁盤狀態(tài)進行比較?;谠摫容^,在判定框708處,系統(tǒng)還原進程130可以確定在該比較中揭露的改變是可能是對文件善意的改變的結(jié)果,還是可能是惡意軟件引起的。在處理框710處,在改變可能是由惡意軟件引起的情況下,系統(tǒng)還原過程130可以僅自動還原某些文件和數(shù)據(jù),諸如某些系統(tǒng)文件,但不能還原注冊表項。在改變可能是善意的改變的那些情況下,那么系統(tǒng)還原進程130可以將這些文件保持原狀。
在一個典型實施例中,一旦通過將受影響的文件還原至在最近可用的還原點t還原時刻上它們所處狀態(tài)來移除惡意軟件引起的改變之后,然后處理可以沿分支至圖6的入口點“B”。參考圖6,處理在入口點“B”處繼續(xù),其中設(shè)備的用戶數(shù)據(jù)還原和選擇性恢復(fù)可以按如前所述的相同方式在判定框604處繼續(xù)。
圖8A-8C是用于實現(xiàn)圖1-7中所示的方法和系統(tǒng)的某些方面的示例性用戶界面的截圖。圖8A示出了最初在圖3中描述的回退和恢復(fù)用戶界面310的系統(tǒng)還原部分的示例。在所示示例中,用戶界面被命名為“System Rollback and RecoveryWizard(系統(tǒng)回退和恢復(fù)向?qū)?”。該窗口將向用戶引入至向?qū)邮降挠脩艚缑?,它將指?dǎo)用戶通過對可能在其計算機上的惡意軟件攻擊過程中損壞的某些系統(tǒng)文件和其它系統(tǒng)數(shù)據(jù)的還原進程。在一個典型實施例中,該向?qū)⒅笇?dǎo)用戶通過將文件至少還原到它們在可能感染時間之前的狀態(tài)的進程。
在所示的示例中,用戶被告知將分為兩步進行其計算機恢復(fù)。首先,如前參考系統(tǒng)還原進程130所述,用戶被告知,恢復(fù)進程會將操作系統(tǒng)文件和應(yīng)用程序還原至它們感染前的狀態(tài)。然后,如前參考用戶數(shù)據(jù)回退進程132所述,用戶被告知,還原進程將向用戶提供自從攻擊以來改變的用戶數(shù)據(jù)文件的詳細目錄。用戶還被告知,恢復(fù)進程將向用戶提供將歸檔的版本從例如已保存磁盤狀態(tài)的備份復(fù)制到例如活動數(shù)據(jù)的主文件夾的機會,這將參考圖9A-9E進一步描述。通過與例如“NEXT(下一步)”命令按鈕等命令按鈕的交互,用戶可以步進通過向?qū)硎跈?quán)和確認其計算機上的所有或被選擇的文件和其它數(shù)據(jù)的恢復(fù)。
圖8B和8C是向?qū)У钠渌矫娴慕貓D,包括告知用戶其計算機上的操作系統(tǒng)可以被還原至的最后可用時刻。在一個典型實施例中,如圖9A-9E所示,系統(tǒng)回退恢復(fù)向?qū)Ш蛯?yīng)的系統(tǒng)還原進程130的完成將自動觸發(fā)用戶數(shù)據(jù)回退進程132和用戶數(shù)據(jù)文件恢復(fù)向?qū)У牟僮鳌?br>
圖9A-9E是用于實現(xiàn)圖1-6中所示方法和系統(tǒng)的某些方面的示例性用戶界面的截圖。圖9A示出了圖3中首次描述的回退和恢復(fù)用戶界面310的用戶數(shù)據(jù)回退部分的示例。在所示的示例中,該界面被命名為“User Data File Recovery Wizard(用戶數(shù)據(jù)文件恢復(fù)向?qū)?”,并將用戶引入至用戶界面的向?qū)邮剑鼘⒅笇?dǎo)用戶通過對其計算機上的惡意軟件攻擊過程中損壞的所有或所選擇用戶文件或其它數(shù)據(jù)的還原進程。在一個典型的實施例中,該向?qū)⒅笇?dǎo)用戶通過將文件至少還原至可能感染時間之前它們所處狀態(tài)的進程。
在圖9B和9C中所示的示例性界面的部分中,向用戶提供選項按鈕,該選項按鈕可以用來選擇恢復(fù)自從可能感染時間t感染以來刪除或修改的所有文件的選項,或者恢復(fù)被刪除或改變的文件中所選擇的一個文件的選項。通過與選項和例如“NEXT”命令按鈕等命令按鈕的交互,用戶可以步進通過向?qū)砘謴?fù)其計算機上的所有或被選擇的文件和其它數(shù)據(jù)。
圖9D是向?qū)У牧硗夥矫娴慕貓D,包括顯示第一窗口,該第一窗口列出可用于恢復(fù)自從可能感染時間t感染以來被刪除或修改的文件的那些歸檔文件。還提供了選擇界面,以通過將文件從第一窗口復(fù)制到臨近第一窗口的第二窗口來選擇要恢復(fù)的附件。在一個典型的實施例中,如圖9E中所示,僅在用戶能夠顯示和肯定地確認他們所選擇用于恢復(fù)的文件之后,用戶數(shù)據(jù)回退進程132和用戶數(shù)據(jù)文件恢復(fù)向?qū)У耐瓿刹拍芡瓿伞?br>
盡管示出和描述了本發(fā)明的眾多實施例,但是可以理解,可在其中進行各種修改,而不背離本發(fā)明的精神和范圍。例如,在本發(fā)明的一個實施例中,用于從惡意軟件攻擊中恢復(fù)的系統(tǒng)100的各種組件的功能可以用進程、程序、接口和儲存庫的不同結(jié)合來實現(xiàn),且可以跨一個或多個計算設(shè)備分布。例如,系統(tǒng)100中諸如感染檢測器處理104等某些功能可以在客戶機計算設(shè)備300訂閱的web服務(wù)中遠程實現(xiàn),而諸如狀態(tài)改變剖析器/聚集器116等其它功能可以本地實現(xiàn)。還可以理解,盡管在從由惡意軟件攻擊引起的感染中恢復(fù)的環(huán)境中描述了本發(fā)明的實施例,但是該方法和系統(tǒng)也可以應(yīng)用于回復(fù)由不受歡迎的軟件的存在所引起的污染的后果,諸如由于間諜軟件或廣告軟件引起的性能降級。
權(quán)利要求
1.一種用于自恢復(fù)性能設(shè)備的方法,所述方法包括揭露指示在第一時間點上設(shè)備中感染的存在的證據(jù);將所述設(shè)備的狀態(tài)還原至更早的時間點來移除所述感染,其中,所述更早的時間點上的狀態(tài)是足夠可信的。
2.如權(quán)利要求1所述的方法,其特征在于,揭露指示感染的存在的證據(jù)包括揭露指示感染可能發(fā)生的時刻的證據(jù)。
3.如權(quán)利要求1所述的方法,其特征在于,還包括檢測臨近所述第一時間點的設(shè)備狀態(tài)中的改變,其中,揭露指示感染的存在的證據(jù)是基于所檢測到的改變的。
4.如權(quán)利要求3所述的方法,其特征在于,檢測臨近所述第一時間點的設(shè)備狀態(tài)中的改變包括從為由所述設(shè)備使用的文件系統(tǒng)而維護的變化日志中剖析信息。
5.如權(quán)利要求4所述的方法,其特征在于,所述變化日志是Windows NT文件系統(tǒng)變化日志。
6.如權(quán)利要求3所述的方法,其特征在于,檢測臨近所述第一時間點的設(shè)備狀態(tài)中的改變包括確定所述設(shè)備上歸檔的和活動的數(shù)據(jù)之間的差別。
7.如權(quán)利要求3所述的方法,其特征在于,檢測臨近所述第一時間點的設(shè)備狀態(tài)中的改變包括檢查保存在所述設(shè)備上的磁盤狀態(tài)。
8.如權(quán)利要求7所述的方法,其特征在于,還包括確定當(dāng)在更早的時間點保存在所述設(shè)備上的磁盤狀態(tài)未感染時,在所述更早的時間點上的設(shè)備狀態(tài)是足夠可信的。
9.如權(quán)利要求8所述的方法,其特征在于,確定在所述更早時間點上的設(shè)備狀態(tài)足夠可信包括基于可信度等級對在所述更早時間點保存在所述設(shè)備上的磁盤狀態(tài)分級,當(dāng)已保存磁盤狀態(tài)未感染時所述可信度分級等級較高,而當(dāng)已保存磁盤狀態(tài)受感染時,所述可信度分級等級較低。
10.如權(quán)利要求9所述的方法,其特征在于,所述磁盤狀態(tài)是由Windows卷快照服務(wù)生成的卷陰影副本。
11.一種用于從惡意軟件攻擊中恢復(fù)的方法,所述方法包括從變化日志和已保存磁盤狀態(tài)的至少一個中獲取信息;分析所述信息來揭露指示感染已發(fā)生的證據(jù);以及基于所述信息,定位感染時刻。
12.如權(quán)利要求11所述的方法,其特征在于,還包括標(biāo)識自從所述感染時刻以來發(fā)生的改變;以及將所述改變回退至所述感染時刻之前。
13.如權(quán)利要求12所述的方法,其特征在于,還包括向用戶呈現(xiàn)所標(biāo)識的改變;在回退改變之前,從用戶處接收授權(quán)。
14.如權(quán)利要求11所述的方法,其特征在于,所述信息是從變化日志和已保存磁盤狀態(tài)的至少一個中剖析得到的。
15.如權(quán)利要求11所述的方法,其特征在于,所述信息是與所述設(shè)備相關(guān)聯(lián)的狀態(tài)改變。
16.如權(quán)利要求11所述的方法,其特征在于,所述變化日志是Windows NT文件系統(tǒng)變化日志。
17.如權(quán)利要求11所述的方法,其特征在于,所述已保存磁盤狀態(tài)是由Windows卷快照服務(wù)生成的卷陰影副本。
18.一種用于自恢復(fù)性能設(shè)備的系統(tǒng),所述系統(tǒng)包括惡意軟件信息的儲存庫;系統(tǒng)監(jiān)察信息的儲存庫;處理器,用于揭露由于惡意軟件攻擊的感染的證據(jù)、標(biāo)識自從感染的證據(jù)以來的改變、以及通過基于所述惡意軟件信息和所述系統(tǒng)監(jiān)察信息中的至少一個來移除所述改變以從惡意軟件攻擊中恢復(fù)。
19.如權(quán)利要求18所述的系統(tǒng),其特征在于,還包括用戶輸入,用于授權(quán)來通過移除所述改變以從惡意軟件攻擊中恢復(fù),其中,所述處理器顯示所標(biāo)識的自從感染的證據(jù)以來發(fā)生的改變,并在接收到授權(quán)移除所述改變的用戶輸入之后從惡意軟件攻擊中恢復(fù)。
20.如權(quán)利要求18所述的系統(tǒng),其特征在于,所述系統(tǒng)監(jiān)察信息的儲存庫包括變化日志和已保存磁盤狀態(tài)中的至少一個。
全文摘要
提供一種自恢復(fù)性能設(shè)備,其中,在檢測到設(shè)備上由攻擊導(dǎo)致的感染的時間與設(shè)備可以被還原至的更早時間點之間的改變,該設(shè)備能夠至少部分地基于進行了何種改變、改變是善意還是由惡意軟件引起的、是否在感染可能發(fā)生的時刻之后進行改變以及是否安裝了新軟件來恢復(fù)。
文檔編號G06F1/00GK1794193SQ200510126800
公開日2006年6月28日 申請日期2005年11月21日 優(yōu)先權(quán)日2004年12月21日
發(fā)明者A·M·馬里內(nèi)斯庫, C·卡特-施文德勒, M·E·賽費爾德, M·克萊默, P·盧貝, S·A·菲爾德 申請人:微軟公司