對阻止有害代碼和數據擴散的改進的制作方法
【專利摘要】本發明提供了一種處理電子文件的方法,通過標識電子文件中的內容數據的部分并確定內容數據的每個部分是具有固定目的的被動內容數據還是具有相關功能的主動內容數據來處理電子文件。如果一部分是被動內容數據,則確定是否要重新生成該部分被動內容數據。如果一部分是主動內容數據,則分析該部分來確定是否要重新生成該部分主動內容數據。然后,根據確定要重新生成的內容數據部分來創建重新生成的電子文件。
【專利說明】對阻止有害代碼和數據擴散的改進
[0001]分案說明
[0002]本申請是申請日為2007年11月8日,申請號為200780050858.7,題為“對阻止有害代碼和數據擴散的改進”的中國專利申請的分案申請。
【技術領域】
[0003]本發明涉及計算機系統和操作這種系統的方法,用于阻止有害代碼和數據的擴散。具體地,本發明是對本 申請人:的相關英國專利申請0511749.4中描述的系統和方法的改進。
【背景技術】
[0004]在過去的十年中,計算機系統越來越多地受到有害代碼的攻擊。(到目前為止)最極端的有害代碼的示例是計算機病毒。如同其生物學上的同名物,計算機病毒能夠使一臺機器感染,然后從這臺機器開始,通過征用電子郵件系統的資源,利用其所登陸的每臺計算機的地址簿,將包含病毒的電子郵件從一臺計算機發送到許多其它臺計算機,從而感染其它機器。所產生的浪費的帶寬令用戶十分煩惱。此外,許多病毒在所登陸的每臺計算機上執行一些有害的動作,例如可能包括擦除文件。
[0005]典型地,病毒和其他惡意內容到達單獨的附件文件,但是它們也可以隱藏于電子郵件的一部分中,從而可以在不需要用戶明確地分離并執行代碼的情況下變為激活。如字處理器、電子表格和數據庫之類的許多應用包括強大的宏腳本語言,它允許文檔/文件包括能夠執行特定操作的腳本。病毒編寫者利用這種腳本語言來編寫宏病毒,從而包括文檔/文件的電子郵件附件可能包含隱藏的病毒。
[0006]病毒不是有害代碼的唯一形式。常見的是,待分發的“免費”軟件具有隱藏的“間諜軟件(Spyware)”,其被隱蔽地安裝在用戶的計算機上,并隨后把所訪問的網站或其他事務報告給遠端計算機。一些間諜軟件將導致有害廣告的顯示。一些間諜軟件將試圖使調制解調器重復撥出高價號碼,間諜軟件的編寫者借此從電信運營商處獲得收益。其它類型的有害代碼包括惡意軟件、蠕蟲和陷門(Trapdoor)。
[0007]盡管病毒是從一臺計算機至另一臺計算機自我傳播的,但是其它形式的有害代碼通過垃圾電子郵件、在盤上的隱藏分布、或者日益增多地,從不經意訪問的網站下載而得以分發。所有這些類型的有害代碼具有共同點:其存在或其真實目的對它們鎖定為目標的計算機的所有者和用戶部是隱藏的。盡管一些類型的有害代碼相對無害,但是其它的有害代碼能夠擦去有價值的商業數據,因而用于提供反病毒軟件的行業得以發展。
[0008]目前已知的反病毒軟件包括在待保護的計算機上執行的程序。典型地,這種程序在監控模式下操作,其中每次訪問文件時都對要訪問的文件檢查病毒;以及在掃描模式下操作,其中對特定位置(如盤驅動器)中的所有文件進行掃描。反病毒程序提供商監控病毒的爆發,并且當檢測到新病毒時,反病毒程序公司分析該病毒并提取可以用于檢測該病毒的數據。然后,這個數據可用于運行所涉及的特定反病毒程序的計算機;典型地,通過在反病毒程序公司的網站上提供該數據以便下載。
[0009]以各種不同方式檢測病毒。可以存儲形成該病毒一部分的特征代碼串,并針對輸入的文件掃描該串的存在,因而該串用作病毒的“簽名”或“指紋”。可選地,可以通過病毒的預期行為來檢測病毒;可以解析源代碼或腳本文件,以檢測作為病毒特征的預定操作。
[0010]不幸地,類似于它們的生物學同名物,病毒很容易“變異”;代碼中的微小改變(等同于大小寫字母的替換)會改變病毒的簽名。因此,無論通過什么方法來檢測病毒的數據文件變得極大,相應地,反病毒程序所花費的時間也隨著待檢查的簽名或規則的個數的增加而增加。盡管這在病毒掃描模式下是可接受的,但是在監控模式下,它給訪問文件所花費的時間增加了不斷增長的等待時間。此外,隨著下載量變大并且需要更加頻繁地下載,用戶將無法下載必要的更新、以及因而將無法針對最新(因而是最危險)的病毒而獲得保護的風險非常聞。
【發明內容】
[0011]因此,本發明采用了防止有害代碼的完全不同的保護方法。根據本發明的一方面,提供了 一種接收包含預定數據格式的內容數據的電子文件的方法,所述方法包括以下步驟:接收電子文件;確定數據格式;解析內容數據,以確定其是否符合預定數據格式,以及如果所述內容數據符合所述預定數據格式,則重新生成解析后的數據,以創建具有所述數據格式的重新生成的電子文件。
[0012]還提供了相應的計算機系統、程序和承載該程序的介質。
[0013]本發明的實施例操作用于分析每個所接收的文件,然后從中重新構造替代文件。因為并不在要保護的計算機上直接存儲或訪問原始文件本身,所以原始文件本身不能危害該計算機。例如,可以將原始文件以比特反轉形式或不能被執行的其它形式來存儲。另ー方面,將使用僅會生成“干凈”代碼和數據的生成器例程來生成該替代文件。因而不能夠生成與所接收文件中的任何代碼相匹配的有害代碼。
[0014]本發明的一部分可以基于與計算機文件有關的某些長久已知的事實的新應用。目前,輸入計算機的大多數文件具有標準化的文件格式。專有程序創建其自有的文件格式(以及要由那些程序所使用的數據必須符合那些格式),但是存在在不同的專有程序之間交換數據的充分需求,即首先,通常向一個專有程序提供輸入過濾器以讀取由另ー專有程序所寫的數據,以及其次,存在不與任何專有程序相關聯的若干格式。這些通用格式的示例是ASCII文本、豐富文本格式(RTF)、超文本標記語言(HTML)和可擴展標記語言(XML)。
[0015]因此,如果要通過任意應用程序來讀取文件中的數據,則該數據必須精確地符合嚴格的標準,而且不同的文件所使用的格式是公知的。本發明的發明人實現了:盡管允許文件所使用的格式有很寬的變化,但是大多數文件包含滿足某些相對窄的實用(pragmatic)限制的數據。例如,大多數操作系統和應用將會接受很長的文件標題,但是大多數用戶在大多數時間使用簡短并且易于識別的文件名。
[0016]因此,本發明實施例所執行的分析可以包括:檢測在其他方面符合所聲稱的文件類型的規范的數據是否違反了實用限制。這些“現實世界”的約束使本發明能夠檢測‘正常’的可接受文件。不與該類型的實用限制相對應的任何文件內容不被傳遞至生成器程序,因而不會以可執行的形式到達用戶的計算機。[0017]因此將會看出,本發明的實施例以和已知的反病毒程序本質上不同的方式而操作。已知的反病毒程序旨在檢測病毒,并使沒有被檢測為病毒的所有事物通過。因此,這些反病毒程序總是不能保護用戶免受最大的危險;即,未知病毒的危險。所運行的每個新病毒在引起反病毒公司的注意之前,必然已經感染了多臺計算機。
[0018]此外,甚至在安裝了反病毒軟件、并且擁有更新的被檢測數據集的情況下,在可以由反病毒軟件檢測到之前,病毒也通常會存儲在受保護的計算機的硬驅動器或其它介質上。如果處于某種原因反病毒軟件不能運行,則病毒處于適當的位置并可被激活。
[0019]美國公開申請US2003/0145213公開了一種系統,其中在文件中檢測宏或惡意代碼。然后在模板中對該文件進行重構,并從該模板中刪除惡意代碼,從而提供干凈版本的文件。
[0020]通過完全的對比,本發明并不旨在檢測病毒,或甚至典型地拒絕類似于病毒的行為。相反,本發明可以拒絕所有輸入的文件,并在其可能的位置處以不包含有害代碼和數據的所生成的文件進行替代。因此,可以防止有害代碼和數據以可執行的形式不斷地到達要保護的計算機的硬驅動器,并且不會從一臺計算機傳播到另一臺計算機。另外,本發明提供抵御未知病毒的“零日(zero-day) ”保護,不必維持所有已知病毒的最新數據庫。
[0021]就此,可以提及的是,美國公開申請2003/229810公開了一種用于保護免受病毒侵害的“光防火墻”的建議。出于那些將很快變得顯而易見的原因,并不認為該系統已經實現(或者可能實現)。它描述了一種系統,其中防火墻計算機接收到諸如圖像文件之類的文件,并在防火墻計算機的顯示器上顯示該圖像。光傳感器陣列掃描該圖像,然后將掃描后的圖像提供給預期接收者。隱藏于圖像中的任何病毒沒有被顯示,因而沒有在掃描后的圖像中傳遞。在變體中,可以使用屏幕的位圖來取代實際的屏幕顯示器。
[0022]出于多種原因,在上述美國專利申請中提供的“光耦合器”防火墻不能提供有效和可靠的反病毒保護。
[0023]例如,使用光學字符識別(OCR)軟件進行再現可以提供不準確的信息。此外,使用視頻技術再現圖像可以提供比預期較低質量的圖像。此外,如果輸入的文件包含病毒,則接收輸入的文件的計算機將受到感染。
[0024]另一方面,通過分析然后重新生成文件而不是執行文件、顯示文件、并對文件進行光學掃描,本發明的實施例能夠提供在大多數情況下緊密地模仿原始文件(如果它沒有有害代碼)的替代文件,從而使該替代是透明的。
[0025]文件格式的復雜度有所不同。在一種極端情況下,文本文件具有簡單格式。可以包含腳本或宏(如文字處理或電子表格文件)的文件具有中等復雜度,而包含代碼的文件僅能通過代碼解析器進行完全的分析。盡管根據本發明,這種代碼分析從長遠來看是可能的,但是本發明的實施例可以方便地操作以從文檔文件中刪除所有宏和腳本,并且不便單獨包括程序、代碼、宏或腳本的任何文件通過。
[0026]立即可以看出,存在用戶希望接收這種文件的頻繁的時機(occasion)。因此,在優選實施例中,本發明可以和過濾器并排(alongside)操作,所述過濾器被布置用于根據源對文件進行過濾,從而總是使來自特定源的文件(或特定類型的文件)通過,而拒絕來自其它源的文件。
[0027]因此,盡管本發明的實施例可以阻止用戶接收來自所有源的文件中的代碼,但是并行濾波器僅允許來自己知源的這種文件。因此,用戶可以接收來自系統管理員或經證明的網站的文件,這將是本發明所拒絕的。通過僅標識用戶希望從其接收代碼的那些源,本發明可以阻止有害代碼。
[0028]因為本發明可以通過檢測與文件標準的符合度以及典型的用戶行為、而不是通過檢測病毒而操作,所以不需要頻繁的更新;這種更新僅在大的變動獲得普遍接受、或者用戶行為發生實質改變的情況下才需要,與分發反病毒更新所需的瘋狂速度相比,這兩種情況均是緩慢的過程。同樣地,由于要執行的測試個數在一段時間內或多或少保持穩定,所以在啟動程序的等待時間上花費的時間不會増加。
【專利附圖】
【附圖說明】
[0029]將在以下的說明書和權利要求中對本發明的這些和其他方面、實施例和優點進行討論。參照附圖,將僅通過示例對本發明的實施例進行描述,其中:
[0030]圖1示出了根據本發明實施例的電子文件系統的框圖;
[0031]圖2示出了適用于本發明實施例的計算機系統;
[0032]圖3示出了根據本發明實施例的過程的流程圖;
[0033]圖4示出了根據本發明實施例的開發與測試方法的流程圖。
[0034]圖5示出了圖4所示的開發與測試方法的示例的示意圖。
[0035]圖6示出了本發明的另ー開發與測試方面的示意圖。
[0036]圖7示出了根據本發明第二實施例的電子郵件系統的框圖。
[0037]圖8示出了根據本發明第二實施例的過程的流程圖。
[0038]圖9示出了形成電子郵件的不同部分配置的示例布局。
[0039]圖10示出了根據本發明第三實施例的過程的流程圖。
【具體實施方式】
[0040]第一實施例
[0041]圖1示意性示出了根據本發明第一實施例的基本系統布局。在源102處創建電子文件并通過傳輸介質103傳輸該電子文件。傳輸介質103可以是用于傳輸電子文件的任何適合的介質,例如硬連線(hardwired)或無線系統或網絡。電子文件以正常方式通過傳輸介質103,直至到達其目的地。在該實施例中,將AV (反病毒)應用105安裝在目的地系統109中。AV應用105進行操作,使得不允許輸入電子文件中的數據進入目的地系統109的操作系統107,直到如果確定該數據是可允許的則分析并重新生成數據。如下所述,針對預定義的可允許格式,可以對接收的電子文件的ー些部分進行分析,對于接收的電子文件的其它部分,可以生成并且在先前標識為非惡意內容的散列(hash)數據庫106中查找散列。AV應用程序105包括符合度分析器131、散列生成器133、散列檢查器134以及內容重新生成器135,以確定是否要允許電子文件101通過并到達操作系統107并重新生成可允許的內容。
[0042]圖2是示出了適于實現圖1所示的目的地系統109的計算機系統的框圖。系統109在輸入接ロ 111接收輸入電子文件101。輸入接ロ 111連接至處理器113,處理器113被配置為對接收文件執行各種處理。處理器113包括用于對接收電子文件101中的內容進行解析的解析器115。處理器113還連接至存儲器設備117以及可移除介質驅動器119,以從可移除介質讀取數據或將數據寫入可移除介質(如CD120或軟盤(未示出))。處理器113也連接至多個輸出接口(121,123),以能夠連接至輸出設備(如顯示器125以及鍵盤127)。
[0043]從而,當輸入的可執行文件進入AV應用時,不允許這些文件自動運行,該系統對組成輸入電子文件的數據進行布置,使其以任何適當的加擾(scrambled)格式存儲在存儲器中。
[0044]在本實施例中,加擾方法對字節中的比特的順序進行反轉。即,按順序接收到比特O至7,但是將它們以比特反轉方式進行存儲,從而比特O與比特7交換、比特I與比特6交換、比特2與比特5交換、以及比特3與比特4交換。因此,作為示例,包括10110000的字節將以如下順序存儲:00001101。以這種方式,任何可執行代碼都不能自動運行,所以任何受到感染的電子文件都不能夠感染AV應用或目的地操作系統。
[0045]圖3是示出了第一實施例中的AV應用105所執行的處理步驟的流程圖,以確定是否允許電子文件101通過并到達目的地操作系統107。在步驟S3-1,使用任何適當的方式將電子文件101輸入AV應用105并由AV應用105所接收。該輸入方式可以取決于所接收的電子文件101的類型和通過其進行傳輸的介質。在該實施例中,電子文件101被接受入AV應用。
[0046]在該實施例中,系統109接收的電子文件101包括AV應用105要分析的一個或多個部分的內容數據。這些部分的內容數據可以是被動的內容數據,即具有固定目的的數據類型的內容,例如文本、圖像、音頻或視頻內容數據。可選地,這些部分的內容數據也可以是主動的內容數據,如腳本、宏或可執行代碼。
[0047]在該實施例中,AV應用被設計為僅允許符合多個所存儲的已知的、可允許的、預定格式之一的被動內容數據通過,并且僅允許已被標識為非惡意的主動內容數據通過。作為示例,電子文件可以包括根據包括特定規則集在內的文件類型規范而編碼和布置的內容數據,每種類型的文件(文本、HTML、XML、電子表格等)具有相關聯的規則集。有時,通過文件名的后綴(例如.pdf、.text、.doc)來指示常見文件類型,此外或可選地,通過文件中數據的前幾個字節來指示常見文件類型。許多文件類型包括指示與文件結構有關的信息的首部,之后是內容數據(例如,文本、數字、音頻或圖像數據、腳本、宏)。電子文件101可以包含多個部分的內容數據,一些部分是被動內容而一些部分是主動內容。
[0048]被動內容數據可以包括參數(例如,指示內容數據將以粗體呈現的標簽)。構成文件類型規范的規則可以規定這些參數能夠采取的值或范圍。例如,這些規則還可以規定可允許的值或被動內容數據能夠采取的值的范圍。
[0049]本領域技術人員可以認識到,已知能夠打開特定類型文件的應用程序包括解析器,用于將構成文件類型規范的規則應用于文件,以提取內容數據進行呈現或處理。例如,文字處理應用能夠打開其專有的文件格式(例如,Microsoft Word?)、其他文字處理應用的專有文件格式、以及如豐富文本格式(RTF)、ASCII和HTML之類的通用文件格式的文件。能夠將被動內容數據存儲為特定類型文件的應用程序包括生成器,用于將構成文件類型規范的規則應用于被動內容數據,以生成所需格式的文件。
[0050]在本實施例中,對于每種文件類型而存儲預定格式。通常,預定格式包括構成文件規范的規則。然而,預定格式僅包括與格式中頻繁使用的部分有關的規則。此外,預定格式包括約束內容和參數可以采取的值和/或范圍的附加規則,從而僅包括通常和頻繁使用的值和范圍。因此,根據該實施例相應存儲的預定格式,僅能夠對給定的被動內容類型文件中獨占地包括頻繁或通常出現的數據和參數的那些部分進行分析。
[0051]不允許通過系統的被動內容的數據類型的成分(因為其不常使用,所以預定格式并不包括與之有關的規則)的示例是HTML頁面中的I幀和MP3文件中的通用封裝對象(GEOB)標簽。不允許通過系統的不常使用的數據值(因為預定格式被限制為排除了這些不常使用的值的值)的示例是ASCII文件中除了通常使用的TAB、CR/LF和LF字符以外的控制字符。
[0052]內容數據也可以是主動內容數據。作為示例,所接收的電子文件101可以是HTML頁面,該頁面包括多個被動內容數據部分(包含標準HTML標簽和相關文本內容)以及至少個主動內容數據部分(包含可執行腳本(如javascript或VB腳本功能))。也可以根據與所接收的電子文件101相關聯的特定規則集來確定主動內容數據。例如,用于HTML文檔的規則集包括對“< javascript >”標簽的定義,該標簽用于將HTML文件的一部分定義為Javascript可執行代碼。作為另ー示例,用于Microsoft Word文件/文檔的特定規則集定義了特定Microsoft Word文件內包含的子目錄和子文件的目錄結構。ー個標有’VBA”的特定子目錄用于定義Microsoft Word文件內的宏。文件“VBA_PR0JECT”是定義主動內容的一部分的子文件的另ー示例。具有非標準名稱的其它子文件可以列于用于定義MicrosoftWord文件內的其它主動內容部分的“PROJECTwm”文件中。
[0053]相應地,在步驟S3-3中,處理器113標識要處理的下一部分內容,在第一次處理電子文件101時,這是接收的電子文件101中的第一部分內容。在該實施例中,標識這些部分的方式取決于文件類型規范所定義的電子文件的結構。因此,處理器113根據所接收文件的類型,對接收的電子文件101進行處理,以根據與該文件類型的文件類型規范相關聯的特定規則集來標識下一部分內容。例如,用于JPEG文件的文件類型規范包括定義多個標簽的規則集,這些標簽用于包括關于JPEG圖像的信息。作為另ー示例,HTML文件由根據對HTML文件成分的不同標簽集進行定義的特定規則集而布置的內容數據組成。
[0054]在步驟S3-4,處理器113確定當前已標識部分的內容是否被識別為與由接收的電子文件101的類型相關聯的特定規則集所標識的部分相對應。如果處理器113確定該部分內容未被識別為由特定文件類型規范所定義,則在步驟S3-15中通過將接收的電子文件101放入隔離區來阻止該電子文件。因此,接收的電子文件101將不會以任何形式重新生成,并且中止對該文件的處理。
[0055]另ー方面,如果處理器113確定該部分內容數據已識別,則在步驟S3-5中,處理器113確定當前已標識部分的內容是被動還是主動內容數據。再一次,在該實施例中,如上所述,處理器113根據與接收的電子文件101相關聯的特定規則集來進行確定。
[0056]如果處理器113在步驟S3-5中確定該部分內容是被動內容數據,則在步驟S3-6,符合度分析器131用于處理該部分被動內容數據,以確定該部分內容是否符合上述預定格式。本領域技術人員可以認識到,已標識部分的被動內容可以包括多個子部分,每個子部分具有不同的相關聯預定格式。在這種情況下,在步驟S3-6中可以遞歸的調用符合度分析器131來依次處理每個子部分,以確定每個子部分是否符合相應預定格式。在步驟S3-7中,如果符合度分析器131確定該電子文件具有其聲稱具有的格式,而且所有參數符合與該特定電子文件類型相關聯的預定格式,則在步驟S3-9中,將這一部分被允許的被動內容數據傳送至內容重新生成器135來執行重新生成。在該實施例中,內容數據重新生成器135用于根據與原始接收的電子文件類型相關聯的預定格式,從被允許的內容數據部分來重新生成替代文件。
[0057]然后,該處理繼續進行至步驟S3-13,在步驟S3-13中,處理器113確定是否有任何其它內容要處理。如果確定有更多內容要處理,則處理器113返回步驟S3-3來標識要處理的下一部分內容。
[0058]如果在步驟S3-7中,符合度分析器131確定該部分被動內容不符合任何預定格式,則在步驟S3-11中,處理器113確定AV應用105中是否已經設置了清除模式標記。在該實施例中,可以由存儲器117中的標記來控制清除接收的電子文件101的處理,使得電子文件101中不符合的部分不會重新生成。可以將清除模式標記設置為真,以啟用步驟S3-12的清除處理,使得接收的電子文件101中不符合的部分被移除或清除,并且不會出現在重新生成的文件中。在該清除處理中,文件中包含未知功能的任何片段或部分都因此被移除,但仍舊向用戶提供可使用的重新生成的文件。另一方面,可以將清除標記設置為假來禁用該清除處理。如果禁用了清除處理,則將消息或電子文件的任何部分確定為不符合,則將電子文件完全阻止,并且不會以任何形式重新生成。
[0059]如果已經設置了清除標記并且在步驟S3-12中執行了清除處理,則該處理進行至步驟S3-9,在步驟S3-9中,內容重新生成器135用于重新生成與接收的電子文件101中的不符合部分相對應的重新生成文件中的干凈部分。在該實施例中,所產生的干凈部分可以包括例如相關聯部分的標簽,但不具有來自原始電子文件的不符合的數據。可選地,可以插入標簽,使得所產生的文件維持與原始接收的電子文件類型相關聯的預定格式。一旦以預定格式重新生成了干凈部分,則在步驟S3-13中,如上所述,處理器113確定是否有任何其它要處理的內容。在圖3所示的實施例中,如果已標識部分的被動內容數據包括多個子部分,則符合度分析器131在步驟S3-6中將遞歸地依次處理多個子部分中的每一個,以在步驟S3-7中確定是否整個部分的被動內容數據符合預定格式。作為替代方案,可以對被符合度分析器131確定為不符合預定格式的每個子部分執行清除處理。
[0060]以上對步驟S3-7至S3-15的描述涉及對接收的電子文件101中被動部分的內容數據的處理。然而,如上所述,內容數據的部分可以是主動內容數據。相應地,如果處理器113在步驟S3-5中確定當前部分的內容是主動內容數據,則在步驟S3-17中,散列生成器133用于生成針對該主動內容部分的散列。在步驟S3-19中,散列檢查器134檢查散列數據庫來確定所生成的散列是否已存在于散列數據庫106中。如果該散列已存在于散列數據庫106中,則先前已將相關部分的主動內容標識為非惡意的,并且,如上所述,在步驟S3-9中,將被允許的主動內容傳送至內容重新生成器135,由重新生成器135來進行重新生成。另一方面,如果在步驟S3-19中確定該散列不存在于散列數據庫106中,則在步驟S3-21中處理繼續進行至步驟S3-11,在步驟S3-11中,以與如上所述相同的方式,處理器113確定是否要對該部分的主動內容數據執行清除處理或是否要阻止該電子文件。然后,該處理進行至步驟S3-13,在步驟S3-13中,處理器113確定是否有其它內容要處理。如果確定有其它內容要處理,則處理器113重復步驟S3-3至S3-21,直到對接收的電子文件101的所有部分進行了處理并重新生成(如果該部分是被允許的內容數據)。[0061]一旦完成了對接收的電子文件101的所有部分的處理,則在步驟S3-25中,將重新生成的電子文件轉發至目的地系統109的操作系統107,以便以正常方式對其進行處理。對可以使用構成預定格式的規則來從文件中提取的所有被動內容數據以及被標識為非惡意的所有主動內容數據進行提取和重新生成,因此,無法提取的任何部分無法重新生成。
[0062]按照這種方式,由于文件的符合度檢查以及重新生成,病毒無法進入并感染操作系統,事實上,只有常見格式的被動內容數據以及非惡意的主動內容被提取并從而重新生成。
[0063]本領域技術人員可以認識到,當不重新生成接收的電子文件101中的不符合部分時,AV應用105的內容重新生成器135可以在重新生成的電子文件中插入相關的警告文本,以通知接收者該消息的一部分不允許通過。作為ー種選擇,該警告文本可以指示不允許該部分通過的原因。
[0064]另外,電子文件101中的被動內容部分的子部分可能被阻止,即,如果該子部分不符合針對該部分的可允許預定格式,則不重新生成該子部分并優選地將其擦除。這就是說,如果ASCII電子文件中的字符串包括控制字符(例如“ BBL ”字符),則可以使用AV應用105所插入的文本警告來取代該字符串,以通知預期接收者:由于該部分不符合預定格式,因此重新生成的電子文件中的該字符串除去了該部分。符合度分析器131并未具體查找不允許的控制字符(例如“BBL”字符),而是如預定的可允許格式所定義的,僅使被允許的控制字符通過。
[0065]注冊散列
[0066]在上述說明中,散列數據庫106包含先前經過分析并被指示為好的或非惡意的主動內容數據的散列值。本領域技術人員可以認識到,這樣的數據庫需要持續的維護來保持更新至新遇到的、非惡意的腳本、宏以及可執行代碼,使得本系統與方法可以最為有效。現在將給出關于如何在管理模式期間對這些新遇到的主動內容數據進行分析以將其包括在散列數據庫106中的簡要描述。
[0067]在該實施例中,圖1所示的目的地系統109是web代理服務器,用來接收來自系統管理員的在HTML頁面中注冊腳本的請求。在該實施例中,系統管理員在與通常的web瀏覽不同的端ロ(例如端ロ 8181)上將具有要注冊的腳本的HTML頁面作為HTTP請求傳送至web代理服務器109。使用將該請求與普通web業務量區分開的不同端ロ并且也使在該端口上訪問時注冊腳本更安全的操作可能受到防火墻的限制。雖然使用這樣獨有的端ロ允許web代理服務器109知道系統管理員正在請求注冊腳本,但是,可以通過執行額外的認證檢查(如限制所允許的IP地址以及使用ロ令)來實現額外的安全性。
[0068]一旦成功完成認證,web代理服務器109將該請求傳送至因特網并且等待HTTP響應,隨后web代理服務器109將接收回該HTTP響應。web代理服務器109將接收的響應標記為注冊請求而不是普通的瀏覽響應,然后將該響應傳送至AV應用105。AV應用105以與參考圖3的上述方法相似的方式來處理該接收的響應(在該示例中是具有要注冊的腳本的HTML頁面),但是在該示例中的不同的是,由于接收的文件被標記為注冊請求,因此AV應用105被配置為操作于注冊模式而不是操作于上述普通檢查模式。
[0069]在注冊處理中,符合度分析器131檢查接收文件的HTML部分符合HTML規范并且具有合理的值。在處理接收文件的Javascript部分時,散列生成器133創建用于特定Javascript功能的散列,AV應用105檢查該散列是否存在于散列數據庫106中。如果先前已注冊該腳本,則不需要對該特定腳本進行任何進一步動作。然而,如果該腳本未出現于散列數據庫106中,則AV應用105將收集關于該特定腳本的信息并呈現給系統管理員,以確定是否應注冊該腳本。在該示例中,將生成HTML形式以顯示給系統管理員,由系統管理員指示應將哪些腳本注冊至散列數據庫106中。為了建立HTML形式,針對正在處理的HTML頁面,使用數據結構來收集可以注冊的所有散列。為了提供充足的信息給系統管理員以做出基于信息的決定,在該示例中,將該功能的完整文本與所生成的散列一起包括在數據結構中。一旦AV應用105處理了接收的HTML文件的所有部分,使得數據結構填充有系統管理員要審查的散列和功能,則將該數據結構中的每個條目格式化為HTML形式的條目。在該數據結構中的所有條目都被處理為HTML形式之后,將該形式發送至系統管理員,系統管理員指示哪些新遇到的腳本是非惡意的,并因此將其包括在散列數據庫106中。一旦接收到來自系統管理員的注冊響應,則將所指示腳本的散列加入散列數據庫106中。
[0070]開發階段
[0071]以上是對處理文件數據以及使用已知數據來重寫文件的系統與方法的描述,該數據符合文件格式規范和實用和其它特定限制,或先前被標識為非惡意數據,以確保文件接收者接收到非惡意數據。在AV應用105的測試開發期間提出多個問題,確保整個部署階段操作的持續的操作正確性。現在描述這些方面。
[0072]雙程(two pass)錯誤檢測
[0073]潛在地,在重寫處理期間,實現錯誤本身可能會產生重新生成的文件,該重新生成的文件不符合假設要強制執行的上述系統與方法的文件格式規范和實用和其它特定限制。因此,在開發內容重新生成器135期間,必須測試重新生成的文件以確保整個部署階段的持續的操作正確性。
[0074]圖4是示出了重新生成器135的開發與測試階段期間的處理的圖。如圖4所示,重新生成器135的測試開始于步驟S4-1,在步驟S4-1中輸入電子文件。這與以上關于圖3所述的步驟S4-1中接收電子文件的步驟相似。在步驟S4-3中,處理器113處理電子文件,以確定電子文件中被允許的內容并因此以預定格式來重新生成文件。步驟S4-3所執行的處理如以上關于圖3所述的步驟S4-3。如上所述,圖3所示的處理結果是創建重新生成的文件(步驟S3-25)或該電子文件(S3-15)。相應地,在步驟S4-5中,處理器113確定是否已創建重新生成的文件,如果未創建,則在步驟S4-7中確定當前的電子文件不符合預定格式并因此被隔離。
[0075]另一方面,如果創建了重新生成的文件,則在步驟S4-8中,將清除標記設置為禁用,使得當在步驟S4-9中對重新生成的文件進行第二處理過程時,一旦遇到不符合預定格式或或實用或其它特定限制的任何內容,該處理將立即失敗。在步驟S4-9中所執行的步驟如以上關于圖3所述的步驟。在步驟S4-11中,處理器113再次確定是否創建重新生成的文件。如果步驟S4-9的處理導致了重新生成的文件的創建,則在步驟S4-13中確認重新生成器135的功能正確。另一方面,如果在步驟S4-9中的處理未創建重新生成的文件,則在步驟S4-15中,這表明對重新生成器135的驗證失敗。
[0076]因此,如果在步驟S4-3中的第一處理過程的重新生成步驟期間引入了任何錯誤,則這些錯誤會出現在傳統給步驟S4-9中的第二處理過程的重新生成的文件中。然后,第二處理過程將這些錯誤突出表示為不符合本系統與方法所強制執行的文件格式和實用或其它特定限制的有錯誤的重新生成的文件。
[0077]現在描述在開發與測試階段期間該錯誤檢測的具體示例。在以下示例中,通過上述方法來處理MP3音樂文件。一般而言,在這樣的MP3文件內,具有各種標簽,這些標簽包含與特定音樂相關的額外信息,并與編碼的音樂數據分離。一個這樣的MP3標簽是“TC0M”標簽,該標簽詳細說明了與該特定MP3文件的音樂數據內容的制作者相關的信息。
[0078]圖5示意性示出了根據該雙程測試與開發方法來處理的MP3音樂文件的示例。圖5所示的存儲于未交換的原始數據緩沖器中的示例MP3文件501包括標簽“TC0M”、TC0M數據以及音樂數據內容。處理器113在上述步驟S4-3中描述的第一處理過程期間讀取MP3文件501。在圖5所示的示例中,重新生成器135的實現錯誤導致將“TC0M”標簽不正確地重新寫入至輸出緩沖器,使得重新生成的MP3文件503包含無效的標簽“TCM0”。因此,該標簽不符合MP3文件格式規范,因而,當在步驟S4-9中的第二處理過程期間處理重新生成的文件503時,將遇到無效的“TCM0”標簽,并且重新生成的文件503將被隔離。由于在第二處理過程中重新生成文件的失敗,這表明重新生成器135無法在第一處理過程期間正確地重新生成電子文件。
[0079]錯誤分離(faultsplit)
[0080]在本系統與方法的開發期間,另ー問題是,處理必須對多個電子文件進行測試,以收集與已知好的文件相關的信息,并且生成已知非惡意數據文件格式和實用以及其它特定限制的數據庫。檢查電子文件的處理典型地依賴于產品開發者在開發模式中處理每個文件,并且對輸出進行評估來確定所需動作。該處理需要相當多的資源。
[0081]為了克服該問題,設計了ー種有效地將檢查過程自動化并且幫助產品開發者對輸出進行評估的開發與測試方法。根據該方法,該處理對收集文件的目錄進行迭代處理,并且對目錄中的每個文件執行圖3的處理與重新生成步驟。由于該處理對目錄中的每個文件進行操作,因此該處理返回狀態碼以及失敗字符串,該狀態碼以及失敗字符串詳細說明了阻止文件或將文件放入隔離區的任何原因。由處理產生的每個可能失敗原因將返回適當的錯誤碼以及原因字符串。本開發與測試方法使用這些返回的字符串來創建以錯誤碼和原因字符串作為子目錄名稱的子目錄。該方法也根據錯誤碼與原因字符串來將每個對應文件移動至相應子目錄。一旦完成對所有文件的處理,產品開發者可以快速查看處理是阻止文件或將文件放入隔離區的所有原因的列表。另外,產品開發者能夠通過查看每個子目錄內的多個文件來確定這些原因的相對重要性。按照這種方式,產品開發者能夠將其努力集中在導致最多中止的錯誤原因上。
[0082]圖6是該開發與測試處理的示意圖。圖6示出了錯誤分離開發與測試模塊603要處理的JPEG圖像文件的目錄601。將目錄601中的每個文件傳送至AV應用105,如以上關于圖3所示,AV應用105對每個文件進行操作。當完成每個特定文件的處理時,如果對特定文件的處理失敗,則AV應用105返回狀態與原因。
[0083]在圖6所示的示例中,AV應用105在處理文件“picturel.jpg”時發現具有原因字符串“不正確首部值(incorrect header value) ”的錯誤0054。將該錯誤碼與原因字符串返回錯誤分離模塊603。錯誤分離模塊603確定具有相同的錯誤字符串的子目錄是否已存在,如果是,則只要將對應文件拷貝入子目錄中。在圖6的示例中,沒有其它子目錄,因此錯誤分離模塊603創建新子目錄607,該子目錄的名稱為錯誤字符串“failure_0054_incorrect_header_value”。一旦創建了子目錄607,則接著將對應文件“picturel.jpg”拷貝入子目錄607中。
[0084]錯誤分離模塊603處理原始目錄601中的每個文件,直到該目錄中的所有文件都被處理為止。按照這種方式,一旦完成開發與測試處理,目錄結構607將包含針對對原始目錄601中的文件進行處理時遇到的每個錯誤碼的子目錄,并將相應文件拷貝至相應子目錄。
[0085]第二實施例
[0086]在以下描述的與第一實施例相似的第二實施例中,電子文件是通過因特網從發起者傳輸至目的地設備(在本實施例中是因特網服務提供商(ISP))的電子郵件。ISP將電子郵件轉發至電子郵件客戶端服務器,在接收時,電子郵件客戶端服務器將電子郵件轉發至預期接收者的收件箱。
[0087]圖7示出了根據這個實施例的電子郵件系統的布局,其中包括本發明的AV應用。發送者從源位置201轉發電子郵件。經由因特網203將電子郵件轉發至由電子郵件內包含的域名所確定的因特網服務提供商(ISP)205。接收者的電子郵件客戶端服務器207通過直接開放連接與ISP205連接。第一連接是簡單郵件傳輸協議(SMTP)輸出連接,用于將輸出的電子郵件從電子郵件客戶端服務器207轉發至ISP205。第二連接是POP (郵局協議)輸入連接211,其從ISP205獲取電子郵件。
[0088]AV應用105位于ISP205處。AV應用105駐留在與接收者電子郵件客戶端服務器207相連的輸入/輸出端口上,以便分析由電子郵件客戶端服務器207所發送和接收的所有輸出和輸入的電子郵件。
[0089]在該實施例中,AV應用105是使用已知的計算機編程技術而實現的計算機代碼塊。在發送至電子郵件客戶端服務器207的所有電子郵件能夠進入電子郵件客戶端服務器207之前,這些電子郵件必須通過AV應用105。同樣,由電子郵件客戶端服務器轉發至ISP205的所有電子郵件在進入ISP205之前,必須通過AV應用105。
[0090]AV應用105通過在電子郵件消息數據進入該應用時對該數據進行解析而分析輸入的電子郵件消息。如在第一實施例中,數據以加擾模式而存儲,以便停止任何可執行文件的運行。AV應用105確定輸入的電子郵件的獨立部分是否符合預定的可允許格式,以及如果該部分符合,則重新生成電子郵件消息的每一部分。因此,既不允許任何電子郵件內的任何病毒通過以感染接收者的系統,也不允許這些病毒從接收者的系統傳遞至ISP。
[0091]如在第一實施例中所討論的,在該實施例中,符合度分析器131用于分析每個特定數據類型,以查看其是否符合針對該數據類型的預定格式,并提取符合的內容數據。然后,內容重新生成器135使用針對該數據類型的預定可允許格式來重新生成數據。在該實施例中,通過其自有的特定的符合度分析器和內容重新生成器,每種類型的數據都得以分析和重新生成。
[0092]每個符合度分析器131依據所接收數據的類型而對數據運行特定的規則組。這些規則由針對文件類型的官方預定義的規范以及現實世界通常出現(因而是安全的)的已知數據類型的示例來定義。通常,該規則僅允許符合文件類型規范的文件的子集,但是會放松普遍被違背的官方規范的特定規則。例如,電子郵件地址應當不包含空格,但是一些流行的電子郵件應用違背了該規則,從而就這點上違反了規范的電子郵件是普遍的,因而根據該實施例的用于分析電子郵件的預定格式接受包含空格的電子郵件地址,因而實施例對這種電子郵件地址進行分析和提取。
[0093]此外,符合度分析設備可以檢查數據文件內的特定參數。例如,如果首部聲明該文件是RTF (豐富文本格式)文件,則根據RTF文件格式規范,讀取數據的前幾個字節以確定其是否正確。
[0094]圖8示出了系統如何工作的流程圖,其包括根據這個實施例的AV應用。如圖8所示,在步驟S8-1,通過SMTP輸入連接,在ISP處接收電子郵件。
[0095]在步驟S8-3,協議符合度分析設備執行讀取輸入的電子郵件的基本格式的過程,并重新生成電子郵件,使得其符合基本電子郵件協議。不符合的電子郵件讀取器讀取該電子郵件。然后,將所讀取的數據傳遞至符合基本電子郵件協議的電子郵件書寫器。以這種方式,將普通的不符合轉換為符合的電子郵件。例如,如果較差地形成了接收者的電子郵件地址,則電子郵件書寫器重寫該地址,以使其符合。(例如通過移除空格或是在末端插入結束尖括號)。
[0096]另ー示例是當接收到電子郵件消息時沒有'From:,首部。在這種情況下,將電子郵件消息封裝于包括'From:,首部的全新的電子郵件消息中
[0097]也使電子郵件中的其它參數相符合。例如,行長、所使用的正確的ASCII字符代碼、在適合的情況下所使用的正確的Base64編碼、完整的首部信息(To ノ,' Subject:'等)、電子郵件的首部與主體之間的間隔等。
[0098]如果較差地形成了電子郵件,使得其中的一部分不能被重寫,則在不符合的部分丟失的情況下,確定是否仍存在合理的電子郵件。如果確定該過程仍將導致合理的電子郵件,則在不符合的部分丟失的情況下重寫電子郵件。可以將警告文本插入其位置。
[0099]此外,協議符合度分析設備可以拒絕整個電子郵件。例如,如果協議符合度分析設備檢測到針對電子郵件內的大數據塊正在使用不符合的Base64編碼,則在步驟S8-17完全拒絕該電子郵件。
[0100]如果協議符合度分析設備確定電子郵件符合電子郵件協議,則通過協議符合度分析設備重新生成該電子郵件,并將其傳遞至過程中的下一步驟。
[0101]所有電子郵件應當符合當前針對電子郵件的RFC標準(即,RFC822及其后繼)。該標準定義了如何形成電子郵件。在電子郵件通過協議符合度分析設備之后,RFC822符合度分析設備檢查電子郵件是否符合RFC822標準。RFC822符合度分析設備通過如下步驟來執行這個符合度檢查:首先通過發現電子郵件內的邊界(如以下所述)而將電子郵件分為獨立的組成部分,然后解析電子郵件的每個組成部分以查看其是否符合RFC822。
[0102]將會理解,當RFC標準被更新時將會需要更新,以確保RFC822符合度分析設備能夠檢查所有已知數據類型的符合度。
[0103]如公知地,電子郵件由多個獨立的部分構成,例如圖9中所示。電子郵件以RFC822首部901開始,該RFC822首部901定義了多個字段,如'From: '、' To:'和'Subject:'等。接下來是MME首部903,其定義了用于擴展協議中的多個字段,如定義了用于指示電子郵件中不同部分之間的邊界的'Content-Type:'。
[0104]在首部(901 & 903)之后,指示第一邊界905。電子郵件的下一部分以另ー MME首部907開始,其定義了用于該部分的格式。在這個示例中,該部分包括要以文本格式顯示的文本內容。因此,接下來是文本塊909。在文本塊909的結尾是另一邊界911。
[0105]另一 MME首部913指示電子郵件的下一部分將會是何種格式。在本示例中,電子郵件的下一部分是混合的文本和HTML格式的塊915。另一邊界917指示電子郵件該部分的結尾。
[0106]針對電子郵件的下一部分,最后的MME首部919指示電子郵件附件的數據類型,在本例中是ZIP文件。ZIP文件921是Base64編碼的,并被添加至電子郵件。然后,另一邊界923指示ZIP文件塊的結尾。
[0107]針對電子郵件的最后部分,MIME首部925指示電子郵件的另一附件的數據類型,在本例中為可執行代碼的一部分。可執行代碼927是電子郵件中主動內容數據部分的示例。然后,最后邊界929指示了可執行代碼塊的結尾。
[0108]在圖8中的步驟S8-7中,RFC822符合度分析設備使用解析器對形成電子郵件的ASCII字符進行解析。這樣,RFC822符合度分析設備能夠檢測電子郵件中的邊界,并檢查特定參數是否符合已知的可接受的預定格式。例如,RFC822符合度分析設備檢查行長以查看其是否符合RFC822標準,所以僅重新生成2000或更短的行長。
[0109]可以進行其它檢查以查看所解析的電子郵件中的數據是否符合RFC822標準。例如,檢查電子郵件中的字符是否是如標準中所定義的已知的可接受的ASCII字符、首部中的信息是否如標準中所定義、以及首部長度是否符合標準定義。所列出的這些檢查僅是RFC822符合度分析設備所執行的一大組不同檢查中的示例(其它將是對本領域技術人員所顯而易見的),同樣,本發明并不限于以上所列。
[0110]不光分析解析后的數據以查看該數據是否符合基本RFC822標準,RFC822符合度分析設備還檢查特定參數是否符合現實世界中的RFC822標準電子郵件的示例。即,特定參數的規范可以對用戶開放,從而在現實世界中定義僅會使用合理的值。例如,電子郵件通常僅包括最小數量的部分。所以,如果接收到包括1000個邊界的電子郵件,則這不會是現實世界中的RFC822標準電子郵件的示例,所以其將被RFC822符合度分析設備阻止,即不會重新生成并優選地擦除。
[0111]對電子郵件中包括需要進一步符合度檢查的數據在內的每個組成部分,如上述第一實施例中討論的,AV應用確定該組成部分由被動還是主動內容數據組成。如果確定該組成部分為被動內容數據,則在步驟S8-9中,根據該部分所對應的數據類型,將該組成部分并行轉發至獨立的被動內容數據符合度分析器。這就是說,如果所分析的電子郵件部分被定義為文本,則將構成該文本的ASCII字符轉發至文本符合度分析設備。如果被分析的電子郵件部分被定義為TIFF文件,則把構成TIFF文件的字符轉發至TIFF符合度分析設備。
[0112]在步驟S8-9,每個被動數據符合度分析設備對轉發給它的數據進行分析,以查看該數據是否符合其聲稱(purported)格式。如果該數據符合,則通過符合度分析設備來重新生成該數據。如果數據中存在任何的不符合,則該數據要么被省去,或者如果可能,要么通過符合度分析設備重新生成以使其符合。重新生成該數據以使其符合的一個示例是:在RFT文件中丟失嵌套括號的地方添加嵌套括號。
[0113]如果電子郵件包括不同類型數據的嵌套,則遞歸地調用被動數據符合度分析器,從而按順序地運行若干個特定設備,并且每當發現其他數據類型時,每個設備均被推遲。以這種方式,具有包括文字處理文檔(包括JPEG圖像文件)的zip文件的電子郵件可以通過不同的符合度分析設備(zip、文字處理、JPEG)的序列,以便脫去文件嵌套并順序地分析每個文件。
[0114]另ー方面,如果AV應用確定組成部分由主動內容數據組成,則在步驟S8-10中,主動內容數據分析器將分析該數據,以確定腳本、宏或是可執行代碼是否是非惡意的。主動內容數據分析器所執行的處理生成針對主動內容的散列,并且確定該散列是否存在于散列數據庫中。在以上第一實施例中已經描述了該處理。
[0115]在分析結束時,使用所符合的重新生成的部分來重組文件。在步驟S8-11中確定重新生成了電子郵件的足夠部分以形成合適地相干的、可理解的以及值得的電子郵件吋,如步驟S8-13所示,使用RFC822符合度分析設備并利用重新生成的部分來重組數據。這確保了以正確的格式轉發重新生成的電子郵件。然后,如步驟S8-15所指示,AV應用使用SMTP協議,將重新生成的電子郵件轉發至預期接收者。
[0116]然而,如果AV應用在步驟S8-11確定沒有重新生成電子郵件的足夠部分以形成有用的電子郵件,則在步驟S8-17拒絕該電子郵件。在步驟S8-17期間,將警告文本轉發至電子郵件的預期接收者,向他/她告知系統拒絕了預期發給他/她的電子郵件。警告文本可以包括為何刪除消息的細節,以及預期幫助接收者識別發送者、或者電子郵件被拒絕的原因的進ー步信息。
[0117]以下詳細描述的是用于本實施例中的一些示例性的被動內容數據符合度分析器,其可以在步驟S8-9期間使用。例如,如果將電子郵件中的組成部分聲稱是文本數據(取決于RFC822首部、MIME首部或文件擴展名的信息),則將該文本組成部分傳遞至文本符合度分析設備。文本符合度分析設備對文本數據進行解析,以確定它是否符合其預定的可允許格式,如下文所述。
[0118]由于存在多種不同類型的文本文件,如逗號分隔變量(CSV)和豐富文本格式(RTF),所以文本符合度分析設備必須首先區分所解析的數據所聲稱的文本文件的類型。附到電子郵件的所有文件將具有與指示文件類型相關聯的文件擴展。文本符合度分析設備對MIME首部內所解析的文件擴展進行分析,從而確定該文本文件是否是純ASCII文件。如果是,則僅需要使用ASCII符合度分析設備,如下所述。
[0119]然而,如果文本符合度分析設備在分析時確定該文本文件是不同于純ASCII的文件類型,例如CSV文件,則也將調用CSV符合度分析設備以進行分析,并重新生成CSV數據。然而,首先ASCII符合度分析設備對構成電子郵件內的文本文件的ASCII字符進行分析,以查看文本串是否符合ASCII預定格式,以及如果存在符合度,則重新生成ASCII文件。
[0120]ASCII符合度分析設備對數據進行解析以確保該文件符合最小ASCII預定義格式。例如,ASCII符合度分析設備僅允許ASCII字符32至127和四個控制字符'換行'(LF=10)、'回車'(CR = 13)、'制表符'(TAB = 9)和'垂直TAB' (VT = 11)重新生成并通過系統。
[0121]如報警字符(BEL = 7)之類的其它控制字符并不具有如AV應用所定義的ASCII文件的預定可允許格式。所以ASCII符合度分析設備不會重新生成所解析的ASCII代碼塊中的'BEL/字符,而是會拒絕該ASCII字符。
[0122]ASCII符合度分析設備所執行的分析的其它示例是:[0123]?自然行長小于1024個字符?
[0124].字長小于25個字符?
[0125].空格對字符的百分比在預定義的界限以下?
[0126]如果在任何時候ASCII符合度分析設備不能夠重新生成針對該部分ASCII代碼的數據(因為其不符合基本預定格式),則ASCII符合度分析設備檢查該數據,以查看其是否符合某個其它類型的ASCII代碼。例如,源代碼、BinHex、Base64。如果該數據符合另一類型的ASCII代碼,則將該數據轉發至與該ASCII類型有關的符合度分析設備,對于以上所示示例,其可以是源代碼符合度分析設備、BinHex符合度分析設備或Base64符合度分析設備。將會理解,Base64ASCII代碼文件在編碼后的數據中還可以包括其它類型的文件。然后,這些其它類型的文件還將被轉發至有關文件類型的符合度分析設備,等等。
[0127]用于其它類型的ASCII代碼的被動內容數據符合度分析設備針對該部分電子郵件內的數據具有其它的符合度限制。例如,檢查文件以查看其是否為適當構造的代碼、是否具有正確的行長等。一旦每個被動內容數據符合度分析器已經確定內容和參數數據相符合,并因而進行提取,則使用該被動內容數據符合度分析器以可允許的預定義格式重新生成所提取的內容數據。
[0128]一旦ASCII符合度分析設備完成了它的任務,則重新生成的ASCII數據被轉發至與該數據所聲稱有關的文本符合度分析設備。在這個實施例中,文本文件是CSV文件,所以將數據轉發至CSV符合度分析設備。
[0129]以下是CSV符合度分析設備所執行的檢查的示例。CSV符合度分析設備對ASCII數據進行解析,以確保不存在長文本段落,因為段落并不是CSV文件的預定義格式的一部分。CSV符合度分析設備拒絕由于不符合而不能被解析的任何數據。例如,CSV符合度分析設備還檢查限定符(de-limiter)的個數是否符合CSV文件中的限定符的常規預定個數。當CSV符合度分析設備確定該數據符合時,將該數據重新生成為相同的格式。
[0130]以這種方式,僅允許文本文件中符合預定格式的部分傳遞至AV應用的下一級。在被重組并轉發至目的地之前,利用其它重新生成的數據類型部分僅重新生成文本文件中的符合部分。因此,包含病毒的電子郵件的任何部分將不會符合,所以將被阻止,即不會重新生成并優選地被擦除。任何不符合的部分都不允許通過AV應用并感染操作系統。
[0131]另一示例符合度分析設備是用于分析和重新生成TIFF文件的TIFF(標簽圖像文件格式)符合度分析設備。
[0132]TIFF文件具有以預定義的格式而布置的一組目錄和標簽的結構化格式。不能確定圖像數據本身是否表示有意義的圖像。然而,TIFF符合度分析設備解析并分析圖像數據,以確保該數據落入預定義的界限。
[0133]對TIFF文件中的首部信息進行解析并分析,以查看正確的信息是否完整和完好。例如,TIFF符合度分析設備檢查首部信息是否包括位于TIFF圖像的合理界限內的分辨率、大小和深度字段。此外,TIFF符合度分析設備確定首部中指示的條帶(strip)數是否與圖像數據相匹配。
[0134]典型地,通常使用LZW (Lempel-Ziv-Welch)壓縮技術對TIFF文件進行壓縮。TIFF文件包括多個TIFF條帶,在該實施例中,每個TIFF條帶是AV應用105處理的圖像中的最小單位、原子或成分,并且可以對其應用實用限制。每個TIFF條帶通過符合度分析設備而解壓縮,以查看條帶長度是否處于合理的預定義界限之內。例如,如果條帶長度不等于或小于最大圖像大小限制(例如,大于標準AO紙張大小),則拒絕該條帯。一旦TIFF符合度分析設備拒絕ー個條帶,則拒絕整個TIFF文件。
[0135]TIFF符合度分析設備還對TIFF文件內的標簽(S卩,參數數據)進行分析。參照預定義的可允許格式來檢查標簽,以查看例如該標簽是否具有特定順序(根據報頭中的標簽信息的目錄)以及該標簽是否以正確的方式相互有夫。
[0136]當TIFF符合度分析設備確定該數據符合預定義的可允許格式時,重新生成該數據以創建具有原始文件名的重新生成的TIFF文件(其中文件名符合預定格式)。重新生成的TIFF文件被轉發至電子郵件服務器以重組到電子郵件中。
[0137]TIFF文件本身內還可以具有其它圖像類型。例如,可以將JPEG圖像封裝于TIFF文件中。如果TIFF符合度分析設備檢測到不同的圖像類型,則其將與該圖像相關聯的數據轉發至另ー符合度分析設備,在本例中是JPEG符合度分析設備。然后,JPEG符合度分析設備解析并分析該數據,以查看它是否符合期望的JPEG格式,而且如果符合,則重新生成JPEG格式的數據。然后,重新生成的數據被重組為重新生成的TIFF文件,然后將重新生成的TIFF文件用于重組重新生成的電子郵件。接下來將該電子郵件傳遞至電子郵件服務器。
[0138]該實施例中的另ー選項是關于AV應用插入警告文本以取代電子郵件中的不符合部分。即,如果內容數據符合度分析器解析部分數據,并確定該部分不符合預定的可允許格式,則在重新生成電子郵件時,符合度分析器可以插入警告文本以取代不符合部分,向電子郵件的預期接收者告知該電子郵件的ー份被AV應用拒絕。備選地,如果符合度分析器由于不符合的原因而拒絕了電子郵件的完整部分,則AV應用將警告文本插入電子郵件,向預期接收者告知電子郵件的一部分被AV應用阻止,即不重新生成并優選地被擦除。
[0139]第三實施例
[0140]參照圖10,現在將描述本發明的第三實施例。該第三實施例結合了第一或第二實施例的所有特征,包括關于第一或第二實施例中所討論的任何選擇。
[0141]該實施例涉及AV應用阻止一部分、部分或整個電子郵件(在該實施例中稱為“不符合部分”)的情況。參照圖3,如在第一實施例中所討論的,基于各種原因,可能發生這樣的狀況,例如在步驟S3-15中,由于部分被動內容數據不符合預定格式并且未設置清除模式標記,因此可能將整個文件放入隔離區。可選地,如果在步驟S3-11中設置了清除模式標記,則可以省略部分被動內容數據。
[0142]在該實施例中,當AV應用確定電子文件或是其子部分不符合時,不允許電子文件通過并到達目的地操作系統,將原始電子文件傳遞至源過濾器應用,該源過濾器應用確定該電子文件是否在來自信任的源。
[0143]該確定基于系統預期從特定信任源接收到什么。系統通過針對存儲于存儲器中的源的預定列表來審查數據類型列表來執行該確定,以確定該數據類型是否是從該源接受的,換言之,通過源來過濾電子郵件。因此,如果從相同的信任源接收到包含不符合數據在內的文件,則將不符合數據確定為非惡意的(由于其源自相同的信任源),并允許原始的不符合數據通過并到達操作系統。按照這種方式,包括AV應用以及源過濾器應用在內的系統系動態地允許大部分安全電子文件通過并到達其預期目的地。
[0144]圖10示出了根據第三實施例的處理的流程圖。在步驟S10-1中,AV應用確定該部分是否不符合,如果是則阻止該部分。如果被AV應用阻止,則將不符合部分轉發至源過濾器應用,以確定該文件是否是從信任源接收的,如步驟S10-3所示。
[0145]源過濾器應用根據系統用戶偏好來確定不符合部分是否來自信任源。系統在其存儲器中存儲文件類型列表以及與這些文件類型相關聯的不被認為是信任源的源(例如發送者的地址)。因此,系統可以根據文件發送者以及文件類型來確定是否允許文件通過。
[0146]如果在步驟S10-3確定該文件類型不是根據相關聯的源所允許的那些所列出的文件類型之一,則在步驟S10-5阻止該文件類型。如果認為該文件類型是可允許的,則在步驟S10-7,不符合部分繞過(bypass)AV應用。在步驟S10-9,AV應用重新生成所接收文件的剩余部分,并在步驟S10-11,對文件中所重新生成的符合部分和所繞過的不符合部分進行重組。
[0147]例如,如果銀行系統從已知的發送者處接收包括具有復雜的宏的電子表格的大量電子郵件,這些宏可能處于針對電子表格附件內的宏的預定可允許格式之外,所以宏符合度分析設備將阻止電子郵件的這部分。
[0148]然而,因為銀行系統能夠確定誰發送了電子郵件,并將發送者作為銀行系統的可靠伙伴輸入針對這些文件類型的數據庫,所以不會認為電子郵件內的電子表格是惡意的。因此,系統用戶可以建立源過濾器應用以允許這些不符合的宏部分繞過AV應用,并與電子郵件中重新生成的部分一同被重組為電子郵件。
[0149]備選地,源過濾器應用可以在這樣的模式下操作,即通過該模式確定從AV應用接收到的重新生成的文件是否應當被允許繼續通過并到達目的地系統。如果AV應用接收到包括不符合部分(其自身的不符合度不足以使AV應用完全拒絕整個文件,而是導致與原始文件實質上不同的重新生成的符合文件)的文件,則把重新生成的文件轉發至源過濾器應用。例如,由于AV應用對文件的清除,原始文件大小可能明顯大于重新生成的文件的文件大小。
[0150]源過濾器應用確定文件類型是否從針對該文件類型的被認可的源而發送,而且如果是的話,將會允許該文件類型通過系統。
[0151]其它實施例
[0152]可以理解,這里本發明的實施例僅作為示例來描述,并且可以在不偏離本發明范圍的情況下做出各種改變和修改。
[0153]將會理解,本發明可以在把電子文件從源移至目的地的任何系統中實現。用于本發明目的的發送電子文件的方法并不限于任何特定方法。即,例如,電子文件可以從計算機系統的硬件中的一個組件傳遞至另一組件。備選地,例如,可以通過空中接口,從基站向移動電話設備傳遞電子文件。此外,例如,電子郵件可以通過局域網(LAN)、廣域網(WAN)或通過因特網進行傳輸。
[0154]本領域技術人員可以認識到,在資源受限的目的地設備(如移動電話)的基于網絡的環境中,由于受限的資源,使得每個設備可以具有執行上述實施例中描述的大部分處理步驟的功能。在這種環境下,可以在網絡上提供具有完全功能的其它網絡設備。其它網絡設備也可以通過將新的功能并入其它網絡設備來具有任何更新的功能。按照這種方式,不需要更新網絡上存在的每個資源受限的設備。作為示例,在移動電話網絡中,每個移動手機被制造為具有初始的有限功能集合。手機用戶可以通過安裝第三方軟件來更新手機功能。如果新安裝的軟件用于請求并接收未知格式的電子文件至移動手機上的AV應用,則AV應用將標識其何時不具有處理接收電子文件的能力,并且因此將該電子文件傳送至具有完全功能集合的網絡設備。已經對該網絡設備進行了更新以識別該新功能,并因而可以代表移動手機來處理接收的電子文件。然后,該網絡設備可以將重新生成版本的電子文件送回移動手機。作為另ー個選擇,全功能網絡設備可以被配置為截取傳送給移動手機的數據。然后,在將重新生成的版本發送給移動手機之前,網絡設備能夠代表功能受限的移動手機來處理特定電子文件。
[0155]在上述第一實施例中,AV應用位于目的地系統中。本領域技術人員可以認識到,AV應用可以取而代之地或附加地位于源、傳輸介質中的某處或其他位置,只要能夠在沿電子文件的傳輸路徑上的點處對電子文件進行分析。
[0156]在上述第一實施例中,電子文件由根據包含特定規則集在內的文件類型規范來編碼和布置的內容數據所構成。本領域技術人員可以認識到,電子文件101可以作為流數據(如視頻或音頻流中的流數據)來接收。在這種情況下,本質上不根據文件類型規范來進行編碼和布置,而是代之以根據協議規范(例如用于流數據的傳輸協議)來編碼和布置接收數據。相應地,在存儲用于每個文件類型規范的預定格式和規則之外,AV應用也可以存儲用于各種協議規范的預定格式與規則。然后,AV應用可以處理接收的流數據,以確定該數據是否是根據協議的預定格式。
[0157]在上述第一實施例中,在目的地系統109內提供散列數據庫106以及散列生成器133。本領域技術人員可以認識到,對電子文件中主動內容數據部分的處理可以代之以通過傳統的第三方反病毒應用來執行。例如,如果接收的電子文件是具有宏的Microsoft Word文檔,則AV應用105將處理構成被動內容數據的大量Word文檔,以確定其是否安全,并且,可以使用傳統的反病毒產品來掃瞄構成主動內容數據的宏內容,以確定其是否包含已知的對漏洞的利用(exploit)。然而,這樣的選擇具有依賴于第三方反病毒應用的缺點,如果應用數據庫不是最新的,則容易受到零日攻擊。作為另ー種選擇,目的地系統109可以被配置為使用例如已知與下載病毒簽名數據庫相同的機制,通過從可靠的第三方下載已知好的腳本、宏、可執行代碼等的散列數據庫來更新其散列數據庫106。該機制也可以用于提交宏、腳本以及可執行代碼以包括在第三方的散列數據庫中。
[0158]在上述第一實施例中,如果被動內容數據不符合預定格式且清除模式標記被禁用,則隔離整個電子文件。本領域技術人員可以認識到,作為簡單地將整個文件放入隔離區的一種替代方案,可以代之以使用處理主動內容數據的方式來處理電子文件中未知格式/規范的部分。因此,生成針對這些未知內容部分的散列,并且針對良好內容的散列數據庫來檢查該散列。
[0159]在上述第一實施例中,如果啟用了清除模式標記,則執行清除處理來移除不符合部分,并且,內容重新生成器用于根據預定文件類型來重新生成重新生成的文件中必要的空或干凈的部分。本領域技術人員可以認識到,在該清除處理中,處理器還可以被配置為對部分內容數據執行明顯校正。例如,由于明顯地省略特定數據比特而形成壞的JPEG文件。在這種明顯錯誤的情況下,可以在清除處理期間添加丟失的比特以修正該部分內容數據。
[0160]在上述第一實施例中,針對主動內容數據的任何部分來生成散列。如果以不產生語義差別的方式來修改腳本、宏以及可執行代碼,則所有不同版本的主動內容數據可能產生不同的散列,并且需要在散列數據庫中注冊所有散列。為了避免這種情況,可以將腳本、宏以及可執行代碼正規化,使得可以在生成要存儲在散列數據庫中的散列之前,移除布局與變量名的改變。例如,可以移除所有的空格與行中斷,并且以標準化的標記法來替換所有變量名。盡管產生的腳本、宏或可執行代碼可能表現為無用,但是,只要將功能相同而僅在修飾細節上不同的腳本、宏或可執行代碼也正規化為相同的文本,則這個問題并不重要。作為具體示例,下列部分程序代碼定義了可以在HTML文件內接收的Javascript功能。
【權利要求】
1.一種對要傳送至處理模塊的電子文件進行預處理的方法,包括以下步驟: 重寫所述電子文件,使得所述電子文件中所述處理模塊要一起處理的部分按順序布置;以及 將重寫的電子文件傳送至所述處理模塊。
2.如權利要求1所述的方法,還包括以下步驟: 在所述處理模塊處接收重寫的電子文件的部分; 將所接收的重寫的電子文件的所述部分存儲在緩沖器中;以及 一旦接收了要一起處理的所有部分,則對重寫的電子文件的所緩沖的接收部分進行處理。
3.一種包括計算機程序的計算機可讀介質,當所述計算機程序在計算機上運行時,所述計算機程序適于執行權利要求1所述的方法。
4.一種包括存儲器裝置的半導體設備,所述存儲器裝置包括用于執行權利要求1所述的方法的指令。
5.一種對要傳送至用于惡意數據檢測的處理模塊的電子文件進行預處理的系統,包括: 用于標識所述文件中在所述處理模塊進行的惡意代碼分析過程中需要一起處理的離散部分的裝置; 用于重寫所述電子文件,使得要一起處理的部分連續布置的裝置;以及 用于將重寫的電子文件傳送至所述處理模塊的裝置。
6.如權利要求5所述的系統,還包括處理模塊,所述處理模塊被配置為: 接收重寫的電子文件的部分; 將所接收的重寫的電子文件的所述部分存儲在緩沖器中;以及在接收整個文件之前,一旦接收了要一起處理的所有部分,則對重寫的電子文件的所緩沖的接收部分進行處理。
7.一種對電子文件分析和重新生成模塊進行測試的系統,所述系統包括: 用于接收電子文件的裝置; 分析和重新生成模塊,用于處理所接收的電子文件,以創建重新生成的電子文件; 其中,所述系統被配置為使用所述分析和重新生成模塊來處理重新生成的電子文件,以及,如果使用所述分析和重新生成模塊對重新生成的電子文件進行的處理創建了另一重新生成的電子文件,則確定所述分析和重新生成模塊正確工作。
8.如權利要求7所述的系統,其中,所述分析和重新生成模塊是用于處理電子文件的設備,包括: 用于標識所述電子文件中的一部分內容數據的裝置; 用于確定所標識部分的內容數據是具有固定目的的被動內容數據還是具有相關功能的主動內容數據的裝置; 用于確定一部分被動內容數據的文件類型或協議以及用于通過確定所述被動內容數據是否符合預定數據格式來確定是否要重新生成一部分被動內容數據的裝置,所述預定數據格式包括與所述文件類型或協議相對應的規則集; 用于對一部分主動內容數據進行分析,以確定是否要重新生成一部分主動內容數據的裝置;以及 用于在確定要重新生成所述部分的內容數據的情況下,重新生成所述部分的內容數據以創建重新生成的電子文件的裝置。
9.如權利要求8所述的設備,其中,所述電子文件包括多個部分的內容數據,并且,所述設備被配置為對所述多個部分的內容數據中的每個部分進行處理,以確定是否要重新生成每個部分的主動內容數據,并重新生成被確定要重新生成的部分內容數據,以創建重新生成的電子文件。
10.如權利要求8所述的設備,還包括用于確定清除模式是啟用還是禁用的裝置,其中,所述用于重新生成部分內容數據的裝置被配置為:如果確定不要重新生成至少一部分被動內容數據并且所述清除模式被禁用,則不創建重新生成的電子文件。
11.如權利要求10所述的設備,其中,所述設備被配置為:如果確定不要重新生成至少一部分被動內容數據并且所述清除模式被禁用,則將所述電子文件放入隔離區。
12.如權利要求8所述的設備,其中,所述用于對一部分主動內容數據進行分析的裝置被配置為: 針對所述部分的主動內容數據來生成散列; 確定所生成的散列是否存在于已知主動內容數據的散列數據庫中;以及 如果確定所生成的散列存在于已知主動內容數據的散列數據庫中,則確定要重新生成所述部分的主動內容數據。
13.如權利要求8所述的設備,其中,所述用于確定一部分被動內容數據的文件類型或協議的裝置包括多個符合度分析器,每個符合度分析器與特定文件類型或協議相關聯。
14.如權利要求8所述的設備,其中,所述電子文件中的一部分被動內容數據包括多個子部分的被動內容數據,所述子部分中的每ー個由所述多個符合度分析器中的相應的ー個進行處理,以確定所述子部分的被動內容數據是否符合預定數據格式。
15.如權利要求8所述的設備,其中,所述用于重新生成一部分內容數據的裝置包括多個內容重新生成器,每個內容重新生成器與特定文件類型或協議相關聯。
16.如權利要求8所述的設備,其中,所述被動內容數據包括文本、圖像、音頻或視頻內容數據。
17.如權利要求8所述的設備,其中,所述主動內容數據包括腳本、宏或可執行代碼。
18.如權利要求8所述的設備,其中,所述用于對一部分主動內容數據進行分析的裝置還被配置為:如果用于確定一部分被動內容數據的所聲稱的預定數據類型的裝置無法確定該部分被動內容數據的所聲稱的預定數據類型,則對該部分被動內容數據進行分析。
19.如權利要求18所述的設備,還包括對一部分主動內容數據進行正規化的裝置。
20.如權利要求8所述的設備,還包括用于以加擾的格式將所述電子文件存儲在存儲器中的裝置。
【文檔編號】G06F21/56GK103530558SQ201310359471
【公開日】2014年1月22日 申請日期:2007年11月8日 優先權日:2006年12月4日
【發明者】塞繆爾·哈里森·哈頓, 特雷沃·戈達德 申請人:格拉斯沃(Ip)有限公司