專利名稱:易受攻擊文件的自動檢測和修復(fù)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及文件的修復(fù),尤其涉及在分布式、不同的計算環(huán)境中為易受攻擊二進制程序文件提供安全修復(fù)的自動、綜合、可靠和無回歸的方式。
背景技術(shù):
軟件開發(fā)是一正在進行的過程,其中最初向公眾發(fā)布的軟件產(chǎn)品可以通過軟件開發(fā)者/廠商的修訂而被持續(xù)更新。軟件修訂一般由軟件廠商支付,其中可以從廠商下載或訂購“服務(wù)包”以便安裝在用戶的計算機上。服務(wù)包一般包含程序修復(fù)(例如用于操作系統(tǒng)、應(yīng)用程序等),它們在產(chǎn)品的最初發(fā)布后或者在上一次服務(wù)包發(fā)布后修復(fù)程序代碼中發(fā)現(xiàn)的問題(即“故障(bug)”)。
除了包含用于程序故障的修復(fù)以外,服務(wù)包也可以包含為了修復(fù)程序文件中發(fā)現(xiàn)的漏洞而特別開發(fā)的安全補丁。在發(fā)布軟件產(chǎn)品后發(fā)現(xiàn)的程序漏洞會在世界范圍內(nèi)對來自黑客和病毒的攻擊形成顯著的安全性威脅。因此,一旦發(fā)現(xiàn)了漏洞,把安全補丁立即廣泛分發(fā)并安裝到具有易受攻擊軟件的計算機是極為重要的。理論上,使用服務(wù)包來實現(xiàn)安全補丁的這種立即且廣泛的分發(fā)會是有效的。例如,當軟件廠商發(fā)現(xiàn)漏洞并開發(fā)了安全補丁時,可以在廠商的網(wǎng)站上在最新的服務(wù)包中貼出該補丁,以供用戶立即下載并安裝。這會阻撓試圖利用所發(fā)現(xiàn)的漏洞的大多數(shù)黑客和病毒。然而,系統(tǒng)管理員及其它軟件產(chǎn)品用戶目前面臨與訪問和安裝安全補丁有關(guān)的幾個缺點和/或難點。這些難點一般導(dǎo)致這種補丁的分發(fā)比開發(fā)該補丁的廠商所預(yù)期的要低。結(jié)果是世界上許多計算機的漏洞都未打過補丁,使這些計算機受到重大風(fēng)險。
訪問和安裝安全補丁的一個難點是目前用于檢測計算機是否正在運行具有已知漏洞的軟件的方法要求計算機的有效使用和參與。例如,目前可用的方法可以缺點計算機上特定版本的軟件產(chǎn)品是否需要被更新(例如用安全補丁)。然而,該確定中僅包括目前在計算機上運行的那些軟件產(chǎn)品。不考慮當前未在計算機上運行的次級操作系統(tǒng)和應(yīng)用程序,因此會使安全性漏洞不被注意到并且未被修復(fù)。對于目前在計算機上運行的那些產(chǎn)品而言,用戶可以查看可用更新的列表,并且選擇用于安裝的更新。某些更新會是為保護計算機不受到已知安全性漏洞而設(shè)計的關(guān)鍵更新。各種更新要求用戶在安裝完成前重啟計算機。此外,用戶必須主動地選擇更新并安裝它們。為此及其它原因,目前用于訪問和安裝安全補丁的方法并不很有效。
訪問和安裝安全補丁的另一個難點在于獲悉計算機上是否需要安全補丁。有時用戶難以獲悉他們的計算機是否正在運行易受攻擊的軟件。而且,目前用于檢測計算機是否正在運行具有已知漏洞的軟件的方法不能檢測已知是易受攻擊的軟件產(chǎn)品的特定配置。例如,某些軟件產(chǎn)品的共享版本可以作為其它產(chǎn)品的部分而被分發(fā)。這樣,盡管產(chǎn)品的共享版本會包含與產(chǎn)品的完全版本相同的漏洞,然而不會把共享版本識別為需要安全補丁更新的產(chǎn)品。這樣,已知具有安全性漏洞的軟件產(chǎn)品的共享版本通常未受到修復(fù)。
其它與訪問和安裝安全補丁有關(guān)的問題涉及常規(guī)的“服務(wù)包”方法,通過所述“服務(wù)包”方法來傳遞這種補丁。下載和安裝服務(wù)包是一時間密集和人工的過程,許多系統(tǒng)管理員沒有時間來做這些。因此,即使管理員想要安裝安全補丁,安全補丁的發(fā)布以及它在給定系統(tǒng)上安裝之間的時間會是幾周、幾個月或者幾年。這樣,直到軟件廠商發(fā)布了安全補丁很久以后的時間內(nèi),也不能減輕這種系統(tǒng)中通過安全性漏洞而受攻擊的風(fēng)險。
而且,系統(tǒng)管理員通常選擇不下載和安裝包含安全補丁的服務(wù)包,即使他們了解有關(guān)的安全性風(fēng)險。這樣做的原因是服務(wù)包自身的安裝帶來了系統(tǒng)回歸的風(fēng)險,它會在系統(tǒng)行為中引入不期望的改變。管理員通常花很多時間和經(jīng)歷對系統(tǒng)進行調(diào)試,使得它按所期望的起作用。然而,如上所述,服務(wù)包代表了軟件產(chǎn)品以前版本的發(fā)展,包括對產(chǎn)品代碼基的大多數(shù)最近更新(即改變范圍不僅限于安全補丁)。除了向系統(tǒng)內(nèi)引入新的和想要的行為以外,服務(wù)包內(nèi)的最近代碼更新會向系統(tǒng)內(nèi)引入未知的故障,使得系統(tǒng)不按預(yù)期表現(xiàn),這又會為系統(tǒng)管理員產(chǎn)生很大的問題。這樣,由于管理員不希望冒回歸的風(fēng)險,因此不用試圖修復(fù)易受攻擊的程序文件的重要安全補丁來頻繁更新系統(tǒng)。
因而,需要一種以自動、綜合、可靠和無回歸的方式來實現(xiàn)程序文件中安全性漏洞的修復(fù)。
發(fā)明內(nèi)容
這里描述了二進制程序文件的自動、綜合、可靠和無回歸的安全修復(fù)。
按照一種實施方式,接收漏洞的一個二進制簽名和一安全補丁。基于漏洞的二進制簽名在計算機上標識易受攻擊的二進制文件。用安全補丁來更新計算機上易受攻擊的二進制文件。
按照另一實施方式,接收一二進制簽名,該簽名標識了二進制文件中的安全性漏洞。還接收用于修復(fù)安全性漏洞的安全補丁。把二進制簽名和安全補丁分發(fā)到多臺服務(wù)器。
按照另一實施方式,二進制簽名從服務(wù)器被接收并用于搜索二進制文件。如果在二進制文件中找到二進制簽名,則向服務(wù)器發(fā)送對安全補丁的請求。然后用安全補丁更新二進制文件。
附圖中使用相同的參考數(shù)字標識相同的組件和特性。
圖1說明了適用于實現(xiàn)二進制文件中安全性漏洞的自動檢測和修復(fù)的示例性網(wǎng)絡(luò)環(huán)境。
圖2說明了適用于實現(xiàn)二進制文件中安全性漏洞的自動檢測和修復(fù)的分發(fā)服務(wù)器、掃描補丁服務(wù)器和客戶端計算機的示例性實施例。
圖3說明了適用于實現(xiàn)二進制文件中安全性漏洞的自動檢測和修復(fù)的分發(fā)服務(wù)器、掃描補丁服務(wù)器和客戶端計算機的另一示例性實施例。
圖4-6說明了用于實現(xiàn)二進制文件中安全性漏洞的自動檢測和修復(fù)的示例性方法的框圖。
圖7說明了適用于實現(xiàn)分發(fā)服務(wù)器、掃描補丁服務(wù)器和客戶端計算機的示例性計算環(huán)境。
具體實施例方式
綜述下列討論針對了能夠修復(fù)二進制文件中的安全性漏洞的系統(tǒng)和方法。在無限規(guī)模上,易受攻擊的二進制文件的檢測和修復(fù)在網(wǎng)絡(luò)上是自動的、可靠的、無回歸的且綜合的。這些優(yōu)點可以用各種方法來實現(xiàn),包括例如通過對因特網(wǎng)上廣泛采用的當前反病毒基礎(chǔ)結(jié)構(gòu)進行杠桿作用。安全補丁與常規(guī)服務(wù)包的偏差提供了為二進制文件中的安全性漏洞產(chǎn)生無回歸修復(fù)的可能性。
通過使用曾經(jīng)與所發(fā)現(xiàn)的安全性漏洞相關(guān)聯(lián)的二進制簽名來實現(xiàn)易受攻擊的二進制文件(例如在操作系統(tǒng)、應(yīng)用程序等中)的可靠發(fā)現(xiàn)。與二進制文件中的安全性漏洞相關(guān)的二進制簽名、以及為修復(fù)這種安全性漏洞而開發(fā)的安全補丁一起被上載到中央分發(fā)服務(wù)器。分發(fā)服務(wù)器用于在諸如因特網(wǎng)的各種網(wǎng)絡(luò)上廣泛地分發(fā)二進制簽名和安全補丁。使用中央分發(fā)服務(wù)器來更新網(wǎng)絡(luò)服務(wù)器無限地提供了綜合且自動的補丁覆蓋。接收這種更新的網(wǎng)絡(luò)服務(wù)器可以掃描下級網(wǎng)絡(luò)內(nèi)的客戶端計算機,以便根據(jù)二進制簽名定位易受攻擊的文件,然后使用會修復(fù)易受攻擊的文件的相應(yīng)安全補丁來更新被發(fā)現(xiàn)具有安全性易受攻擊的文件的那些計算機。網(wǎng)絡(luò)服務(wù)器也可與客戶端計算機通信以便把二進制簽名和安全補丁傳輸至計算機,使得掃描和更新可由計算機自身執(zhí)行。還可存在多嵌套級的下級網(wǎng)絡(luò)。
示例性環(huán)境圖1說明了適用于實現(xiàn)二進制文件中安全性漏洞的自動檢測和修復(fù)的示例性網(wǎng)絡(luò)環(huán)境100。在示例性網(wǎng)絡(luò)環(huán)境100中,中央分發(fā)服務(wù)器102通過網(wǎng)絡(luò)106(a)耦合到多個掃描/修復(fù)服務(wù)器104。掃描/修復(fù)服務(wù)器104一般通過網(wǎng)絡(luò)106(b)耦合到多臺客戶端計算機108(1)-108(n)。網(wǎng)絡(luò)106意圖表示多種常規(guī)網(wǎng)絡(luò)拓撲邏輯和類型的任一種(包括光學(xué)、有線和/或無線網(wǎng)絡(luò)),采用多種常規(guī)網(wǎng)絡(luò)協(xié)議的任一種(包括公共和/或?qū)S袇f(xié)議)。網(wǎng)絡(luò)106可以包括,例如因特網(wǎng),以及一個或多個局域網(wǎng)(LAN)和/或廣域網(wǎng)(WAN)的至少一部分。網(wǎng)絡(luò)106(a)和106(b)可以是因特網(wǎng)這樣的相同網(wǎng)絡(luò),或者它們是彼此隔開的網(wǎng)絡(luò),比如因特網(wǎng)和公司局域網(wǎng)。
分發(fā)服務(wù)器102和掃描/修復(fù)服務(wù)器104一般用標準Web服務(wù)器實現(xiàn),并且各自可以是多種常規(guī)計算設(shè)備的任一種,包括臺式PC、筆記本或便攜式計算機、工作站、大型計算機、因特網(wǎng)設(shè)備、它們的組合等等。服務(wù)器102和104中的一臺或多臺會是相同類型的設(shè)備,或者是不同類型的設(shè)備。下面參照圖7更詳細地描述了用于實現(xiàn)分發(fā)服務(wù)器102和掃描/修復(fù)服務(wù)器104的示例性計算環(huán)境。
客戶端計算機108起到與服務(wù)器104的典型的客戶機/服務(wù)器關(guān)系,其中多個客戶機108向為請求提供服務(wù)的服務(wù)器104作出請求。客戶端計算機108可以是多種常規(guī)計算設(shè)備的任一種,包括臺式PC、筆記本或便攜式計算機、工作站、大型計算機、游戲操縱桿、手持PC、蜂窩電話或其它無線通信設(shè)備、個人數(shù)字助理(PDA)、它們的組合等等??蛻舳擞嬎銠C108的一臺或多臺可以是相同類型的設(shè)備,或者是不同類型的設(shè)備。下面參照圖7更詳細地描述了用于實現(xiàn)客戶端計算機108的示例性計算環(huán)境。
通常,通過經(jīng)過分發(fā)服務(wù)器102作出的更新來實現(xiàn)客戶端計算機108上的易受攻擊的二進制文件的自動和綜合的檢測和修復(fù),所述更新包括二進制簽名,所述二進制簽名用于標識易受攻擊的二進制文件以及為修復(fù)易受攻擊的文件而配置的安全補丁。如下參照下列示例性實施例更詳細地討論,把二進制簽名和安全補丁分發(fā)到掃描/修復(fù)服務(wù)器104,后者或者主動掃描和更新客戶端計算機108上易受攻擊的二進制文件,或者把二進制簽名和安全補丁推到客戶端計算機108上,使客戶端計算機108可以對易受攻擊的二進制文件實行掃描和修復(fù)。
示例性實施例圖2說明了適用于實現(xiàn)二進制文件中安全性漏洞的自動檢測和修復(fù)的分發(fā)服務(wù)器102、掃描修復(fù)服務(wù)器104和客戶端計算機108的示例性實施例。分發(fā)服務(wù)器102包括用于接收和保持二進制簽名和安全補丁的分發(fā)模塊200和數(shù)據(jù)庫202。數(shù)據(jù)庫202會以多種方式用二進制簽名和安全補丁來更新,這些方式包括例如通過便攜式的存儲媒質(zhì)(未示出,但見圖7)或者通過與服務(wù)器102耦合并把二進制簽名和安全補丁上載到數(shù)據(jù)庫202的計算設(shè)備(未示出)。
其中可能更新數(shù)據(jù)庫202的典型情況始于軟件產(chǎn)品的開發(fā)者開始調(diào)查軟件產(chǎn)品(例如操作系統(tǒng)、應(yīng)用程序等)。例如,開發(fā)者可以雇用一安全性咨詢公司,嘗試找到最新發(fā)布的軟件產(chǎn)品中的安全性漏洞。如果通過黑客或通過某些其它手段在軟件產(chǎn)品中發(fā)現(xiàn)安全性漏洞,則可以標識該產(chǎn)品內(nèi)易受攻擊的功能的確切位模式。位模式代表了二進制文件中易受攻擊部分的二進制簽名,該易受攻擊的部分是軟件產(chǎn)品的一個組成部分。
一旦發(fā)現(xiàn)并分析了安全性漏洞,就可以開發(fā)一個會消除該漏洞的修補。這種修復(fù)被稱為安全補丁,它們代表了被編譯成二進制可執(zhí)行指令的代碼模塊。安全補丁可以安裝在計算機上,所述計算機通過二進制簽名被標識為具有安全性漏洞的正在運行的軟件。安全補丁的安裝會修補安全性漏洞。分發(fā)服務(wù)器102使軟件產(chǎn)品廠商及他人能把易受攻擊的二進制文件的二進制簽名以及為修補易受攻擊的二進制文件而設(shè)計的安全補丁一起上載到數(shù)據(jù)庫202中用于分發(fā)。
分發(fā)模塊200被配置成通過網(wǎng)絡(luò)106把二進制簽名和安全補丁從數(shù)據(jù)庫202分發(fā)到各個掃描修復(fù)服務(wù)器104。分發(fā)模塊200一般自動地用于在用其它簽名和補丁更新數(shù)據(jù)庫202時從數(shù)據(jù)庫202分發(fā)二進制簽名和安全補丁。自動分發(fā)可以用各種方式來實現(xiàn),包括例如通過從分發(fā)模塊200到掃描修復(fù)服務(wù)器104的通信,指示更新后的二進制簽名和安全補丁可用,并且等待發(fā)送二進制簽名和安全補丁的請求,或者通過把更新后的二進制簽名和安全補丁自動轉(zhuǎn)發(fā)到為接受這些更新而配置的掃描修復(fù)服務(wù)器104。
在圖2的實施例中,掃描修復(fù)服務(wù)器104包括用于接收和保持二進制簽名和安全補丁的掃描修復(fù)模塊204和數(shù)據(jù)庫206。通過分發(fā)服務(wù)器102上掃描修復(fù)模塊204和分發(fā)模塊200之間的通信,數(shù)據(jù)庫206一般用新的二進制簽名和安全補丁自動更新。除了用二進制簽名和安全補丁來更新數(shù)據(jù)庫206以外,掃描修復(fù)模塊104被配置成訪問客戶端計算機108并掃描二進制文件208以找到二進制簽名。掃描二進制文件208可包括搜索在客戶端計算機108上存在或可訪問的任何形式的媒質(zhì)上存在的二進制文件中的二進制簽名。二進制文件208一般包括經(jīng)編譯的、計算機/處理器可讀的代碼,比如操作系統(tǒng)或應(yīng)用程序文件。然而,注意到二進制文件208可以是任何形式的二進制信息,包括客戶端計算機108的計算機/處理器可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊以及其它數(shù)據(jù)。
在參照圖7的示例性計算機環(huán)境的下列討論中,客戶端計算機108上的這種媒質(zhì)可包括可由客戶端計算機108訪問的任何可用的媒質(zhì),比如易失性和非易失性媒質(zhì)以及可移動和不可移動的媒質(zhì)。這種計算機/處理器可讀媒質(zhì)可包括易失性存儲器,比如隨機存取存儲器(RAM)以及/或者非易失性存儲器,比如只讀存儲器(ROM)。計算機/處理器可讀媒質(zhì)還可包括其它可移動/不可移動、易失性/非易失性的計算機存儲媒質(zhì),比如用于向不可移動的、非易失性磁性媒質(zhì)讀寫的硬盤驅(qū)動器;用于向可移動的、非易失性磁盤(例如“軟盤”)讀寫的磁盤驅(qū)動器;用于向可移動、非易失性光盤讀寫的光盤驅(qū)動器(比如CD-ROM、DVD-ROM);或者其它光學(xué)媒質(zhì)、其它磁性存儲設(shè)備、閃存卡、電可擦除可編程只讀存儲器(EEPROM)、網(wǎng)絡(luò)附加的存儲器等等。所有這樣的計算機/處理器可讀媒質(zhì)都為任何形式的二進制文件208提供了易失性和非易失性的存儲,所述二進制文件208包括客戶端計算機108的計算機/處理器可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊及其它數(shù)據(jù),所述計算機/處理器可讀媒質(zhì)可由掃描修復(fù)服務(wù)器104經(jīng)由掃描修復(fù)模塊204進行掃描。
這樣,掃描修復(fù)模塊204搜索客戶端計算機108上的二進制文件208以確定在位于客戶端計算機108上的任何二進制信息中是否存在標識安全性漏洞的二進制簽名。如果在二進制文件208中找到二進制簽名的位模式,掃描修復(fù)模塊204就通過阿客戶端計算機108上安裝一相應(yīng)的安全補丁,操作以修復(fù)二進制文件208中的安全性漏洞??蛻舳擞嬎銠C108上安全補丁的安裝覆寫或消除了包含安全性漏洞的二進制文件或二進制文件的一部分。
圖3說明了適用于實現(xiàn)二進制文件中安全性漏洞的修復(fù)的分發(fā)服務(wù)器102、掃描修復(fù)服務(wù)器104和客戶端計算機108的另一示例性實施例。通常,在圖3的實施例中,從服務(wù)器104把二進制簽名和安全補丁下推或再分發(fā)到客戶端計算機108上,通過客戶端計算機108而不是掃描修復(fù)服務(wù)器104來執(zhí)行對易受攻擊的文件的掃描以及對安全性易受攻擊的文件的修復(fù)。
在圖3的實施例中,分發(fā)服務(wù)器102以與上面參照圖2實施例的方式相同的方式被配置。這樣,可以更新數(shù)據(jù)庫202以包括最新發(fā)現(xiàn)的二進制簽名,所述簽名標識了二進制文件中的安全性漏洞。數(shù)據(jù)庫202還可以用相應(yīng)的安全補丁來更新,所述安全補丁已經(jīng)被開發(fā)以修補這樣的安全性漏洞。
圖3的掃描修復(fù)服務(wù)器102以與上面參照圖2所討論的方式有點相同的方式被配置。這樣,圖3的掃描修復(fù)服務(wù)器102包括用于接收和保持二進制簽名和安全補丁的數(shù)據(jù)庫206。數(shù)據(jù)庫206一般通過掃描修復(fù)服務(wù)器104和分發(fā)服務(wù)器102之間的通信,用新的二進制簽名和安全補丁自動更新。然而,掃描修復(fù)服務(wù)器104和分發(fā)服務(wù)器102間的通信通過再分發(fā)模塊300實施而不是通過圖2實施例所述的掃描修復(fù)模塊204來實施。
除了用二進制簽名和安全補丁更新數(shù)據(jù)庫206以外,再分發(fā)模塊300被配置成與客戶端計算機108上的掃描修復(fù)模塊202通信,并且向客戶端計算機108傳輸二進制簽名。掃描修復(fù)模塊302被配置成接收二進制簽名,并掃描二進制文件208以確定所述二進制簽名是否存在于位于客戶端計算機108上的任何二進制信息中。這樣,圖3的掃描修復(fù)模塊302以類似于上面參照圖2所討論的掃描修復(fù)模塊204的方式起作用。
如果在客戶端計算機108上的二進制文件208中找到二進制簽名的位模式,掃描修復(fù)模塊302就向服務(wù)器102上的再分發(fā)模塊300發(fā)送一請求。該請求是使再分發(fā)模塊300將與二進制簽名相對應(yīng)的安全補丁向下發(fā)送到客戶端計算機108。再分發(fā)模塊300通過向客戶端計算機108發(fā)送適當?shù)陌踩a丁而響應(yīng)該請求。掃描修復(fù)模塊302接收安全補丁并且通過在客戶端計算機108上安裝該安全補丁而修復(fù)二進制文件208中的安全性漏洞。在圖2的實施例中,把安全補丁安裝在客戶端計算機108上覆寫或消除了包含所發(fā)現(xiàn)的安全性漏洞的二進制文件或二進制文件的一部分。
示例性方法現(xiàn)在將主要參照圖4-6的流程圖來描述用于實現(xiàn)二進制文件中安全性漏洞的自動檢測和修復(fù)的示例性方法。所述方法一般應(yīng)用于上面參照圖1-3討論的示例性實施例。所述方法的元素可由任何適當?shù)氖侄蝸韴?zhí)行,包括例如通過ASIC上的硬件邏輯塊,或者通過執(zhí)行在處理器可讀媒質(zhì)上定義的處理器可讀指令。
這里使用的“處理器可讀媒質(zhì)”可以是能包含、傳遞、傳播或傳輸處理器執(zhí)行所使用的指令的任何裝置。不加限制地說,處理器可讀媒質(zhì)可包括電子、磁性、光學(xué)、電磁、紅外或半導(dǎo)體的系統(tǒng)、裝置、設(shè)備或傳播媒質(zhì)。另外,處理器可讀媒質(zhì)的更具體的例子包括具有一根或多根電線的電連接(電子的)、便攜式計算機盒帶(磁性的)、隨機存取存儲器(RAM)(磁性的)、只讀存儲器(ROM)(磁性的)、可擦除可編程只讀存儲器(EPROM或閃存)、光纖(光學(xué)的)、可重寫微型盤(CD-RW)(光學(xué)的)以及便攜式微型盤只讀存儲器(CDROM)(光學(xué)的)。
圖4示出用于實現(xiàn)二進制文件中安全性漏洞的自動檢測和修復(fù)的示例性方法400。二進制文件一般位于或被存儲在由服務(wù)器計算機提供服務(wù)的客戶端計算機上,但它們也可位于服務(wù)器計算機自身之上,或者可由服務(wù)器計算機訪問的任何其它計算設(shè)備。在方法400的方框402處,接收二進制簽名。二進制簽名是已經(jīng)與特定的二進制文件中的安全性漏洞相關(guān)聯(lián)的位模式,比如在客戶端計算機上運行的可執(zhí)行應(yīng)用程序或操作系統(tǒng)。輔助服務(wù)器104從中央分發(fā)服務(wù)器102接收二進制簽名。
在方框404處,接收安全補丁。安全補丁一般是經(jīng)編譯的可執(zhí)行代碼,該代碼已經(jīng)被開發(fā)為對特定二進制文件的安全性漏洞的修補。輔助服務(wù)器104也從中央分發(fā)服務(wù)器102接收安全補丁。在方框406處,基于二進制簽名而標識易受攻擊的二進制文件。易受攻擊的二進制文件的標識一般通過以下來實現(xiàn)掃描諸如客戶端計算機108等計算機的各個媒質(zhì)上保存的二進制信息,然后把二進制簽名中的模式與媒質(zhì)上找到的二進制信息相比較。標識可以以各種方式發(fā)生,包括例如由服務(wù)器104掃描和比較客戶端計算機上存在的所有二進制信息。也可以通過使服務(wù)器104把二進制簽名向下推到客戶端計算機使得客戶端計算機可實行掃描和比較來實現(xiàn)易受攻擊的二進制文件的標識。
在方框400的方框408處,使用安全補丁來更新易受攻擊的二進制文件。更新可以各種方式實現(xiàn),包括例如由服務(wù)器104把安全補丁安裝在客戶端計算機108上。如果客戶端計算機108已執(zhí)行了掃描并標識了易受攻擊的二進制文件,客戶端計算機108可以請求服務(wù)器104把安全補丁發(fā)送到計算機108,其中計算機108可以安裝該安全補丁以修補易受攻擊的二進制文件。
圖5示出用于實現(xiàn)二進制文件中安全性漏洞的自動檢測和修復(fù)的另一示例性方法500。方法500一般說明了安全性漏洞的二進制簽名以及為修補那些安全性漏洞而開發(fā)的安全補丁的分發(fā)。在方法500的方框502處,接收一二進制簽名,它標識了二進制文件的安全性漏洞。二進制簽名一般被上載到分發(fā)服務(wù)器102作為一最新發(fā)現(xiàn)的位模式,該位模式標識了軟件產(chǎn)品的二進制文件中的漏洞,所述漏洞可能廣泛分布于諸如因特網(wǎng)這樣的網(wǎng)絡(luò)上的許多計算機中。上載一般由與分發(fā)服務(wù)器102耦合的計算機實現(xiàn),或者由被插入分發(fā)服務(wù)器102內(nèi)的便攜式存儲媒質(zhì)來實現(xiàn)。在方框504處,被配置成修補安全性漏洞的安全補丁由分發(fā)服務(wù)器102以類似于二進制簽名的方式接收。
在方框506處,從分發(fā)服務(wù)器102把二進制簽名和安全補丁分發(fā)到多臺輔助服務(wù)器104。該分發(fā)自動發(fā)生,并且以各種方式實現(xiàn)。例如,在接收到所上載的二進制簽名和安全補丁后,分發(fā)服務(wù)器102可以通過網(wǎng)絡(luò)把二進制簽名和安全補丁自動發(fā)到被配置成接收所更新的二進制簽名和安全補丁的所有輔助服務(wù)器104。分發(fā)服務(wù)器102也可能向服務(wù)器104發(fā)送一通知,指示已經(jīng)發(fā)現(xiàn)安全性漏洞并且一安全補丁可用于修補該漏洞。然后,輔助服務(wù)器104可以請求分發(fā)服務(wù)器102發(fā)送標識安全性漏洞和安全補丁的二進制簽名。在接收到該請求后,分發(fā)服務(wù)器102可以把二進制簽名和安全補丁轉(zhuǎn)發(fā)到正在請求的服務(wù)器102。
圖6示出用于實現(xiàn)二進制文件中安全性漏洞的自動檢測和修復(fù)的另一示例性方法600。在方法600的方框602處,客戶端計算機108從服務(wù)器104接收一二進制簽名。該二進制簽名與可能存在于客戶端計算機108上的二進制文件中的一安全性漏洞相關(guān)聯(lián)。在方框404處,客戶端計算機108掃描目前對它可用的所有二進制信息,并把二進制簽名中的模式與二進制信息相比較??蛻舳擞嬎銠C108所掃描的二進制信息一般形式為對客戶端計算機108有用的計算機/處理器可讀的和/或可執(zhí)行的指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊以及其它數(shù)據(jù),并且可以駐留在各類易失性和非易失性存儲媒質(zhì)上。
在方框606處,如果客戶端計算機108發(fā)現(xiàn)包含該二進制簽名的二進制文件,它就向服務(wù)器104發(fā)送傳輸安全補丁的請求。在方框608處,客戶端計算機108接收安全補丁,在方框610處,客戶端計算機108安裝安全補丁以便修補二進制文件中的安全性漏洞,所述二進制文件包含與二進制簽名中的模式相匹配的二進制信息。
雖然已經(jīng)通過流程圖以及與流程圖的方法相關(guān)的文本公開了一種或多種方法,然而可以理解,方框無須以它們所呈現(xiàn)的順序執(zhí)行,其它順序也可得到類似的好處。而且,這些方法并非排他,并且可以單獨或彼此結(jié)合地執(zhí)行。
示例性計算機圖7說明了適用于實現(xiàn)分發(fā)服務(wù)器102、掃描修復(fù)服務(wù)器104和客戶端計算機108的示例性計算環(huán)境,上面參照圖1-3曾討論過。盡管圖7中示出一種具體的配置,然而可以以其它計算配置來實現(xiàn)分發(fā)服務(wù)器102、掃描修復(fù)服務(wù)器104和客戶端計算機108。
計算環(huán)境700包括形式為計算機702的通用計算系統(tǒng)。計算機702的組件可以包括、但不限于一個或多個處理器或處理單元704、系統(tǒng)存儲器706以及把包括處理器704在內(nèi)的各種系統(tǒng)組件耦合到系統(tǒng)存儲器706的系統(tǒng)總線708。
系統(tǒng)總線708標識多種總線結(jié)構(gòu)的一種或多種,包括存儲器總線或存儲器控制器、外圍總線、加速圖形端口以及處理器或使用多種總線結(jié)構(gòu)的任一種的局域總線。系統(tǒng)總線708的一例會是外圍組件互連(PCI)總線,也稱為Mezzanine總線。
計算機702一般包括多種計算機可讀媒質(zhì)。這種媒質(zhì)可以是能由計算機702訪問的任何可用媒質(zhì)并包括易失性和非易失性的媒質(zhì)、可移動和不可移動媒質(zhì)。系統(tǒng)存儲器706包括形式為易失性存儲器的計算機可讀媒質(zhì),比如隨機存取存儲器(RAM)710,以及/或者包括形式為非易失性存儲器的計算機可讀媒質(zhì),比如只讀存儲器(ROM)712。基本輸入/輸出系統(tǒng)(BIOS)714一般存儲在ROM 712內(nèi),它包含例如啟動期間幫助在計算機702內(nèi)的組件間傳輸信息的基本例程。RAM 710一般包含數(shù)據(jù)和/或程序模塊,它們可以立即訪問并且/或者當前由處理單元704在其上操作。
計算機702可以還包括其它可移動/不可移動、易失性/非易失性計算機存儲媒質(zhì)。僅僅通過示例,圖7說明了對不可移動、非易失性磁性媒質(zhì)(未示出)進行讀寫的硬盤驅(qū)動器716、對可移動、非易失性磁盤720(例如“軟盤”)進行讀寫的磁盤驅(qū)動器718、以及對可移動、非易失性光盤724進行讀寫的光盤驅(qū)動器722,譬如CD-ROM、DVD-ROM。硬盤驅(qū)動器716、磁盤驅(qū)動器718和光盤驅(qū)動器722各自通過一個或多個數(shù)據(jù)媒質(zhì)接口726與系統(tǒng)總線708相連。或者,硬盤驅(qū)動器716、磁盤驅(qū)動器718和光盤驅(qū)動器722可以通過SCSI接口(未示出)與系統(tǒng)總線708相連。
硬盤驅(qū)動器和它們相關(guān)的計算機可讀媒質(zhì)為計算機702的計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊及其它數(shù)據(jù)提供了非易失性存儲。盡管該例說明了硬盤716、可移動磁盤720和可移動光盤724,然而可以理解,也可以使用能保存可由計算機訪問的數(shù)據(jù)的其它類型的計算機可讀媒質(zhì)來實現(xiàn)示例性的計算系統(tǒng)和環(huán)境,所述計算機可讀媒質(zhì)例如磁性盒帶或其它磁性存儲設(shè)備、閃存卡、CD-ROM、數(shù)字化視頻光盤(DVD)或其它光學(xué)存儲器、隨機存取存儲器(RAM)、只讀存儲器(ROM)、電可擦除可編程只讀存儲器(EEPROM)等。
任何數(shù)量的程序模塊可以被保存在硬盤716、磁盤720、光盤724、ROM 712和/或RAM 710上,包括例如操作系統(tǒng)726、一個或多個應(yīng)用程序728、其它程序模塊730和程序數(shù)據(jù)732。這些操作系統(tǒng)726、一個或多個應(yīng)用程序728、其它程序模塊730和程序數(shù)據(jù)732的每一個(或它們的某種組合)可包括使用戶網(wǎng)絡(luò)訪問信息的高速緩存方案。
計算機702可包括被標識為通信媒質(zhì)的多種計算機/處理器可讀媒質(zhì)。通信媒質(zhì)一般包含已調(diào)數(shù)據(jù)信號中的計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù),比如載波或其它傳輸基址,并且包括任何信息遞送媒質(zhì)。術(shù)語“已調(diào)數(shù)據(jù)信號”是指其一個或多個特征是以對信號中信息進行編碼的方式而被設(shè)置或改變的信號。通過示例但不限于,通信媒質(zhì)包括諸如有線網(wǎng)絡(luò)或直線連接這樣的有線媒質(zhì),以及諸如聲學(xué)、RF、紅外及其它無線媒質(zhì)這樣的無線媒質(zhì)。上述的任意組合也包括在計算機可讀媒質(zhì)的范圍內(nèi)。
用戶可以通過諸如鍵盤734和指示設(shè)備736(例如“鼠標”)這樣的輸入設(shè)備把命令和信息輸入到計算機702中。其它輸入設(shè)備738(未特別示出)可以包括麥克風(fēng)、游戲桿、游戲板、衛(wèi)星式轉(zhuǎn)盤、串行端口、掃描儀等等。這些和其它輸入設(shè)備通過與系統(tǒng)總線708耦合的輸入/輸出接口740與處理單元704相連,但也可以用其它接口和總線結(jié)構(gòu)連接,譬如并行端口、游戲端口或通用串行總線(USB)。
監(jiān)視器742或其它類型的顯示設(shè)備也通過諸如視頻適配器744這樣的接口與系統(tǒng)總線708相連。除了監(jiān)視器742之外,其它輸出外圍設(shè)備可包括諸如揚聲器(未示出)和打印機746這樣的組件,它們可以通過輸入/輸出接口740連到計算機702。
計算機702可以工作在網(wǎng)絡(luò)化環(huán)境中,該環(huán)境使用與諸如遠程計算設(shè)備748這樣的一個或多個遠程計算機之間的邏輯連接。例如,遠程計算設(shè)備180可以是個人計算機、便攜式計算機、服務(wù)器、路由器、網(wǎng)絡(luò)計算機、對等設(shè)備或其它公共網(wǎng)絡(luò)節(jié)點等等。遠程計算設(shè)備748被說明為一便攜式計算機,該便攜式計算機包括上述與計算機702有關(guān)的許多或全部元件和特征,計算機702和遠程計算機748之間的邏輯連接被描述為局域網(wǎng)(LAN)750和一般廣域網(wǎng)(WAN)752。這種網(wǎng)絡(luò)環(huán)境在辦公室、企業(yè)范圍計算機網(wǎng)絡(luò)、內(nèi)聯(lián)網(wǎng)和因特網(wǎng)中是常見的。當在LAN網(wǎng)絡(luò)環(huán)境中實現(xiàn)時,計算機702通過網(wǎng)絡(luò)接口或適配器754與局域網(wǎng)750相連。當在WAN網(wǎng)絡(luò)環(huán)境中實現(xiàn)時,計算機702一般包括用于在廣域網(wǎng)752上建立通信的調(diào)制解調(diào)器756或其它裝置。調(diào)制解調(diào)器756可以是內(nèi)部或外部的,它可以通過輸入/輸出接口740或其它適當機制與系統(tǒng)總線708相連??梢岳斫猓龅木W(wǎng)絡(luò)連接是示例性的,也可以使用在計算機702和748間建立通信連接的其它裝置。
在網(wǎng)絡(luò)化環(huán)境中,比如根據(jù)計算環(huán)境700所述的環(huán)境,參照計算機702描述的程序模塊或其部分可以被保存在遠程存儲設(shè)備中。例如,遠程應(yīng)用程序758駐留在遠程計算機748的存儲設(shè)備上。為說明起見,這里把應(yīng)用程序和其它可執(zhí)行程序組件(比如操作系統(tǒng))說明為離散塊,然而可以認識到,這種程序和組件在不同時刻駐留在計算機系統(tǒng)702的不同存儲組件中,并且由計算機的數(shù)據(jù)處理器執(zhí)行。
結(jié)論盡管已經(jīng)用對結(jié)構(gòu)特征和/或方法動作特定的語言描述了本發(fā)明,然而可以理解,在所附權(quán)利要求中定義的發(fā)明不必限于所描述的特定的特征或動作。所述特定特征和動作被公開作為實現(xiàn)權(quán)利要求的發(fā)明的示例性形式。
權(quán)利要求
1.一種包括處理器可執(zhí)行指令的處理器可讀媒質(zhì),所述指令用于接收二進制簽名;接收安全補??;根據(jù)所述二進制簽名標識計算機上易受攻擊的二進制文件;以及用所述安全補丁更新所述計算機上的所述易受攻擊的二進制文件。
2.如權(quán)利要求1所述的處理器可讀媒質(zhì),其特征在于,所述標識計算機上易受攻擊的二進制文件包括,把所述二進制簽名的位模式與位于所述計算機上的二進制文件相比較,所述位模式與一安全性漏洞相關(guān)聯(lián)。
3.如權(quán)利要求1所述的處理器可讀媒質(zhì),其特征在于,所述更新計算機上易受攻擊的二進制文件包括,把所述安全補丁安裝在所述計算機上。
4.如權(quán)利要求1所述的處理器可讀媒質(zhì),其特征在于,所述標識計算機上易受攻擊的二進制文件包括,把所述二進制簽名發(fā)送到所述計算機。
5.如權(quán)利要求4所述的處理器可讀媒質(zhì),其特征在于,所述更新計算機上易受攻擊的二進制文件包括從所述計算機接收發(fā)送所述安全補丁的請求;以及把所述安全補丁發(fā)送到所述計算機。
6.如權(quán)利要求1所述的處理器可讀媒質(zhì),其特征在于,所述計算機是一客戶端計算機,所述接收包括,從被配置成分發(fā)到所述客戶端計算機的分發(fā)服務(wù)器接收所述二進制簽名和所述安全補丁,所述二進制簽名標識了易受攻擊的文件,所述安全補丁用于修補所述易受攻擊的文件。
7.一種包括如權(quán)利要求1所述的處理器可讀媒質(zhì)的服務(wù)器。
8.一種包括處理器可執(zhí)行指令的處理器可讀媒質(zhì),所述指令用于接收一二進制簽名,所述二進制簽名標識了二進制文件中的安全性漏洞;接收一安全補丁,所述安全補丁用于修復(fù)所述二進制文件中的安全性漏洞;以及把所述二進制簽名和所述安全補丁分發(fā)到多臺服務(wù)器。
9.如權(quán)利要求1所述的處理器可讀媒質(zhì),其特征在于,所述分發(fā)包括向所述多臺服務(wù)器的每一臺發(fā)送有關(guān)所述安全性漏洞和可用補丁的通知;接收一發(fā)送所述二進制簽名和所述安全補丁的請求;以及響應(yīng)于所述請求而發(fā)送所述二進制簽名和所述安全補丁。
10.一種包括如權(quán)利要求8所述的處理器可讀媒質(zhì)的分發(fā)服務(wù)器。
11.一種包括處理器可執(zhí)行指令的處理器可讀媒質(zhì),所述指令用于從服務(wù)器接收一二進制簽名;在所述二進制文件中搜索所述二進制簽名;如果找到包括所述二進制簽名的二進制文件,則向所述服務(wù)器發(fā)送對安全補丁的請求;從所述服務(wù)器接收所述安全補?。灰约坝盟霭踩a丁更新所述二進制文件。
12.一種包括如權(quán)利要求11所述的處理器可讀媒質(zhì)的客戶端計算機。
13.一種方法,包括接收二進制簽名;基于所述二進制簽名搜索易受攻擊的文件;如果找到易受攻擊的文件,則請求安全補??;以及用所述安全補丁修復(fù)所述易受攻擊的文件。
14.如權(quán)利要求13所述的方法,其特征在于,所述請求包括向服務(wù)器發(fā)送對所述安全補丁的請求,所述方法還包括響應(yīng)于所述請求而從所述服務(wù)器接收所述安全補丁。
15.如權(quán)利要求14所述的方法,其特征在于,所述接收包括從所述服務(wù)器接收所述二進制簽名。
16.如權(quán)利要求13所述的方法,其特征在于,所述修復(fù)包括在計算機上安裝所述安全補丁。
17.如權(quán)利要求13所述的方法,其特征在于,所述搜索包括把所述二進制簽名與計算機的存儲媒質(zhì)上的二進制信息相比較。
18.如權(quán)利要求17所述的方法,其特征在于,所述二進制信息是從包括以下內(nèi)容的組中選擇的操作系統(tǒng);應(yīng)用程序文件;以及數(shù)據(jù)文件。
19.如權(quán)利要求17所述的方法,其特征在于,所述存儲媒質(zhì)是從包括以下內(nèi)容的組中選擇的硬盤;磁性軟盤;光盤;閃存卡;電可擦除可編程只讀存儲器;以及網(wǎng)絡(luò)附加的存儲器。
20.一種方法,包括從分發(fā)服務(wù)器接收二進制簽名和安全補丁;在客戶端計算機上搜索與所述二進制簽名相關(guān)的易受攻擊的文件;以及如果找到易受攻擊的文件,則用所述安全補丁修復(fù)所述易受攻擊的文件。
21.如權(quán)利要求20所述的方法,其特征在于,所述搜索包括把所述二進制簽名傳輸至所述客戶端計算機,所述客戶端計算機用于搜索與所述二進制簽名相關(guān)的易受攻擊的文件。
22.如權(quán)利要求21所述的方法,其特征在于,所述修復(fù)包括從所述客戶端計算機接收傳輸所述安全補丁的請求,所述客戶端計算機已經(jīng)定位了一易受攻擊的文件;以及響應(yīng)于所述請求而把所述安全補丁傳輸至所述客戶端計算機。
23.一種計算機,包括用于接收二進制簽名的裝置;基于所述二進制簽名搜索易受攻擊的文件的裝置;如果找到易受攻擊的文件則請求安全補丁的裝置;以及用所述安全補丁修復(fù)所述易受攻擊的文件的裝置。
24.一種服務(wù)器,包括用于從分發(fā)服務(wù)器接收二進制簽名和安全補丁的裝置;用于掃描客戶端計算機是否有與所述二進制簽名相關(guān)的易受攻擊的文件的裝置;以及如果找到易受攻擊的文件則用所述安全補丁修復(fù)所述易受攻擊的文件的裝置。
25.一種計算機,包括二進制信息;掃描模塊,用于接收二進制簽名并且掃描所述二進制信息是否有所述二進制簽名;以及修復(fù)模塊,用于請求安全補丁,并且如果在所述二進制信息中找到所述二進制簽名則安裝所述安全補丁。
26.如權(quán)利要求25所述的計算機,其特征在于,還包括用于保留所述二進制信息的存儲媒質(zhì)。
27.如權(quán)利要求25所述的計算機,其特征在于,所述二進制信息是從包括以下內(nèi)容的組中選擇的操作系統(tǒng);應(yīng)用程序文件;以及數(shù)據(jù)文件。
28.一種計算機,包括二進制文件;二進制簽名;以及安全補丁模塊,用于從服務(wù)器接收所述二進制簽名,并用于掃描所述二進制文件以搜索所述二進制簽名。
29.如權(quán)利要求28所述的計算機,其特征在于還包括包括所述二進制簽名的二進制文件;以及安全補??;其中所述安全補丁模塊還用于,在所述二進制文件內(nèi)定位了所述二進制簽名后向服務(wù)器請求所述安全補丁,并且把所述安全補丁應(yīng)用于所述二進制文件。
30.一種分發(fā)服務(wù)器,包括數(shù)據(jù)庫;以及分發(fā)模塊,用于接收二進制簽名和安全補丁、把所述二進制簽名和所述安全補丁保存在所述數(shù)據(jù)庫中,并且把所述二進制簽名和所述安全補丁分發(fā)到多臺服務(wù)器。
31.如權(quán)利要求30所述的分發(fā)服務(wù)器,其特征在于,所述分發(fā)模塊還用于從服務(wù)器接收對所述二進制簽名和所述安全補丁的請求,并且響應(yīng)于所述請求而把所述二進制簽名和所述安全補丁分發(fā)到所述服務(wù)器。
32.一種服務(wù)器,包括與二進制文件中的安全性漏洞相關(guān)的二進制簽名;用于修復(fù)所述二進制文件中的所述安全性漏洞的安全補??;以及掃描模塊,用于掃描客戶端計算機上的二進制文件以找到所述二進制簽名,以及如果找到所述二進制簽名則用所述安全補丁更新所述二進制文件。
33.如權(quán)利要求32所述的服務(wù)器,其特征在于還包括數(shù)據(jù)庫;所述掃描模塊還用于從分發(fā)服務(wù)器接收所述二進制簽名和所述安全不懂,并把所述二進制簽名和所述安全補丁保存在所述數(shù)據(jù)庫中。
全文摘要
描述了能夠修復(fù)二進制文件中的安全性漏洞的系統(tǒng)和方法。在無限規(guī)模上,易受攻擊的二進制文件的檢測和修復(fù)在網(wǎng)絡(luò)上是自動的、可靠的、無回歸的且綜合的。這些優(yōu)點可以用各種方法來實現(xiàn),包括例如通過對因特網(wǎng)上廣泛采用的當前反病毒基礎(chǔ)結(jié)構(gòu)進行杠桿作用。通過使用曾經(jīng)與所發(fā)現(xiàn)的安全性漏洞相關(guān)聯(lián)的二進制簽名來實現(xiàn)易受攻擊的二進制文件(例如在操作系統(tǒng)、應(yīng)用程序等中)的可靠發(fā)現(xiàn)。安全補丁與常規(guī)服務(wù)包的偏差提供了為二進制文件中的安全性漏洞產(chǎn)生無回歸修復(fù)的可能性。
文檔編號G06F11/00GK1577272SQ20041006995
公開日2005年2月9日 申請日期2004年7月15日 優(yōu)先權(quán)日2003年7月16日
發(fā)明者O·伊萬諾夫, S·伊萬諾夫 申請人:微軟公司