專利名稱:無狀態(tài)雙向代理的制作方法
無狀態(tài)雙向代理背景自開始以來,因特網在全球的普及程度就以呈指數的速率增長。每年,隨 著越來越多的人員和企業(yè)使用因特網來連接到其他人員和企業(yè)以及連接到經 由因特網服務器可獲得的無數信息、服務和產品的源,包括客戶機機器("客 戶機"),即用戶設備和服務器機器("服務器")的幾十萬臺計算機系統(tǒng)被 添加到因特網。如同在任何大型和復雜的市場中一樣,連接到因特網的服務器 和客戶機成為了惡意方的目標。惡意方使用軟件來獲取對存儲在服務器和客戶 機上屬于個人、金融機構、政府和其他企業(yè)的機密和私有信息的未經授權的訪 問。對統(tǒng)稱為惡意軟件的諸如病毒、蠕蟲、木馬、垃圾郵件(無用的、未經請 求的、以及通常為商業(yè)電子郵件消息)的惡意軟件程序的使用的數目和頻率在 過去幾年中有了很大的增長。為了保護對系統(tǒng)和機密數據的訪問并保存網絡數 據帶寬,對反惡意軟件軟件的開發(fā)和使用也快速地增長。對包括反病毒和垃圾 郵件防護以及其他保護性軟件的反惡意軟件軟件套件的使用變得越來越常見。反惡意軟件軟件套件的示例是Norton Antivirus和McAfee VimsScan套件的因 特網保護軟件。如同任何新的軟件應用程序一樣,反惡意軟件軟件必須在現實環(huán)境中測試 以確??煽啃院驼_的功能。軟件測試通常在其中可以嚴密地控制操作參數和 配置的受控環(huán)境中執(zhí)行,使得可以進行集中于特定功能領域的測試并研究結 果。由于大多數惡意軟件本質上是在聯網環(huán)境中使用的可執(zhí)行軟件,因此測試 反惡意軟件軟件要求受控的網絡環(huán)境。病毒類惡意軟件是通過感染未經感染的 計算機或計算設備程序來擴散的可執(zhí)行軟件。感染指的是在現有的合法軟件程 序中嵌入一段惡意的軟件代碼(即惡意軟件)。該嵌入的惡意軟件隨后在用戶 選擇該合法軟件程序以供處理器執(zhí)行或選擇以供在常規(guī)計算活動期間由其他 合法進程執(zhí)行時被計算機處理器執(zhí)行。當該惡意軟件被處理器執(zhí)行時,該惡意 軟件造成該惡意軟件被設計成所要實現的損壞。大多數惡意軟件,尤其是病毒在互聯網上傳播并且從一臺計算機(即服務器或客戶機)經由電子郵件附件傳 遞到另一計算機,并且在用戶不知情地打開該電子郵件附件時執(zhí)行,或者作為 附在合法軟件程序或網頁上或嵌入在其中的寄生軟件。不同于病毒,蠕蟲無需 被嵌入在程序中來執(zhí)行。
一旦蠕蟲被執(zhí)行,蠕蟲自我復制并創(chuàng)建更多的蠕蟲, 最終消耗網絡的帶寬,由此不允許其他程序使用相關的計算資源。為了測試反惡意軟件軟件的有效性,運行反惡意軟件軟件的測試系統(tǒng)必須 能夠接收由運行惡意軟件程序的惡意軟件系統(tǒng)發(fā)送的惡意軟件分組。接收該惡 意軟件分組的測試系統(tǒng)允許測試員、人員或自動化計算機測試軟件來觀察反惡 意軟件軟件是否正確地檢測到該惡意軟件分組并防止它們感染該測試系統(tǒng)。大 多數惡意軟件生成諸如互聯網協(xié)議("IP")地址等隨機地以互聯網上的計算 機為目標以便傳遞惡意軟件的隨機網絡地址。因為由惡意軟件生成的隨機網絡 地址極不可能匹配測試系統(tǒng)的網絡地址,所以測試系統(tǒng)不太可能接收在惡意軟 件系統(tǒng)上運行的惡意軟件生成的分組。所需的是確保惡意軟件被定向到測試系 統(tǒng)上,使得可以確定在測試系統(tǒng)上運行的反惡意軟件軟件的有效性的方式。概述提供本概述以便用簡化的形式介紹將在以下詳細描述中進一步描述的一 些概念。本概述并不旨在確定所要求保護的主題的關鍵特征,也不旨在用于幫 助確定所要求保護的主題的范圍。提供了一種用于定向數據分組話務的方法和系統(tǒng)。一代理設備將第一和第 二計算設備、系統(tǒng)或網絡耦合在一起。該代理設備從定址到目的地的第一和第 二計算設備、系統(tǒng)或網絡之一接收數據分組并將該數據分組重定向到該第一和 第二計算設備、系統(tǒng)或網絡中的另一個上。該代理設備可以響應于由該第一和 第二計算設備、系統(tǒng)或網絡中的另一個接收的分組而從該第一和第二計算設 備、系統(tǒng)或網絡中的另一個接收數據分組,并將該響應數據分組重定向回第一 和第二計算設備、系統(tǒng)或網絡中發(fā)起的那一個。在一個示例性實施例中,第一和第二計算設備、系統(tǒng)或網絡中發(fā)起的那一 個運行惡意軟件("惡意軟件"),由此原始數據分組包含惡意軟件,而第一 和第二計算設備、系統(tǒng)或網絡中的另一個運行反惡意軟件測試軟件。
當結合附圖參考以下詳細描述時,能更容易理解并更好地理解本發(fā)明的以 上方面和許多附帶優(yōu)點,附圖中圖1是示出包括無狀態(tài)雙向代理設備的兩臺計算機的系統(tǒng)的圖示;圖2是示出圖1中所示的無狀態(tài)雙向代理設備的操作的流程圖;圖3是示出包括無狀態(tài)雙向代理設備的多計算機網絡系統(tǒng)的圖示;圖4是示出圖3中所示的無狀態(tài)雙向代理設備和相關元件的操作的流程圖;圖5是無狀態(tài)雙向代理設備的示例性實施例的框圖;以及 圖6是無狀態(tài)雙向代理設備的另一示例性實施例的框圖。詳細描述描述了重定向計算機網絡數據分組的系統(tǒng)和方法。雖然該系統(tǒng)和方法理想 地適用于將來自運行惡意軟件的惡意軟件系統(tǒng)的數據分組重定向到運行反惡 意軟件軟件的主機系統(tǒng)上,但是該系統(tǒng)和方法也可以在其他環(huán)境中找到用途。 此外,雖然該系統(tǒng)和方法是在雙向環(huán)境中描述的,但是該系統(tǒng)和方法也可以在 單向環(huán)境中找到用途。由此,應該理解,本發(fā)明不應被解釋為限于此處所描述 的示例性實施例的應用,并且這種示例性實施例不應被解釋為限制性的。圖1示出了一兩臺計算設備的系統(tǒng),包括惡意軟件計算設備100、主機計 算設備104和代理設備102。代理設備102是具有兩個輸入/輸出耦合或連接的 雙向無狀態(tài)設備。一個輸入/輸出耦合或連接被有線或無線地連接到惡意軟件計 算設備100,而另一輸入/輸出耦合或連接被有線或無線連接到主機計算設備 104。雖然惡意軟件計算設備100和主機計算設備104被圖示為臺式型個人計算 機,但是這應該被解釋為示例性的而非限制性的。除臺式型個人計算機之外, 惡意軟件計算設備IOO和主機計算設備104之一或兩者可以采用各種其他計算 設備中的任一種的形式,包括但不限于膝上型計算機、個人數字助理、蜂窩電話、服務器等。代理設備102從惡意軟件計算設備接收數據分組,并將其轉發(fā)到主機計算設備,反之亦然。為了便于說明和理解,由惡意軟件計算設備ioo生成的數據分組被指定為分組#1,由代理設備102轉發(fā)給主機計算設備104的數據分組被 指定為分組#2,由主機計算設備104生成的數據分組被指定為分組#3,而由代 理設備102轉發(fā)給惡意軟件計算設備100的數據分組被指定為分組糾。諸如分 組#1等每個數據分組包括源地址和目的地地址,每個地址標識數據分組的通信 路徑的一個端點。源和目的地地址可以是例如互聯網協(xié)議(IP)地址。此外, 每個數據分組可包括用于源和目的地計算設備的媒體訪問控制("MAC")地 址,每個MAC地址分別唯一地標識源和目的地計算設備。在圖l中所示的示 例性實施例中,取決于哪個計算設備正在發(fā)送和哪個計算設備正在接收,源和 目的地計算設備是惡意軟件計算設備和主機計算設備。返回到圖1,在惡意軟件計算設備100上運行的惡意軟件將隨機的目的地 地址應用于分組#1數據分組。這些分組包含惡意軟件。代理設備102接收分組 #1數據分組,修改源和目的地地址,使得分組#1數據分組作為分組#2數據分 組被重定向到主機計算設備104。代理設備還修改由主機計算設備104產生的 響應分組,即分組#3數據分組的源和目的地地址,并將響應分組作為分組#4 數據分組重定向到惡意軟件計算設備。更為具體地,代理設備102包括存儲惡 意軟件計算設備100的MAC地址和IP地址以及主機計算設備104的MAC地 址和IP地址的存儲器。存儲在代理設備102中的上述信息使代理設備102能 以無狀態(tài)方式操作。即,該配置信息使得代理設備102能夠在無需維護它接收 和發(fā)送的每個分組的狀態(tài)信息,即MAC和IP的情況下操作。將惡意軟件計算 設備連接到主機計算設備的網絡實際上由代理設備102切換。惡意軟件計算設 備100和主機計算設備104不能直接在連接的網絡上檢測到彼此的存在,由此 不能直接彼此發(fā)送網絡數據分組。實際上,惡意軟件計算設備IOO和主機計算 設備104各自都在通過代理設備102連接的單獨的子網中。就這點而言,代理 設備102起到網絡路由器的作用。圖2是示出存儲在代理設備102中的軟件如何使得代理處理器通過修改源 和目的地地址來重定向惡意軟件計算設備IOO和主機計算設備104之間的數據 分組的功能流程圖。 一開始,在框210處,代理設備102 "監(jiān)聽"來自惡意軟件計算設備100和主機計算設備104兩者的分組。當接收到分組時(框220), 代理設備102在框230處判定該分組是否來自主機計算設備。如果分組不是來 自主機計算設備104的,則該分組是來自惡意軟件計算設備100的。在所示的 本發(fā)明的示例性實施例中,由惡意軟件計算設備100發(fā)送的分組,即分組#1 數據分組包括被設置成Malware一MAC值(惡意軟件計算設備100的MAC地 址)的源MAC地址以及被設置成Malware_IP值,即惡意軟件計算設備100 的網絡地址的源網絡地址。此外,分組#1數據分組包括被設置成ProxyJVIAC 值(代理設備102的MAC地址)的目的地MAC地址以及被設置成Target—IP 值的目的地網絡地址。值Target一IP是由在惡意軟件計算設備100上運行的惡 意軟件生成的隨機接收計算設備地址。返回到圖2,當接收到分組#1數據分組時,該流程圖轉到框240處,其中 代理設備102將源MAC地址改為Proxy—MAC,并將源網絡地址改為Target—IP。 代理設備102還將目的地MAC地址改為Host—MAC (主機計算設備104的 MAC地址),并將目的地網絡地址改為Host—IP (主機計算設備104的網絡地 址)。這些改變將分組#1數據分組轉換成分組#2數據分組。雖然分組#2數據 分組的主體與分組#1數據分組的主體相同,但是源和目的地地址不同,其己用 上述方式改變。雖然在此處描述的示例性實施例中代理和惡意軟件以及主機計 算設備的源和目的地地址是IP地址,但是顯然,取決于所使用的環(huán)境可以使 用其他地址。接著,在框250處,代理設備102將分組#2數據分組發(fā)送給主機 計算設備104。惡意軟件計算設備IOO和主機計算設備104都完全不知道分組 #1數據分組的重定向。在框290處,如果期望更多的分組,則該流程返回到框 210,以便監(jiān)聽更多的分組。如果不期望更多的分組,則該流程結束。返回框230,如果接收到的分組是來自主機計算設備而非惡意軟件計算設 備,那么接收到的數據分組是響應數據分組。即,該數據分組是分組#3數據分 組。在這種情況下,該流程圖前進到框270,其中代理設備102將分組#3數據 分組轉換成分組#4數據分組。更具體地,分組#3數據分組包括源MAC地址 Host—MAC和源網絡地址HostjP。此外,分組#3數據分組包括目的地MAC 地址Proxy—MAC和目的地網絡地址Target一IP。代理設備102將每個分組#3數 據分組改為分組#4數據分組。這是通過將源MAC地址改為Proxy_MAC,將源網絡地址改為Target—IP,將目的地MAC地址改為Malware—MAC,以及將 目的地網絡地址改為Mahvare一IP (惡意軟件計算設備100的網絡地址)來完成 的。由此,如同分組#1數據分組和分組#2數據分組一樣,分組#3數據分組和 分組#4數據分組的主體沒有改變,僅分組報頭中的源和目的地地址被改變。接 著,在框280處,代理設備102將分組#4數據分組發(fā)送給惡意軟件計算設備 100。由此,惡意軟件計算設備100接收經重定向的分組#3數據分組,作為分 組糾數據分組。同樣,惡意軟件計算設備100和主機計算設備104都完全不知 道分組#3數據分組重定向。如上所述,在框2卯處,如果期望更多的分組,則 該流程返回到框210以便監(jiān)聽更多分組。如果不期望更多的分組,則該流程結 束??傊?,代理設備102將在惡意軟件計算設備100處發(fā)起的數據分組重定向 到主機計算設備104,并將響應數據分組重定向到惡意軟件計算設備100,而 源或目的地系統(tǒng),即惡意軟件計算設備100或主機計算設備都不知道該重定向。圖3示出了包括無狀態(tài)雙向代理設備308的多計算機網絡系統(tǒng)。在圖3 所示的示例性配置中,代理設備308耦合兩個子網,即惡意軟件子網300和主 機子網310。惡意軟件子網300包括多個計算設備,例如個人計算機或其他計 算設備,其中至少一個是惡意軟件計算設備302,而主機子網310包括多個主 機計算設備,包括主機計算設備312。惡意軟件子網300經由被標識為網絡設 備-M的網絡耦合設備304被耦合到代理設備308。同樣地,主機子網310經由 被標識為網絡設備-II的網絡耦合設備306被耦合到代理設備308。在一個示例 性實施例中,網絡設備304和306是適當地將一個子網與另一個子網相連接的 網絡路由器。在該示例性實施例中,代理設備308執(zhí)行路由器功能的一個子集, 即接收和路由來自它經由網絡耦合設備304和306所連接到的子網的數據分 組。在該實施例中,諸如端口轉發(fā)等技術可用于將數據分組轉發(fā)給連接到路由 器的特定系統(tǒng)。在端口轉發(fā)方案中,通信端口號被包括在分組被定向到的計算 設備的網絡地址中。計算設備響應(即接受)包括該通信端口號的數據分組。 端口轉發(fā)使用端口號來有效地擴展單個網絡地址,諸如IP地址,以供多個計 算設備使用,每個這樣的計算設備通常響應一特定端口號上的特定應用程序。 例如,用于Web瀏覽的超文本傳輸協(xié)議("HTTP")需要端口 80來運行,而文件傳輸協(xié)議("FTP")需要端口21。如果網絡分組包含HTTP信息,則 端口轉發(fā)方案使得分組被定向到與端口 80相關聯的計算設備。端口轉發(fā)也可 以用在提供諸如Web瀏覽和FTP等多個應用程序的單個計算設備上。在另一 示例性實施例中,網絡設備304和306是網絡集線器,即將網絡連接復制到網 絡的多個計算設備的集線器。在該實施例中,代理設備308包括將惡意軟件子 網連接到主機子網的路由器功能。圖4是示出代理設備308和網絡計算設備304及305如何將惡意軟件計算 設備302之間的數據分組重定向到包括在主機子網310中的主機計算設備312 的流程圖。圖3的代理設備和網絡連接設備的操作基本上類似于圖1的代理設 備102的操作,即使圖4與圖1的不同之處在于圖4包括每個子網300和310 中的多個計算設備以及將惡意軟件子網300和主機子網310連接到代理設備 308的網絡連接設備304和306。圖4的流程前進到框405,其中代理設備308監(jiān)視惡意軟件和主機子網, 即通過監(jiān)聽合適的數據分組,即來自惡意軟件計算設備302或主機計算設備 312中任一個的數據分組。其他數據分組被忽略。當代理設備319接收到(框 40)合適的數據分組時,在框415處,代理設備判定該數據分組是否來自主 機計算設備312。如果該分組不是來自主機計算設備302,則該數據分組來自 惡意軟件計算設備312。在這一情況下,該流程前進到框420,其中通過復制 分組#1數據分組的主體并改變報頭中的網絡標識和地址,將分組#1數據分組, 即惡意軟件計算設備數據分組改為分組#2數據分組,如以上關于圖2 —般描述 的。接著,在框425處,代理設備308將分組#2數據分組發(fā)送給連接到主機子 網的網絡連接設備306,即網絡設備-H。如上所述,網絡連接設備306可以采 取若干種形式。在一個示例性實施例中,網絡連接設備304和306是將外部網 絡話務從代理設備308連接到相關的子網300或310的路由器。路由器使用諸 如上述端口轉發(fā)等技術將數據分組轉發(fā)到連接到網絡連接設備306的特定計算 設備。在圖3所示的示例性配置中,分組#2數據分組由網絡設備-H路由到目 標主機計算設備312。路由是基于目標主機計算設備312的常用網絡地址和指 定的端口號的?;蛘?,網絡設備-H可以將不同的網絡地址(例如IP)分配給 每個主機計算設備312,由此基于目標主機計算設備312的不同網絡地址將分組#2數據分組傳送到目標主機計算設備312。在另一替換方案中,網絡-H306 是網絡集線器,而代理設備執(zhí)行兩個連接的子網之間的路由功能。在該替換方 案中,網絡設備-H 306提供到包含主機計算設備312的子網3130的接入點。 在另一替換方案中(未示出),代理設備308和網絡設備304和306被集成到 執(zhí)行代理、路由器、到主機計算設備302和312的接入點的功能的單個設備中。 在還有一替換方案中,代理設備308和網絡連接設備304及306的功能是使用 軟件而非硬件來實現的。在再有一替換方案中,代理設備308和網絡連接設備 304及306的功能是使用硬件和軟件的組合來實現的。由此,如上所述,圖3 中所示的配置應該被解釋成示例性的而非限制性的。返回閣4,接著,在框430處,網絡設備-H306將分組弁2數據分組轉發(fā)給 主機子網310內的目標,即主機計算設備312。如果要接收更多的分組,則在 框460處該流程返回到框405,否則該流程結束。返回到框415,如果分組是分組#3數據分組,即來自主機計算設備312 的數據分組,則該流程前進到框440,其中代理設備308通過復制分組#3數據 分組的主體并改變報頭中的網絡標識和地址來從分組#3數據分組創(chuàng)建分組#4 數據分組,如以上關于圖2—般描述的。接著,在框445處,代理設備308將 分組#4數據分組發(fā)送給網絡設備-M,后者將分組#4數據分組發(fā)送給惡意軟件 計算設備302,或者一般地以網絡設備-H轉發(fā)分組#2數據分組相同的方式。 接著,在框460處,如果要接收更多的分組,則該流程返回到框405處,否則 該流程結束。圖5示出了適用于用軟件或硬件形式實現的代理設備500的一個示例性實 施例。為了便于說明,僅在圖5中示出了主要的硬件或軟件模塊或組件,可以 理解的是,實際的代理可以包括額外的模塊或組件。圖5中所示的示例性代理 設備500包括處理器502、存儲器504以及輸入/輸出接口 506、 508對。如本 領域的技術人員所公知的,存儲器504可以包括不同的部分,而每個部分可以 是不同的類型。例如,存儲器504可以包括動態(tài)隨機存取存儲器("DRAM") 部分和只讀存儲器("ROM")或非易失性閃存型存儲器。通常,DRAM用 于在執(zhí)行代理軟件期間數據的臨時和中間存儲,而ROM或閃存用于存儲非易 失性數據和程序。在輸入/輸出接口 506和508之一處接收數據分組。所接收的數據分組經由系統(tǒng)總線510被傳遞給存儲器504。處理器502控制數據移動并 執(zhí)行代理設備所需的數據處理任務。更具體地,處理器502執(zhí)行存儲在存儲器 504中的軟件程序("代理軟件")。代理軟件被存儲在存儲器504的非易失 性部分中。存儲器504的非易失性部分也存儲源和目的地計算設備,即以上參 考圖1和3描述的惡意軟件和主機計算設備的地址。代理軟件執(zhí)行無狀態(tài)代理 設備的操作功能,例如圖2和4中所示以及上述的無狀態(tài)雙向代理設備的功能。 更具體地,代理軟件通過臨時地將從輸入/輸出接口之一接收的數據分組存儲在 存儲器中,改變接收到的數據分組的報頭中的源和目的地地址并使用輸入/輸出 接口 506、 508中的另一個將新的數據分組發(fā)送給目的地來使得數據分組被重 定向。在另一實施例中(在附圖中未示出),所有的代理組件,即處理器502、 存儲器504以及輸入/輸出接口 506和508可以被集成到單個電子芯片中。在另 一實施例中,輸出/輸出接口 506和508可以是有線網絡接口 ,諸如以太網接口 。 在還有一實施例中,諸如無線接收機和發(fā)射機等其他組件可用于執(zhí)行輸入/輸出 接口 506和508的功能。在再有一些實施例中,諸如時鐘生成器、外部邏輯電 路、數據緩沖器、電源電路等其他硬件組件可以被包括在代理設備中。由此, 如上所述,圖5中所示的代理組件或模塊應當被解釋為示例性的而非限制性的。圖6示出了理想地適于用硬件實現的替換代理設備600的一個示例性實施 例。圖6中所示的代理設備600包括邏輯控制電路("控制器")602、兩個 數據分組緩沖存儲器("數據分組緩沖器")604、 606以及兩個輸入/輸出接 口 608、 610。在輸入/輸出接口 608、 610之一處接收到的數據分組經由系統(tǒng)總 線612被傳遞給數據分組相關緩沖器604、 606中的相關的一個??刂破?02 控制計算進程,諸如輸入/輸出接口 608、 610和數據分組緩沖器604、 606之間 的數據移動以及代理設備所需的其他數據處理任務,即上述圖2和4中所示的 代理功能。較佳地,控制器602由低級編程的用于設置諸如輸入/輸出接口 608、 610的比特率等操作參數的硬件組件組成??刂破?02的低級編程可以使用例 如硬件開關、可編程邏輯陣列("PLA")、可擦除可編程只讀存儲器("EPROM") 或本領域公知的其他低級編程設備來執(zhí)行。低級編程也可以包括設置代理在用 以上參考圖1-4描述的方式重定向數據分組時使用的源和目的地地址。較佳地,緩沖器604、 606組成存儲器陣列。例如,數據分組緩沖器604、 606可以是 DRAM、靜態(tài)RAM類型("SRAM")或具有足夠的訪問速度的其他合適的 存儲器陣列。如有所需,代理可以包括多于圖6中所示的兩個數據分組緩沖器。 例如,代理可以包括四個或六個用于同時雙向數據分組處理(即全雙工)的可 獨立尋址緩沖器,以及用于當改變數據分組地址時交換值的臨時數據分組緩沖 器。數據分組緩沖器的其他組合也是可能的??刂破?02使得包含在數據分組 中的數據被傳遞到、傳遞自數據分組緩沖器604、 606并存儲在其中。如以上 參考圖2和4所述,當創(chuàng)建新的數據分組時,控制器602改變從輸入/輸出接口 608、 610之一接收的數據分組的報頭中的源和目的地地址。該新的數據分組使 用輸入/輸出接口 608、 610中的另一個被發(fā)送到目的地。在還有一些實施例中(在附圖中未示出),代理組件,即處理器502或控 制器602、存儲器504或數據緩沖器604、606和輸入/輸出接口 506、508或608、 610可以由硬件組件和軟件程序的組合來實現。例如,輸入/輸出接口 608、 610 和數據緩沖器604、 606可以使用硬件組件來實現,而控制器602可以使用類 似f處理器502的可編程控制器來代替。由此,如圖5—樣,圖6中所示的代 理配置應該被解釋為示例性的而非限制性的。上述方法和系統(tǒng)理想地適用于測試反惡意軟件軟件。在這種使用中,惡意 軟件計算設備100和302運行生成包含惡意軟件的數據分組的惡意軟件。如上 所述,如本領域技術人員所公知的,惡意軟件數據分組被設計成感染計算設備 和/或計算設備的元件和組件和/或使得其超載。為了消除包括在惡意軟件數據 分組中的隨機目標的問題,在圖1和3中所示的示例性配置中采用的代理設備 102和308將惡意軟件數據分組重定向到運行反惡意軟件軟件的特定主機計算 設備。這種安排在反惡意軟件軟件的測試中是有優(yōu)勢的,因為包含惡意軟件的 所有網絡分組在代理設備102和308的控制下被重定向到已知的目的地,使得 可能收集數據并觀察反惡意軟件軟件如何響應惡意軟件數據分組。雖然示出和描述了本發(fā)明的示例性實施例,但是應該理解可以在其中作出 各種改變,而不背離本發(fā)明的精神和范圍。例如,雖然本發(fā)明理想地適用于測 試反惡意軟件軟件,但是本發(fā)明的實施例可以在其他環(huán)境中找到用途。此外, 雖然所示和所描述的代理設備102和308以雙向方式操作,但是單向代理設備可以在某些環(huán)境中找到用途。由此,在所附權利要求的范圍內,應該理解本發(fā) 明可以用此處所具體描述之外的其他方法來實現。其中要求保護排他性專有或特權的本發(fā)明的各實施例在所附權利要求書 中定義了。
權利要求
1.一種用于重定向數據分組的方法,所述數據分組包括報頭和主體,所述報頭包括源和目的地地址,所述方法包括響應于接收來自源的數據分組,通過將所接收到的數據分組的報頭中的源和目的地地址改為預定的源和目的地地址來創(chuàng)建新的接收到的數據分組;以及將所述新的接收到的數據分組定向到由所述預定目的地地址確定的目的地。
2. 如權利要求1所述的方法,其特征在于,還包括響應于接收來自由所述預定目的地地址確定的目的地的響應數據分組,通 過改變所述響應數據分組的報頭中的源和目的地地址來創(chuàng)建新的響應數據分 組,所述源地址是所述源的地址;以及使用所述源地址將所述新的響應數據分組重定向到所述源。
3. 如權利要求2所述的方法,其特征在于,所述預定源地址是代理的地址。
4. 如權利要求2所述的方法,其特征在于,所述接收到的數據分組和所 述響應數據分組的報頭中的源地址各自包括源網絡地址、源網絡標識符,并且 其中所述接收到的數據分組和響應數據分組的報頭中的目的地地址各自包括 目的地網絡地址和目的地網絡標識符。
5. 如權利要求4所述的方法,其特征在于(a) 創(chuàng)建所述新的接收到的數據分組包括(i) 復制相關的所述接收到的數據分組的主體;以及(ii) 改變所述源網絡地址、所述源網絡標識符、所述目的地網絡地址 以及所述目的地網絡標識符;以及(b) 創(chuàng)建所述新的響應數據分組包括(i) 復制相關的所述響應數據分組的主體;以及(ii) 改變所述源網絡地址、所述源網絡標識符、所述目的地網絡地址 以及所述目的地網絡標識符。
6. 如權利要求5所述的方法,其特征在于,所述源和目的地網絡地址是互聯網協(xié)議("IP")地址,而所述源和目的地網絡標識符是媒體訪問控制("MAC")地址。
7. —種將惡意軟件數據分組定向到運行反惡意軟件軟件的計算設備的方 法,所述惡意軟件數據分組包括報頭和主體,所述報頭包括標識惡意軟件數據分組的源的惡意軟件源地址以及隨機生成的目的地地址,所述方法包括響應于接收惡意軟件數據分組,通過將所述惡意軟件源地址改為預定的源 地址,并將所述隨機生成的目的地地址改為運行所述反惡意軟件軟件的計算設備的地址來創(chuàng)建新的惡意軟件數據分組;以及將所述新的惡意軟件數據分組轉發(fā)給運行所述反惡意軟件軟件的計算設備。
8. 如權利要求7所述的方法,其特征在于,還包括響應于從運行所述反惡意軟件軟件的所述計算設備接收響應數據分組,所 述響應數據分組是由運行所述反惡意軟件軟件的所述計算設備響應于接收所 述新的惡意軟件數據分組產生的,通過將包含在所述響應數據分組的報頭中的 目的地地址改為所述惡意軟件源地址并且將包含在所述響應數據分組的報頭 中的源地址改為所述隨機生成的目的地地址來創(chuàng)建新的響應數據分組。
9. 如權利要求8所述的方法,其特征在于,所述預定源地址包括代理的地址。
10. 如權利要求7所述的方法,其特征在于,所述惡意軟件源地址包括惡 意軟件源網絡地址和惡意軟件源網絡標識符,并且其中所述隨機生成的目的地 地址包括目的地網絡地址和目的地網絡標識符。
11. 如權利要求IO所述的方法,其特征在于,創(chuàng)建所述新的惡意軟件數據分組包括(a) 復制相關的所述惡意軟件數據分組的主體;(b) 將所述惡意軟件源網絡地址和所述惡意源網絡標識符分別改為隨機生成的目的地網絡地址和預定的源網絡標識符;以及(C)將所述目的地地址和所述目的地網絡標識符改為與運行所述反惡意軟 件軟件的計算設備相關的目的地地址和目的地網絡標識符。
12. 如權利要求11所述的方法,其特征在于,所述源和目的地網絡地址是互聯網協(xié)議("IP")地址,而所述源和目的地網絡標識符是媒體訪問控制("MAC")地址。
13. —種用于重定向數據分組的無狀態(tài)代理,所述數據分組包括報頭和主 體,所述報頭包括標識所述數據分組的源的源地址以及標識所述數據分組的目 的地的目的地地址,所述無狀態(tài)代理包括(a) 用于接收和發(fā)送數據分組的第一輸入/輸出接口;(b) 用于接收和發(fā)送數據分組的第二輸入/輸出接口;(c) 用于存儲源和目的地地址的存儲組件;以及(d) 用于如下改變所述數據分組的源和目的地地址的處理組件(i) 響應于所述第一和第二輸入/輸出接口中的一個接收數據分組,通 過將所述接收到的數據分組的報頭上的源和目的地地址改為存儲在所述 存儲組件中的源和目的地地址來創(chuàng)建新的接收到的數據分組;以及(ii) 將所述新的接收到的數據分組定向到所述第一和第二輸入/輸出 接口中的另一個。
14. 如權利要求13所述的無狀態(tài)代理,其特征在于,所述處理組件還(i) 響應于所述第一和第二輸入輸出接口中的所述另一個接收響應數據分 組,通過將所述響應數據分組的報頭上的源和目的地地址改為存儲在所述存儲 組件中的其他源和目的地地址來創(chuàng)建新的響應據分組;以及(ii) 將所述新的響應數據分組定向到所述第一和第二輸入/輸出接口中的 所述一個。
15. 如權利要求13所述的代理,其特征在于所述第一和第二輸入、輸出接口通過第一和第二網絡耦合設備被耦合到第 一和第二網絡;以及所述第一和第二網絡耦合設備是路由器和網絡集線器之一。
16. 如權利要求13所述的代理,其特征在于,所述新的接收到的數據分 組是通過改變所述接收到的數據分組的報頭中的源和目的地地址并復制所述 接收到的數據分組的主體來創(chuàng)建的。
17. 如權利要求13所述的代理,其特征在于,所述處理組件是執(zhí)行存儲 在所述存儲組件中的軟件程序的可編程處理器。
18. 如權利要求13所述的代理,其特征在于,所述數據分組的報頭還包括源網絡標識符和目的地網絡標識符。
19. 如權利要求18所述的代理,其特征在于 所述源和目的地地址是互聯網協(xié)議地址;以及 所述源和目的地網絡標識符是媒體訪問控制地址。
20. 如權利要求13所述的代理,其特征在于,所述處理組件是邏輯電路。
全文摘要
一種用于重定向數據分組的系統(tǒng)和方法,該系統(tǒng)包括用于重定向數據分組的無狀態(tài)雙向代理,所述數據分組包括報頭和主體,所述報頭包括標識該數據分組的源的源地址和標識該數據分組的目的地的目的地地址。該無狀態(tài)雙向代理包括用于接收和發(fā)送數據分組的第一和第二輸入/輸出接口;用于存儲源和目的地地址的存儲組件;以及用于將接收到的數據分組中的源和目的地地址改為所存儲的源和目的地地址的處理組件。
文檔編號H04L12/28GK101278521SQ200680036389
公開日2008年10月1日 申請日期2006年10月2日 優(yōu)先權日2005年10月3日
發(fā)明者J·T·杰弗納 申請人:微軟公司