專利名稱:用于數(shù)據(jù)庫及郵件服務(wù)器的抗病毒代理的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一個(gè)用于檢測并清除計(jì)算機(jī)病毒的軟件程序和界面,尤其涉及檢測并清除數(shù)據(jù)庫文件和電子郵件附件中的計(jì)算機(jī)病毒的系統(tǒng)和方法。
版權(quán)通告本專利文件的部分內(nèi)容包含屬于著作權(quán)保護(hù)的材料。當(dāng)它出現(xiàn)在專利和商標(biāo)局(Patent and Trademark 0ffice)的專利文獻(xiàn)或記錄中時(shí),著作權(quán)所有者不反對任何人復(fù)印該專利文獻(xiàn)或?qū)@麅?nèi)容。否則保留所有著作權(quán)權(quán)利。
背景技術(shù):
計(jì)算機(jī)病毒是一個(gè)計(jì)算機(jī)程序,在未經(jīng)授權(quán)的情況下改變計(jì)算機(jī)的運(yùn)行方式。與生物病毒相似,計(jì)算機(jī)病毒可以復(fù)制自身附到其它文件上。
為成為計(jì)算機(jī)病毒,一個(gè)程序只需要滿足兩個(gè)標(biāo)準(zhǔn)。首先,它是可執(zhí)行的,經(jīng)常將它自己代碼的某個(gè)版本放置到另一個(gè)程序的執(zhí)行路徑中。計(jì)算機(jī)病毒經(jīng)常執(zhí)行它自身。第二,它復(fù)制自身。舉例來說,一個(gè)病毒程序可以拷貝自身到用戶訪問的其它可執(zhí)行文件或磁盤。許多計(jì)算機(jī)病毒將自身附到其它可執(zhí)行文件上。
病毒在一個(gè)受感染的文件被復(fù)制,下載,或使用時(shí)被傳播。病毒能夠侵犯工作站(包括臺式計(jì)算機(jī)和膝上型計(jì)算機(jī))以及網(wǎng)絡(luò)服務(wù)器等。
許多病毒在執(zhí)行時(shí)破壞受感染的計(jì)算機(jī)或網(wǎng)絡(luò)服務(wù)器。一些病毒被設(shè)計(jì)為通過使程序癱瘓,刪除文件,或重新格式化硬盤等方法破壞計(jì)算機(jī)。當(dāng)病毒造成破壞,破壞程度依賴于感染計(jì)算機(jī)的特定病毒而變化。通常,病毒能夠?qū)τ?jì)算機(jī)造成如下破壞掛起計(jì)算機(jī),刪除文件,攪亂硬盤上的數(shù)據(jù),攻擊文件分配表,攻擊分區(qū)表,或格式化硬盤。
另一些病毒只是些令人討厭的東西,不斷的復(fù)制自己,或輸出文本,視頻或音頻消息。甚至這些良性病毒,仍然能夠?qū)τ?jì)算機(jī)用戶造成問題,因?yàn)橥ǔK鼈冋紦?jù)合法程序使用的計(jì)算機(jī)內(nèi)存。作為結(jié)果,它們經(jīng)常導(dǎo)致不穩(wěn)定的行為,并使系統(tǒng)崩潰。另外,許多病毒充滿錯(cuò)誤,那些錯(cuò)誤會導(dǎo)致系統(tǒng)崩潰和數(shù)據(jù)丟失。
個(gè)人計(jì)算機(jī)病毒可以根據(jù)其傳播和感染計(jì)算機(jī)的方式被分類。引導(dǎo)區(qū)型病毒感染磁盤的系統(tǒng)區(qū),即,軟盤和硬盤上的引導(dǎo)記錄。所有軟盤和硬盤(包括只含數(shù)據(jù)的磁盤)都在引導(dǎo)記錄中包含一個(gè)計(jì)算機(jī)啟動時(shí)執(zhí)行的小程序。引導(dǎo)區(qū)型病毒將它們自己附到磁盤的這個(gè)部分,并在用戶試圖從受感染的磁盤啟動時(shí)激活。因而,引導(dǎo)區(qū)型病毒用它自己的代碼覆蓋該磁盤原來的引導(dǎo)區(qū),使得病毒總是在任何其它內(nèi)容之前被裝入內(nèi)存。一旦在內(nèi)存中,病毒可以使啟動盤無法使用,或傳播到其它磁盤。主引導(dǎo)區(qū)型病毒覆蓋磁盤的主引導(dǎo)區(qū)(分區(qū)表),該主引導(dǎo)區(qū)是硬盤的第一個(gè)扇區(qū)。文件型病毒在一個(gè)受感染程序運(yùn)行時(shí)感染其它程序。為被激活,文件型病毒必須執(zhí)行。它們不保留在內(nèi)存中,所以它們不感染系統(tǒng)。文件型病毒將它們自身附到可執(zhí)行文件(諸如含如.COM,.EXE,.0VL,.DLL,.DRV,.SYS,.BIN,和.BAT的擴(kuò)展名的可執(zhí)行文件)。這些病毒經(jīng)常改變文件屬性信息和文件大小,時(shí)間和日期信息。內(nèi)存駐留型病毒將它們自身裝入內(nèi)存并接管操作系統(tǒng)的控制。象文件型病毒一樣,內(nèi)存駐留型病毒將它們自身附到可執(zhí)行文件上。混合型病毒結(jié)合了內(nèi)存駐留型病毒,文件型病毒和引導(dǎo)區(qū)型病毒的特征。
一種新近的病毒類型,宏病毒。是用特定計(jì)算機(jī)程序,如字處理程序或制表軟件的宏語言寫的。因此宏病毒可駐留在文檔中。宏病毒感染文件,并可在執(zhí)行時(shí)駐留內(nèi)存。它們可以在程序文檔被訪問或被一定的用戶動作觸發(fā)時(shí)運(yùn)行,該用戶動作如特定的擊鍵或菜單選擇。宏病毒可以被存儲在含任何擴(kuò)展名的文件中,通過文件傳送,甚至通過電子郵件被傳播。盡管在過去的文檔中通常沒有被前面討論的類型的病毒感染,任何自動執(zhí)行的支持宏的應(yīng)用軟件都是宏病毒的潛在平臺。由于現(xiàn)在文檔被通過網(wǎng)絡(luò)及因特網(wǎng)廣泛地共享,甚至超過了過去磁盤的共享,基于文檔的病毒可能會變得更流行。
即使病毒的制造是故意的行為,病毒通常在無辜的用戶拷貝或下載受感染的文件到計(jì)算機(jī)或網(wǎng)絡(luò)上時(shí)被引入計(jì)算機(jī)和企業(yè)的網(wǎng)絡(luò)。
傳統(tǒng)的抗病毒軟件被設(shè)計(jì)來檢測并清除計(jì)算機(jī)病毒。病毒被抗病毒軟件以兩種基本方式檢測通過對硬盤的完全掃描或當(dāng)每個(gè)文件被訪問時(shí)的實(shí)時(shí)掃描。多數(shù)抗病毒軟件同時(shí)提供這兩種特性。而且,抗病毒程序可以按指令掃描一個(gè)或多個(gè)用戶選擇的文件或文件目錄。
完全掃描和實(shí)時(shí)掃描用特征代碼(如病毒指紋)檢測已知病毒,該特征代碼識別一個(gè)程序?yàn)椴《尽R恍┛共《拒浖€使用先進(jìn)技術(shù)(諸如多態(tài)檢測)來識別潛在的病毒,并檢察內(nèi)存和系統(tǒng)文件中的病毒。
現(xiàn)有的抗病毒產(chǎn)品在軟盤是主要的向計(jì)算機(jī)內(nèi)存輸入數(shù)據(jù)的設(shè)備時(shí)工作得很好。但是,在近幾年,電子傳遞已經(jīng)成為以電子形式交換數(shù)據(jù)的普通途徑。不令人驚訝地,電子傳遞也已經(jīng)成為主要的病毒威脅?,F(xiàn)有的抗病毒技術(shù)不保證防止病毒以各種可能的方式被引入計(jì)算機(jī)網(wǎng)絡(luò)并在其中傳播。
許多企業(yè)具有計(jì)算機(jī)網(wǎng)絡(luò)以允許程序和數(shù)據(jù)的共享并用于交換消息。隨著網(wǎng)絡(luò),企業(yè)計(jì)算和組織內(nèi)通訊的增長,(例如,使用客戶端-服務(wù)器網(wǎng)絡(luò)和平等網(wǎng)絡(luò),局域網(wǎng)和廣域網(wǎng)),病毒能夠容易地通過組織的計(jì)算機(jī)系統(tǒng)傳播,感染許多計(jì)算機(jī)。而且數(shù)據(jù)交換正是使用這些方案的原因,企業(yè)中一臺計(jì)算機(jī)上的病毒比幾年前更可能與其它計(jì)算機(jī)通訊并感染它們。而且,許多組織內(nèi)部網(wǎng)絡(luò)具有到外部計(jì)算機(jī)網(wǎng)絡(luò)的電子連接(諸如因特網(wǎng),專用在線服務(wù),及公告板)。這些連接使得電子數(shù)據(jù)和計(jì)算機(jī)程序(包括那些可能被計(jì)算機(jī)病毒感染的)被引進(jìn)組織的網(wǎng)絡(luò)。(根據(jù)國家計(jì)算機(jī)安全協(xié)會(NCSA),超過70%的企業(yè)網(wǎng)絡(luò)被病毒感染。)關(guān)于計(jì)算機(jī)病毒,特別關(guān)注的是電子郵件(e-mail)。電子郵件的使用不斷增長以在組織內(nèi)通信(例如,使用局域網(wǎng))及與外部通信(例如,通過因特網(wǎng)與遠(yuǎn)處的計(jì)算機(jī)用戶通信)。電子郵件消息可以包含附加的文件,舉例來說,包括可執(zhí)行文件,格式化文檔,聲音,視頻,等。應(yīng)當(dāng)理解,電子郵件消息的附件可以包含被計(jì)算機(jī)病毒感染的文件。這樣,舉例來說,通過因特網(wǎng)接收的電子郵件可包含一個(gè)被Word宏病毒感染的Microsoft Word文檔作為附件;由項(xiàng)目經(jīng)理在局域網(wǎng)上向其許多組員廣播的電子郵件消息也可能包含被病毒感染的附件。
因?yàn)槿魏晤愋偷奈募伎梢愿郊拥诫娮余]件消息上,病毒保護(hù)軟件經(jīng)常難以決定如何處理附件。此外,典型的電子郵件系統(tǒng)以特有的文件格式在郵件服務(wù)器上存儲所有的電子郵件消息,而不管所附文件的格式。被一個(gè)用戶接收的所有消息可以在中央郵件服務(wù)器上被存儲為一個(gè)單一文件,例如“inbox.msg”。而且,一些電子郵件程序使用特有的加密方法。據(jù)說掃描來自LAN內(nèi)部的電子郵件附件非常困難,因?yàn)橄骳c:mail,Microsoft Exchange和Dayinci這樣的電子郵件程序出于隱私的原因加密電子郵件。因此,電子郵件程序使用的格式,算法,和數(shù)據(jù)結(jié)構(gòu)使開發(fā)防止病毒通過電子郵件附件傳播的抗病毒軟件變得困難。
抗病毒程序的一個(gè)重要目標(biāo)是在造成破壞或病毒被傳播感染其它計(jì)算機(jī)前盡可能快地檢測出病毒。許多病毒檢測程序,舉例來說,不掃描往外發(fā)送的電子郵件消息的病毒,由此允許病毒向其它計(jì)算機(jī)的可能的傳播。通常使用的抗病毒程序不掃描被創(chuàng)建但沒有發(fā)送的電子郵件草稿(即,一個(gè)電子郵件消息,被創(chuàng)建并存儲用于稍后編輯和/或發(fā)送)。涉及電子郵件的病毒檢測軟件可以在某些確定的事件發(fā)生時(shí)只掃描某些電子郵件附件。因此,不需要在病毒可能進(jìn)入或在電子郵件系統(tǒng)內(nèi)傳播的每個(gè)時(shí)刻都檢測病毒。
一些產(chǎn)品聲稱能掃描附加在電子郵件中的文件檢測病毒。例如,Trend Micro Incorporated發(fā)布的“ScanMail for CC:Mail”能夠掃描通過因特網(wǎng)接收的電子郵件附件。該程序是一個(gè)代理類型的軟件,用其自己的代理郵局(病毒檢測在其中進(jìn)行)代替原來的郵局,并在檢測病毒后將清潔的電子郵件發(fā)送到原來的郵局。這樣,接收自網(wǎng)絡(luò)外的電子郵件在進(jìn)入系統(tǒng)的郵局前首先被掃描。(據(jù)說ScanMail通過在病毒到達(dá)工作站前截取和隔離cc:Mail郵局中的病毒來保護(hù)內(nèi)部局域網(wǎng)。)但是,該架構(gòu)不能掃描企業(yè)內(nèi)部互聯(lián)網(wǎng)的電子郵件消息。內(nèi)部發(fā)送和接收的消息從不到達(dá)代理郵局,并因此不會被掃描。因而用戶可以在組織內(nèi)部通過電子郵件發(fā)送病毒。ScanMail不能檢測在局域網(wǎng)內(nèi)產(chǎn)生和存在的電子郵件附件中的病毒。
另一個(gè)聲稱能掃描電子郵件附件的是Trend Micro Devices公司發(fā)布的InterScan VirusWall。當(dāng)它被安裝在UNIX因特網(wǎng)網(wǎng)關(guān)上,InterScan VirusWall試圖截取并掃描電子郵件附件,F(xiàn)TP傳輸數(shù)據(jù),萬維網(wǎng)下載,上載,及在家用電腦或局域網(wǎng)與外部世界間傳輸?shù)臄?shù)據(jù)。InterScan VirusWall由一個(gè)用于網(wǎng)關(guān)通信的FTP代理服務(wù)器和一個(gè)用于電子郵件的簡單郵件傳輸協(xié)議(SMTP)代理服務(wù)器組成。與ScanMail應(yīng)用軟件一樣,InterScan VirusWall程序只能通過因特網(wǎng)網(wǎng)關(guān)的電子郵件附件;它不能掃描在局域網(wǎng)內(nèi)部傳送的電子郵件附件。此外,InterScan應(yīng)用程序運(yùn)行在網(wǎng)關(guān)上并掃描單獨(dú)的包,當(dāng)網(wǎng)絡(luò)上文件大于一個(gè)包的大小時(shí),它可能對檢測多態(tài)的病毒或壓縮的文件不夠有效。
Sybari發(fā)布的名為Antigen的產(chǎn)品將電子郵件附件傳遞給第三方病毒掃描工具以檢測病毒。然而,如果病毒被檢測出并被清除,Antigen不能將電子郵件附件重新附回到電子郵件消息上。盡管Antigen軟件會將電子郵件附件提供給第三方軟件,系統(tǒng)內(nèi)的附件將保持受感染的狀態(tài),因?yàn)樵贏ntigen軟件與第三方軟件之間沒有一體化以激活第三方軟件治愈在電子郵件附件中的病毒。
一些用于電子郵件的病毒檢測程序在客戶端運(yùn)行,并且每當(dāng)用戶打開他或她的郵箱時(shí)掃描發(fā)送給該用戶的電子郵件消息。這樣的系統(tǒng)效率較低。病毒檢測程序必須裝載到每一個(gè)客戶計(jì)算機(jī);因此,如果有250個(gè)工作站,病毒檢測程序必須被裝載250次。如果遺漏了一個(gè)工作站,病毒也許就檢測不出來。此外,當(dāng)用戶打開他或她的郵箱時(shí),掃描在延遲的基礎(chǔ)上進(jìn)行。如果用戶是不經(jīng)常的電子郵件用戶,在打開郵箱時(shí)也許有許多消息需要被掃描。受感染的電子郵件消息可能長時(shí)間未檢測地駐存于未打開過的郵箱中,并可能由于自動的規(guī)則把收到的符合某些特征的電子郵件自動地轉(zhuǎn)遞而被傳播給其他用戶。
因而,需要一個(gè)計(jì)算機(jī)程序,該程序能夠掃描并清除在電子郵件附件中的計(jì)算機(jī)病毒,而不損害電子郵件消息的附件。該程序能針對所有電子郵件消息,包括那些系統(tǒng)內(nèi)部的電子郵件(例如,同一郵件服務(wù)器上的用戶間的電子郵件),那些發(fā)送給或接收自外部電子郵件系統(tǒng)的電子郵件,或那些已起草并存儲于電子郵件服務(wù)器但沒有被發(fā)送的電子郵件。
還需要一個(gè)集中式的系統(tǒng),用于掃描電子郵件消息檢測病毒,而不需要將抗病毒軟件裝載到網(wǎng)絡(luò)的所有工作站上。
發(fā)明概述在典型實(shí)施例中,本發(fā)明是一個(gè)隨抗病毒軟件一起使用的軟件程序(這里稱為代理),用來檢測并清除可能存在于電子郵件附件中的計(jì)算機(jī)病毒。
本發(fā)明的代理計(jì)算機(jī)程序從電子郵件消息中分離出電子郵件附件,使它被掃描以檢測計(jì)算機(jī)病毒,(而且,如果需要,使任何檢測出的計(jì)算機(jī)病毒被清除),然后將附件重新附回電子郵件消息。對于所有電子郵件消息,本發(fā)明正確地工作,該消息包括(a)系統(tǒng)內(nèi)部的電子郵件消息(此處稱為企業(yè)內(nèi)部互聯(lián)網(wǎng)電子郵件),(b)發(fā)送到或接收自一個(gè)外部電子郵件系統(tǒng)的電子郵件消息(此處稱為因特網(wǎng)電子郵件),(c)已起草并/或存儲于電子郵件系統(tǒng)但尚未發(fā)送的電子郵件消息。
應(yīng)當(dāng)理解,不同于防火墻或代理郵局,本發(fā)明的代理從郵件系統(tǒng)內(nèi)部運(yùn)行,使掃描企業(yè)內(nèi)部互連網(wǎng)的電子郵件附件成為可能。
因此,本發(fā)明將保證所有電子郵件消息將被掃描以保護(hù)內(nèi)部電子郵件系統(tǒng)。
而且,一旦病毒被檢測并從附件中清除后,該附件仍是電子郵件消息的一個(gè)有用部分,并能被電子郵件系統(tǒng)如常處理。
本發(fā)明的一個(gè)優(yōu)勢是它運(yùn)行在服務(wù)器端,而不是在客戶端。由此,代理只需被在每個(gè)郵件服務(wù)器上裝載一次,而不是裝載到網(wǎng)絡(luò)的每臺工作站或PC上。此外,電子郵件消息可以被掃描和殺毒而不管用戶的電子郵件是否使用。因此,如果用戶在休假中接收到許多電子郵件罅隙,它們將被掃描和殺毒,從而當(dāng)用戶返回時(shí),他或她的郵箱將只包含沒有病毒的電子郵件消息。
這樣一種方法的效率通過類推現(xiàn)實(shí)世界的郵件遞送可以看到。如果我們希望掃描所有信件來檢測炸彈,在郵件交換中心設(shè)置一臺掃描機(jī)器,當(dāng)信件被分類時(shí)連續(xù)地掃描它們,比在每個(gè)個(gè)人家中設(shè)置一臺掃描機(jī)器,在信件被遞送后的每一天掃描一次更有效率。
在本發(fā)明的典型實(shí)施例中,代理瀏覽每一個(gè)在客戶網(wǎng)絡(luò)內(nèi)生成的或接收自外部網(wǎng)絡(luò)的電子郵件中的附件,從數(shù)據(jù)庫或郵箱中分離出每個(gè)這樣的附件,并發(fā)送這些附件到集成的或獨(dú)立的抗病毒應(yīng)用軟件。代理能夠在被抗病毒應(yīng)用軟件處理過后重新將附件附到電子郵件消息上。
此外,本發(fā)明的代理能夠運(yùn)行在服務(wù)器級,由此進(jìn)行集中的病毒檢測操作。一個(gè)用戶的電子郵件可以被掃描以檢測病毒而不需要該用戶登錄在網(wǎng)絡(luò)上。此外,對電子郵件的掃描可以在有規(guī)律的,定期的基礎(chǔ)上進(jìn)行,而不是僅在發(fā)送,接收或閱讀電子郵件時(shí)進(jìn)行。
本發(fā)明提供一個(gè)應(yīng)用程序界面,能夠從一個(gè)網(wǎng)絡(luò)服務(wù)器集中管理,因而不需要被安裝在與集中管理的服務(wù)器連接的每臺工作站上。
本發(fā)明的典型實(shí)施例的代理被設(shè)計(jì)為對許多電子郵件和數(shù)據(jù)庫系統(tǒng)通用和兼容。
除基于定期地掃描外,本發(fā)明包括實(shí)時(shí)掃描能力,在接收新電子郵件消息時(shí)掃描電子郵件附件以檢測病毒。
本發(fā)明的這些及其它的優(yōu)點(diǎn)和特性對于本領(lǐng)域的技術(shù)人員在閱讀了下面的發(fā)明詳述并研究伴隨的附圖后將變得非常明顯。
附圖簡述
圖1是一個(gè)網(wǎng)絡(luò)架構(gòu)的塊圖,在該架構(gòu)上本發(fā)明得以實(shí)施。
圖2是本發(fā)明與電子郵件系統(tǒng)之間的模塊通訊示意圖。
圖3是詳細(xì)描述本發(fā)明的運(yùn)行的流程圖。
發(fā)明詳述現(xiàn)在參看附圖,首先看圖1,那里舉例說明一個(gè)計(jì)算機(jī)網(wǎng)絡(luò),該網(wǎng)絡(luò)是一個(gè)局域網(wǎng)(LAN)100,被配置用于運(yùn)行本發(fā)明的一個(gè)代理程序110。
如在這里描述的,本發(fā)明運(yùn)行在具有客戶端/服務(wù)器架構(gòu)的局域網(wǎng)上。但是,本發(fā)明不限于這樣的網(wǎng)絡(luò)或架構(gòu),舉例來說,它能容易地被改造以運(yùn)行在諸如對等網(wǎng)絡(luò)或廣域網(wǎng)上。而且,代理程序可以被集成到其它程序,或創(chuàng)建為其它程序的一部分,這些程序如網(wǎng)絡(luò)操作系統(tǒng),電子郵件程序,和/或病毒檢測程序。
網(wǎng)絡(luò)100包含一個(gè)服務(wù)器20,多個(gè)個(gè)人計(jì)算機(jī)(PC)10和工作站30,以及一個(gè)因特網(wǎng)網(wǎng)關(guān)40,所有這些通過通信線路15被連接在一起。如上所述,該網(wǎng)絡(luò)配置僅是圖示一個(gè)能夠運(yùn)行本發(fā)明的代理的網(wǎng)絡(luò)架構(gòu)類型的例子。服務(wù)器20及個(gè)人計(jì)算機(jī)10可以被編程以運(yùn)行一個(gè)特定的電子郵件或數(shù)據(jù)庫程序,如Lotus Notes程序或MicrosoftExchange程序。每個(gè)個(gè)人計(jì)算機(jī)通常包括一個(gè)輸入設(shè)備16(例如鍵盤,鼠標(biāo),等),一個(gè)輸出設(shè)備12(例如,監(jiān)視器),一個(gè)處理器13及內(nèi)存14;同樣地,工作站30也可以包括一個(gè)輸出設(shè)備32,輸入設(shè)備36,處理器35及內(nèi)存34。
此外,網(wǎng)關(guān)40為網(wǎng)絡(luò)100提供到外部計(jì)算機(jī)網(wǎng)絡(luò),例如因特網(wǎng)42,的訪問。本發(fā)明的代理110被配置為與提供給服務(wù)器20的電子郵件和數(shù)據(jù)庫應(yīng)用軟件兼容。
為描述清晰起見,在此使用的例子中,本發(fā)明的典型實(shí)施例的代理110試圖掃描由Lotus Notes程序生成,發(fā)送或接收的文件和消息的附件。為方便起見,術(shù)語“電子郵件消息”將被用于描述在郵件服務(wù)器內(nèi)使用,由郵件服務(wù)器發(fā)送或接收的所有類型的文件,消息,廣播和通信,該郵件服務(wù)器如Lotus Notes程序或支持附件的數(shù)據(jù)庫程序。本發(fā)明的代理110還可以與其它支持電子郵件消息附件的網(wǎng)絡(luò)郵件和數(shù)據(jù)庫程序,如Microsoft的Exchange程序,Lotus的cc:mail,和BeyondMail一起運(yùn)行。此外,代理110能夠與公共文件夾和公共論壇(例如,一個(gè)區(qū)域,用戶在上面張貼的消息能夠被所有其他用戶瀏覽)一起運(yùn)行。
圖2舉例說明了被服務(wù)器20執(zhí)行的本發(fā)明的典型實(shí)施例的軟件成分。由服務(wù)器20執(zhí)行的用于舉例說明的有代表性的應(yīng)用軟件是LotusNotes程序。Lotus Notes服務(wù)器程序130被配置為在服務(wù)器29內(nèi)向LAN100內(nèi)的其它節(jié)點(diǎn)發(fā)送和從LAN100內(nèi)的其它節(jié)點(diǎn)接收文件和電子郵件,那些節(jié)點(diǎn)包括因特網(wǎng)網(wǎng)關(guān)40。一個(gè)或多個(gè)數(shù)據(jù)庫140(在此是Lotus Notes數(shù)據(jù)庫140)存儲已被接收,發(fā)送,起草或保存的電子郵件消息。(在Lotus Notes中,每個(gè)數(shù)據(jù)庫被作為一個(gè)文件對待)。電子郵件消息的附件被隨該消息存儲在Lotus Notes數(shù)據(jù)庫140中。郵件服務(wù)器130和數(shù)據(jù)庫140一起可被認(rèn)為是一個(gè)消息系統(tǒng)。網(wǎng)絡(luò)的節(jié)點(diǎn)(例如10,30)可以包含客戶端郵件程序,與郵件服務(wù)器130交互,允許用戶創(chuàng)建,閱讀,發(fā)送,保存,及編輯電子郵件消息。
抗病毒應(yīng)用軟件120掃描文件以檢測病毒,并能夠從任何受感染文件中清除病毒。在典型實(shí)施例中,抗病毒應(yīng)用軟件120是InocuLAN程序,由紐約Roslyn Heights的Cheyenne軟件公司提供。InocuLAN程序可被認(rèn)為包含兩個(gè)子模塊,即局部掃描模塊和任務(wù)服務(wù)模塊。InocuLAN程序被用作代理110的用戶界面,例如,在掃描即將發(fā)生時(shí)設(shè)置時(shí)間,及報(bào)告掃描結(jié)果。
代理110分離出電子郵件消息的附件并傳遞給抗病毒軟件應(yīng)用軟件120。
圖3顯示與本發(fā)明的代理110的運(yùn)行相應(yīng)的流程圖,該代理與抗病毒應(yīng)用軟件120協(xié)作。盡管本發(fā)明的代理110對于數(shù)據(jù)庫和電子郵件系統(tǒng)是通用的,為簡單起見,下面將僅討論對電子郵件消息的掃描。此外,假設(shè)對所有電子郵件消息(即,所有數(shù)據(jù)庫和郵箱的所有附件文件)進(jìn)行完全掃描。在步驟200,代理110確定在一個(gè)電子郵件消息中是否存在附件。如果不存在附件,代理110在步驟240確定整個(gè)郵件系統(tǒng)140是否已被掃描。如果整個(gè)郵件系統(tǒng)140已經(jīng)被掃描,代理110停止運(yùn)行。但是,如果整個(gè)郵件系統(tǒng)140未被掃描,代理110繼續(xù)處理下一個(gè)電子郵件消息(步驟235)。如果在一個(gè)電子郵件消息中存在附件,代理110分離出附件(步驟205),將附件發(fā)送給抗病毒應(yīng)用軟件120(步驟210)。如果抗病毒應(yīng)用軟件120在附件中沒有檢測出病毒,代理110將附件重新附到原來的電子郵件消息(步驟220)。
但是,如果抗病毒應(yīng)用軟件120在附件中檢測出病毒的存在,一個(gè)警報(bào)被生成(步驟245)。這個(gè)警報(bào)可以被以多種方式構(gòu)造。例如,警報(bào)可以包含一條系統(tǒng)范圍的文本消息,被發(fā)送到LAN100中的每臺PC10或工作站30,或網(wǎng)絡(luò)管理員;或者警報(bào)可以包含被傳遞給生成或接受該受感染附件的網(wǎng)絡(luò)節(jié)點(diǎn)的消息。這樣的警報(bào)生成后,抗病毒應(yīng)用軟件120可以(如果這樣配置了)刪除受感染的附件(步驟250)。如此,附件被刪除(步驟255)。在步驟255后,代理110確定整個(gè)郵件系統(tǒng)140是否已被掃描(步驟260),如果已掃描,進(jìn)程到達(dá)結(jié)束(步驟230)。如果整個(gè)郵件系統(tǒng)140沒有被掃描,代理110處理下一個(gè)電子郵件消息(步驟235)。
如果受感染的附件在步驟250不被刪除,抗病毒應(yīng)用軟件120在可能的情況下治愈受感染的附件(步驟270)。如果治愈了,附件被重新附上(步驟220),如果還有電子郵件消息,代理110處理下一個(gè)電子郵件消息。代理110能夠處理LAN100內(nèi)部的電子郵件消息(包括企業(yè)內(nèi)部互聯(lián)網(wǎng)電子郵件消息)或通過網(wǎng)關(guān)40從因特網(wǎng)進(jìn)入LAN100的電子郵件消息(因特網(wǎng)電子郵件消息)。
InocuLAN程序120將通過電子郵件系統(tǒng)或Cheyenne軟件公司的Alert Generic Notification系統(tǒng)向指定的個(gè)人報(bào)警以警告用戶,如此防止病毒的傳播。InocuLAN的局部掃描工具和任務(wù)服務(wù)與代理110協(xié)作以在消息系統(tǒng)內(nèi)實(shí)施病毒的掃描檢測和清除,并保證一個(gè)無病毒的環(huán)境。
下面是可被用于實(shí)現(xiàn)本發(fā)明的代理110的APIs庫的偽代碼描述。代理110可被認(rèn)為是APIs的一個(gè)高層次,通用的庫。典型實(shí)施例的代理110可以和Lotus Notes及Micrisoft Exchange程序結(jié)合使用。代理10利用Lotus Notes API集,Micrisoft Exchange API集和M API來輔助其功能,例如,瀏覽,分離和重新粘附電子郵件附件。那些Lotus和Micrisoft APIs已出版,熟練的程序員將理解它們能夠如何被配置以與代理110交互。代理110是這樣一組可被抗病毒應(yīng)用軟件120使用以與郵件服務(wù)器程序130通信的APIs。
在下面的偽代碼中,“MDA”是一個(gè)術(shù)語,意思為郵件數(shù)據(jù)庫代理?!癠ID”是唯一的或普遍的標(biāo)識符,用于識別一個(gè)電子郵件消息。這個(gè)例子假設(shè)LAN使用Windows NT網(wǎng)絡(luò)操作系統(tǒng)。
MDAConnectAgent( )建立到消息代理的連接。
在任一個(gè)需要<agent_id>作為輸入?yún)?shù)的MDA API調(diào)用前被調(diào)用。
輸入Windows NT服務(wù)器名字。
消息代理的名字。
Windows NT用戶登錄名。
用于登錄的特征數(shù)據(jù)文件名(僅用于交換服務(wù)器)。
以上述用戶標(biāo)識及用戶特征數(shù)據(jù)文件登錄時(shí)使用的口令。
輸出<agent_id>,它是被返回的連接標(biāo)識,可被后面的API調(diào)用用來跟蹤當(dāng)前的連接實(shí)例。
MDADisconnectAgent( )斷開與消息代理的當(dāng)前連接,在每次MDA會話結(jié)束后被調(diào)用以釋放資源。
輸入<agent_id>
MDAGetAgentInfo( )從代理處獲得消息系統(tǒng)供應(yīng)方信息??梢栽贛DAConnectAgent( )和MDADisconnectAgent( )之間任何時(shí)候被調(diào)用。
輸入
<agent_id>
被<vendor>指向的緩沖區(qū)的大小輸出<vendor>,它是關(guān)于與代理對話的消息系統(tǒng)的信息。
MDAOpenDatabase( )打開Lotus Notes數(shù)據(jù)庫或ExchangeInformation Store。第一次調(diào)用以獲得一個(gè)有效的數(shù)據(jù)庫句柄。所有其它需要數(shù)據(jù)庫句柄的MDA API調(diào)用然后可以被調(diào)用。MDAScanAllFindFirst( )或MDAScanDatabaseFindFirst( )將隱含地打開information store。
輸入<agent_id>
<dbname>,將被打開的輸入Lotus Notes數(shù)據(jù)庫名,對于Microsoft Exchange設(shè)置為空。
<istoreUID>,將被打開的Exchange InformationStore的用戶標(biāo)識符,對于Lotus Notes設(shè)置為空。
輸出<dbhandle>
MDACloseDatabase( )關(guān)閉一個(gè)打開的Lotus Notes數(shù)據(jù)庫或Exchange Information Store。被調(diào)用以釋放分配的資源。
輸入<agent_id>
<dbhandle>
MDAEnumObjects( )在一個(gè)容器內(nèi)列舉子對象。對于Exchange和Lotus Notes,有三層對象,即,Agent,Mailbox/Public Istore,和Message。當(dāng)<input_object_type>是MDA_OBJECT_AGENT時(shí),返回一個(gè)Mailbox和Public Istore的列表。當(dāng)<input_object_type>是MDA_OBJECT_MAILBOX或Istore,返回一個(gè)其中的消息列表??梢栽贛DAConnectAgent( )和MDADisconnectAgent( )之間任何時(shí)候被調(diào)用。
輸入
<agent_id>
<input_object_type>--列舉的輸入對象的類型,可能的值為MDA_OBJECT_AGENT,MDA_OBJECT_MAILBOX及MDA_OBJECT_INFORMATIONSTORE。
輸入對象的顯示名。
輸入對象的用戶標(biāo)識,僅用于Exchange。
緩沖區(qū)的大小。
輸出被返回對象的類型。
包含子對象的顯示名列表的緩沖區(qū),由兩個(gè)空字符結(jié)束。
在上述緩沖區(qū)中返回的字節(jié)的數(shù)目。
包含子對象的用戶標(biāo)識列表的緩沖區(qū)。
在上述緩沖區(qū)中返回的字節(jié)的數(shù)目。
MDAGetAl1MsgUids( )獲取在openedMailBox或InformationStore中所有消息的消息用戶標(biāo)識列表。
輸入<agent_id>
<dbhandle>
用戶標(biāo)識緩沖區(qū)的大小。
輸出包含在Mailbox或Information Store中的消息的消息用戶標(biāo)識列表的緩沖區(qū)。
在上述緩沖區(qū)中返回的字節(jié)的數(shù)目。
MDAGetObjectProperty( )獲取指定對象的感興趣的特性。
MDAScanAllFindFirst( )掃描整個(gè)消息系統(tǒng)并返回存儲于系統(tǒng)中在<start_time>指定的時(shí)間標(biāo)記后接收的所有附件文件的列表。如果<start_time>為0,所有附件將被掃描。將首先掃描PublicInformation Store,然后掃描Private Information Stores。該API將導(dǎo)致第一個(gè)Information Store被打開,并在AFILE中返回一個(gè)數(shù)據(jù)庫句柄??稍贛DAConnectAgent( )和MDADisconnectAgent( )之間的任何時(shí)間被調(diào)用,但不能在任何其它活動掃描序列內(nèi)被調(diào)用。該API不能在活動數(shù)據(jù)庫句柄存在時(shí)被調(diào)用。必須調(diào)用MDACloseFindHandle( )來結(jié)束一個(gè)掃描會話。
輸入<agent_id>
<start_time>,掃描開始時(shí)間。
輸出<handle>,返回給當(dāng)前掃描的調(diào)用者的搜索句柄,用于跟蹤整個(gè)掃描序列。
<afile>,系統(tǒng)中找到的第一個(gè)附件信息。
MDAScanAllFindNext( )獲取當(dāng)前掃描的下一個(gè)附件信息結(jié)構(gòu)。在一個(gè)MDAScan會話內(nèi)被調(diào)用。該API調(diào)用可導(dǎo)致一個(gè)InformationStore被關(guān)閉,而另一個(gè)Information Store被打開。
輸入<agent_id>
<handle>
輸出<afile>,系統(tǒng)中找到的下一個(gè)附件信息。
MDACloseFindHandle( )關(guān)閉當(dāng)前搜索句柄--將結(jié)束當(dāng)前掃描。用一個(gè)活動句柄調(diào)用??稍谝粋€(gè)MDAScanAllFindFirst( ),MDAScanAllFindNext( ),MDAScanDatabaseFindFirst( )或MDAScanDatabaseFindNext( )后被調(diào)用。
輸入<agent_id>
<handle>
MDAScanDatabaseFindFirst( )掃描指定的Information Store并返回存儲在那里的所有附件文件的列表??稍贛DAConnectAgent( )和MDADisconnectAgent( )之間的任何時(shí)間被調(diào)用,但不能在任何其它活動掃描序列內(nèi)被調(diào)用。
輸入<agent_id>
<path>,將被掃描的Lotus Notes數(shù)據(jù)庫的路徑名,僅用于Lotus Notes,否則設(shè)置為空。
<istoreUID>,將被掃描的Information Store的用戶標(biāo)識--僅用于Exchange,否則設(shè)置為空。
<start_time>
輸出<handle>
<afile>,存儲中找到的第一個(gè)附件。
MDAScanDatabaseFindNext( )獲取當(dāng)前掃描的下一個(gè)附件信息結(jié)構(gòu)。該API在一個(gè)MDAScan會話內(nèi)被調(diào)用??稍贛DAConnectAgent()和MDADisconnectAgent()之間的任何時(shí)間被調(diào)用。
輸入<agent_id>
<handle>
輸出<afile>,系統(tǒng)中找到的下一個(gè)附件。
MDADeleteFile( )刪除為分離附件創(chuàng)建的臨時(shí)文件并清除附件。如果filePath不為空,刪除由其指定的文件。如果afile或attachInfo不為空,進(jìn)入消息并從中刪除附件。可在MDAConnectAgent( )和MDADisconnectAgent( )之間的任何時(shí)間被調(diào)用。
輸入<agent_id>
<afile>,包含附件信息,以及當(dāng)前信息存儲的數(shù)據(jù)庫句柄。
<filePath>,臨時(shí)文件的路徑。
MDAExtractFile( )將附件內(nèi)容提取到一個(gè)臨時(shí)文件中。可在MDAConnectAgent( )和MDADisconnectAgent( )之間的任何時(shí)間被調(diào)用。
輸入<agent_id>
<afile>
輸出<filePath>
MDAAttachFile( )將一個(gè)文件附到一個(gè)存在的附件上??稍贛DAConnectAgent( )和MDADisconnectAgent( )之間的任何時(shí)間被調(diào)用。
輸入<agent_id>
<afile>
<filePath>
MDAGetMailInfoFromAFile( )將一個(gè)文件附到一個(gè)附件上??稍贛DAConnectAgent( )和MDADisconnectAgent( )之間的任何時(shí)間被調(diào)用。
輸入<agent_id>
<afile>
輸出<mail>,關(guān)于包含附件的消息的信息。一組指針指向?qū)嶋H數(shù)據(jù)所在的緩沖區(qū)。
<buffer>,包含輸出信息。
上述緩沖區(qū)的大小。
MDAGetAttFileCountFromMessage( )獲取由消息標(biāo)識指定的特定消息的附件文件列表??稍贛DAConnectAgent( )和MDADisconnectAgent( )之間的任何時(shí)間被調(diào)用。
輸入<agent_id>
<dbhandle>
<messageUID>,消息的用戶標(biāo)識。
輸出該消息中的附件文件名列表。
上述列表的大小。
MDASendMail( )向指定用戶發(fā)送郵件??稍贛DAConnectAgent( )和MDADisconnectAgent( )之間的任何時(shí)間被調(diào)用。
輸入<agent_id>
<dbhandle>
MessageUID將打開的郵箱名消息的接收者消息的發(fā)送者消息主題消息體MDAGetError( )從代理處獲取錯(cuò)誤信息??稍贛DAConnectAgent( )和MDADisconnectAgent( )之間的任何時(shí)間被調(diào)用。
MDAGetMsgTime( )獲取指定消息的遞送時(shí)間標(biāo)記??稍贛DAConnectAgent( )和MDADisconnectAgent( )之間的任何時(shí)間被調(diào)用。
輸入<agent_id>
<dbhandle>
<msgUID>,被Exchange用于在郵箱中查找該消息。
輸出時(shí)間標(biāo)記。
MDAGetOwnerName( )獲取一特定附件文件的所有者的名字。可在MDAConnectAgent( )和MDADisconnectAgent( )之間的任何時(shí)間被調(diào)用。
輸入<agent_id>
<afile>
輸出所有者的名字。
MDAEstimateAttFiles( )在服務(wù)器上估計(jì)含晚于<start_time>時(shí)間標(biāo)記的附件文件的大小和數(shù)目??稍贛DAConnectAgent( )和MDADisconnectAgent( )之間的任何時(shí)間被調(diào)用。
輸入<agent_id>
<start_time>
輸出附件文件的總數(shù)。
所有附件文件大小的總和。
MDASetDetachedDir( )將一個(gè)臨時(shí)目錄設(shè)置為分離目錄。可在MDAConnectAgent( )和MDADisconnectAgent( )之間的任何時(shí)間被調(diào)用。
輸入<agent_id>
將被創(chuàng)建的分離目錄路徑。
MDAFreeResource( )釋放為指定的用戶標(biāo)識分配的資源。當(dāng)前僅支持Exchange。
輸入<agent_id>
<uid>
輸出成功或系統(tǒng)錯(cuò)誤的標(biāo)志。
掃描電子郵件附件可以在預(yù)定的或?qū)崟r(shí)的基礎(chǔ)上發(fā)生。當(dāng)在預(yù)定的基礎(chǔ)上掃描病毒時(shí),用戶利用抗病毒應(yīng)用軟件120指定掃描發(fā)生的時(shí)間間隔,例如每10分鐘,每小時(shí),等。在上一個(gè)時(shí)間間隔內(nèi)郵件服務(wù)器程序130接收的電子郵件被掃描。如果沒有新郵件被接收,則掃描不發(fā)生。這樣,掃描何時(shí)發(fā)生受抗病毒應(yīng)用軟件120的控制。
每當(dāng)一個(gè)電子郵件消息被用戶接收,實(shí)時(shí)掃描將掃描該電子郵件而不管該用戶是否連接到郵件服務(wù)器程序130,也不管用戶是否閱讀或訪問該電子郵件消息。如果沒有郵件被接收,掃描不發(fā)生。
這樣,沒有用戶登錄到PC10或工作站30對于觸發(fā)本發(fā)明的代理110的運(yùn)轉(zhuǎn)是必須的。
在本發(fā)明的典型實(shí)施方案中,用于Microsoft的Exchange服務(wù)器程序的實(shí)時(shí)掃描能力如下實(shí)現(xiàn)和描述。它為Microsoft的Exchange服務(wù)器提供了實(shí)時(shí)掃描能力。即,一旦一個(gè)電子郵件消息被發(fā)送到一個(gè)郵箱,代理110立即被調(diào)用。如果存在附件,代理110將分離出所附的文件,并把它們發(fā)送給抗病毒應(yīng)用軟件120用于掃描。如果病毒被檢測到,抗病毒應(yīng)用軟件120能夠清除病毒并調(diào)用代理110重新附上受感染的文件。
實(shí)時(shí)APIs(如下描述)包括回調(diào)能力??共《緫?yīng)用軟件120提供對代理110的回調(diào)函數(shù)。當(dāng)代理110發(fā)現(xiàn)一些為抗病毒應(yīng)用軟件120感興趣的東西(在此是含附件的電子郵件消息),代理110通知抗病毒應(yīng)用軟件120。在本發(fā)明的典型實(shí)施方案中,代理分離出附件并向抗病毒應(yīng)用軟件120提供附件的文件名以激活對附件的掃描。
下述偽代碼描述了用于與Microsoft的Exchange程序相關(guān)的本發(fā)明的實(shí)時(shí)操作的APIs函數(shù)RTConnectAgent( );RTDisconnectAgent( );RTGetError( );RTSetDetachedDir( );RTSetCallbackFunction( );RTStartupNotification( );RTShutdownNotification( );RTSetExcludeFileExtension( );RTConnectAgent( )建立到實(shí)時(shí)消息代理的連接。在任何需要<agent_id>作為輸入?yún)?shù)的MDI API調(diào)用前被調(diào)用。
輸入
<server_name>
Windows NT服務(wù)器名。
<agent_name>
消息代理的名字。
<user_id>
用戶的Windows NT登錄名。
<userProfile>
用于登錄的特征數(shù)據(jù)文件名。
<password>
以上述用戶標(biāo)識和用戶特征數(shù)據(jù)文件登錄時(shí)使用的口令。
輸出<agent_id>
返回的連接標(biāo)識,可被后續(xù)的API使用以跟蹤當(dāng)前連接實(shí)例。
RTDisconnectAgent( )斷開到消息代理的當(dāng)前連接。在每個(gè)MDA會話結(jié)束后被調(diào)用以釋放資源。
輸入<agentID>
當(dāng)前連接的連接標(biāo)識。RTSetExcludeFileExtension( )設(shè)置inocuLan回調(diào)函數(shù)的地址。
輸入<agentID>
當(dāng)前連接的連接標(biāo)識。
<excludeFlag>
全部文件|全部排除|只用列表。
<extCount>
extString中擴(kuò)展字符串計(jì)數(shù)。
<extString>
擴(kuò)展字符串列表。
RTSetCallbackFunction( )設(shè)置inocuLan回調(diào)函數(shù)的地址。
輸入<agentID>
當(dāng)前連接的連接標(biāo)識。
<cbFunction>
回調(diào)函數(shù)的地址。RTStartupNotification( )啟動實(shí)時(shí)通知。
輸入<agentID>
當(dāng)前連接的連接標(biāo)識。RTShutdownNotification( )關(guān)閉實(shí)時(shí)通知。
輸入<agentID>
當(dāng)前連接的連接標(biāo)識。RTGetError( )從代理處獲取錯(cuò)誤信息。
輸入<agentID>
當(dāng)前連接的ConnectionID。
<errcode>
來自代理處的錯(cuò)誤返回碼。
輸出<err_buff>
包含錯(cuò)誤信息的緩沖區(qū)。
<buff_size>RTSetDetachedDir( )設(shè)置臨時(shí)目錄為分離的目錄。
輸入<agentID>
當(dāng)前連接的連接標(biāo)識。
<detached_dir>將被創(chuàng)建的分離目錄路徑。
當(dāng)然,上述實(shí)時(shí)掃描能力也可以為Microsoft Exchange之外的郵件服務(wù)器實(shí)現(xiàn)。例如,Lotus Notes數(shù)據(jù)庫,其中每個(gè)數(shù)據(jù)庫是一個(gè)文件,每當(dāng)一條新的消息被放入該文件,該文件必須被打開。這樣,利用操作系統(tǒng)級的程序接口(hooks),代理110可以在新電子郵件消息被接收時(shí)通知抗病毒應(yīng)用軟件120。
應(yīng)當(dāng)理解,本發(fā)明是用Windows NT WIN32 APIs,Lotus Notes APIs,Microsoft Exchange APIs和MAPI建立的第一個(gè)基于服務(wù)器的抗病毒代理??蛻舳藢τ谶@樣的抗病毒實(shí)體的存在是透明的。
而且,本發(fā)明的代理110是通用的代理,可以與任何抗病毒服務(wù)器程序接口。
本發(fā)明的典型實(shí)施方案的代理可利用包含計(jì)算機(jī)可讀指令,如計(jì)算機(jī)程序的邏輯電路或計(jì)算機(jī)內(nèi)存(例如,服務(wù)器20的存儲設(shè)備)。邏輯電路或計(jì)算機(jī)內(nèi)存的功能如上所述。計(jì)算機(jī)程序可被存儲在硬盤,CD-ROM,或軟盤上。
權(quán)利要求
1.為在含客戶端-服務(wù)器架構(gòu)及消息系統(tǒng)的計(jì)算機(jī)網(wǎng)絡(luò)中使用,基于服務(wù)器的,用于檢測并清除位于電子郵件消息的附件中的計(jì)算機(jī)病毒的方法包括如下步驟提供一個(gè)掃描時(shí)間間隔;在服務(wù)器上,搜索消息系統(tǒng)以得到在前一個(gè)掃描時(shí)間間隔內(nèi)消息系統(tǒng)接收的電子郵件消息的附件列表;在服務(wù)器上,將附件列表中的每一個(gè)附件傳送給抗病毒檢測模塊用于掃描計(jì)算機(jī)病毒;在抗病毒檢測模塊,檢測并清除附件列表中每一個(gè)附件中已知的計(jì)算機(jī)病毒;以及在服務(wù)器上,將每個(gè)附件重新附到電子郵件消息上。
2.權(quán)利要求1的方法,進(jìn)一步包含經(jīng)過每個(gè)掃描時(shí)間間隔重復(fù)該方法的步驟。
3.權(quán)利要求1的方法,其中電子郵件消息包含來自消息系統(tǒng)所在的客戶端一服務(wù)器網(wǎng)絡(luò)的工作站上的用戶的電子郵件消息。
4.權(quán)利要求3的方法,其中電子郵件消息包含來自外部消息系統(tǒng)的電子郵件消息。
5.權(quán)利要求1的方法,其中電子郵件消息包含通過因特網(wǎng)接收到的電子郵件消息。
6.為在含郵件服務(wù)器的客戶端-服務(wù)器計(jì)算機(jī)網(wǎng)絡(luò)中使用,用于檢測并清除位于電子郵件消息的附件的計(jì)算機(jī)病毒的方法包含如下步驟A.設(shè)置一個(gè)掃描時(shí)間間隔;B.在服務(wù)器上,搜索郵件服務(wù)器以得到在前一個(gè)掃描時(shí)間間隔內(nèi)向郵件服務(wù)器輸入的電子郵件消息的附件列表;C.在服務(wù)器上,檢測并清除附件列表中每一個(gè)附件中已知的計(jì)算機(jī)病毒;以及D.在服務(wù)器上,將每個(gè)附件重新附到郵件服務(wù)器的電子郵件消息上。
7.權(quán)利要求6的方法,進(jìn)一步包含經(jīng)過每個(gè)掃描時(shí)間間隔重復(fù)步驟B.至D.的步驟。
8.權(quán)利要求6的方法,其中步驟C.進(jìn)一步包含將附件列表中的每一個(gè)附件傳送給抗病毒檢測模塊用于掃描計(jì)算機(jī)病毒的步驟。
9.為在含郵件服務(wù)器的客戶端-服務(wù)器計(jì)算機(jī)網(wǎng)絡(luò)中使用,用于檢測并清除位于電子郵件消息的附件的計(jì)算機(jī)病毒的方法包含如下步驟A.獲得掃描時(shí)間間隔;B.搜索郵件服務(wù)器以建立在前一個(gè)掃描時(shí)間間隔內(nèi)向郵件服務(wù)器輸入的電子郵件消息的附件列表;C.將附件列表中的每一個(gè)附件傳送給抗病毒檢測模塊用于掃描計(jì)算機(jī)病毒;D.在抗病毒檢測模塊掃描并清除已知計(jì)算機(jī)病毒后,將每個(gè)附件重新附到郵件服務(wù)器的電子郵件消息上;以及E.經(jīng)過每個(gè)掃描時(shí)間間隔重復(fù)步驟B.至D.。
10.為在含多個(gè)工作站和一個(gè)服務(wù)器的客戶端-服務(wù)器計(jì)算機(jī)網(wǎng)絡(luò)中使用,該服務(wù)器包含一個(gè)消息系統(tǒng),基于服務(wù)器的用于檢測并清除位于電子郵件消息的附件的計(jì)算機(jī)病毒的方法包含如下步驟在消息系統(tǒng)接收電子郵件消息;在接收電子郵件消息時(shí)確定該電子郵件消息是否包含附件;如果該電子郵件消息包含附件,將附件傳遞給抗病毒檢測模塊用于掃描計(jì)算機(jī)病毒;在抗病毒檢測模塊,檢測并清除附件中已知的計(jì)算機(jī)病毒;以及將每個(gè)附件重新附到電子郵件消息上。
11.權(quán)利要求10的方法,其中接收電子郵件消息的方法包含從外部計(jì)算機(jī)網(wǎng)絡(luò)接收電子郵件消息的步驟。
12.權(quán)利要求10的方法,其中接收電子郵件消息的方法包含從工作站接收電子郵件消息的步驟。
13.在第一個(gè)含多個(gè)節(jié)點(diǎn)的計(jì)算機(jī)網(wǎng)絡(luò)中,該第一個(gè)計(jì)算機(jī)網(wǎng)絡(luò)被配置為運(yùn)行一個(gè)電子郵件系統(tǒng)用于在多個(gè)節(jié)點(diǎn)間發(fā)送和接收多個(gè)電子郵件消息,該多個(gè)電子郵件消息的一個(gè)子集至少含一個(gè)相聯(lián)系的附件,一種方法用于從多個(gè)電子郵件消息的附件中檢測并清除計(jì)算機(jī)病毒,該方法包含如下步驟從該多個(gè)電子郵件消息的子集的每一個(gè)消息中分離出該至少一個(gè)的附件;將該至少一個(gè)的附件傳送給一個(gè)抗病毒應(yīng)用程序;依照抗病毒應(yīng)用程序,掃描該至少一個(gè)的附件以檢測至少一個(gè)計(jì)算機(jī)病毒;從該至少一個(gè)的附件中清除該至少一個(gè)計(jì)算機(jī)病毒;以及將該至少一個(gè)的附件重新附到多個(gè)電子郵件消息中相應(yīng)的一個(gè)上。
14.根據(jù)權(quán)利要求13的方法,其中多個(gè)電子郵件消息中至少有一個(gè)來自與第一個(gè)計(jì)算機(jī)網(wǎng)絡(luò)通訊的另一個(gè)計(jì)算機(jī)網(wǎng)絡(luò)。
15.根據(jù)權(quán)利要求13的方法,其中多個(gè)電子郵件消息中至少有一個(gè)來自第一個(gè)計(jì)算機(jī)網(wǎng)絡(luò)。
16.根據(jù)權(quán)利要求13的方法,其中附件不管是否被打開或被用戶瀏覽都被掃描。
17.根據(jù)權(quán)利要求13的方法,其中附件不受用戶干預(yù)地被掃描。
18.根據(jù)權(quán)利要求17的方法,其中多個(gè)電子郵件消息中至少有一個(gè)來自與第一個(gè)計(jì)算機(jī)網(wǎng)絡(luò)通訊的另一個(gè)計(jì)算機(jī)網(wǎng)絡(luò)。
19.在第一個(gè)含多個(gè)節(jié)點(diǎn)的計(jì)算機(jī)網(wǎng)絡(luò)中,該第一個(gè)計(jì)算機(jī)網(wǎng)絡(luò)被配置為運(yùn)行一個(gè)電子郵件系統(tǒng)用于在多個(gè)節(jié)點(diǎn)間發(fā)送和接收多個(gè)電子郵件消息,該多個(gè)電子郵件消息的一個(gè)子集至少含一個(gè)相聯(lián)系的附件,一種方法用于從至少一個(gè)附件中檢測并清除至少一個(gè)計(jì)算機(jī)病毒,該方法包含如下步驟從該多個(gè)電子郵件消息的每一個(gè)中分離出該至少一個(gè)的附件;確定該至少一個(gè)的附件是否被至少一個(gè)計(jì)算機(jī)病毒感染;從該至少一個(gè)的附件中清除該至少一個(gè)計(jì)算機(jī)病毒;以及將該至少一個(gè)的附件重新附到多個(gè)電子郵件消息中相應(yīng)的一個(gè)上。
20.用于檢測并清除位于電子郵件消息的附件中的計(jì)算機(jī)病毒的系統(tǒng)包括包含一個(gè)服務(wù)器計(jì)算機(jī)和多個(gè)客戶端計(jì)算機(jī)的一個(gè)客戶端-服務(wù)器計(jì)算機(jī)網(wǎng)絡(luò);位于服務(wù)器計(jì)算機(jī)的用于控制電子郵件消息的分發(fā)的消息系統(tǒng);位于服務(wù)器計(jì)算機(jī)的用于掃描文件檢測病毒的抗病毒模塊;以及,位于服務(wù)器計(jì)算機(jī)的代理,該代理提供抗病毒模塊與消息系統(tǒng)之間的接口,并包含接收掃描時(shí)間間隔的裝置;搜索消息系統(tǒng)以得到在前一個(gè)掃描時(shí)間間隔內(nèi)消息系統(tǒng)接收的電子郵件消息的附件列表的裝置;將附件列表中的每一個(gè)附件傳送給抗病毒模塊用于掃描計(jì)算機(jī)病毒的裝置;以及將每個(gè)附件重新附到電子郵件消息上的裝置。
21.權(quán)利要求20的系統(tǒng),其中電子郵件消息包括來自計(jì)算機(jī)網(wǎng)絡(luò)上客戶端計(jì)算機(jī)的電子郵件消息。
22.權(quán)利要求21的系統(tǒng),其中消息系統(tǒng)包括一個(gè)外部網(wǎng)關(guān),電子郵件消息包括來自外部消息系統(tǒng)的電子郵件消息。
23.權(quán)利要求20的系統(tǒng),其中電子郵件消息包括通過因特網(wǎng)連接接收的電子郵件消息。
24.在含一個(gè)服務(wù)器計(jì)算機(jī)和多個(gè)客戶端計(jì)算機(jī)的客戶端-服務(wù)器計(jì)算機(jī)網(wǎng)絡(luò)中使用的抗病毒代理,該抗病毒代理輔助檢測位于電子郵件消息的附件中的計(jì)算機(jī)病毒,包括包含電子郵件消息的郵件服務(wù)器;設(shè)置掃描時(shí)間間隔的裝置;位于服務(wù)器計(jì)算機(jī)上,用于搜索郵件服務(wù)器以得到在前一個(gè)掃描時(shí)間間隔內(nèi)向郵件服務(wù)器輸入的電子郵件消息的附件列表的裝置;檢測并清除附件列表中每一個(gè)附件中已知的計(jì)算機(jī)病毒的裝置;以及位于服務(wù)器計(jì)算機(jī)上,用于將每個(gè)附件重新附到郵件服務(wù)器的電子郵件消息上的裝置。
25.權(quán)利要求24的系統(tǒng),其中用于搜索的裝置進(jìn)一步包括將附件列表中每個(gè)附件傳送給抗病毒檢測模塊用于掃描計(jì)算機(jī)病毒的裝置。
26.在第一個(gè)含多個(gè)節(jié)點(diǎn),并被配置為運(yùn)行一個(gè)電子郵件系統(tǒng)用于在多個(gè)節(jié)點(diǎn)間發(fā)送和接收多個(gè)電子郵件消息的計(jì)算機(jī)網(wǎng)絡(luò)中,該多個(gè)電子郵件消息的一個(gè)子集至少含一個(gè)相聯(lián)系的附件,一個(gè)系統(tǒng)用于從多個(gè)電子郵件消息的附件中檢測并清除計(jì)算機(jī)病毒,該系統(tǒng)包含從該多個(gè)電子郵件消息的子集的每一個(gè)消息中分離出該至少一個(gè)的附件的裝置;將該至少一個(gè)的附件傳送給一個(gè)抗病毒應(yīng)用程序的裝置;依照抗病毒應(yīng)用程序,掃描該至少一個(gè)的附件以檢測至少一個(gè)計(jì)算機(jī)病毒的裝置;從該至少一個(gè)的附件中清除該至少一個(gè)計(jì)算機(jī)病毒的裝置;以及將該至少一個(gè)的附件重新附到多個(gè)電子郵件消息中相應(yīng)的一個(gè)上的裝置。
27.權(quán)利要求26的系統(tǒng),其中多個(gè)電子郵件消息中至少一個(gè)消息來自與第一個(gè)計(jì)算機(jī)網(wǎng)絡(luò)通訊的另一個(gè)計(jì)算機(jī)網(wǎng)絡(luò)。
28.權(quán)利要求26的系統(tǒng),其中多個(gè)電子郵件消息中至少一個(gè)消息來自第一個(gè)計(jì)算機(jī)網(wǎng)絡(luò)內(nèi)部。
29.在第一個(gè)含多個(gè)節(jié)點(diǎn),并被配置為運(yùn)行一個(gè)電子郵件系統(tǒng)用于在多個(gè)節(jié)點(diǎn)間發(fā)送和接收多個(gè)電子郵件消息的計(jì)算機(jī)網(wǎng)絡(luò)中,該多個(gè)電子郵件消息的一個(gè)子集至少含一個(gè)相聯(lián)系的附件,一個(gè)系統(tǒng)用于從至少一個(gè)附件中檢測并清除至少一個(gè)計(jì)算機(jī)病毒,該系統(tǒng)包含從該多個(gè)電子郵件消息的每一個(gè)中分離出該至少一個(gè)的附件的裝置;確定該至少一個(gè)的附件是否被至少一個(gè)計(jì)算機(jī)病毒感染的裝置;從該至少一個(gè)的附件中清除該至少一個(gè)計(jì)算機(jī)病毒的裝置;以及將該至少一個(gè)的附件重新附到多個(gè)電子郵件消息中相應(yīng)的一個(gè)上的裝置。
30.一個(gè)用于檢測并清除位于電子郵件消息的附件中的計(jì)算機(jī)病毒的實(shí)時(shí)系統(tǒng),包括包含一個(gè)服務(wù)器計(jì)算機(jī)和多個(gè)客戶端計(jì)算機(jī)的客戶端-服務(wù)器計(jì)算機(jī)網(wǎng)絡(luò);位于服務(wù)器計(jì)算機(jī)的消息系統(tǒng),用于控制電子郵件消息的分發(fā),并包含多個(gè)信箱;位于服務(wù)器計(jì)算機(jī)的抗病毒模塊,用于掃描文件以檢測病毒;以及位于服務(wù)器計(jì)算機(jī)的代理,該代理提供抗病毒模塊與消息系統(tǒng)之間的接口,每當(dāng)一個(gè)電子郵件消息被傳遞給一個(gè)信箱時(shí)被激活,并包括確定一個(gè)電子郵件消息是否包含附件的裝置;從電子郵件消息中分離出附件的裝置;激活抗病毒模塊來掃描附件以檢測計(jì)算機(jī)病毒的裝置;以及將每一個(gè)附件重新附到電子郵件消息上的裝置。
31.權(quán)利要求30的實(shí)時(shí)系統(tǒng),其中檢測的裝置進(jìn)一步包含將附件保存到一個(gè)文件的裝置。
32.權(quán)利要求30的實(shí)時(shí)系統(tǒng),其中激活的裝置進(jìn)一步包含向抗病毒模塊通報(bào)保存附件的文件地址的裝置。
33.權(quán)利要求30的實(shí)時(shí)系統(tǒng),其中激活的裝置進(jìn)一步包含一個(gè)回調(diào)函數(shù)。
34.權(quán)利要求30的實(shí)時(shí)系統(tǒng),其中電子郵件消息包含從計(jì)算機(jī)網(wǎng)絡(luò)上的客戶端計(jì)算機(jī)接收的電子郵件消息。
35.權(quán)利要求30的實(shí)時(shí)系統(tǒng),其中代理提供消息系統(tǒng)與多個(gè)不同的抗病毒模塊之間的接口。
36.權(quán)利要求30的實(shí)時(shí)系統(tǒng),其中代理提供抗病毒模塊與多個(gè)不同的消息系統(tǒng)之間的接口。
全文摘要
用于檢測并清除存在于電子郵件消息的附件中的計(jì)算機(jī)病毒的軟件代理(110)。客戶端一服務(wù)器計(jì)算機(jī)網(wǎng)絡(luò)包括一個(gè)服務(wù)器計(jì)算機(jī)和多個(gè)客戶端計(jì)算機(jī)。消息系統(tǒng)(130),位于服務(wù)器計(jì)算機(jī),控制電子郵件消息的分發(fā)??共《灸K(120),位于服務(wù)器計(jì)算機(jī),掃描文件檢測病毒。代理(110)位于服務(wù)器計(jì)算機(jī),提供抗病毒模塊(120)與消息系統(tǒng)(130)之間的接口。代理可以在實(shí)時(shí)的基礎(chǔ)上或以預(yù)設(shè)的間隔時(shí)間運(yùn)行??梢話呙柙诰W(wǎng)絡(luò)內(nèi)部發(fā)送的電子郵件消息,例如,企業(yè)內(nèi)部互聯(lián)網(wǎng)的電子郵件消息。此外,可以掃描通過因特網(wǎng)接收的電子郵件消息。
文檔編號G06F1/00GK1236451SQ97199459
公開日1999年11月24日 申請日期1997年9月5日 優(yōu)先權(quán)日1996年9月5日
發(fā)明者C·-H·陳, C·-K·羅 申請人:切尼軟件國際銷售公司