專利名稱:軟件漏洞利用防護的制作方法
軟件漏洞利用防護
相關(guān)申請的交叉引用:本申請要求2006年3月24日遞交、題為"SOFTWARE VULNERABILITY EXPLOITATION SHIELD (軟件漏洞利用防護)"的美國臨時申請No. 60/785,723的優(yōu)先權(quán)和權(quán)益,該美國臨時申請通過引用被整體包括在本文中。
背景
因特網(wǎng)是向數(shù)以億計的計算機和使用者開放的龐大的計算網(wǎng)絡(luò)。因特網(wǎng)的使用者群體 一直參與到關(guān)于計算機安全漏洞(vulnerability)的探索、創(chuàng)新和對話中。
漏洞是一個軟件中可以被"惡意代碼"利用的弱點。 一些使用者("惡意分子 (malefactor)")設(shè)法使用惡意代碼來利用漏洞。但是惡意代碼的構(gòu)造是不容易的。通常, 只有非常有天賦的編程者能夠編寫在利用(exploit)給定漏洞中有效的惡意代碼,并且通 常編程者不得不經(jīng)過一段冗長乏味的勞動來創(chuàng)建夠格的(competent)惡意代碼。
一般,當(dāng)有天賦的編程者創(chuàng)建惡意代碼的實例(example)時,他或者她在因特網(wǎng)上 公開張貼(post)所述代碼,從而包括惡意分子的其他人可以檢查(inspect)、測試、評 論和使用所述代碼。在因特網(wǎng)使用者群體中,在利用任何具體漏洞中有效的惡意代碼的實 例通常數(shù)量稀少。單個惡意代碼實例普遍被很多不同的惡意分子借鑒并使用,所述惡意分 子將所述惡意代碼實例并入(例如將其"剪切并粘貼")到多種各異的包(package)中,例 如被設(shè)計為進行"偷渡式下載(drive-by download)"的圖像文件或者網(wǎng)站。他們還可以將 其與很多不同的有效載荷(payload)(例如根套件(rootkit)或者按鍵記錄器(keystroke logger))捆綁。
理論上,很多漏洞存在于很多復(fù)雜的軟件產(chǎn)品內(nèi)部,所述軟件產(chǎn)品例如操作系統(tǒng)(例 如微軟公司所公布的Windows )。然而,在研究者發(fā)現(xiàn)給定漏洞之前,該漏洞是未知的。 所以, 一旦發(fā)現(xiàn)特定漏洞,研究者自然傾向于通過談?wù)撈浠蛘邍L試以公開可監(jiān)控的方式利 用其來公開分享該發(fā)現(xiàn)。特定漏洞的發(fā)現(xiàn)很少長時間被保密。新聞散布開去,并且在因特 網(wǎng)公告板上和聊天室中或者從對新的利用的公共監(jiān)控而變得可獲得。
典型地, 一旦受影響軟件產(chǎn)品的公布者知悉漏洞,他們著手設(shè)計、編寫、測試并發(fā)布 (release)軟件"補丁 (patch)"來封堵該已知漏洞。然而,打補丁的過程伴隨著延遲,并 且因此出現(xiàn)"風(fēng)險窗口"。
例如,當(dāng)發(fā)布補丁時,公布者通過因特網(wǎng)下載或者其他分發(fā)方式(distribution)使其 為計算機使用者可獲得,從而他們可以在其計算機上安裝所述補丁。對于運行有漏洞的
5(vulnerable)軟件的計算機的擁有者來說,補丁的準備、分發(fā)和安裝可能是一種令人痛苦 的緩慢而麻煩的過程。例如,時間在軟件公布者致力于補丁的同時流逝。隨后,補丁的安 裝可能需要該擁有者部分的手動操作,可對于擁有成千上萬臺計算機的企業(yè)來說是一種負 擔(dān)。此外,例如企業(yè)的擁有者常常必須在其很多計算機上安裝補丁前測試所述補丁,而補 丁有時候?qū)⑴c其他應(yīng)用的期望功能相沖突。如果公布者在發(fā)布補丁之后發(fā)現(xiàn)補丁有誤而必 須被召回、改寫和重發(fā),還可能流逝額外的時間。
當(dāng)漏洞變得在群體中已知后,在計算機上的軟件被打補丁之前,能夠感染所述特定計 算機的良好構(gòu)造的惡意代碼被開發(fā)并使用。惡意分子設(shè)法通過該風(fēng)險窗口入侵,而一些編 程者則竭力幫助他們。因此, 一旦得知漏洞,有天賦的編程者通常爭分奪秒地創(chuàng)建并公布 惡意代碼,以便使該風(fēng)險窗口中可用的時間最大化。
到如今,很多類型的安全軟件(例如防病毒軟件)已經(jīng)嘗試了通過在二進制文件(即 簽名)中査找獨特地標(biāo)識該實例中編程代碼的結(jié)構(gòu)的字節(jié)序列來阻止特定的惡意代碼實 例。典型地,這樣的對文件或其他代碼的審査(examination)發(fā)生在開放式系統(tǒng)互連(OSI) 模型的應(yīng)用層。更具體地,對病毒的掃描是在文件被儲存在文件系統(tǒng)后或者在文件被保持 在計算系統(tǒng)上的存儲器中時對所述文件進行的。盡管這些系統(tǒng)對于大多數(shù)病毒來說良好起 效,但是通過使用被利用的漏洞,惡意代碼可以在比應(yīng)用層更深的等級上進入被定為目標(biāo) 的計算機(targetedcomputer)。這樣,利用這些軟件漏洞的惡意分子可以在典型的安全軟 件可以檢測到惡意代碼并采取行動之前使所述惡意代碼被執(zhí)行。
發(fā)明內(nèi)容
通過本發(fā)明的示例性實施方案,克服了當(dāng)前安全軟件系統(tǒng)的上述認識到的缺陷和不 足。例如,本文描述的實施方案規(guī)定通過在傳輸層監(jiān)控惡意代碼來為作為惡意分子的潛在 目標(biāo)的計算機縮窄風(fēng)險窗口。注意,提供本發(fā)明內(nèi)容來以簡化方式介紹對概念的選擇,這 在下面的具體實施方式
中會進一步描述。本發(fā)明內(nèi)容并不打算標(biāo)識所要求保護的主題的關(guān) 鍵特征或主要特征,并且它也不打算被用作在確定所要求保護主題的范圍時的幫助。
一個實施方案提供用于通過檢查到計算系統(tǒng)的網(wǎng)絡(luò)流量并且在惡意代碼可以被執(zhí)行 和/或安裝前識別所述惡意代碼來使對安裝在所述計算系統(tǒng)上的軟件的漏洞利用最小化的 機制。使用安裝在所述計算系統(tǒng)上的安全組件在傳輸層(例如傳輸通信協(xié)議(TCP)套接 層)監(jiān)控網(wǎng)絡(luò)流量。當(dāng)接收到以所述計算系統(tǒng)為目的的消息時,將被包括在所述消息中的 數(shù)據(jù)與用于識別惡意代碼的利用證據(jù)進行比較。所述利用證據(jù)通過收集關(guān)于所述惡意代碼 的信息的安全服務(wù)提供給所述安全組件。這樣的利用證據(jù)可以包括這些事情以及代碼的簽 名、與該代碼相關(guān)聯(lián)的因特網(wǎng)協(xié)議(IP)地址、己知提供惡意代碼的網(wǎng)站的獨特資源定位 符(URL),以及其他因素。
基于所述消息中的數(shù)據(jù)與所述利用證據(jù)的所述比較,識別規(guī)則,所述規(guī)則指示所述安
6全組件對所接收的消息采取適當(dāng)行動。例如,如果該比較指示該消息包括或者潛在地包括 惡意代碼,則安全組件可以阻擋該所接收的消息進入計算系統(tǒng),同時允許其他流量留到所 述計算系統(tǒng)??商鎿Q或者可附加的,安全組件可以告知使用者(例如,通過使用者界面) 關(guān)于該消息由于包括惡意代碼而具有的潛在風(fēng)險,因此允許使用者采取適當(dāng)?shù)男袆?。在?一實施方案中,安全組件可以禁用惡意代碼的任何有害特征。另一方面,如果在消息的傳 輸層與利用證據(jù)的比較未指示該消息包括或者以其他方式與惡意代碼相關(guān)聯(lián),則可以允許 該消息傳到該計算系統(tǒng)。
本發(fā)明的額外的特征和優(yōu)點將在下面的描述中給出,或者部分從該描述中將明顯,或 者可以通過實施本發(fā)明而獲悉。通過在所附權(quán)利要求書中特別指出的手段或者組合可以認 識到并且獲得本發(fā)明的特征和優(yōu)點。本發(fā)明的這些和其他特征將從以下描述和所附權(quán)利要 求書變得更清楚,或者可以通過如之后闡述的那樣實施本發(fā)明而獲悉。
為了描述本發(fā)明的上述及其他有益特征可以被獲得的方式,將參照本發(fā)明的具體實施 方案給出對上面簡要描述的本發(fā)明的更具體的描述,所述實施方案在附圖中被示出。理解 到這些附圖僅僅描繪本發(fā)明的典型實施方案并且因此不被視為是對其范圍的限制,將通過 使用所附附圖來以額外的特性和細節(jié)描述和解釋本發(fā)明,在附圖中
圖1根據(jù)示例性實施方案圖示具有用于使軟件漏洞利用最小化的安全服務(wù)和安全組 件(component)的計算網(wǎng)絡(luò);以及
圖2根據(jù)示例性實施方案圖示用于實現(xiàn)這樣的方法的流程圖,所述方法為作為惡意分 子的潛在目標(biāo)的計算機減小風(fēng)險窗口。
具體實施例方式
本發(fā)明的范圍涉及到用于通過在傳輸層監(jiān)控惡意代碼來為作為惡意分子的潛在目標(biāo) 的計算機縮窄(narrowing)風(fēng)險窗口的方法、系統(tǒng)和計算機程序產(chǎn)品。如下面更詳細地討 論的,本發(fā)明的實施方案可以包括專用或通用計算機,所述專用或通用計算機包括各種計 算機硬件或模塊。
如之前提及的,本發(fā)明的實施方案通過為作為惡意分子的潛在目標(biāo)的計算機縮窄風(fēng)險 窗口來克服安全軟件系統(tǒng)的上述認識到的缺陷和不足。在該實施方案下,目標(biāo)計算機 (target computer)的擁有者安裝持續(xù)性(ongoing)安全服務(wù)的安全組件,所述持續(xù)性安 全服務(wù)在因特網(wǎng)上或者以其他方式監(jiān)控關(guān)于新的漏洞發(fā)現(xiàn)和新的惡意代碼實例的新聞、討 論、技術(shù)發(fā)展和其他信息。當(dāng)該安全服務(wù)找到惡意代碼的實例時,它收集關(guān)于該惡意代碼 的信息,以便適當(dāng)?shù)刈R別所述惡意代碼。例如,該安全服務(wù)可以檢查其數(shù)據(jù)結(jié)構(gòu),設(shè)法針 對其確認一簽名。此外,該安全服務(wù)可以通過識別惡意代碼的IP地址、URL或其他電子 地址來確定其來源。事實上,存在安全服務(wù)可以用來識別惡意代碼的許多信息。一旦收集到關(guān)于惡意代碼的信息,該信息被用于創(chuàng)建包括利用證據(jù)(exploitevidence) 和安全命令的安全升級,所述安全升級隨后被分發(fā)到安全組件的安裝。每個安全組件使用 該利用證據(jù)和安全命令來在傳輸層(例如TCP套接(socket)級)檢查流向計算機的因特 網(wǎng)或網(wǎng)絡(luò)數(shù)據(jù)流量(traffic),查找匹配該利用證據(jù)的消息(message)。通過在傳輸層檢 查數(shù)據(jù),安全組件可以在計算機上的任何應(yīng)用或其他軟件可以執(zhí)行或安裝惡意代碼之前認 出(spot)所述惡意代碼。此外,安全組件可以監(jiān)控和識別被設(shè)計為利用安裝在計算系統(tǒng) 上大多數(shù)任何應(yīng)用的軟件漏洞的惡意代碼。
如果安全組件找到匹配該利用證據(jù)的數(shù)據(jù)傳輸,它可以執(zhí)行多種保護措施中的任何措 施。例如,它可以阻擋該特定傳輸進入計算機,同時允許其他傳輸通過,和/或它可以向 計算機使用者通知該數(shù)據(jù)傳輸,從而使用者可以采取適當(dāng)?shù)男袆?。它還可以修改該傳輸, 從而禁用(disable)任何有害的特征。
在安全組件被安裝之后,隨著時間流逝,它可能變得笨拙(unwieldy)。它可能一直 査找如此多的簽名、電子地址或其他利用證據(jù),從而它使得其安裝所在的計算機的性能下 降,并且它可能潛在地與期望的功能和傳輸相沖突。因此,為了使該問題最小化,本文下 面描述的其他示例性實施方案提供各種選項來限制該監(jiān)控操作。
注意,上面的實施方案與典型的防火墻系統(tǒng)和網(wǎng)站內(nèi)容過濾器顯著不同。例如,防火 墻僅僅進行分組(packet)檢查來查看協(xié)議、源和目的,以作出允許或不允許這些流量的 二元決策。類似地,網(wǎng)站內(nèi)容過濾器通常關(guān)注于IP地址或URL的白/黑名單以允許或不允 許分組,這也在本文的實施方案的預(yù)期中。然而,本文的實施方案檢查消息內(nèi)容,基于從 不斷地監(jiān)控這些惡意代碼的安全服務(wù)生成的安全證據(jù)、命令和規(guī)則查找以軟件中的漏洞為 目標(biāo)的惡意代碼。換言之,本文的實施方案不是簡單地查看分組的源并基于此作出二元決 策,而是提供更魯棒的系統(tǒng),該系統(tǒng)不斷地監(jiān)控惡意代碼的形成,并且隨后可以以如下面 更詳細地描述的各種方式創(chuàng)建可以動態(tài)改變和被實現(xiàn)為適當(dāng)處理這些內(nèi)容的證據(jù)、命令和 規(guī)則。
盡管在下面關(guān)于附圖更詳細地描述了對有益特征的更具體的參考,但是落入本發(fā)明范 圍內(nèi)的實施方案還包括用于承載或者在其上儲存有計算機可執(zhí)行指令或數(shù)據(jù)結(jié)構(gòu)的計算 機可讀介質(zhì)。這樣的計算機可讀介質(zhì)可以是任何可以被通用或?qū)S糜嬎銠C訪問的可用介 質(zhì)。以實施例而非限制性的方式,這樣的計算機可讀介質(zhì)可以包括RAM、ROM、EEPROM、 CD-ROM或其他光盤儲存裝置、磁盤儲存裝置或者其他磁儲存設(shè)備,或者任何其他可以被 用于以計算機可讀指令或數(shù)據(jù)結(jié)構(gòu)的形式承載或儲存期望的程序代碼裝置并且可以被通
用或?qū)S糜嬎銠C訪問的介質(zhì)。當(dāng)信息在網(wǎng)絡(luò)或者另一通信連接(硬連線的、無線的,或者 硬連線或無線的組合)上被轉(zhuǎn)移或者提供到計算機時,恰當(dāng)來說,計算機將該連接視為計 算機可讀介質(zhì)。因此,恰當(dāng)來說,任何這樣的連接被稱為計算機可讀介質(zhì)。上述內(nèi)容的組 合也應(yīng)該被包括在計算機可讀介質(zhì)的范圍內(nèi)。
8計算機可執(zhí)行指令例如包括導(dǎo)致通用計算機、專用計算機或者專用處理設(shè)備進行某項 或者某組功能的指令和數(shù)據(jù)。盡管已經(jīng)以對于結(jié)構(gòu)特征和/或方法動作來說具體的語言描 述了本主題,但是應(yīng)該理解,所附權(quán)利要求書中所限定的主題并不是必須限于上面描述的 具體特征或者動作。相反,本文所描述的具體特征和動作被公開作為實現(xiàn)權(quán)利要求書的示 例性形式。
使用在這里,術(shù)語"模塊"或"組件"可以指在計算系統(tǒng)上執(zhí)行的軟件對象(object)或者 例程(routine)。本文所描述的不同的組件、模塊、引擎和服務(wù)可以被實現(xiàn)為在計算系統(tǒng) 上執(zhí)行的對象或者過程(例如實現(xiàn)為單獨的線程(thread))。盡管本文描述的系統(tǒng)和方 法優(yōu)選地是實現(xiàn)在軟件中,但是實現(xiàn)在硬件或者軟件和硬件的組合中也是可能并且被預(yù)期 的。在該說明書中,"計算實體(entity)"可以是任何之前在本文中定義的計算系統(tǒng),或者 任何在計算系統(tǒng)上運行的模塊或者模塊組合。
圖1圖示計算網(wǎng)絡(luò)100,所述網(wǎng)絡(luò)100被配置為通過為作為惡意分子的潛在目標(biāo)的計
算機縮窄風(fēng)險窗口來克服當(dāng)前安全軟件系統(tǒng)的上述認識到的缺陷和不足。如所示出的,目 標(biāo)計算系統(tǒng)已經(jīng)在其上安裝了與持續(xù)性安全服務(wù)110相關(guān)聯(lián)的特殊安全組件105。安全服 務(wù)110在因特網(wǎng)上或者以其他方式不斷地和/或周期性地監(jiān)控諸如關(guān)于新的漏洞發(fā)現(xiàn)和新 的惡意代碼實例的新聞115、討論150、技術(shù)發(fā)展或報告120以及其他信息的這些事情。 當(dāng)然,用于收集關(guān)于潛在惡意代碼的信息的來源可以大大不同,并且可以任何如豎直省略 號124所指示的那樣包括任何周知的形式。
此外,該監(jiān)控可以采取各種形式,包括手動搜索和/或閱讀因特網(wǎng)或其他討論150,或 者例如通過從已知或者潛在的惡意分子圈或者所記錄的惡意分子行為、工具、試驗等的例 子聚集(glean)相關(guān)陳述和代碼的探測器(probe)、蜜罐(honeypot)、搜索自動程序(bot) 等進行的情報自動搜集。當(dāng)然,除非明確聲明,否則類似于信息的來源,用于收集關(guān)于惡 意代碼的信息155的機制(mechanism)在本文中僅被用于圖示說明性的目的,并且并非 意圖限制或者以其他方式縮窄本文的實施方案。
當(dāng)安全服務(wù)110找到關(guān)于惡意代碼的信息,它可以將這些數(shù)據(jù)儲存為惡意代碼數(shù)據(jù) 155。如將被理解的,當(dāng)從各種來源或者機制收集所述惡意代碼數(shù)據(jù)155時,所述惡意代 碼數(shù)據(jù)155可以呈現(xiàn)很多形式。例如,惡意代碼數(shù)據(jù)155可以包括關(guān)于惡意代碼的數(shù)據(jù)結(jié) 構(gòu)165的信息。更具體地,安全服務(wù)110可以檢查惡意代碼的數(shù)據(jù)結(jié)構(gòu),設(shè)法確認諸如惡 意代碼的簽名或者其他代表(representation)。每個惡意代碼實例可以具有獨特的數(shù)據(jù)結(jié) 構(gòu)165或者其內(nèi)的數(shù)據(jù)序列。該獨特的數(shù)據(jù)隨后可以(如下面描述的那樣)被用來識別惡 意代碼的實例。
注意,識別惡意代碼的所述簽名或代表可以采取任何周知的形式。例如,簽名可以是 全部代碼,或者僅僅是代碼的部分(例如字節(jié)序列或者二進制串)。此外,簽名可以是代
9碼或其任何部分的哈希。事實上,惡意分子通常試圖通過將代碼的部分加密、創(chuàng)建代碼的 很多變體或者使用任何數(shù)量的其他誤導(dǎo)性機制來欺騙安全系統(tǒng)。因此,使用在這里,術(shù)語 "簽名"應(yīng)該被寬泛地解讀為意指任何被用于代表惡意代碼的獨特數(shù)據(jù)結(jié)構(gòu)或標(biāo)識 (identifier) o
在另一個實施方案中,安全服務(wù)110還監(jiān)控與利用已知漏洞的嘗試相關(guān)聯(lián)的IP/URL 地址175。當(dāng)它的確識別到這樣的IP/URL地址時,這些也可以被添加為惡意代碼數(shù)據(jù)155, 如下面將描述的,所述惡意代碼數(shù)據(jù)155可以被傳送到安全組件195,用于阻擋從這些來 源接收的數(shù)據(jù)(例如通過列黑名單)。當(dāng)然,存在可以如下面將更詳細地描述的那樣收集 的其他170惡意代碼數(shù)據(jù)155。
惡意代碼數(shù)據(jù)155被用于創(chuàng)建安全升級130,安全服務(wù)110將所述安全升級130分發(fā) 到安全組件195的安裝以用于查找惡意代碼。如所示出的,安全升級130可以包括數(shù)種信 息和代碼。例如,安全升級可以包括利用證據(jù)135,所述利用證據(jù)可以入下面更詳細地描 述的那樣與消息或者消息的部分進行比較。該利用證據(jù)135可以包括諸如數(shù)據(jù)結(jié)構(gòu)165的 簽名、IP/URL或者其他電子地址175,以及其他從安全服務(wù)110收集的信息170的這些內(nèi) 容。安全升級130還可以包括諸如安全命令145和規(guī)則140的這些內(nèi)容,如下面更詳細地 描述的,所述安全命令145和規(guī)則140被安全組件195用于確定關(guān)于如何使用利用證據(jù)135 以及一旦識別出惡意代碼采取何種行動的這些事情。
安全組件195從安全服務(wù)110接收安全升級130,并且相應(yīng)地修改它的庫(library) 104。安全組件195隨后檢査流向計算機105的因特網(wǎng)或網(wǎng)絡(luò)數(shù)據(jù)流量125。實施方案提供 了在傳輸層l卯對這樣的流量的檢查,所述傳輸層在OSI模型中處于網(wǎng)絡(luò)層185和包括文 件系統(tǒng)層118的應(yīng)用層122之間。盡管在OSI模型中存在很多其他層,并且存在很多可以 被用于表現(xiàn)通信信道的其他抽象模型,但是在此所示出的模型僅僅是出于簡化的原因。但 是,存在可以與本文描述的實施方案一起使用的其他層和其他模型。
傳輸層1卯的實例包括TCP套接級,在目標(biāo)計算機105上,所述TCP套接級是運行 在TCP網(wǎng)絡(luò)上的兩個程序之間的雙向通信鏈路的端點。通過在傳輸層190檢査數(shù)據(jù),安 全組件195可以在計算機上的任何應(yīng)用或其他軟件可以在存儲器或者文件系統(tǒng)層118執(zhí)行 或安裝惡意代碼之前認出所述惡意代碼。此外,由于即使不是全部,大部分針對應(yīng)用的網(wǎng) 絡(luò)流量也是流動通過傳輸層190,所以安全組件195可以監(jiān)控和識別被設(shè)計為利用安裝在 計算系統(tǒng)上大多數(shù)任何應(yīng)用的軟件漏洞的惡意代碼。
例如,當(dāng)在傳輸層l卯接收到消息180時,安全組件195使用其安全比較器模塊102, 可選地以及安全命令112,來將消息180的部分與利用證據(jù)106進行比較。如果比較器模 塊102找到匹配該利用證據(jù)106或者違反安全命令112中所定義的策略的數(shù)據(jù)傳輸,安全 組件195執(zhí)行如規(guī)則108可以定義的多種保護措施中的任何措施。例如,如果安全比較器 模塊將消息180識別為包括如利用證據(jù)106所定義的簽名、電子地址或者惡意代碼的其他
10代表,則安全組件195可以采取規(guī)則108所定義的適當(dāng)?shù)男袆印?br>
在一個實施方案中,規(guī)則108可以指示安全組件195阻擋特定傳輸或者消息180進入 目標(biāo)計算機105,同時允許其他良性傳輸通過??商鎿Q的實施方案定義這樣的規(guī)則108, 所述規(guī)則108允許安全組件195向使用者通知關(guān)于所述數(shù)據(jù)傳輸,從而使用者可以采取適 當(dāng)?shù)男袆?。這樣的通知可以為向使用者提供關(guān)于消息的信息(例如來源、違規(guī)、潛在風(fēng)險, 等等)和采取行動的選項(例如刪除、允許、隔離(quarantine)、制止(hold)等)的使 用者界面的形式。在再另一個實施方案中,規(guī)則108可以指示安全組件195修改傳輸或消 息180,從而任何有害的特征被禁用或者以其他方式消除。例如,安全組件195可以自動 移除消息中包含惡意代碼的部分或者禁用代碼本身內(nèi)有害的特征。
當(dāng)然,存在任何數(shù)量的可以如規(guī)則108所定義的那樣以任何組合而采取的行動。例如, 規(guī)則108可以在通知使用者關(guān)于傳輸108之前首先移除或者禁用消息180的有害特征。此 外,規(guī)則108可以被目標(biāo)系統(tǒng)105的使用者設(shè)置或修改、被安全服務(wù)110設(shè)置或修改、默 認編程在安全組件195上,或者使用任何周知的方式設(shè)置或修改。因此,在這里,除非明 確聲明,否則對一動作的任何具體使用或者該動作如何被設(shè)置或者應(yīng)用僅僅是用于圖示說 明的目的,并且并非意圖限制或以其他方式縮窄本文描述的實施方案的范圍。
如上面提及的,在安全組件195被安裝之后,隨著時間流逝,它可能變得笨拙。它可 能一直査找如此多的簽名、電子地址或其他利用證據(jù)106,以致它使得其安裝所在的計算 機105的性能下降,并且它可能潛在地與期望的功能和傳輸相沖突。因此,為了使該問題 最小化,本文描述的示例性實施方案提供各種選項。
一種示例性選項規(guī)定僅注意特別令人憂心的惡意代碼的利用證據(jù)106。安全服務(wù)110 評估所發(fā)現(xiàn)的惡意代碼實例,以確定所述惡意代碼有多大可能性對被定為目標(biāo)的計算機造 成嚴重威脅。該評估可以包括查看相關(guān)漏洞的性質(zhì)和范圍、用來編寫該實例代碼的工作技 巧的質(zhì)量等等。服務(wù)110隨后作出威脅評級(rating) 160并且在安全升級130和/或任何 必要的命令145內(nèi)分發(fā)所述威脅評級160,用于査找安全服務(wù)110判斷為最有害的那些代 碼實例的利用證據(jù)106。例如,可以使用閾值威脅評級160來確定是否在安全升級130中 將或不將包括利用證據(jù)135。當(dāng)然,可以存在任何數(shù)量的基于這樣的威脅評級160判斷什 么利用證據(jù)135、安全命令112或者規(guī)則140應(yīng)該被包括在安全升級130中或者從安全升 級130中排除的方式。
另一實施方案規(guī)定在相關(guān)風(fēng)險窗口已經(jīng)關(guān)閉后或者如果威脅評級160落在某個設(shè)定 闞值之下時對安全組件195上的利用證據(jù)106、安全命令112和/或規(guī)則108進行取消、刪 除、暫時中止或者進行類似的行動。例如,風(fēng)險窗口可能作為廣泛分發(fā)夠格且可信的補丁 的結(jié)果而關(guān)閉。或者,它可能因為經(jīng)驗表明相關(guān)的惡意代碼實例是無害的而關(guān)閉。相應(yīng)地, 在安全服務(wù)110向安全組件195的安裝公布安全升級130之后,它繼續(xù)監(jiān)控相關(guān)漏洞和惡 意代碼在因特網(wǎng)群體內(nèi)的存在。當(dāng)服務(wù)IIO作出相關(guān)風(fēng)險窗口微小或者不存在的判斷時,服務(wù)110發(fā)出(issue)可以用于將這樣的命令145發(fā)送到安全組件195安裝的風(fēng)險評級160, 即它們應(yīng)當(dāng)不再監(jiān)控利用證據(jù)106。當(dāng)然,對于一些簽名、電子地址或者其他惡意代碼數(shù) 據(jù)155,風(fēng)險窗口可能永遠不關(guān)閉,在這種情況下安全服務(wù)110可以選擇永不取消對利用 證據(jù)106的監(jiān)控。
當(dāng)然,可以存在很多其他用于提升安全組件195的性能的機制。例如,安全服務(wù)U0 可以將安全命令145和規(guī)則140發(fā)送到安全組件195,所述安全命令145和規(guī)則140指示 所述安全組件195基于事件的發(fā)生而對利用證據(jù)106和/或任何與其相關(guān)聯(lián)的安全命令112 或規(guī)則108進行刪除、取消、制止或者進行一些其他行動。這樣,安全組件195針對這樣 的事件的發(fā)生監(jiān)控所述系統(tǒng),并且隨后如命令145和/或規(guī)則140所定義的那樣采取適當(dāng) 的行動。這樣的事件可以基于過期或者諸如安全組件195確定利用證據(jù)106或其相關(guān)聯(lián)的 惡意代碼的威脅評級160為低這樣的事情。事實上,可以存在任何數(shù)量的可以被用于采取 行動來提升安全組件195的性能的事件。此外,可以存在任何數(shù)量的可以在事件一旦發(fā)生 時進行的行動,例如刪除、取消、中止、制止等等。因此,除非明確聲明,否則任何具體 事件和/或如本文所描述的那樣采取的行動是被用于圖示說明的目的,并且并非意圖限制 或者以其他方式縮窄本文的實施方案。
下面描述根據(jù)示例性實施方案可以使用的各種實現(xiàn)的一些具體實施例。這些實現(xiàn)僅僅 是可以如何應(yīng)用所述解決方案的實施例。除非明確聲明,它們并非是唯一可能的實施例或 實現(xiàn),并且因此并非意圖限制或者以其他方式縮窄本文的實施方案。
安全組件195安裝在使用者的運行微軟Windows XP⑧操作系統(tǒng)的個人計算機105上。 安全服務(wù)110被允許以安全的方式將更新130發(fā)送到安全組件195。當(dāng)研究者在因特網(wǎng)上 宣布在微軟Windows XP⑧中發(fā)現(xiàn)之前未知的漏洞時,安全服務(wù)110閱讀因特網(wǎng)上編程者/ 黑客(hacker)之間關(guān)于此的討論。服務(wù)110觀察到一個編程者張貼用于利用該漏洞的代 碼。因此,安全服務(wù)110測試該代碼并且確定其似乎對運行Windows的計算機是一威脅。
從該代碼,安全服務(wù)110確認簽名,即標(biāo)識該代碼的獨特的數(shù)據(jù)結(jié)構(gòu)。安全服務(wù)110 將利用證據(jù)135、規(guī)則140和命令145發(fā)送到安裝在該使用者的計算機上的安全組件195, 以監(jiān)控該簽名。安全組件195在發(fā)送到該使用者的計算機的因特網(wǎng)數(shù)據(jù)流量中搜索該簽 名。在傳輸層190 (例如TCP套接級)對數(shù)據(jù)流量的搜索,組件195查找該簽名而不管該 簽名可能所在的數(shù)據(jù)分組或者其可以承載的有效載荷。安全組件195在流入的電子郵件數(shù) 據(jù)流量180中找到與根套件有效載荷組合的該簽名。安全組件195阻擋包括該簽名的數(shù)據(jù) 單元。在使用者的計算機上的任何軟件能夠執(zhí)行或者安裝該根套件之前,該數(shù)據(jù)被阻擋。
以另一個實施例的方式,使用者在其運行針對微軟Windows⑧的MozillaFirefox⑧因特 網(wǎng)瀏覽器版本1.5.0.1 ("瀏覽器")的個人計算機上安裝安全組件195。安全服務(wù)110被允 許以安全的方式將更新130發(fā)送到安全組件195。服務(wù)110在因特網(wǎng)上設(shè)下(plant)并維 持各種自動的蜜罐、探測器和其他計算機,以搜集惡意代碼實例并獲知關(guān)于這些代碼的來源和其他信息。與所述瀏覽器一起安裝的所述探測器中的一些自動訪問很多網(wǎng)站,搜索惡 意代碼。
當(dāng)研究者在因特網(wǎng)上宣布在瀏覽器中發(fā)現(xiàn)某漏洞后的短時間內(nèi),特定IP地址("流氓 地址")的服務(wù)器向數(shù)個安全服務(wù)的探測器發(fā)送與利用漏洞的惡意代碼捆綁的特洛伊木馬 (Trojan)。響應(yīng)于此,安全服務(wù)110將可以包括利用證據(jù)135和命令145的安全升級130 發(fā)送到安裝在使用者的計算機105上的安全組件195,以將該流氓地址作為正傳輸?shù)皆撌?用者計算機105的數(shù)據(jù)的來源而監(jiān)控。安全組件195在TCP套接級190搜索發(fā)送到目標(biāo) 計算機105的因特網(wǎng)數(shù)據(jù)流量180中的流氓地址。瀏覽器的公布者發(fā)出補丁以關(guān)閉相關(guān)漏 洞。安全服務(wù)110確定該流氓地址不再是對運行該瀏覽器的計算機的威脅,并且將安全更 新130傳輸?shù)桨踩M件195,以停止搜索流氓地址。
還可以關(guān)于包括功能步驟和/或非功能動作的方法描述本發(fā)明。下面是對在實施本發(fā) 明時可以進行的步驟和/或動作的描述。通常,功能步驟關(guān)于所達到的結(jié)果描述本發(fā)明, 而非功能動作描述用于實現(xiàn)特定結(jié)果的更具體的行動。盡管可以以特定順序描述或者要求 保護功能步驟和/或非功能動作,但是本發(fā)明并非必須限于步驟和/或動作的任何特定順序 或組合。此外,在對權(quán)利要求的引述中——以及在下面對圖2的流程圖的描述中——使用 步驟和/或動作是用于指示這些術(shù)語的期望的具體使用。
如之前提及的,圖2圖示本發(fā)明的各種示例性實施方案的流程圖。對圖2的以下描述 將偶爾參照圖1的相應(yīng)部件。除非明確說明,否則盡管可以參照該附圖中的具體部件,但 是這樣的參照僅僅是出于圖示說明的目的,并且并非意圖限制或者以其他方式縮窄本文的 實施方案。
圖2圖示用于為作為惡意分子的潛在目標(biāo)的計算機縮窄風(fēng)險窗口的方法230的流程 圖。在安全服務(wù)200上,方法230包括收集205關(guān)于實例惡意代碼的信息的動作。例如, 安全服務(wù)110可以監(jiān)控和收集來自因特網(wǎng)或者其他區(qū)域的關(guān)于新的(或者舊的)漏洞發(fā)現(xiàn) 和/或新的(或者舊的)惡意代碼實例的新聞115、討論150、技術(shù)發(fā)展120、網(wǎng)絡(luò)流量125 或者其他信息。如之前提及的,對信息的該收集可以采取很多形式,包括手動搜索和閱讀 因特網(wǎng)討論或者例如通過從已知或者潛在的惡意分子圈或者所記錄的惡意分子行為、工 具、試驗等的例子聚集相關(guān)陳述和代碼的探測器、蜜罐、搜索自動程序等進行的情報自動 搜集。
基于所收集的信息,方法230還包括生成210安全升級的動作。例如,安全服務(wù)UO 可以使用惡意代碼數(shù)據(jù)155生成安全升級130。這樣的安全升級130包括用于識別諸如關(guān) 于惡意代碼的簽名、電子地址或者其他信息并且對其采取適當(dāng)行動的利用證據(jù)135、規(guī)則 140和/或安全命令145。
方法230還包括將安全升級發(fā)送215到安全用戶(subscriber)的動作。在安全組件側(cè)
13250,方法230還包括接收220該安全升級的動作?;谠摪踩?,方法230包括修改 225安全組件250的動作。例如,安全服務(wù)110將安全升級130發(fā)送到目標(biāo)計算系統(tǒng)105, 該目標(biāo)計算系統(tǒng)105以適當(dāng)?shù)睦米C據(jù)106、規(guī)則108和安全命令112升級安全組件195 的庫104。
方法230還包括在傳輸層監(jiān)控235網(wǎng)絡(luò)流量的動作。例如,在接收安全升級130之前、 之后或者期間,安全組件195可以在傳輸層190 (例如TCP套接級)監(jiān)控網(wǎng)絡(luò)流量125, 在目標(biāo)計算機105上,傳輸層190是運行在網(wǎng)絡(luò)上的兩個程序之間的雙向通信鏈路的端點。 通過在傳輸層190檢查數(shù)據(jù),安全組件195可以在計算機上的任何應(yīng)用或其他軟件可以在 存儲器或者文件系統(tǒng)層118執(zhí)行或安裝惡意代碼之前認出所述惡意代碼。此外,由于即使 不是全部,大部分針對應(yīng)用的網(wǎng)絡(luò)流量也是流動通過傳輸層190,所以安全組件195可以 監(jiān)控和識別被設(shè)計為利用安裝在目標(biāo)計算系統(tǒng)105上大多數(shù)任何應(yīng)用的軟件漏洞的惡意 代碼。
方法230還包括用于基于來自安全更新的利用證據(jù)識別240具有惡意代碼的一個或多 個消息的步驟。例如,安全組件195可以進行在傳輸層190接收消息180的動作,并且使 用安全比較模塊102進行將消息180內(nèi)的數(shù)據(jù)與利用證據(jù)106進行比較的動作?;谠摫?較,方法230隨后包括用于基于一組規(guī)則采取行動245的步驟。例如,如果安全組件195 進行識別到一消息180對應(yīng)于一惡意代碼的動作,則規(guī)則108可以指示它阻擋該特定傳輸 或消息180進入目標(biāo)計算機105。盡管規(guī)則180阻擋這樣的消息180,它可以允許其他良 性傳輸通過??商鎿Q的實施方案提供這樣的規(guī)則108,所述規(guī)則108允許安全組件195向 計算機105使用者通知關(guān)于所述數(shù)據(jù)傳輸,從而使用者可以采取適當(dāng)?shù)男袆印T谠倭硪粋€ 實施方案中,規(guī)則108可以指示安全組件195修改傳輸或消息180,從而任何有害的特征 被禁用或者以其他方式消除。
為了提升安全組件195的性能,需要其他實施方案。因此, 一種實施方案用于僅注意 在威脅評級106之上的惡意代碼的利用證據(jù)106,所述威脅評級160是對一特定惡意代碼 可能多有害的確定。另一實施方案規(guī)定在相關(guān)風(fēng)險窗口已經(jīng)關(guān)閉后或者如果威脅評級160 落在某個設(shè)定閾值之下時對安全組件195上的利用證據(jù)106、安全命令112和/或規(guī)則108 進行取消、刪除、暫時中止或者進行類似的行動。
在再另一個實施方案中,安全組件195可以接收這樣的命令145和/或規(guī)則140,所述 命令145和/或規(guī)則140指示所述安全組件195基于事件的發(fā)生而對利用證據(jù)106和/或任 何與其相關(guān)聯(lián)的安全命令112或規(guī)則108進行刪除、取消或者采取一些其他行動。這樣, 一旦期望的事件發(fā)生,安全組件195可以對利用證據(jù)106、安全命令112以及與其相關(guān)聯(lián) 的規(guī)則108采取適當(dāng)?shù)男袆?,例如刪除它們、取消它們、暫時中止它們等。
本發(fā)明可以以其他具體形式實施而不偏離本發(fā)明的精神或主要特性。所描述的實施方 案在所有方面均打算被視為是圖示說明性的而非限定性的。因此,本發(fā)明的范圍是由所附
14權(quán)利要求書而不是前述描述所指示的。落入權(quán)利要求書的等同物的含義和范圍內(nèi)的所有改 變均要被包括在它們的范圍中。
權(quán)利要求
1.一種方法,所述方法在網(wǎng)絡(luò)計算環(huán)境中的計算系統(tǒng)處通過檢查到所述計算系統(tǒng)的網(wǎng)絡(luò)流量并且在惡意代碼可以被執(zhí)行和/或安裝前識別所述惡意代碼來使對安裝在所述計算系統(tǒng)上的軟件的漏洞利用最小化,所述方法包括使用安裝在所述計算系統(tǒng)上的安全組件在傳輸層監(jiān)控計算系統(tǒng)的流入網(wǎng)絡(luò)流量;在所述傳輸層接收作為所述網(wǎng)絡(luò)流量的部分的消息,所述消息被識別為以所述計算系統(tǒng)為目的;將被包括在所述接收的消息中的數(shù)據(jù)的至少一部分與用于識別惡意代碼的利用證據(jù)進行比較,所述利用證據(jù)通過收集關(guān)于所述惡意代碼的信息的安全服務(wù)提供給所述安全組件;基于與所述利用證據(jù)的所述比較,識別一條或更多條規(guī)則,所述規(guī)則指示所述安全組件對所述接收的消息進行一項或更多項行動。
2. 如權(quán)利要求l的方法,其中所述傳輸層是一個或更多個TCP套接級。
3. 如權(quán)利要求1的方法,其中所述比較將數(shù)據(jù)的所述至少一部分識別為對應(yīng)于惡意 代碼,并且所述一條或更多條規(guī)則指示所述安全組件進行以下中的一項或更多項阻擋所述接收的消息進入所述計算系統(tǒng);向所述計算系統(tǒng)的使用者通知所述消息與所述惡意代碼的所述對應(yīng),以便允許所述使 用者采取適當(dāng)行動;或者修改所述消息,以便禁用所述惡意代碼的任何有害特征。
4. 如權(quán)利要求3的方法,其中,在阻擋所述接收的消息的同時,所述一條或更多條 規(guī)則允許其他良性消息傳到所述計算系統(tǒng)。
5. 如權(quán)利要求3的方法,其中所述一條或更多條規(guī)則用使用者界面向所述計算系統(tǒng) 的所述使用者通知所述消息的所述對應(yīng),并且允許所述使用者接受或者拒絕所述消息。
6. 如權(quán)利要求3的方法,其中所述利用證據(jù)包括與惡意代碼相關(guān)聯(lián)的已知電子地址 列表。
7. 如權(quán)利要求6的方法,其中所述電子地址列表包括網(wǎng)站的IP地址或URL,并且其 中所述消息的來源的IP地址或URL與所述與惡意代碼相關(guān)聯(lián)的已知電子地址列表進行比 較。
8. 如權(quán)利要求l的方法,其中所述利用證據(jù)包括所述惡意代碼的一個或更多個簽名, 所述簽名為代表所述惡意代碼的獨特的數(shù)據(jù)結(jié)構(gòu)。
9. 如權(quán)利要求1的方法,還包括從所述安全服務(wù)接收命令,所述命令指示被用于識別惡意代碼的利用證據(jù)應(yīng)該基于一 種或更多種事件而過期;以及一旦所述一種或更多種事件發(fā)生,如一條或更多條規(guī)則所定義的那樣對所述利用證據(jù) 采取行動。
10. 如權(quán)利要求9的方法,其中所述事件是確定己經(jīng)經(jīng)過了風(fēng)險窗口或者所述惡意代 碼低于某威脅評級閾值中的一種或更多種,并且其中對所述利用證據(jù)的所述行動包括取消 對所述利用證據(jù)的所述比較、從所述安全組件刪除所述利用證據(jù),或者暫時中止對所述利 用證據(jù)的所述比較中的一種或更多種。
11. 一種在網(wǎng)絡(luò)計算環(huán)境中的計算系統(tǒng)處的包括計算機可讀儲存介質(zhì)的計算機程序產(chǎn) 品,所述計算機可讀儲存介質(zhì)具有編碼在其上的計算機可讀指令,當(dāng)所述指令在計算環(huán)境 中被執(zhí)行時進行一種方法,所述方法包括使用安裝在所述計算系統(tǒng)上的安全組件在傳輸層監(jiān)控計算系統(tǒng)的流入網(wǎng)絡(luò)流量; 在所述傳輸層接收作為所述網(wǎng)絡(luò)流量的部分的消息,所述消息被識別為以所述計算系 統(tǒng)為目的;將被包括在所述接收的消息中的數(shù)據(jù)的至少一部分與用于識別惡意代碼的利用證據(jù) 進行比較,所述利用證據(jù)通過收集關(guān)于所述惡意代碼的信息的安全服務(wù)提供給所述安全組 件;基于與所述利用證據(jù)的所述比較,識別一條或更多條規(guī)則,所述規(guī)則指示所述安全組 件對所述接收的消息進行一項或更多項行動。
12. 如權(quán)利要求11的計算機程序產(chǎn)品,其中所述傳輸層是一個或更多個TCP套接級。
13. 如權(quán)利要求11的計算機程序產(chǎn)品,其中所述比較將數(shù)據(jù)的所述至少一部分識別 為對應(yīng)于惡意代碼,并且所述一條或更多條規(guī)則指示所述安全組件進行以下中的一項或更 多項阻擋所述接收的消息進入所述計算系統(tǒng);向所述計算系統(tǒng)的使用者通知所述消息與所述惡意代碼的所述對應(yīng),以便允許所述使 用者采取適當(dāng)行動;或者修改所述消息,以便禁用所述惡意代碼的任何有害特征。
14. 如權(quán)利要求13的計算機程序產(chǎn)品,其中,在阻擋所述接收的消息的同時,所述 一條或更多條規(guī)則允許其他良性消息傳到所述計算系統(tǒng)。
15. 如權(quán)利要求13的計算機程序產(chǎn)品,其中所述一條或更多條規(guī)則用使用者界面向 所述計算系統(tǒng)的所述使用者通知所述消息的所述對應(yīng),并且允許所述使用者接受或者拒絕 所述消息。
16. 如權(quán)利要求13的計算機程序產(chǎn)品,其中所述利用證據(jù)包括與惡意代碼相關(guān)聯(lián)的 已知電子地址列表。
17. 如權(quán)利要求16的計算機程序產(chǎn)品,其中所述電子地址列表包括網(wǎng)站的IP地址或 URL,并且其中所述消息的來源的IP地址或URL與所述與惡意代碼相關(guān)聯(lián)的己知電子地 址列表進行比較。
18. 如權(quán)利要求11的計算機程序產(chǎn)品法,其中所述利用證據(jù)包括所述惡意代碼的一 個或更多個簽名,所述簽名為代表所述惡意代碼的獨特的數(shù)據(jù)結(jié)構(gòu)。
19. 如權(quán)利要求ll的計算機程序產(chǎn)品,還包括從所述安全服務(wù)接收命令,所述命令指示被用于識別惡意代碼的利用證據(jù)應(yīng)該基于一 種或更多種事件而過期;以及一旦所述一種或更多種事件發(fā)生,如一條或更多條規(guī)則所定義的那樣對所述利用證據(jù) 采取行動。
20. 如權(quán)利要求19的計算機程序產(chǎn)品,其中所述事件是確定已經(jīng)經(jīng)過了風(fēng)險窗口或 者所述惡意代碼低于某威脅評級閾值中的一種或更多種,并且其中對所述利用證據(jù)的所述 行動包括取消對所述利用證據(jù)的所述比較、從所述安全組件刪除所述利用證據(jù),或者暫時 中止對所述利用證據(jù)的所述比較中的一種或更多種。
全文摘要
本文獻描述用于使對安裝在計算系統(tǒng)上的軟件的漏洞利用最小化的機制。使用安裝在目標(biāo)計算系統(tǒng)上的安全組件在傳輸層(例如傳輸通信協(xié)議(TCP)套接層)監(jiān)控網(wǎng)絡(luò)流量。當(dāng)接收到以所述計算系統(tǒng)為目的的消息時,將被包括在所述消息中的數(shù)據(jù)與用于識別惡意代碼的利用證據(jù)進行比較。所述利用證據(jù)通過收集關(guān)于所述惡意代碼的信息的安全服務(wù)提供給所述安全組件?;谒鱿⒅械臄?shù)據(jù)與所述利用證據(jù)的所述比較,識別規(guī)則,所述規(guī)則指示所述安全組件對所接收的消息采取適當(dāng)?shù)男袆印?br>
文檔編號G06F12/14GK101558384SQ200780018949
公開日2009年10月14日 申請日期2007年3月26日 優(yōu)先權(quán)日2006年3月24日
發(fā)明者G·A·莫舍, R·J·湯普森 申請人:Avg技術(shù)塞浦路斯有限公司