国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      對使用遠(yuǎn)程文件系統(tǒng)訪問協(xié)議的數(shù)據(jù)進(jìn)行內(nèi)容過濾的方法與系統(tǒng)的制作方法

      文檔序號:7690003閱讀:151來源:國知局
      專利名稱:對使用遠(yuǎn)程文件系統(tǒng)訪問協(xié)議的數(shù)據(jù)進(jìn)行內(nèi)容過濾的方法與系統(tǒng)的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明是一種關(guān)于計算機(jī)安全與計算機(jī)網(wǎng)絡(luò)安全的方法與系統(tǒng)。特別是涉 及一種對使用遠(yuǎn)程文件系統(tǒng)訪問協(xié)議的數(shù)據(jù)進(jìn)行內(nèi)容過濾的方法與系統(tǒng)。
      背景技術(shù)
      各種遠(yuǎn)程文件系統(tǒng)訪問協(xié)議對用戶端程序提供了從計算機(jī)網(wǎng)絡(luò)中的服務(wù)
      器讀取并寫入文件以及獲取服務(wù)的能力。例如,服務(wù)器信息塊協(xié)議SMB(Server Message Block)協(xié)議可以通過互聯(lián)網(wǎng)在TCP/IP協(xié)議或其他網(wǎng)絡(luò)協(xié)議如 IPX(Internetwork Packet Exchange)與NetBEUI協(xié)議之上訪問遠(yuǎn)程服務(wù)器以及其 他網(wǎng)絡(luò)資源包括打印機(jī)、郵件槽以及指定的設(shè)備之中的文件。那么, 一個用戶 端程序可以在遠(yuǎn)程服務(wù)器上讀取、創(chuàng)建并更新文件。也同樣可以與任何建立接 收SMB用戶請求的服務(wù)器程序進(jìn)行通信。
      公共Internet文件系統(tǒng)CIFS(Common Internet File System)定義了在互聯(lián)網(wǎng) 中標(biāo)準(zhǔn)遠(yuǎn)程文件系統(tǒng)訪問協(xié)議,使用戶組可以相互合作并通過互聯(lián)網(wǎng)或在構(gòu)成 的內(nèi)部網(wǎng)上共享文件。CIFS是建立在微軟windows系統(tǒng)與其他常規(guī)個人計算 機(jī)操作系統(tǒng),并能夠在很多平臺運行的基于本地文件共享協(xié)議開放式的、跨、f 臺技術(shù)。
      遠(yuǎn)程文件系統(tǒng)訪問增強(qiáng)了網(wǎng)絡(luò)的可用性,但同時也帶來一些不安全性影
      響,如i:這些協(xié)議的復(fù)雜性使內(nèi)容過濾很難執(zhí)行,例如在文件傳輸?shù)骄W(wǎng)關(guān) 時進(jìn)行惡意軟件的掃描;ii:大多數(shù)網(wǎng)絡(luò)設(shè)備提供商都只針對網(wǎng)關(guān)提供訪問控
      制功能,控制對文件和/或具體共享資源的讀取與寫入,卻將復(fù)雜的過濾功能
      留給服務(wù)器執(zhí)行;且iii:用戶在個人桌面計算機(jī)共享文件夾或其他網(wǎng)絡(luò)資源時 可能沒有安裝合適的過濾程序執(zhí)行(例如反病毒軟件),那么惡意程序就有機(jī) 可趁傳播到或從共享文件夾或資源中傳播。發(fā)明內(nèi)容本發(fā)明涉及一種對使用遠(yuǎn)程文件系統(tǒng)訪問協(xié)議的數(shù)據(jù)流進(jìn)行內(nèi)容過濾的 方法及系統(tǒng)。根據(jù)本發(fā)明的一實施例,運行于網(wǎng)關(guān)邏輯上置于用戶端與服務(wù)器 之間的代理截取遠(yuǎn)程文件系統(tǒng)訪問協(xié)議請求/回應(yīng)。作為接收到用戶端發(fā)出的 遠(yuǎn)程文件系統(tǒng)訪問協(xié)議請求的響應(yīng),網(wǎng)絡(luò)網(wǎng)關(guān)以用戶端的名義向服務(wù)器發(fā)布遠(yuǎn) 程文件系統(tǒng)訪問協(xié)議請求。網(wǎng)絡(luò)網(wǎng)關(guān)設(shè)備將與服務(wù)器一共享資源有關(guān)的讀取自/寫入到一文件的數(shù)據(jù)緩沖存入一保持緩沖區(qū)(HoldingBuffer)。然后,作為對預(yù) 先設(shè)定與遠(yuǎn)程文件系統(tǒng)訪問協(xié)議或該保持緩沖區(qū)有關(guān)的事件的響應(yīng),通過在該 保持緩沖區(qū)內(nèi)執(zhí)行內(nèi)容過濾操作判斷該保持緩沖區(qū)中是否存在惡意代碼、危險 或未授權(quán)的內(nèi)容。本發(fā)明實施例的其他功能特點將在下文中配合附圖進(jìn)行詳細(xì)說明。


      以下附圖配合說明本發(fā)明的實施例,并不用于局限本發(fā)明的范圍。附圖中 相同的部件示以相同的標(biāo)號。圖1所示是本發(fā)明使用的一簡化網(wǎng)絡(luò)結(jié)構(gòu)示意圖;圖2所示是網(wǎng)絡(luò)網(wǎng)關(guān)各功能性模塊與用戶端及服務(wù)器之間相互作用示意圖;圖3所示是根據(jù)本發(fā)明的實施例所使用的計算機(jī)系統(tǒng)的示意圖; 圖4所示是根據(jù)本發(fā)明的實施例文件緩沖器所使用的各種數(shù)據(jù)結(jié)構(gòu)的示 意圖;圖5所示是常規(guī)遠(yuǎn)程文件系統(tǒng)訪問協(xié)議會話操作簡化說明的流程圖; 圖6所示是邏輯上置于用戶端與服務(wù)器之間的SMB/CIFS代理執(zhí)行的遠(yuǎn)程文件系統(tǒng)訪問協(xié)議掃描處理的流程圖;圖7A-D所示是一保持緩沖區(qū)與一個相應(yīng)的空閑指針(Free Pointer)以及用于判斷是否保存緩沖區(qū)的容量己滿的使用率表格的各個狀態(tài)的示意圖。
      具體實施方式
      本發(fā)明是有關(guān)對使用遠(yuǎn)程文件系統(tǒng)訪問協(xié)議的數(shù)據(jù)進(jìn)行內(nèi)容過濾的方法 與系統(tǒng)。根據(jù)本發(fā)明的實施例之一,遠(yuǎn)程文件系統(tǒng)訪問協(xié)議數(shù)據(jù)流,如SMB/CIFS數(shù)據(jù)流,通過用戶端與服務(wù)器之間的網(wǎng)絡(luò)網(wǎng)關(guān)進(jìn)行監(jiān)測。被讀取或?qū)懭氲奈募⒕彺嬖谝粋€共享的區(qū)域,并接受一項或多項過濾機(jī)制進(jìn)行關(guān)于惡 意的、危險性的和/或未授權(quán)的內(nèi)容的檢測。例如, 一個邏輯上置于用戶端與服務(wù)器之間的網(wǎng)關(guān)可以對使用SMB/CIFS協(xié)議進(jìn)行傳輸?shù)耐ㄟ^該網(wǎng)關(guān)的文件 和/或其他數(shù)據(jù)執(zhí)行內(nèi)容過濾操作。過濾機(jī)制可以包括但不局限于,例如惡意 程序掃描、文件名格式匹配屏蔽、機(jī)密信息控制等這樣的過濾器。在網(wǎng)關(guān)處進(jìn) 行內(nèi)容過濾的優(yōu)點是,自動化執(zhí)行的惡意軟件不能夠傳播到未受保護(hù)的系統(tǒng), 使通過遠(yuǎn)程文件系統(tǒng)訪問協(xié)議進(jìn)行傳輸?shù)母鞣N類型的數(shù)據(jù)更加安全。根據(jù)本發(fā)明的實施例,提供一個文件緩沖區(qū)管理架構(gòu),能夠映射不同的文 件ID (FID),在遠(yuǎn)程文件系統(tǒng)訪問協(xié)議會話過程中創(chuàng)建文件名稱,并將該名 稱與存儲在保持緩沖區(qū)(HoldingBuffer)內(nèi)的文件對應(yīng),加快保持緩沖區(qū)的存儲 并能夠觸發(fā)合適的內(nèi)容過濾操作。根據(jù)本發(fā)明的一個實施例,將提供一種新穎的管理與掃描緩沖數(shù)據(jù)的方 法,能夠應(yīng)對遠(yuǎn)程文件系統(tǒng)訪問協(xié)議的復(fù)雜性,這樣的復(fù)雜性體現(xiàn)在任何時間 內(nèi)對共享文件的任何部分允許多個用戶操作,甚至可以在操作中出現(xiàn)的多個線 程執(zhí)行動作(讀取/寫入)。本發(fā)明中還包括管理緩沖數(shù)據(jù)的高效的方法。本發(fā)明的一個實施例提供了一種當(dāng)保持緩沖區(qū)存儲滿后在不跟蹤或查詢 該保持緩沖區(qū)內(nèi)未更改分區(qū)的情況下快速判定數(shù)據(jù)的方法。重要的是,本發(fā)明所述在網(wǎng)絡(luò)網(wǎng)關(guān)應(yīng)用的各種內(nèi)容過濾系統(tǒng)與方法同樣可 以應(yīng)用于其他邏輯上置于用戶端與服務(wù)器之間的其他虛擬或物理網(wǎng)絡(luò)設(shè)備或 程序,例如防火墻、網(wǎng)絡(luò)安全部件、虛擬私有網(wǎng)絡(luò)(VPN)網(wǎng)關(guān)、交換機(jī)、橋 接部件、路由器或類似的設(shè)備部件。以下將進(jìn)行細(xì)節(jié)性的描述以助于更好的理解本發(fā)明。但是,對于熟悉本技 術(shù)領(lǐng)域的技術(shù)人員來講,即使沒有這樣的細(xì)節(jié)性說明,本發(fā)明實施例的實現(xiàn)也 是顯而易見的。在其他情況下,所示方框圖中均使用公知的結(jié)構(gòu)與設(shè)備。下面將參考附圖進(jìn)行說明,附圖中相同的功能元件使用相同的編號。上述 附圖用于解釋本發(fā)明,并不作為對本發(fā)明的限制,具體實施例和應(yīng)用與本發(fā)明 的原理是一致的。所描述的詳細(xì)的應(yīng)用是用于本領(lǐng)域的技術(shù)人員實踐本發(fā)明, 應(yīng)該理解,在不脫離本發(fā)明的精神和范圍內(nèi),可以做其他應(yīng)用以及對各種元件 做出結(jié)構(gòu)修改和/或替換。因此,下面的描述并不用于限制本發(fā)明。另外,本發(fā)明所述的各種實施例可以運行于通用計算機(jī)中的軟件,專門的硬件或者軟件 和硬件的組合方式來執(zhí)行。本發(fā)明的實施例可以提供作為一個計算機(jī)產(chǎn)品,包括一存儲指令的機(jī)讀介 質(zhì),能夠被計算機(jī)設(shè)備所使用執(zhí)行操作。機(jī)讀介質(zhì)可以包括但不局限于一般形 式的計算機(jī)可讀介質(zhì)包括,如,軟盤、軟碟、硬盤、磁帶或者任何其它磁性介質(zhì)、CD-ROM、任何其他光學(xué)介質(zhì)、打孔卡片、紙帶、任何其它有孔圖案的物 理介質(zhì)、RAM、 PROM、 EPROM、 FLASH-EPROM、閃存驅(qū)動器、記憶卡、 任何其它記憶芯片或者卡帶、下文所述的載波,或者任何其它計算機(jī)可讀的介 質(zhì)。此外,本發(fā)明的實施例也可以是下載的計算機(jī)程序產(chǎn)品,所述程序可以使 從遠(yuǎn)程計算機(jī)通過通信鏈接(例如調(diào)制解調(diào)器或網(wǎng)絡(luò)連接)傳輸?shù)妮d波或其他 傳播介質(zhì)傳輸?shù)臄?shù)據(jù)信號到達(dá)所要求的計算機(jī)。雖然在此僅詳細(xì)闡述本發(fā)明中針對服務(wù)器信息塊協(xié)議(SMB)/公共網(wǎng)絡(luò)文件系統(tǒng)(CIFS)的實施例,但本文所述的方法與系統(tǒng)同樣適用于其他遠(yuǎn)程文件系 統(tǒng)訪問協(xié)議,如Samba,網(wǎng)絡(luò)文件系統(tǒng)(NFS: Network File System) , Not Quite NFS,優(yōu)化遠(yuǎn)程文件系統(tǒng)訪問(ORFA: Optimized Remote File-system Access ), Apple文件協(xié)議(AFP: Apple Filing Protocol),網(wǎng)絡(luò)核心協(xié)議(NCP: Netware Core Protocol), Kerberos,遠(yuǎn)程文件系統(tǒng)(RFS: Remote File System) , OS/400 文件服務(wù)器文件系統(tǒng)(QFileSvr.400: OS/400 File Server file system)。以下是本發(fā)明所涉及的術(shù)語介紹"連接"或"連結(jié)"以及相關(guān)的術(shù)語在操作范疇中使用,并不單單局限在 直接連接或連結(jié)。"用戶端"通常情況下指在用戶/服務(wù)器范疇中向一個網(wǎng)絡(luò)中的另外的程 序、進(jìn)程或設(shè)備(服務(wù)器)請求信息或服務(wù)的一項應(yīng)用、程序、進(jìn)程或設(shè)備。 需要說明的是,"用戶端"與"服務(wù)器"是相對而言的, 一項應(yīng)用程序?qū)τ谝?個應(yīng)用來講是作為用戶端,但對于另一個應(yīng)用來講是服務(wù)器。"用戶端"也包括在一個請求應(yīng)用、程序、進(jìn)程或設(shè)備之間向一個可能作為服務(wù)器,如FTP 用戶,發(fā)起連接的軟件。"內(nèi)容過濾"通常是指對在一個用戶端與服務(wù)器之間傳輸?shù)奈募?或其 他的數(shù)據(jù)進(jìn)行監(jiān)控或掃描,如惡意程序掃描、文件名稱模式屏蔽、機(jī)密信息控 制以及類似的操作。"在一個實施例中"、"根據(jù)本發(fā)明的一個實施例"以及類似的表達(dá)通常指 下文中的特殊的性能、結(jié)構(gòu)或特點包括在本發(fā)明的至少一個實施例,以及可能 包括在本發(fā)明的不止一個實施例中。需要說明的是,這樣的表達(dá)并不特指同--個實施例。"網(wǎng)絡(luò)網(wǎng)關(guān)"通常涉及一個網(wǎng)絡(luò)間的系統(tǒng),該系統(tǒng)可以將兩個網(wǎng)絡(luò)連接在 一起。"網(wǎng)絡(luò)網(wǎng)關(guān)"可以實施作為一項軟件或硬件,或是二者的結(jié)合。根據(jù)實 施情況,網(wǎng)絡(luò)網(wǎng)關(guān)可以在從程序協(xié)議到底層信令的任何級別的OSI模式下操 作。如果在陳述一個部件或功能中使用了 "可能""可以""能夠"這樣的表達(dá), 是指這樣的部件或功能并不是必須包括或具有。"代理"通常是指中間設(shè)備、程序或代理,處于作為另外的用戶端發(fā)起或 轉(zhuǎn)發(fā)請求的一個服務(wù)器或用戶端。"遠(yuǎn)程文件系統(tǒng)訪問協(xié)議"通常是指使網(wǎng)絡(luò)文件能夠共享的協(xié)議。例如, 遠(yuǎn)程文件系統(tǒng)訪問協(xié)議可以允許用戶端程序以連續(xù)或不連續(xù)的方式訪問互聯(lián)網(wǎng)(Internet)或在特定的內(nèi)部網(wǎng)絡(luò)之上的遠(yuǎn)程文件。遠(yuǎn)程文件系統(tǒng)訪問協(xié)議包 括但并不局限于(SMB: Sever Message Block) /公共Internet文件系統(tǒng)(CIFS: Common Internet File System), Samba,網(wǎng)纟各文件系統(tǒng)(NFS: Network File System) , Not Quite NFS,優(yōu)化遠(yuǎn)程文件系統(tǒng)訪問(ORFA: Optimized Remote File-system Access), Apple文件協(xié)議(AFP: Apple Filing Protocol),網(wǎng)絡(luò)核心 協(xié)議(NCP: Netware Core Protocol), Kerberos,遠(yuǎn)程文件系統(tǒng)(RPS: Remote File System) , OS/400文件服務(wù)器文件系統(tǒng)(QFileSvr.400: OS/400 File Server file sytem) 0"請求",除非內(nèi)容要求改變其用法,通常是指由用戶端向服務(wù)器發(fā)出的 一個遠(yuǎn)程文件系統(tǒng)訪問協(xié)議請求或命令。根據(jù)本發(fā)明的SMB作為遠(yuǎn)程文件系 統(tǒng)訪問協(xié)議的一個實施例, 一些命令可以與相同的請求鏈接起來發(fā)布。例如, 打開文件與讀取文件。這些類型的命令可以作為ANDX命令。"回應(yīng)",除非內(nèi)容要求改變其用法,通常是指由服務(wù)器向用戶端發(fā)出的 一個遠(yuǎn)程文件系統(tǒng)訪問協(xié)議回應(yīng)。"回應(yīng)"通常是,但是并不是必須是針對 用戶端的一請求做出的回復(fù)。"響應(yīng)"包括全部或部分的響應(yīng)。"服務(wù)器"通常情況下指在用戶/服務(wù)器范疇中對一個網(wǎng)絡(luò)中的另外的程 序、進(jìn)程或設(shè)備(服務(wù)器)請求信息或服務(wù)做出回復(fù)的一項應(yīng)用、程序、進(jìn)程 或設(shè)備。"服務(wù)器"也包括可以指可能能夠信息提供或服務(wù)的軟件。"共享"在本文用作名詞性質(zhì)時,通常是指例如一個文件系統(tǒng)目錄這樣的 資源,能夠通過遠(yuǎn)程文件系統(tǒng)訪問協(xié)議進(jìn)行共享。"共享"典型的指代一個文 件目錄或一項"共享名稱"。共享名稱并不需要與實際被共享的客體具有相同 的在服務(wù)器上命名的真實名稱。例如,目錄路徑"/My—Documents/Clients/Client—#1/ "可以是更簡短以及更明確的名稱 "Client_#l—Files"。當(dāng)通過一遠(yuǎn)程文件系統(tǒng)訪問協(xié)議訪問該共享資源時,該共享資源的名稱可能替換該目錄文件真實的名稱。例如,如果服務(wù)器命名為 "server",但是到共享資源的路徑可能被遠(yuǎn)程文件系統(tǒng)訪問協(xié)議指定為 "\\server\Client—#l—Files"。在一個實施例中,在發(fā)起一個遠(yuǎn)程文件系統(tǒng)訪問協(xié)議會話時,服務(wù)器分配一個成為TreeID (TID)的特殊標(biāo)識符以在會話過程中識別共享資源。"透明代理"是一種特殊形式的代理,其只執(zhí)行給定協(xié)議的一套子集,允 許未知或一般的協(xié)議指令在不被改動的情況下通過。透明代理的優(yōu)勢在于,用 戶端使用的完整代理需要針對該代理編輯用戶端的配置文件,與之相比較,透 明代理不需要執(zhí)行這樣額外的配置。本發(fā)明的一個或多個實施例可以包括以下各種特征的結(jié)合1. 在網(wǎng)絡(luò)網(wǎng)關(guān)內(nèi)運行一個代理,截取用戶端與服務(wù)器之間的遠(yuǎn)程文件系統(tǒng) 訪問協(xié)議請求/回應(yīng),并對二者之間交換的數(shù)據(jù)執(zhí)行內(nèi)容處理以做出響應(yīng)。2. 對與該代理有關(guān)的每個文件與會話進(jìn)行單獨共享的緩沖保持,并可以通 過遠(yuǎn)程文件系統(tǒng)訪問協(xié)議實現(xiàn)用戶端與服務(wù)器之間數(shù)據(jù)被多個程序和/或線程 讀取和/或?qū)懭搿?. 快速有效地判斷一個可能己在非連續(xù)的方式下被修改或訪問過的保持 緩沖區(qū)是否已滿的機(jī)制。4. 在一個保持緩沖區(qū)內(nèi)執(zhí)行將多個文件ID (FID)映射到相同文件操作并跟蹤其他額外的信息的機(jī)制。5. 對發(fā)現(xiàn)被感染或被其他過濾器檢測到受感染的文件的限制訪問的機(jī)制。 根據(jù)本發(fā)明的一個實施例, 一個新的代理截取向內(nèi)的SMB/CIFS請求與回應(yīng),并掃描在用戶端與服務(wù)器之間的往來的文件。根據(jù)本發(fā)明的一實施例,使用一項緩存機(jī)制,通過保留用戶端與服務(wù)器之 間往來的數(shù)據(jù)拷貝從而對其進(jìn)行內(nèi)容過濾。多個用戶程序操作或一個用戶端的 多個用戶程序和/或線程可以同時,并可能是在文件的不同區(qū)域訪問同一個服 務(wù)器文件。那么,緩沖區(qū)中對每項線程和/或操作的內(nèi)存分配可能導(dǎo)致網(wǎng)關(guān)耗 盡內(nèi)存。更進(jìn)一步來說,每項線程和/或操作對緩沖區(qū)的使用可能導(dǎo)致緩沖區(qū) 在一個特殊的會話中發(fā)生局部充滿,那么就會延遲或阻止緩沖數(shù)據(jù)的內(nèi)容處 理。因此,根據(jù)本發(fā)明的一實施例, 一個單獨的共享保持緩沖區(qū)便完成了執(zhí)行 操作。這種情況下,每項線程和/或操作引用相同的緩沖區(qū)并因其對緩沖區(qū)的 訪問而導(dǎo)致緩沖區(qū)的部分存儲滿。本發(fā)明提供的共享緩沖保持機(jī)制的優(yōu)勢在于 節(jié)省了內(nèi)存并允許緩沖區(qū)能夠更快速的存儲滿從而增加觸發(fā)內(nèi)容處理的可能 性。本發(fā)明的一實施例中,對保持緩沖區(qū)的內(nèi)容處理是由對保持緩沖區(qū)存儲滿(或被完全修改)的響應(yīng)來觸發(fā)的。根據(jù)J實施例,使用率表格與空閑指針(Free Pointer)方法可跟蹤保持緩沖區(qū)存儲的程度并更有效地判斷緩沖區(qū)的可用空間。根據(jù)SMB/CIFS協(xié)議,文件名可以使用文件路徑與tree (樹)標(biāo)識符(TID)結(jié)合的方式作為唯一性的文件標(biāo)識。根據(jù)本發(fā)明的一實施例,該名稱可以用于 一特殊列表中以識別一個已經(jīng)打開的文件并將其與 -個文件標(biāo)識符(FID)建 立聯(lián)系。應(yīng)該注意的是,幾個操作可能打開的是同一個文件并獲得不同的FID。 因此,根據(jù)本發(fā)明的一實施例,提供了一種可以將多個涉及相同的文件FID 映射到一個保持緩沖區(qū)內(nèi)的機(jī)制,該機(jī)制是通過文件映射列表與保持緩沖區(qū)數(shù) 據(jù)列表而實現(xiàn)的。在本發(fā)明的一實施例中,提供了一種對受感染的文件限制訪問的方法。假 設(shè)一個遠(yuǎn)程文件系統(tǒng)訪問協(xié)議允許進(jìn)行局部(例如,隨機(jī)或連續(xù)性)文件訪問, 一旦網(wǎng)關(guān)檢測到一個文件已受感染,該文件的分區(qū)己經(jīng)分別被用戶端或服務(wù)器 讀取或?qū)懭?。其結(jié)果將是服務(wù)器或用戶端可能含有被病毒感染的部分文件。根 據(jù)一實施例, 一旦網(wǎng)關(guān)檢測到受感染的文件,在遠(yuǎn)程文件系統(tǒng)訪問協(xié)議回應(yīng)中相應(yīng)的錯誤代碼將返回到用戶端,拒絕用戶對文件的訪問和/或觸發(fā)用戶端采 取適當(dāng)?shù)膭幼鳌?4圖1所示是根據(jù)本發(fā)明所使用的一簡化網(wǎng)絡(luò)結(jié)構(gòu)的示意圖。如圖所示,一 個或多個遠(yuǎn)程用戶端115通過公共網(wǎng)絡(luò)100與一網(wǎng)絡(luò)網(wǎng)關(guān)105,與一本地局域網(wǎng)絡(luò)(LAN) 110進(jìn)行通信連接;在該連接中,該網(wǎng)絡(luò)網(wǎng)關(guān)執(zhí)行以下所述的將與遠(yuǎn)程文件系統(tǒng)訪問協(xié)議數(shù)據(jù)流有關(guān)的各種創(chuàng)新性的內(nèi)容過濾方法。本實施例中,該網(wǎng)絡(luò)網(wǎng)關(guān)105也與一郵件服務(wù)器105、 一網(wǎng)站服務(wù)器160以及一域名服 務(wù)器(DNS) 170連接。圖1所示的網(wǎng)絡(luò)結(jié)構(gòu)中,LAN110中包括一個或多個打印機(jī)140、 一個或 多個服務(wù)器130與一個或多個本地用戶120。根據(jù)一實施例,遠(yuǎn)程用戶端115、 本地用戶120與服務(wù)器130使用一遠(yuǎn)程文件系統(tǒng)訪問協(xié)議相互共享資源,如目 錄文件樹。本發(fā)明一實施例中,網(wǎng)絡(luò)網(wǎng)關(guān)105包括一透明遠(yuǎn)程文件訪問協(xié)議代 理,能夠截取用戶端遠(yuǎn)程文件系統(tǒng)訪問協(xié)議請求與服務(wù)器遠(yuǎn)程文件系統(tǒng)訪問協(xié) 議回應(yīng)。因為代理是透明的,對每個請求與回應(yīng)均不需要處理器(Handler)來實 現(xiàn)。實際上,根據(jù)本發(fā)明的一實施例,只有很少的請求與回應(yīng)可以真正觸發(fā)在 部分透明代理中進(jìn)行的任何實質(zhì)性的內(nèi)容過濾。例如,處理器(Handler)對請求 /回應(yīng)能夠執(zhí)行的便是發(fā)起會話、打開文件、關(guān)閉文件、讀取文件、寫入文件 與關(guān)閉文件的操作。所有其它不使用代理的請求與回應(yīng)將安然通過服務(wù)器/用 戶端。需要說明的是,在本實施例中遠(yuǎn)程用戶端115與本地用戶端120在共享存 儲的本地文件時可以相互作為服務(wù)器。圖2所示是網(wǎng)絡(luò)網(wǎng)關(guān)各功能性模塊與用戶端210和服務(wù)器220之間的相互 作用示意圖。在本實施例中,只有一個用戶端,如用戶端210; —個服務(wù)器, 如服務(wù)器220;與網(wǎng)絡(luò)網(wǎng)關(guān)200相互通信作用,如圖所示。應(yīng)該注意的是,可 以有很多本地和/或遠(yuǎn)程用戶端與服務(wù)器可通過網(wǎng)絡(luò)網(wǎng)關(guān)200相互連接通信, 以及相互之間直接進(jìn)行通信。根據(jù)本實施例,網(wǎng)絡(luò)網(wǎng)關(guān)200,可以是一個虛擬或物理的設(shè)備,具有三個 相互作用的功能模塊,包括SMB/CIFS代理、文件緩沖器240以及內(nèi)容處理器 250。在一實施例中,SMB/CIFS代理230是透明代理,向處理器(Handler)提 供與內(nèi)容過濾活動有關(guān)SMB/CIFS請求/回應(yīng),并允許與內(nèi)容過濾活動無關(guān) SMB/CIFS請求/回應(yīng)通過。根據(jù)以下所述的詳細(xì)信息,該文件緩沖器240將保存一份用戶端210與服務(wù)器220之間從共享資源221讀取與寫入的文件數(shù)據(jù)拷貝,以便能夠執(zhí)行內(nèi)容 過濾操作。根據(jù)本發(fā)明的一實施例,內(nèi)容處理器250對文件緩沖器240中存儲的數(shù)據(jù) 執(zhí)行內(nèi)容過濾操作。內(nèi)容處理器250可以預(yù)先監(jiān)控文件緩沖器240,以判斷適 時執(zhí)行內(nèi)容過濾操作,內(nèi)容過濾操作可以定期發(fā)起或作為外部事件(例如,文 件緩沖器和/或SMB/CIFS代理230發(fā)起的請求)的響應(yīng)而執(zhí)行。在本實施例 中,內(nèi)容處理器250包括一個反病毒(AV: antivirus)過濾器251與一個或多 個其他過濾器252。該AV過濾器251可以應(yīng)用當(dāng)前或未來的病毒檢測方法, 例如掃描、完整性査看、偵聽、啟發(fā)式掃描以及類似方法,以判斷在掃描的數(shù) 據(jù)中是否含有惡意代碼。 一個或多個其他過濾器252可以執(zhí)行文件名模式屏 蔽、機(jī)密信息控制及類似操作。在本發(fā)明的一個實施例中,內(nèi)容過濾器250 是一個由Fortinet公司(Sunnyvale, CA)開發(fā)的集成FortiASIC 內(nèi)容處理器 芯片?;蛟诹硪粚嵤├?,內(nèi)容處理器250可以是一個專門的協(xié)助處理機(jī)或軟 件,協(xié)助從主處理機(jī)轉(zhuǎn)移內(nèi)容處理任務(wù)。在當(dāng)前實施例中,SMB/CIFS代理230、文件緩沖器240與內(nèi)容處理器250 均集成在相同的網(wǎng)絡(luò)設(shè)備中或作為設(shè)備的一部分,在其他實施例中, 一個或多 個SMB/CIFS代理230、文件緩沖器240與內(nèi)容處理器250可以安置在距離與 其他功能設(shè)備較遠(yuǎn)的地點。根據(jù)本發(fā)明的一實施例,執(zhí)行SMB/CIFS代理230、 文件緩沖器240與內(nèi)容處理器250功能的硬件裝置或軟件通常被安置在或被分 散在一個或多個網(wǎng)絡(luò)(Internet)和/或網(wǎng)絡(luò)設(shè)備可訪問的LAN中,如一個或多 個網(wǎng)絡(luò)網(wǎng)關(guān)、防火墻、網(wǎng)絡(luò)安全設(shè)備、交換機(jī)、橋接設(shè)備、路由器、數(shù)據(jù)存儲 設(shè)備、計算機(jī)設(shè)備以及類似裝置設(shè)備。在一實施例中,獨立的功能設(shè)備所提供 的功能性可以各種形式結(jié)合。例如,文件緩沖器240可以集成在SMB/CIFS代 理230中或SMB/CIFS代理230集成在內(nèi)容處理器250中。以上說明是為了能夠闡述在SMB/CIFS協(xié)議序列下應(yīng)用本發(fā)明的各種實 施例,這樣的說明并不限制本發(fā)明的發(fā)明范圍,而且所述的方法同樣適用于遠(yuǎn) 程文件系統(tǒng)訪問協(xié)議。圖3所示為根據(jù)本發(fā)明的實施例,所使用的計算機(jī)系統(tǒng)。該計算機(jī)系統(tǒng) 300可以是執(zhí)行一個或多個SMB/CIFS代理230、文件緩沖器240與內(nèi)容處理 器250功能的網(wǎng)絡(luò)網(wǎng)關(guān)、防火墻、網(wǎng)絡(luò)安全設(shè)備、交換機(jī)、橋接設(shè)備、路由器、數(shù)據(jù)存儲設(shè)備、服務(wù)器和/或其他網(wǎng)絡(luò)設(shè)備或這些設(shè)備的一部分。根據(jù)圖3所示,計算機(jī)系統(tǒng)300包括一個或多個處理器305, 一個或多個通信接U 310, 主內(nèi)存315、只讀存儲320、大容量存儲器325,總線330,以及可以動存儲介 質(zhì)340。處理器305可以是英特爾Intel Itanium or Itanium 2⑧處理器,AMD Opteron 或Athlon MP⑧處理器或本領(lǐng)域熟悉的其他處理機(jī)。通信接口310可以是物理和/或邏輯接口。例如,通信接口可以是與基于調(diào) 制解調(diào)器的撥號連接的任何RS-232接口、 10/100以太網(wǎng)接口、或銅或光纖的千 兆接口。通信接口310也可以根據(jù)計算機(jī)系統(tǒng)300連接的網(wǎng)絡(luò)如局域網(wǎng)(LAN) 或廣域網(wǎng)(WAN)進(jìn)行選擇。通信接口310也可以是以邏輯連接(如傳輸控制協(xié)議(TCP: Transmission Control Protocol)或用戶數(shù)據(jù)報協(xié)議(UDP: Universal Datagram Protocol))結(jié) 尾命名。例如,通信協(xié)議可以是由互聯(lián)網(wǎng)地址指派機(jī)構(gòu)(IANA: Internet Assigned Numbers Authority)根據(jù)特殊用途指派的以下公知的端口之一,如UDP接口 137 或138, TCP接口 139 (用于NETBIOS會話服務(wù)-(基于TCP/IP的NetBIOS)), TCP 接口445 (基于TCP/IP的SMB)與TCP接口80 (用于HTTP服務(wù))。主內(nèi)存315可以是隨機(jī)存儲內(nèi)存(RAM: Random Access Memory)或公知的任何其他動態(tài)存儲設(shè)備。只讀存儲器320可以是任何靜態(tài)存儲裝置例如用于存儲靜態(tài)信息如處理器 305的指令的可編程只讀存儲器(PROM)芯片。大容量存儲器325可以用來存儲信息與指令。例如,硬盤如Adaptec^'系列 的SCSI驅(qū)動器、光盤、磁盤陣列如RAID,如Adaptec系列的RAID驅(qū)動,或任何其他可以使用的大容量存儲裝置??偩€330是處理器305與其他內(nèi)存,存儲以及通信模塊之間的通信連結(jié)???線330可以是根據(jù)所使用的存儲裝置基于PCI/PCI-X或SCSI的系統(tǒng)總線。移動存儲介質(zhì)340可以是任何種類的外部硬驅(qū)動,軟盤,10MEGA⑧壓縮 驅(qū)動,壓縮磁盤一只讀存儲器(CD-ROM),壓縮磁盤一可寫存儲器(CD-RW), 數(shù)字錄像磁盤一只讀存儲器(DVD-ROM),可重寫式DVD以及類似存儲介質(zhì)。圖4所示是根據(jù)本發(fā)明的實施例,文件緩沖器所使用的各種數(shù)據(jù)架構(gòu)的示 意圖。文件緩沖器,例如文件緩沖器240,包括一個文件映射表410, 一個保持緩沖區(qū)數(shù)據(jù)列表420與一個或多個保持緩沖區(qū)430、 440與450。每個數(shù)據(jù)結(jié)構(gòu)可 以存儲在非連續(xù)性存儲器或連續(xù)性存儲器(例如,硬盤驅(qū)動或內(nèi)存卡)、共享 內(nèi)存、分配內(nèi)存或靜態(tài)內(nèi)存中。在一個服務(wù)器上,每個文件分布在一個精確的樹型結(jié)構(gòu)中,也就是共享資 源中。在發(fā)起一個遠(yuǎn)程文件系統(tǒng)訪問協(xié)議會話時,用戶可以從共享資源中選擇 一個文件。根據(jù)SMB/CIFS協(xié)議組,該服務(wù)器在該會話過程中對該共享資源分 配一個能夠識別該共享資源的特殊標(biāo)識符,稱為樹ID (TID)。注意,雖然是 訪問的同一個共享資源,每個單獨會話的TID可以是不同的。根據(jù)本發(fā)明的一實施例,文件映射表410將一共享資源的同一文件的引用 (Reference)通過保持緩沖數(shù)據(jù)列表420中映射到對應(yīng)該文件的保持緩沖區(qū)或多 個保持緩沖區(qū)中(例如,保持緩沖區(qū)430、 440和/或450)。在本實施例中,文 件映射表410包括在遠(yuǎn)程文件系統(tǒng)訪問協(xié)議會話過程中由每臺服務(wù)器返回的每 個FID的一文件映射表條目413。文件映射列表條目413也包括一個與保持緩沖 數(shù)據(jù)列表420中的保持緩沖區(qū)數(shù)據(jù)列表條目423相對應(yīng)的指針,該保持緩沖區(qū)數(shù) 據(jù)列表條目423包含一個引用計數(shù)(Reference Count)421與一個對應(yīng)打開文件 的指向保持緩沖區(qū)的保持緩沖區(qū)指針422。在本實施例中,每個保持緩沖區(qū)數(shù) 據(jù)列表條目423對應(yīng)一個單獨的保持緩沖區(qū),亦或者在其他實施例中保持緩沖 數(shù)據(jù)列表條目423可以對應(yīng)多個保持緩沖。根據(jù)遠(yuǎn)程文件系統(tǒng)訪問協(xié)議,在單個會話中,多個程序和/或同一程序中 的多個線程可以使用相同的會話連接對相同或不同的文件發(fā)出請求。在 SMB/CIFS協(xié)議組件中, 一個文件名稱可以是文件路徑與TID相結(jié)合的唯一性 的標(biāo)識。該信息可以保存在一個特殊列表中,如文件映射表410,以識別一打 開的文件并保存該文件對應(yīng)的FID。 一旦文件是打開的, 一個程序的多個線程 可以使用相同的FID對該文件進(jìn)行操作。但是,每次幵啟一個文件, 一個新的 FID將被返回。根據(jù)詳細(xì)的執(zhí)行程序,F(xiàn)ID可以包括數(shù)字、字符串、二進(jìn)制數(shù)字字符串或其他數(shù)據(jù)類型。在SIM/CIFS協(xié)議組中,每個程序在SMB包頭中標(biāo)識為一個程序ID(Process ID)(沒有示出)。程序中一個線程使用復(fù)合ID(MultiplexID)(沒有示出)標(biāo)識。 這樣的話,管理許多被訪問的文件以及訪問文件中多個線程的狀態(tài)便比較復(fù) 雜。而且, 一多個程序和/或一個程序中的多個線程可以同時訪問相同的文件,并可能是在該文件的不同區(qū)域。如果對每個線程均分配緩存區(qū),那么網(wǎng)絡(luò)網(wǎng)關(guān) 200將快速耗盡內(nèi)存,且每個緩沖可能只被會話局部占滿,那么將無法應(yīng)用掃 描(假設(shè)掃描是因為緩沖器存儲滿而被觸發(fā)的)。因此,根據(jù)本發(fā)明的--個實 施例,單獨保持緩沖區(qū)的概念是在一個會話過程中將相同文件的所有引用映射 到相同保持緩沖區(qū)中。使用基于每個文件與每個會話的單獨緩沖的優(yōu)勢在于, 每個程序和/或線程將對應(yīng)同一個緩沖區(qū)并在訪問過程中占用緩沖區(qū)的部份空 間。這樣不僅節(jié)省了內(nèi)存且使緩沖區(qū)能夠快速充滿緩沖區(qū)并進(jìn)行掃描。在其他 實施例中,跨會話的同一文件的引用也可以映射到在--打開文件內(nèi)或會話外使 用的一個常規(guī)保持緩沖區(qū)或多個緩沖區(qū)中。在圖4中,己修改的保持緩沖區(qū)430、 440與450的分區(qū)以陰影部分示出,沒 有被修改的分區(qū)以無陰影表示。在一個實施例中,該保持緩存區(qū)與打開文件的 大小相對應(yīng),保持緩沖區(qū)中被修改的分區(qū)表示用戶從服務(wù)器中讀取,或?qū)懭氲?服務(wù)器中的數(shù)據(jù)部分。圖5所示是常規(guī)的遠(yuǎn)程文件系統(tǒng)訪問協(xié)議會話操作簡化說明的流程圖。在 流程505中,用戶端程序發(fā)起一個到服務(wù)器的連接,并發(fā)布一個通信協(xié)商請求 指令。通信協(xié)商請求用戶指令是用來判斷服務(wù)器的容量并決定各種設(shè)置,如錯 誤代碼格式、文件名稱路徑格式(統(tǒng)一的字符標(biāo)準(zhǔn),長文件名支持等)以及各 種其他選項。根據(jù)SMB/CIFS協(xié)議組,在兩臺設(shè)備利用SMB開始通信會話之前, 需要協(xié)商使用的CIFS語言。SMB —COM—NEGOTIATE用戶指令是用戶端發(fā)給 服務(wù)器的第一個信息。該用戶指令包括用戶端所支持的SMB語言列表信息。 作為對協(xié)議請求指令的響應(yīng),在流程510中,服務(wù)器將有關(guān)服務(wù)器自身的容量、 錯誤代碼格式與文件名稱路徑格式信息返回到用戶端。當(dāng)連接請求被接受時, 服務(wù)器的回應(yīng)表示用戶端應(yīng)該使用的SMB語言。在流程515中,用戶端程序發(fā)出一個樹連接指令,該命令包括在SMB/CIFS 協(xié)議的數(shù)據(jù)中,含有用戶端需要訪問的共享資源的名稱。在流程520中,服務(wù) 器打開共享資源并且如果文件成功打開后將向用戶端在SMB包頭中提供一個 TID,用戶端可以使用TID與有關(guān)該共享資源的后續(xù)請求進(jìn)行連接。在流程525中,用戶端程序發(fā)布一個打開指令(例如,相對于該TID,包 含用戶端需要打開文件的名稱的SMB—COM—OPEN用戶指令)。流程530中,服 務(wù)器試圖打開被請求的文件待成功打開該文件將向用戶端返回該文件的大小以及一個FID,用戶端在對該文件的進(jìn)行后續(xù)操作時需提供該FID。在流程535中,用戶端程序發(fā)布讀取和/或?qū)懭胫噶?。根?jù)SMB/CIFS協(xié)議, SMB一COM一READ用戶端指令包括TID、 FID、文件偏移值以及讀取文件的字 節(jié)數(shù)。同樣,SMB—COM—WRITE用戶端指令包括TID、 FID、文件偏移值、數(shù) 據(jù)塊的大小(一些情況下)以及寫入的數(shù)據(jù)。在540中,服務(wù)器從被訪問的資 源文件中返回指定偏移量的文件或?qū)⒅付ㄆ屏康奈募懭氡淮_定的文件中。在流程545中,用戶端程序發(fā)布一個關(guān)閉指令以關(guān)閉TID與FID表示的文 件。550的操作流程中,服務(wù)器關(guān)閉該文件并返回一個關(guān)閉成功或錯誤代碼到 用戶端。最后,在會話結(jié)束時,用戶斷開與TID命名的共享資源的連接(沒有 示出)。例如,在SMB/CIFS協(xié)議傳輸情況下,斷開連接可以表示為用戶端發(fā)布 一個SMB—COM TREE—DISCONNECT指令。圖6所示,為根據(jù)本發(fā)明的實施例,邏輯上置于在用戶端與服務(wù)器之間的 SMB/CIFS代理執(zhí)行的遠(yuǎn)程文件系統(tǒng)訪問協(xié)議檢測處理的流程圖。概念上,透 明SMBCIFS代理可以放置在圖5中垂直虛線所示的位置。同樣的,該SMB/CIFS 代理相對用戶端501來講可以作為一個服務(wù)器,相對服務(wù)器502來講可以作為一 個用戶端。根據(jù)本發(fā)明的一個實施例,遠(yuǎn)程文件系統(tǒng)訪問協(xié)議代理與網(wǎng)絡(luò)網(wǎng)關(guān)連接, 截取用戶端遠(yuǎn)程文件系統(tǒng)訪問協(xié)議請求與服務(wù)器遠(yuǎn)程文件系統(tǒng)訪問協(xié)議回應(yīng)。 在一個實施例中,處理器(Handler)只需要執(zhí)行一套請求與回應(yīng)的子集,且因為 遠(yuǎn)程文件系統(tǒng)訪問協(xié)議代理可以使透明代理,只有部分請求與回應(yīng)涉及內(nèi)容過 濾的操作。例如,在SMB/CIFS協(xié)議組中,操作員對有關(guān)請求與回應(yīng)要做的只 是發(fā)起一個會話(例如,SMBJX)M一NEGOTIATE禾口/或 SMB—COM—SESSION—SETUP_ANDX),打開一個文件(例如, SMB—COM—OPEN),讀取文件(例如SMB—COM—READ),寫入文件(例如 SMB—COM—WRITE)與關(guān)閉文件(例如SMB—COM—CLOSE)。其他不使用代 理的請求/回應(yīng)將原封通過到達(dá)服務(wù)器/用戶端。遠(yuǎn)程文件系統(tǒng)訪問協(xié)議請求/回應(yīng)被截取后,在判斷流程605中,遠(yuǎn)程文件 系統(tǒng)訪問協(xié)議根據(jù)遠(yuǎn)程文件系統(tǒng)訪問協(xié)議命令或接收到的回應(yīng)的類型做出判 斷是否執(zhí)行掃描操作。如果遠(yuǎn)程文件系統(tǒng)訪問協(xié)議請求/回應(yīng)是來自服務(wù)器的 通信協(xié)商回應(yīng),那么接著進(jìn)行到610操作流程。如果請求/回應(yīng)是從用戶端接收的打開回應(yīng),那么進(jìn)行操作流程615。如果請求/回應(yīng)是從服務(wù)器得到的讀取冋應(yīng)或從用戶端接收到的寫入請求,操作將執(zhí)行流程640。在本發(fā)明-一個實施例 中,對于所有的其他請求與回應(yīng)執(zhí)行流程630,在不做任何更改的情況下到達(dá) 服務(wù)器或用戶端。在流程610,被截取的遠(yuǎn)程文件系統(tǒng)訪問協(xié)議請求/回應(yīng)被判斷為從服務(wù)器 發(fā)送到用戶端的通信協(xié)商回應(yīng)。根據(jù)本發(fā)明一實施例,協(xié)議生成的該錯誤代碼 格式并將在該回應(yīng)中返回到用戶端,協(xié)商錯誤代碼格式被存儲起來以在后續(xù)進(jìn) 行的修改回應(yīng)中使用。操作流程610完成后,繼續(xù)流程630。在流程615,被截取的遠(yuǎn)程文件系統(tǒng)訪問協(xié)議請求/回應(yīng)被判斷為從服務(wù)器 發(fā)送到用戶端的打開回應(yīng)。如果之前發(fā)布到開放回應(yīng)的請求在服務(wù)器上反應(yīng)是 成功的,服務(wù)器將對用戶端返回一個FID以及該打開文件大小的信息。根據(jù)本 實施例, 一旦接收到打開回應(yīng),新的文件映射列表條目413將被插入到文件映 射表410與FID411,并同時將數(shù)據(jù)列表指針412初始化。根據(jù)本實施例,將對 FID創(chuàng)建一個特殊映射發(fā)送到保持緩沖區(qū)。需要注意的是, 一些操作可以同時 打開相同的文件并獲得不同的FID,但是根據(jù)本發(fā)明的各種實施例,這些不同 的FID將被映射到同一個保持緩沖區(qū)內(nèi)。在流程620中,判斷保持緩沖區(qū)內(nèi)是否已存在打開的文件。如果不存在, 將繼續(xù)流程625。如果緩存中存在已經(jīng)打開的文件,操作將繼續(xù)流程635。流程625中,創(chuàng)建一個保持緩沖區(qū)并初始化對應(yīng)的保持緩沖區(qū)數(shù)據(jù)表條目 423。根據(jù)本發(fā)明的一實施例,每個保持緩沖區(qū)數(shù)據(jù)列表條目423中包括一個引 用計數(shù)421與保持緩沖區(qū)區(qū)指針422,引用計數(shù)421初始化到1且保持緩沖區(qū)指針 422初始化到保持緩沖區(qū)的起始地址。流程625執(zhí)行完畢后,繼續(xù)流程630。流程630中,使請求/回應(yīng)通過并到達(dá)服務(wù)器/用戶端。操作繼續(xù)到流程605。在流程635,之前已經(jīng)對該文件創(chuàng)建了一個保持緩沖區(qū)。從而,在一個實 施例中,在會話間對于每個打開的文件只使用一個單獨的保持緩存,保持緩沖 區(qū)的保持緩沖區(qū)數(shù)據(jù)列表條目423中的引用計數(shù)421與不斷增加的保持緩存的 容量相對應(yīng),以反映存有對文件的其他引用。在流程640,被截取的遠(yuǎn)程文件系統(tǒng)訪問協(xié)議請求/回應(yīng)被判斷為從服務(wù)器 發(fā)送到用戶端的讀取回應(yīng),或是用戶端寫入服務(wù)器的寫入請求。根據(jù)本實施例, 被截取的數(shù)據(jù)(例如,服務(wù)器返回的針對用戶端的讀取請求的回應(yīng),或是用戶端寫入服務(wù)器中的指定文件的數(shù)據(jù))將以適當(dāng)?shù)钠浦当粚懭氲綄?yīng)的保持緩沖區(qū)內(nèi)(例如,保持緩沖區(qū)430、 440與450)。根據(jù)本實施例,每個保持緩沖區(qū) (例如,保持緩存區(qū)430、 440與450)擁有一個空閑指針(例如空閑指針730) 以及使用率列表(例如使用率列表710)以便能夠有效地判斷保持緩沖區(qū)的存 儲程度??臻e指針與使用率列表對保持緩沖區(qū)寫入數(shù)據(jù)的回應(yīng)更新將在下文進(jìn) 行敘述。在流程645,判斷是否能夠發(fā)起對保持緩沖區(qū)(例如,保持緩沖區(qū)430、 440 與450)進(jìn)行掃描的一項或多項規(guī)則。在一個實施例中,所述規(guī)則包括保持緩 沖區(qū)己經(jīng)被各種用戶端程序訪問該文件的讀取與寫入的請求全部占用。在另一 個實施例中,對保持緩沖區(qū)中未被修改的分區(qū)進(jìn)行査看以判斷該保持緩沖區(qū)的 存儲情況。亦或者,可以執(zhí)行如圖7所示的有效的存儲飽和度測試。根據(jù)本發(fā)明的一實施例,觸發(fā)內(nèi)容檢測的其他條件包括表示數(shù)據(jù)被附加在 文件末尾的寫入請求。實踐證明在文件后附加數(shù)據(jù)是常見的文件感染型病毒的 表象。對現(xiàn)存的文件感染型病毒的各種形式進(jìn)行的試驗顯示當(dāng)文件感染型病毒 試圖將病毒傳播到共享資源時,在多數(shù)情況下,先要讀取文件的報頭并進(jìn)行一 些更改,然后將自己附在該文件末尾。鑒于這樣的病毒首先獲取報頭并進(jìn)行更 改的情況,可在保持緩沖區(qū)中獲取報頭信息以及試圖附加的數(shù)據(jù)進(jìn)行內(nèi)容過 濾。緩沖區(qū)中剩余部分與檢測病毒無關(guān)。那么,在檢測到這樣的用戶端發(fā)布的 每個附件寫入行為操作時能夠?qū)懭敫郊嘘P(guān)的數(shù)據(jù)執(zhí)行內(nèi)容過濾??梢允褂酶鞣N觸發(fā)內(nèi)容過濾的條件,例如檢測到文件感染型病毒其他常見 的表象。在一些實施例中,不管保持緩沖區(qū)的存儲空間是否已滿都會進(jìn)行定期 的掃描。在任何情況下,如果滿足一項或多項掃描規(guī)則,那么操作將繼續(xù)進(jìn)行 流程650;否則,繼續(xù)進(jìn)行流程630。在流程650,掃描保持緩沖區(qū)。如前文所示,內(nèi)容掃描或內(nèi)容過濾可以包 括使用一項或多項過濾機(jī)制對保持緩沖區(qū)進(jìn)行惡意代碼、危險或/和未授權(quán)的 內(nèi)容進(jìn)行檢測。內(nèi)容過濾機(jī)制可以包括但不局限于惡意軟件的掃描、文件名稱 模式屏蔽或機(jī)密信息的控制等。在流程655,判斷危險或未授權(quán)內(nèi)容是否存在。如果在檢測中發(fā)現(xiàn)上述內(nèi) 容,將執(zhí)行流程660中的操作。如果沒有檢測到任何危險或未授權(quán)的內(nèi)容,將 繼續(xù)到流程630。流程660中,危險或未授權(quán)的內(nèi)容已從文件中讀取或?qū)懭胛募?。因此,?該文件的后續(xù)訪問將被屏蔽并通過修改服務(wù)器的回應(yīng)返回一個適當(dāng)?shù)腻e誤代 碼。操作將進(jìn)行流程605。如果檢測到一文件被感染,那么部分文件將分別被用戶端讀取或?qū)懭敕?wù) 器。根據(jù)本發(fā)明的一實施例,第二個保持緩沖區(qū),例如陰影緩沖區(qū)(沒有示出) 只記錄從服務(wù)器讀取的數(shù)據(jù),該數(shù)據(jù)可以用于說明可能的文件感染情況。陰影 緩沖區(qū)可以有自己的使用率列表,該緩沖區(qū)邏輯上鏈接到主保持緩沖區(qū)。如果 一個病毒,例如,讀取了一文件的報頭,最初的讀取數(shù)據(jù)將被同時存儲在保持 緩沖區(qū)與陰影緩沖區(qū)中,在當(dāng)病毒試圖修改報頭并將其重新寫入到服務(wù)器時;只有保持緩沖區(qū)包含修改后的報頭,陰影緩存中將保持原來的未修改的報頭。 當(dāng)病毒將其附在文件后并最終被發(fā)現(xiàn),附加的數(shù)據(jù)只能被添加到保持緩沖區(qū)而 不會添加到陰影緩沖區(qū)中。那么,在一些實施例中,陰影緩沖區(qū)保存的干凈版 本可以用來恢復(fù)服務(wù)器中的原文件。假設(shè)病毒寫手開始對陰影緩存機(jī)制采取應(yīng) 對操作,例如,如果病毒先采取讀取并寫入,之后在重新讀取同一文件模塊, 那么一種解決措施可以為只將第一次從給定文件模塊的讀取存儲在陰影緩存 中。在一個實施例中,通過使用在會話協(xié)商過程中獲取的有關(guān)錯誤代碼格式的 信息,可以重新創(chuàng)建一個回應(yīng),其中包含了拒絕用戶訪問文件的錯誤代碼?;?者/而且,返回的該錯誤代碼可以觸發(fā)一些用戶端程序中的其他動作,例如關(guān) 閉文件和/或本地內(nèi)容掃描操作。同時,服務(wù)器可以包含被病毒修改的片斷文 件,這些文件不可能被打開或執(zhí)行。但是,該片斷文件可能被安裝在服務(wù)器中 的反病毒軟件檢測到。在接收到對于讀取與寫入請求進(jìn)行響應(yīng)的錯誤代碼后, 用戶端將選擇關(guān)閉該文件。需要說明的是,由于指令鏈的一個或多個先前指令可能會被繼承但是后續(xù)的指令會失敗,因此執(zhí)行SMB ANDX命令鏈連接時需 要多加注意。指令鏈的結(jié)構(gòu)應(yīng)該仍然被保存并對用戶端做出回應(yīng),以防止兼容 性的問題。在流程665中,被截取的遠(yuǎn)程文件系統(tǒng)訪問協(xié)議請求/回應(yīng)被判斷為是用戶 端發(fā)布到服務(wù)器的關(guān)閉請求。根據(jù)所述的實施例,這樣的操作將使文件映射列 表條目413之一從文件映射表410中刪除。在流程670中,在相應(yīng)的保存緩沖區(qū)數(shù)據(jù)列表條目423中的引用計數(shù)421將逐步遞減以對應(yīng)說明對文件采取的較少的操作。在判斷流程675中,判斷對當(dāng)前的文件沒有進(jìn)行引用。如果保持緩存中的 引用是零,那么繼續(xù)流程680的操作;如果保持緩沖區(qū)中還存在引用,將轉(zhuǎn)到流程630。如果保持緩沖區(qū)中的引用為零時,保持緩沖區(qū)便可以刪除了。但在本實施 例中,保持緩沖區(qū)在流程680中只被標(biāo)記為"可以被刪除"。 一個不同步的清除 操作可以刪除保持緩存,如果保持緩存在最后關(guān)閉之后的很短時間內(nèi)被再次訪 問的話,那么保持緩存便有機(jī)會重新建立。例如,當(dāng)一個用戶在共享資源中編 輯文件時,通常所編輯的整個文件將在用戶計算機(jī)讀取后關(guān)閉,緊接著再打開 進(jìn)行寫入操作。需要注意的是,為了明晰并簡化本發(fā)明實施例的說明,以上敘述忽略了有 關(guān)SMB特性、指令鏈的說明。在有關(guān)SMB的操作中, 一些指令能夠在同一個 請求中鏈接起來。例如,打開文件與讀取文件這兩個指令。這類型的指令稱為 ANDX指令。本文所述的實施例中有關(guān)代理的操作很難使用流程圖說明,但是 為了能夠正確的說明,本實施例中將根據(jù)這些指令鏈執(zhí)行代理操作并按照指令 中的任何數(shù)據(jù)與信息進(jìn)行操作。圖7A到圖7D是一保持緩沖區(qū)與一個對應(yīng)的空閑指針(Free Pointer)以及用于判斷是否保存緩沖區(qū)的容量己滿的使用率表格的各個狀態(tài)的示意圖。各種遠(yuǎn)程文件系統(tǒng)訪問協(xié)議,如SMB,可能會導(dǎo)致一些操作困難。例如, SMB協(xié)議是允許以任何的偏移量讀取或?qū)懭胛募敲淳蜔o法保證在一個固 定的時間保持緩沖區(qū)內(nèi)的整個文件是可用于配合內(nèi)容處理。這樣的結(jié)果,根據(jù) 本實施例,需要使用一種能夠快速有效的表示保持緩沖區(qū)是否已經(jīng)存儲滿的跟 蹤機(jī)制。根據(jù)本發(fā)明的一實施例,完整的跟蹤方法包括使用一個專門的使用率列表 710與一個稱為空閑指針的指針730。使用率列表710可以是一個較小的緩沖器, 例如是正常緩沖區(qū)720的八分之一的片斷緩沖器,使用率列表710中的每個比 特711代表多個比特的數(shù)量,例如保持緩沖區(qū)720中的一個字節(jié)721。實際保持 緩沖區(qū)720中的一字節(jié)被修改后,對應(yīng)的在使用率列表710中便顯示緩沖區(qū)中被 修改的部分。在一個實施例中,通過一些指示性的方法(例如,全零)將使用率列表初始化來判斷保持緩沖區(qū)中對應(yīng)的數(shù)據(jù)塊是否從服務(wù)器讀取或?qū)懭敕?wù)器中。保 持緩沖區(qū)可以在創(chuàng)建時通過例如全部被初始化為零、一個重復(fù)的字符或任意的 字符的方式被初始化。根據(jù)本實施例,對應(yīng)的數(shù)據(jù)模塊,如字節(jié),在保持緩沖 區(qū)中己被修改,在使用率列表中將以已設(shè)定的對應(yīng)幾個比特表示,對應(yīng)沒有修 改的部分將在使用率列表保持其之前的狀態(tài)。這樣可以保證讀取到保持緩沖區(qū)中的數(shù)據(jù)與其初始狀態(tài)的數(shù)據(jù)是相同的數(shù)據(jù),例如初始為o的保持緩沖區(qū)讀取到一零數(shù)據(jù)塊;但是,對零數(shù)據(jù)塊的讀取將在使用率列表中以設(shè)定對應(yīng)的比特 再現(xiàn)。同一個數(shù)據(jù)塊或一數(shù)據(jù)塊的同一部分可能被重復(fù)讀取或?qū)懭?,但是由?使用率列表中的這部分?jǐn)?shù)據(jù)已被修改,所以并不影響使用率列表的狀態(tài)。在圖7A到圖7D,使用率列表中的比特711設(shè)置為零,表示保持緩沖區(qū)720 中對應(yīng)的字節(jié)721是未被修改的(例如,表示該文件的該字節(jié)沒有被用戶端讀 取或還沒有寫入)。保持緩沖區(qū)720中未修改的數(shù)據(jù)以非陰影表示,已經(jīng)修改的數(shù)據(jù)用陰影來表示。圖7A所示為使用率列表710、空閑指針730以及保持緩存720處于數(shù)據(jù)被讀 取或?qū)懭胂嚓P(guān)的文件之前的初始狀態(tài)。如圖7A所示空閑指針730初始指向在使 用率列表710的起始位置。如圖7B所示,保持緩沖區(qū)720中的前64字節(jié)都己經(jīng)被修改,當(dāng)一個字節(jié)(使 用率列表710中的8個比特代表實際保持緩沖區(qū)中的8字節(jié))存儲滿后,空閑指 針730就跳到下一個比特。在保持緩沖區(qū)720還沒有存儲滿的時候(如圖7A至 圖7C所示),空閑指針730將總是指向使用率列表710中首個還沒有存儲滿的字 節(jié)在的位置。應(yīng)該注意的是,如圖7C所示,保持緩沖區(qū)720中除了空閑指針730,同時 也可以偏移量保存文件,但是空閑指針730不會移動,直到當(dāng)前的位置被存儲 滿。在本實施例中,只要保持緩沖區(qū)720沒有存儲滿,空閑指針730將始終指向 在使用率列表710中最近的未被修改的數(shù)據(jù)塊上。如圖7D所示,如果空閑指針730已經(jīng)遞進(jìn)至超出使用率列表710 (例如設(shè) 置為零)的末尾,那么整個保持緩沖區(qū)720己經(jīng)在此刻存儲滿可以對其存儲內(nèi) 容進(jìn)行安全的操作。該跟蹤機(jī)制,不需要對文件中的每個空閑的區(qū)塊進(jìn)行跟蹤 (和/或搜索)從而降低了操作進(jìn)行的難度同時增加了運行的效率。在本發(fā)明的其他實施例中,不需要使用空閑指針730,取而代之的是對使25用率列表711進(jìn)行邏輯與以判定保持緩沖區(qū)中是否存在任何未修改的分區(qū)。一 些實施例中,可以使用多個指針跟蹤一保持緩沖區(qū)中空閑或己經(jīng)存儲滿的區(qū) 域。根據(jù)圖7A至圖7D所示,使用率列表的要素可以由與保持緩沖區(qū)中一個 比特對應(yīng)一個字節(jié)組成;使用率列表的要素還可以是包括一個或多個比特、一個或多個字節(jié)、以及一個或多個數(shù)字或字符串。更進(jìn)一歩,每個使用率列表的 要素可以對應(yīng)保持緩沖區(qū)中的一個或多個比特、或一個或多個字節(jié)。總而言之,使用率列表中一個比特對應(yīng)保持緩沖區(qū)中n個字節(jié)。例如,使用率列表中1 比特可以表示一個4字節(jié)無符號長整形值(32比特)或一個超長整形值(64 比特)或更多。使用率列表中每個比特表示的保持緩沖區(qū)中的數(shù)據(jù)越多,使用 率列表就越小;但是,為了優(yōu)化操作速度,對使用率列表的操作盡可能將數(shù)據(jù) 排列在數(shù)據(jù)塊邊界以便能夠應(yīng)用位掩碼。最理想的速度應(yīng)該在32比特處理機(jī) 中一個使用率列表中1比特對應(yīng)一個小于或等于保持緩沖區(qū)中4字節(jié),或是 64比特處理機(jī)中一個使用率列表中1比特對應(yīng)一個小于或等于保持緩沖區(qū)中8 字節(jié)。雖然本文中提出并描述了一些特殊的實施例。但應(yīng)該理解的是這些特殊的 實施例僅作為示例提出,并不作為對本發(fā)明的限制。本發(fā)明還可有其他多種實 施例,.在不背離本發(fā)明精神及其實質(zhì)的情況下,熟悉本領(lǐng)域的技術(shù)人員當(dāng)可根 據(jù)本發(fā)明作出各種相應(yīng)的改變和變形,但這些相應(yīng)的改變和變形都應(yīng)屬于本發(fā) 明所附的權(quán)利要求的保護(hù)范圍。
      權(quán)利要求
      1.一種對使用遠(yuǎn)程文件系統(tǒng)訪問協(xié)議的數(shù)據(jù)進(jìn)行內(nèi)容過濾的方法,其特征在于,包括在邏輯上置于一用戶端與一服務(wù)器之間的一網(wǎng)絡(luò)網(wǎng)關(guān)處接收從該用戶端發(fā)送的一遠(yuǎn)程文件訪問協(xié)議請求;該網(wǎng)絡(luò)網(wǎng)關(guān)以該用戶端的名義發(fā)布遠(yuǎn)程文件系統(tǒng)訪問協(xié)議請求到該服務(wù)器;該網(wǎng)絡(luò)網(wǎng)關(guān)將與該服務(wù)器一共享資源有關(guān)的被讀取或?qū)懭胍晃募木W(wǎng)關(guān)數(shù)據(jù)緩存到一個保持緩沖區(qū)內(nèi);并作為對與遠(yuǎn)程文件系統(tǒng)訪問協(xié)議或該保持緩沖區(qū)有關(guān)的一預(yù)先設(shè)定的事件做出的響應(yīng),該網(wǎng)絡(luò)網(wǎng)關(guān)通過對該保持緩沖區(qū)中存儲的數(shù)據(jù)執(zhí)行內(nèi)容過濾來判斷該保持緩沖區(qū)是否存在惡意程序、危險或未授權(quán)的內(nèi)容。
      2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述遠(yuǎn)程文件系統(tǒng)訪問協(xié)議 包括服務(wù)器信息塊協(xié)議或通用網(wǎng)際文件系統(tǒng)。
      3. 根據(jù)權(quán)利要求2所述的方法,其特征在于,所述網(wǎng)絡(luò)網(wǎng)關(guān)包括一個透明 代理,向處理器提供了該遠(yuǎn)程文件系統(tǒng)訪問協(xié)議的一套指令子集。
      4. 根據(jù)權(quán)利要求3所述的方法,其特征在于,所述保持緩沖區(qū)設(shè)置在該網(wǎng) 絡(luò)網(wǎng)關(guān)的一非持續(xù)性存儲器中。
      5. 根據(jù)權(quán)利要求3所述的方法,其特征在于,所述保持緩沖區(qū)存儲在該網(wǎng) 絡(luò)網(wǎng)關(guān)的一共享內(nèi)存中,并可以被該網(wǎng)絡(luò)網(wǎng)關(guān)中運行的多個程序所訪問。
      6. 根據(jù)權(quán)利要求3所述的方法,其特征在于,所述保持緩沖區(qū)是設(shè)置在該 網(wǎng)絡(luò)網(wǎng)關(guān)分配內(nèi)存中,與該網(wǎng)絡(luò)網(wǎng)關(guān)中運行的一具體程序有關(guān)。
      7. 根據(jù)權(quán)利要求3所述的方法,其特征在于,還進(jìn)一步包括,該透明代理 通過一包含文件標(biāo)識符的弓1用列表來跟蹤保持緩沖區(qū)中的引用。
      8. 根據(jù)權(quán)利要求3所述的方法,其特征在于,進(jìn)一步包括,該透明代理中 通過一使用率列表跟蹤該保持緩沖區(qū)使用與修改的情況。
      9. 根據(jù)權(quán)利要求8所述的方法,其特征在于,所述使用率列表包含能夠表 示該保持緩沖區(qū)存儲空間的信息。
      10. 根據(jù)權(quán)利要求9所述的方法,其特征在于,所述預(yù)先判斷的事件包括 判斷該保持緩沖區(qū)巳經(jīng)充滿。
      11. 根據(jù)權(quán)利要求3所述的方法,其特征在于,所述預(yù)先判斷的事件包括 判斷一用戶端正在試圖在該文件上附加數(shù)據(jù)的操作。
      12. —種對使用遠(yuǎn)程文件系統(tǒng)訪問協(xié)議的數(shù)據(jù)進(jìn)行內(nèi)容過濾的方法,其 特征在于,包括通過一連接于一網(wǎng)絡(luò)設(shè)備的邏輯上部署在一用戶端與一服務(wù)器之間的代 理截取從一用戶端發(fā)送的一 SMB/CIFS協(xié)議請求;該代理以該用戶端的名義對該服務(wù)器發(fā)布遠(yuǎn)程文件系統(tǒng)訪問協(xié)議;該代理將與服務(wù)器一共享資源有關(guān)的被讀取或?qū)懭胍晃募木W(wǎng)關(guān)數(shù)據(jù)緩存到一個文件緩沖區(qū)內(nèi);作為對與SMB/CIFS協(xié)議或該文件緩沖區(qū)有關(guān)的一預(yù)先設(shè)定的事件做出 的響應(yīng),該代理通過對緩存中存儲的數(shù)據(jù)執(zhí)行內(nèi)容過濾來判斷該文件緩沖區(qū)是 否存在惡意程序、危險或未授權(quán)的內(nèi)容。
      13. 根據(jù)權(quán)利要求12所述的方法,其特征在于,所述網(wǎng)絡(luò)設(shè)備包括一網(wǎng) 關(guān)設(shè)備。
      14. 根據(jù)權(quán)利要求12所述的方法,其特征在于,所述代理包括 -個透明 代理,僅對處理器提供SMB/CIFS協(xié)議的一套指令子集。
      15. 根據(jù)權(quán)利要求12所述的方法,其特征在于,所述文件緩沖區(qū)包括對 該共享資源中每個打開文件設(shè)置的多個保持緩沖區(qū)。
      16. 根據(jù)權(quán)利要求12所述的方法,其特征在于,所述文件緩沖區(qū)包括針 對該共享資源中每個打開文件的一個單獨的保持緩沖區(qū)。
      17. 根據(jù)權(quán)利要求12所述的方法,其特征在于,所述文件緩沖區(qū)是設(shè)置 在該網(wǎng)絡(luò)設(shè)備的非持續(xù)性存儲器中。
      18. 根據(jù)權(quán)利要求16所述的方法,其特征在于,所述單獨的保持緩沖區(qū) 設(shè)置在該網(wǎng)絡(luò)設(shè)備的一共享內(nèi)存中,可以被運行在該網(wǎng)絡(luò)設(shè)備的多個程序訪 問。
      19. 根據(jù)權(quán)利要求16所述的方法,其特征在于,該方法還進(jìn)一步包括, 該代理通過維護(hù)包含文件標(biāo)識符的引用列表來跟蹤該單獨保持緩沖區(qū)中的引 用。
      20. 根據(jù)權(quán)利要求19所述的方法,其特征在于,該方法還進(jìn)一步包括, 該代理應(yīng)用一使用率列表跟蹤該單獨保持緩沖區(qū)使用與修改的情況。
      21. 根據(jù)權(quán)利要求20所述的方法,其特征在于,所述使用率列表包含能 夠表示該單獨保持緩沖區(qū)存儲空間的信息。
      22. 根據(jù)權(quán)利要求12所述的方法,其特征在于,所述預(yù)先設(shè)定的事件包括判斷該單獨保持緩沖區(qū)已經(jīng)存儲滿。
      23. 根據(jù)權(quán)利要求12所述的方法,其特征在于,所述預(yù)先設(shè)定的事件包 括檢測到文件感染型病毒的一項或多項常見行為。
      24. 根據(jù)權(quán)利要求23所述的方法,其特征在于,所述的文件感染型病毒 的一項或多項常見行為包括試圖在文件末尾附加數(shù)據(jù)。
      25. —種對使用遠(yuǎn)程文件系統(tǒng)訪問協(xié)議的數(shù)據(jù)進(jìn)行內(nèi)容過濾的網(wǎng)絡(luò)設(shè)備, 其特征在于,該網(wǎng)絡(luò)設(shè)備包括一內(nèi)容處理器,提供一項或多項過濾器可檢測所掃描的數(shù)據(jù)是否含有惡意 代碼;一遠(yuǎn)程文件系統(tǒng)訪問協(xié)議代理,與該內(nèi)容處理器連接,邏輯上部署在一用 戶端與一服務(wù)器之間,使通過一遠(yuǎn)程文件系統(tǒng)訪問協(xié)議的在該用戶端與該服務(wù) 器之間傳輸?shù)臄?shù)據(jù)能夠由內(nèi)容處理器進(jìn)行內(nèi)容過濾操作并對檢測到的預(yù)先設(shè) 定的事件做出響應(yīng);以及一包含多個文件緩沖數(shù)據(jù)結(jié)構(gòu)的內(nèi)存,該文件緩沖數(shù)據(jù)結(jié)構(gòu)可緩沖與該服 務(wù)器中一共享資源有關(guān)的讀取或?qū)懭攵鄠€文件的數(shù)據(jù)并可在遠(yuǎn)程文件系統(tǒng)訪 問協(xié)議會話過程中將該多個文件中的每個文件的引用映射到與上述每個文件 對應(yīng)的一個單獨的保持緩沖區(qū)中。
      26. 根據(jù)權(quán)利要求25所述的網(wǎng)絡(luò)設(shè)備,其特征在于,所述遠(yuǎn)程文件系統(tǒng) 訪問協(xié)議包括服務(wù)器信息塊協(xié)議或通用網(wǎng)際文件系統(tǒng)協(xié)議。
      27. 根據(jù)權(quán)利要求25所述的網(wǎng)絡(luò)設(shè)備,其特征在于,所述網(wǎng)絡(luò)設(shè)備包括 一網(wǎng)絡(luò)網(wǎng)關(guān)。
      28. 根據(jù)權(quán)利要求25所述的網(wǎng)絡(luò)設(shè)備,其特征在于,所述遠(yuǎn)程文件系統(tǒng) 訪問協(xié)議代理包括一透明代理。
      29. 根據(jù)權(quán)利要求25所述的網(wǎng)絡(luò)設(shè)備,其特征在于,所述內(nèi)存是一共享 內(nèi)存,可以被運行于該網(wǎng)絡(luò)設(shè)備的多個程序訪問。
      30. 根據(jù)權(quán)利要求25所述的網(wǎng)絡(luò)設(shè)備,其特征在于,所述文件緩沖數(shù)據(jù) 結(jié)構(gòu)包括對應(yīng)一單獨保持緩沖區(qū)的一使用率列表,以便跟蹤每個單獨保持緩沖區(qū)的使用以及修改情況。
      31. 根據(jù)權(quán)利要求30所述的網(wǎng)絡(luò)設(shè)備,其特征在于,所述每個使用率列 表包括表示與每個單獨保持緩沖區(qū)中空閑分區(qū)與存儲滿分區(qū)的條目。
      32. 根據(jù)權(quán)利要求25所述的網(wǎng)絡(luò)設(shè)備,其特征在于,所述預(yù)先設(shè)定的事 件包括判斷一個或多個該單獨保持緩沖區(qū)己經(jīng)存儲滿。
      33. 根據(jù)權(quán)利要求25所述的網(wǎng)絡(luò)設(shè)備,其特征在于,所述預(yù)先設(shè)定的事 件包括該遠(yuǎn)程文件系統(tǒng)訪問協(xié)議代理檢測到文件感染型病毒的一項或多項常 見行為。
      34. 根據(jù)權(quán)利要求33所述的網(wǎng)絡(luò)設(shè)備,其特征在于,所述文件感染型病 毒的一項或多項常見表象或行為包括試圖對很多文件中的一個文件附加數(shù)據(jù)。
      35. —種對使用遠(yuǎn)程文件系統(tǒng)訪問協(xié)議的數(shù)據(jù)進(jìn)行內(nèi)容過濾的方法,其特 征在于,包括在一網(wǎng)絡(luò)設(shè)備上接收一建立網(wǎng)絡(luò)會話的請求,該請求以一源網(wǎng)絡(luò)地址、一 目標(biāo)網(wǎng)絡(luò)地址以及一遠(yuǎn)程文件系統(tǒng)訪問協(xié)議為特征;通過在與該網(wǎng)絡(luò)設(shè)備連接的在邏輯上置于用戶端與服務(wù)器之間的一代理 上進(jìn)行截取操作收集與該網(wǎng)絡(luò)會話有關(guān)的數(shù)據(jù),該代理從該用戶端獲取一遠(yuǎn)程 文件系統(tǒng)訪問協(xié)議請求,或從該服務(wù)器得到一遠(yuǎn)程文件系統(tǒng)訪問協(xié)議回應(yīng);該代理以該用戶端的名義發(fā)送遠(yuǎn)程文件系統(tǒng)訪問協(xié)議請求到該服務(wù)器,或 將以該服務(wù)器的名義將對遠(yuǎn)程文件系統(tǒng)訪問協(xié)議請求做出的回應(yīng)發(fā)送到該用 戶端;并對收集到的數(shù)據(jù)執(zhí)行內(nèi)容過濾的操作。
      36. 根據(jù)權(quán)利要求35所述的方法,其特征在于,所述網(wǎng)絡(luò)設(shè)備包括一網(wǎng)關(guān)。
      37. 根據(jù)權(quán)利要求35所述的方法,其特征在于,所述遠(yuǎn)程文件系統(tǒng)訪問 協(xié)議包括服務(wù)器信息塊協(xié)議/通用網(wǎng)際文件系統(tǒng)。
      38. 根據(jù)權(quán)利要求35所述的方法,其特征在于,所述代理,向處理器提 供了該遠(yuǎn)程文件系統(tǒng)訪問協(xié)議的一套或全部指令子集。
      39. 根據(jù)權(quán)利要求35所述的方法,其特征在于,所述保持緩沖區(qū)用于存 儲上述收集到的數(shù)據(jù)。
      40. —種對使用遠(yuǎn)程文件系統(tǒng)訪問協(xié)議的數(shù)據(jù)進(jìn)行內(nèi)容過濾的方法,其特 征在于,包括一個或多個計算機(jī)可讀介質(zhì),容納多個保持緩沖區(qū)、 一保持緩沖區(qū)數(shù)據(jù)列 表、 一文件映射表以及一使用率列表,該保持緩沖區(qū)用于存儲從一遠(yuǎn)程文件系 統(tǒng)訪問協(xié)議收集到的數(shù)據(jù),該使用率列表與上述多個保持緩沖區(qū)的每一個相對應(yīng);在該保持緩沖區(qū)數(shù)據(jù)列表內(nèi)跟蹤該多個保持緩沖區(qū)的每個保持緩沖區(qū)的引用;通過該文件映射表將一常規(guī)文件的引用映射到上述多個保存緩沖區(qū)的一 個常規(guī)緩沖區(qū)中的;利用與該多個保持緩沖區(qū)的每個保持緩沖區(qū)相對應(yīng)的使用率列表跟蹤該 多個保持緩沖區(qū)的已修改與未修改的分區(qū);對與該多個保持緩沖區(qū)中的一個有關(guān)的一預(yù)先設(shè)定的事件做出響應(yīng),通過 對該保持緩沖區(qū)執(zhí)行內(nèi)容過濾以判斷該保持緩沖區(qū)中是否存在惡意代碼、危險 或未授權(quán)的內(nèi)容。
      41. 根據(jù)權(quán)利要求40所述的方法,其特征在于,所述一項或多項計算機(jī) 可讀介質(zhì)包括非持續(xù)性存儲器,例如隨機(jī)存取存儲器。
      42. 根據(jù)權(quán)利要求40所述的方法,其特征在于,所述一項或多項計算機(jī) 可讀介質(zhì)包括持續(xù)性存儲器,例如硬盤、閃存或其他非易失性存儲器。
      43. 根據(jù)權(quán)利要求41所述的方法,其特征在于,所述非持續(xù)性存儲器包 括能夠被運行在該網(wǎng)絡(luò)設(shè)備中的多個程序訪問的共享內(nèi)存。
      44. 根據(jù)權(quán)利要求40所述的方法,其特征在于,所述文件映射表的要素 包含文件標(biāo)識符。
      45. 根據(jù)權(quán)利要求44所述的方法,其特征在于,所述文件標(biāo)識符由一數(shù) 字、 一字符型字符串或二進(jìn)制的序列組成。
      46. 根據(jù)權(quán)利要求40所述的方法,其特征在于,所述文件映射列表的要 素包含對應(yīng)多個保持緩沖區(qū)中的一個或多個的引用。
      47. 根據(jù)權(quán)利要求40所述的方法,其特征在于,所述保持緩沖區(qū)數(shù)據(jù)列 表的要素包括對應(yīng)多個保持緩沖區(qū)中的一個或多個的引用。
      48. 根據(jù)權(quán)利要求40所述的方法,其特征在于,所述保持緩存數(shù)據(jù)列表 的要素包括對應(yīng)多個保持緩沖區(qū)中的每一個的引用計數(shù)。
      49. 根據(jù)權(quán)利要求40所述的方法,其特征在于,所述使用率列表的要素由一個或多個比特、字節(jié)、數(shù)字或字符串組成。
      50. 根據(jù)權(quán)利要求49所述的方法,其特征在于,所述使用率列表的每一 個要素對應(yīng)于多個保持緩沖區(qū)中的相應(yīng)緩沖區(qū)的一個或多個比特或字節(jié)。
      51. 根據(jù)權(quán)利要求49所述的方法,其特征在于,所述使用率列表的條目表示相應(yīng)保持緩沖區(qū)的相應(yīng)分區(qū)修改或未修改的狀態(tài)。
      52. 根據(jù)權(quán)利要求40所述的方法,其特征在于,所述預(yù)先設(shè)定的事件包 括判斷該保持緩沖區(qū)被全部修改。
      53. 根據(jù)權(quán)利要求40所述的方法,其特征在于,所述預(yù)先設(shè)定的事件包 括試圖在該保持緩沖區(qū)附加數(shù)據(jù)。
      全文摘要
      本發(fā)明涉及一種對使用遠(yuǎn)程文件系統(tǒng)訪問協(xié)議的數(shù)據(jù)進(jìn)行內(nèi)容過濾的方法與系統(tǒng)。根據(jù)本發(fā)明的一實施例,運行于一網(wǎng)關(guān)且邏輯上置于用戶端與服務(wù)器之間的代理截取遠(yuǎn)程文件系統(tǒng)訪問協(xié)議請求/回應(yīng)。作為接收到用戶端發(fā)出的遠(yuǎn)程文件系統(tǒng)訪問協(xié)議請求的響應(yīng),網(wǎng)絡(luò)網(wǎng)關(guān)以用戶端的名義向服務(wù)器發(fā)布遠(yuǎn)程文件系統(tǒng)訪問協(xié)議請求。網(wǎng)絡(luò)網(wǎng)關(guān)設(shè)備將與服務(wù)器一共享資源有關(guān)的讀取自/寫入到一文件的數(shù)據(jù)緩沖入一保持緩沖區(qū)。然后,作為對預(yù)先設(shè)定與遠(yuǎn)程文件系統(tǒng)訪問協(xié)議或該保持緩沖區(qū)有關(guān)的事件的響應(yīng),通過在該保持緩沖區(qū)內(nèi)執(zhí)行內(nèi)容過濾操作判斷該保持緩沖區(qū)中是否存在惡意代碼、危險或未授權(quán)的內(nèi)容。
      文檔編號H04L29/08GK101252585SQ20081008542
      公開日2008年8月27日 申請日期2008年3月14日 優(yōu)先權(quán)日2007年5月8日
      發(fā)明者威廉·杰弗里·克勞福德 申請人:飛塔信息科技(北京)有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1