用于更新經(jīng)授權軟件的系統(tǒng)和方法
【專利摘要】本發(fā)明公開了用于在計算機上更新軟件程序的系統(tǒng)、方法和計算機程序產(chǎn)品。系統(tǒng)檢測更新進程要在計算機上執(zhí)行的嘗試并且檢索關于軟件程序的經(jīng)授權類別的信息來確定所檢測的更新進程是否被授權。當更新進程被授權時,系統(tǒng)(i)將更新進程指定為受信任的進程,(ii)允許更新進程在計算機上下載更新對象,(iii)以及將更新對象指定為受信任的對象。系統(tǒng)隨后檢測安裝進程要安裝更新對象的嘗試,并且根據(jù)策略確定所檢測的安裝進程是否與經(jīng)授權類別相關聯(lián)并且與受信任的更新進程相關。當安裝進程被授權并且與受信任的更新進程相關時,系統(tǒng)允許受信任的安裝進程安裝受信任的更新對象。
【專利說明】用于更新經(jīng)授權軟件的系統(tǒng)和方法
[0001]相關申請的交叉引用
[0002]根據(jù)美國法典第35篇119條(a)_ (d)項,本申請要求于2012年8月10日提交的申請?zhí)枮?012134242的俄羅斯申請的優(yōu)先權,其通過援引的方式在此并入。
【技術領域】
[0003]本公開總地涉及計算機安全領域,并且更具體地,涉及用于更新軟件的系統(tǒng)、方法和計算機程序產(chǎn)品。
【背景技術】
[0004]無法想象現(xiàn)代的辦公室,無論其大小,會沒有計算機網(wǎng)絡。網(wǎng)絡允許在可位于一座建筑物中或位于相遠離地理區(qū)域的多個辦公室中的企業(yè)計算機、筆記本電腦、智能電話、平板電腦、打印機、掃描儀和其他聯(lián)網(wǎng)電子設備之間進行迅速而安全的信息交換。因此,企業(yè)的信息技術(IT)基礎結構可能變得相當復雜并且要求經(jīng)常的管理和支持以維持其操作和解決各種問題。例如,企業(yè)的計算機網(wǎng)絡易受惡意軟件諸如病毒、蠕蟲、特洛伊木馬和其他類型惡意軟件的攻擊的影響。惡意軟件通常利用在計算機上運行的程序和應用程序的漏洞來滲透企業(yè)的安全基礎結構。在大型更新過程期間,惡意軟件經(jīng)常可隱藏在軟件更新中并感染一系列計算機。感染一臺企業(yè)計算機的惡意軟件可隨后迅速地通過網(wǎng)絡傳播并感染其他計算機。由于需要識別受感染的計算機和修復由惡意軟件所造成的損害,以及花費在補救受影響的計算機的工時損失,這些事件不利地影響公司的運作。而且,這些事件可引起機密信息、商業(yè)秘密、專有數(shù)據(jù)的泄漏或損失以及甚至盜竊金錢。那就是為什么對諸如內(nèi)聯(lián)網(wǎng)的企業(yè)網(wǎng)絡的控制是非常重要的原因,特別是當部署在其上的各種應用程序執(zhí)行和更新時。
[0005]對企業(yè)網(wǎng)絡上的程序和應用程序的執(zhí)行和更新的控制通常由軟件安全系統(tǒng)所實施。這些系統(tǒng)使用不同的方法用于控制軟件的執(zhí)行和更新。例如,一些安全系統(tǒng)允許未被明確禁止的所有軟件的執(zhí)行。在這種情況下,管理員可規(guī)定被禁止的應用程序的列表,以便允許所有其他應用程序在計算機上執(zhí)行或更新。其他安全系統(tǒng)禁止未經(jīng)明確允許的所有軟件的執(zhí)行。在這種情況下,管理員可規(guī)定經(jīng)允許的應用程序的列表,以便禁止所有其他應用程序執(zhí)行或更新。就所關心的管理的安全性和有效性而言,使用拒絕執(zhí)行和更新所有被禁止的應用程序的方法的安全系統(tǒng)被認為是更有效的。這些類型的系統(tǒng)有時被稱為“默認拒絕”系統(tǒng)。
[0006]在操作中,進行應用程序控制的“默認拒絕”安全系統(tǒng)經(jīng)常維持經(jīng)授權對象列表(例如,用于網(wǎng)絡中的一臺或多臺計算機的經(jīng)允許的應用程序或程序的列表)。系統(tǒng)將允許執(zhí)行在經(jīng)授權對象列表上的應用程序,并且阻止所有其他應用程序和程序。這些列表可基于諸如唯一對象標識符、數(shù)字簽名、制造商數(shù)據(jù)或其他類型信息的關于應用程序和程序的特定信息來創(chuàng)建。此外,針對不同的用戶可維持不同的經(jīng)授權對象列表。例如,針對圖形設計者的經(jīng)授權應用程序列表可包括圖形設計軟件;而針對會計師的經(jīng)授權應用程序列表將包括會計軟件。這樣,“默認拒絕”安全系統(tǒng)針對不同的用戶維持單獨的經(jīng)授權軟件列表,由此防止未經(jīng)授權用戶訪問未經(jīng)授權軟件。
[0007]通常,“默認拒絕”安全系統(tǒng)在保護企業(yè)計算機免受惡意軟件之害方面是有效的。然而,在軟件更新期間,這些類型的安全系統(tǒng)具有錯誤地禁止執(zhí)行經(jīng)授權軟件或者甚至完全阻止一些軟件更新的風險。這可在當在軟件更新期間由經(jīng)更新的軟件創(chuàng)建附加文件或將附加文件加載到計算機且所述經(jīng)更新的軟件在經(jīng)授權對象列表中未被識別時,或當修改現(xiàn)有文件時發(fā)生。盡管這些新創(chuàng)建的、所加載和/或經(jīng)修改的文件與經(jīng)授權應用程序相關聯(lián)并且因此應被允許在計算機上執(zhí)行,但是“默認拒絕”安全系統(tǒng)通常將阻止這些文件因為它們未出現(xiàn)在經(jīng)授權對象列表中,這導致對惡意軟件的誤報檢測。因此,對于安全系統(tǒng)而言,需要用于控制和管理軟件在企業(yè)計算機上的部署和更新的、最小化惡意軟件的傳播并且同時防止對惡意軟件的誤報檢測。
【發(fā)明內(nèi)容】
[0008]公開了用于在計算機上更新軟件程序的系統(tǒng)、方法和計算機程序產(chǎn)品。在一個示范性實施例中,安全系統(tǒng)檢測更新進程要在計算機上執(zhí)行的嘗試。系統(tǒng)檢索至少包含用于計算機的軟件程序的經(jīng)授權類別的策略。允許來自軟件程序的經(jīng)授權類別的軟件程序在計算機上執(zhí)行。系統(tǒng)由策略來確定所檢測的更新進程是否與軟件程序的經(jīng)授權類別相關聯(lián)。當更新進程與軟件程序的經(jīng)授權類別相關聯(lián)時,系統(tǒng)(i)指定更新進程為受信任的進程,(?)允許受信任的更新進程在計算機上下載用于軟件程序的更新對象,(iii)以及指定軟件程序的更新對象為受信任的對象。
[0009]受信任的更新進程可隨后在計算機上下載受信任的更新對象。受信任的更新對象包含軟件程序更新。系統(tǒng)隨后檢測 安裝進程要在計算機上執(zhí)行的嘗試。在執(zhí)行期間,安裝進程安裝受信任的更新對象。系統(tǒng)由策略來確定所檢測的安裝進程是否與受信任的更新進程有關并且是否與軟件程序的經(jīng)授權類別相關聯(lián)。當安裝進程與受信任的更新進程有關并且與軟件程序的經(jīng)授權類別相關聯(lián)時,系統(tǒng)指定安裝進程為受信任的并且允許受信任的安裝進程在計算機上安裝受信任的更新對象。
[0010]上述示范性實施例的簡化概括用來提供對本發(fā)明的基本理解。該概括不是本發(fā)明所有預期方面的廣泛綜述,并且既不意圖識別所有實施例的關鍵或者重要元素也不意圖劃定任何或者所有實施例的范圍。其唯一目的是以簡化形式呈現(xiàn)一個或多個實施例作為以下本發(fā)明的更詳細說明的前序。為了完成前述內(nèi)容,一個或多個實施例包括權利要求中所描述和所特別指出的特征。
【專利附圖】
【附圖說明】
[0011]附圖合并到本說明書中并且構成本說明書的一部分,示出了本發(fā)明的一個或多個示范性實施例,并且與詳細描述一起,用來解釋實施例的原理和實現(xiàn)方案。
[0012]在附圖中:
[0013]圖1示出了企業(yè)的計算機網(wǎng)絡的示范性實施例。
[0014]圖2示出了程序更新進程的示范性實現(xiàn)方案。
[0015]圖3示出了用于在客戶端計算機上更新經(jīng)授權程序的客戶端-服務器基礎結構的示范性實施例。
[0016]圖4示出了用于更新經(jīng)授權程序的系統(tǒng)的示范性實施例。
[0017]圖5示出了用于在企業(yè)的計算機上更新經(jīng)授權程序的方法的示范性實現(xiàn)方案。
[0018]圖6示出了所公開的用于更新經(jīng)授權程序的系統(tǒng)和方法可在其上實現(xiàn)的通用計算機的示范性實施例。
【具體實施方式】
[0019]本文圍繞用于在企業(yè)或家庭網(wǎng)絡中的計算機上更新經(jīng)授權軟件程序的系統(tǒng)、方法和計算機程序產(chǎn)品描述了本發(fā)明的示范性實施例、實現(xiàn)方案以及各方面。本領域普通技術人員將了解的是,以下描述僅是說明性的并且不意圖以任何方式進行限制。受益于本公開的本領域技術人員將易于獲得其他實施例或實施方案的啟示?,F(xiàn)在將詳細參考如附圖中所示出的示范性實施例的實現(xiàn)方案。在貫穿于附圖和以下描述中將盡可能使用同樣的參考標記來指代相同或類似項。
[0020]圖1示出了由管理服務器所控制的示范性計算機網(wǎng)絡(企業(yè)或家庭辦公室)。網(wǎng)絡101,其可以是包括一個或多個有線或無線局域網(wǎng)的企業(yè)內(nèi)聯(lián)網(wǎng),可包含許多不同的聯(lián)網(wǎng)電子通信設備,諸如臺式計算機、筆記本電腦、平板電腦、智能電話、打印機等等,其在本文中被共同稱為計算機103。連接到網(wǎng)絡101的管理服務器102在計算機103上實施各種管理任務。管理服務器102可對于網(wǎng)絡101是本地的??商娲兀芾矸掌?02可自網(wǎng)絡101是遠程的。在一個實現(xiàn)方案中,管理服務器102可在個體計算機103上部署本地管理代理端(agent)以實施網(wǎng)絡101中的計算機103的各種遠程管理任務。
[0021]在各種實現(xiàn)方案中,管理服務器102可直接或者通過其部署在計算機103上的管理代理端來實施不同的管理任務。這些管理任務可包括但不限于在計算機103上更新反病毒數(shù)據(jù)庫和應用程序、安裝和更新軟件、在計算機103上搜索安全漏洞、管理安全策略和組任務、實施計算機103的軟件和硬件清點(inventory)、在管理服務器102上保存所收集的信息、以及其他類型的遠程管理任務。
[0022]在一個實現(xiàn)方案中,遠程管理服務器102可經(jīng)由因特網(wǎng)與計算機103通信,并且,由于該網(wǎng)絡的不可靠性,可能與一個或多個計算機103失去連接。在這種情況下,管理服務器102可指定網(wǎng)絡101中的任何其上部署管理代理端且與其維持連接的計算機103以作為服務器102的臨時代理(proxy)發(fā)揮作用,來與至少已經(jīng)與其臨時失去連接的計算機103進行通信,直到在服務器102和該計算機之間的連接得到重新建立。因此,所指定的代理計算機103的管理代理端將從服務器102臨時接收管理任務請求并且將其轉發(fā)給網(wǎng)絡101中的所指定的計算機103。
[0023]圖2示出了程序更新進程的示例。每次程序更新變?yōu)榭捎脮r,必須更新安裝在網(wǎng)絡101中的計算機103上的軟件程序。這類更新由于數(shù)個原因而是必需的。例如,軟件可能在其原始代碼中具有錯誤(bug),其在軟件的初始測試期間被遺漏,因此其可能保留在賣給用戶的軟件的最終版本中。這些錯誤可造成軟件不正確地工作、造成軟件消耗過度的系統(tǒng)資源(例如,存儲器、處理器時間)、或者創(chuàng)建可被惡意軟件所利用的安全漏洞。因此,軟件更新提供改正各種已知缺點、去除安全漏洞、和/或擴展或改進軟件的功能性的必需的補救。
[0024]在一個示范性實現(xiàn)方案中,可由更新模塊201發(fā)起和實施在計算機103上所安裝的程序的更新。在一個實現(xiàn)方案中,模塊201可以是正被更新的軟件程序的組件(例如,代碼、腳本和子例程)。在另一個實現(xiàn)方案中,模塊201可以是實施一個或多個相關程序的更新的專用程序(例如,諸如Kaspersky One?的軟件套件)。而在另一個實現(xiàn)方案中,模塊201可以是部署在計算機103上的管理代理端的軟件組件。無論哪一種情況,更新模塊201均可配置為從遠程更新服務器來獲得用于安裝在計算機103上的一個或多個程序的更新,所述遠程更新服務器例如管理服務器102,可由例如制造正被更新的程序的公司或第三方更新服務供應商所托管。
[0025]在一個實現(xiàn)方案中,更新模塊201可周期性地或以預定日期/時間來在將消息發(fā)送到遠程更新服務器以檢查新的更新的計算機103上啟動更新進程205。如果服務器有新的程序更新,那么更新模塊201將更新下載到計算機103。在另一個實現(xiàn)方案中,當更新服務器有新的程序更新時,服務器可發(fā)起程序更新數(shù)據(jù)的傳輸或到更新模塊201的傳輸。
[0026]可提供程序更新作為具有以下文件類型:*.bat、*.cmd、*.js、*.vbs、*.pif中的一個的安裝包202或者作為二進制文件。用于基于Windows的程序的典型安裝包202可以是*.msi或*.msp文件類型。安裝包202典型地包含用于在計算機103上正確更新軟件程序所必需的代碼和數(shù)據(jù)。這類數(shù)據(jù)可包括經(jīng)更新的程序文件、關于目錄結構的信息、OS注冊表信息以及其他類型的數(shù)據(jù)。
[0027]在一個示范性實施例中,安裝模塊203通過在計算機103上啟動安裝進程206來實施程序更新即安裝包202的安裝。在一個實現(xiàn)方案中,安裝模塊203的功能性可包括在更新模塊201中。在Windows OS中,安裝模塊203可以是程序msiexec.exe。模塊203通過跟隨在安裝包202中所包含的指令以及通過使用在該包202中的數(shù)據(jù)來更新程序。在一個實現(xiàn)方案中,在程序更新期間可使用數(shù)個安裝模塊203,與此同時對安裝進程206的控制連續(xù)地從一個安裝模塊203轉移到另一個。還有其他實現(xiàn)方案,此時參與模塊203之間的控制的轉移可以使用例如進程間通信(IPC)機制而以更不明顯的方式完成。應該注意,在一個示范性實現(xiàn)方案中,安裝模塊203中的任何一個均可加載用于正確更新所必需的新安裝包202。而在另一個實現(xiàn)方案中,安裝模塊203可將安裝包202變成臨時文件,并且隨后使用組件對象模型(COM)-服務器機制從該臨時文件初始化包202的安裝。
[0028]應該進一步注意,在程序更新期間,即包202的安裝期間,可從安裝包202和/或舊的程序文件204創(chuàng)建新的程序文件204或者可修改他們的元數(shù)據(jù)(例如,名稱、大小、位置)。在這些情況下,在經(jīng)授權程序即根據(jù)管理策略被允許更新的程序的更新期間,在創(chuàng)建新的或經(jīng)修改的程序文件204期間可能會發(fā)生錯誤,因為關于這些文件或其元數(shù)據(jù)以將這些文件正確地分類為經(jīng)授權或未經(jīng)授權的信息不足。而且,元數(shù)據(jù)可在程序更新期間改變并且可不再與經(jīng)授權元數(shù)據(jù)的類別相對應。在這些情況下,由于未經(jīng)授權,程序的更新可能受到阻止。
[0029]圖3示出了用于在企業(yè)計算機上更新經(jīng)授權程序的客戶端-服務器基礎結構的示范性實施例。系統(tǒng)300包括管理服務器102和多個計算機103。管理服務器102包括控制模塊301、多個管理模塊302以及數(shù)據(jù)存儲303。管理模塊302可包括但不限于清查(inventorization)模塊304、分類模塊305、策略模塊306和網(wǎng)絡拓撲建立模塊(未示出)、用于在計算機上搜索和移除漏洞的模塊(未示出)以及其他模塊。數(shù)據(jù)存儲303包含用于不同程序的更新、網(wǎng)絡101的拓撲上的信息、安全補丁、已知漏洞列表、用于網(wǎng)絡101中的每一個計算機103的軟件和硬件信息、程序分類規(guī)則、程序控制的策略以及其他數(shù)據(jù)。數(shù)據(jù)存儲303可利用由反病毒公司所提供的信息來不斷地更新。
[0030]在一個示范性實施例中,管理服務器102在計算機103上部署管理代理端307。服務器102使用管理代理端307以遠程地管理計算機103上的程序。管理服務器102使用控制模塊301以與計算機103上的代理端307通信以及實施各種遠程任務,諸如清查和分類計算機103上的應用程序和程序、應用安全策略和程序更新和。在一個實現(xiàn)方案中,管理服務器102可使用用于微軟交換服務器的Kaspersky Administration Kit (卡巴斯基管理工具包)、Kaspersky Endpoint Security (卡巴斯基終端安全軟件)、Kaspersky Security (卡巴斯基安全軟件)和/或用于微軟工作站的Kaspersky Ant1-Virus (卡巴斯基反病毒軟件)來實施各種管理任務。
[0031]為了實施計算機103的管理,管理服務器102使用控制模塊301來連接到在計算機103上所部署的管理代理端307。然后,管理服務器102激活清查模塊304來制定管理代理端307要在計算機103上所實施的清查任務。在清查期間,管理代理端307收集關于在計算機103上所安裝的軟件應用程序的信息。所收集的信息可包括但不限于應用程序的版本、由應用程序所使用的數(shù)字簽名、唯一程序標識符(例如,哈希或校驗和)、制造商信息、應用程序安裝路徑等等。為每一個計算機103所收集的信息均由唯一標識符所指定,所述唯一標識符諸如計算機103的序列號、MAC地址、IP地址等等。為每一個計算機103所收集的清點數(shù)據(jù)儲存在數(shù)據(jù)存儲303中,并且可使用與計算機103相關聯(lián)的唯一標識符在存儲303中對其進行搜索。
[0032]可由控制模塊301周期性地實施清查進程,其使得能夠在計算機103上找到由用戶所安裝的新應用程序和程序。這樣,網(wǎng)絡101中的所有已知應用程序的列表總是當前的。而且,在一個實現(xiàn)方案中,當用戶在計算機103上安裝新程序時,管理代理端307可收集關于該程序的信息并且將其發(fā)送到管理服務器102以在存儲303中更新軟件清點數(shù)據(jù)。
[0033]在一個實現(xiàn)方案中,管理模塊302使用分類模塊305來將安裝在計算機103上的應用程序分類為不同的類別。在一個實現(xiàn)方案中,數(shù)據(jù)存儲303儲存軟件分類規(guī)則。這些規(guī)則可基于應用程序的不同的元數(shù)據(jù),比如文件的名稱或唯一標識符、或制造商的名稱等等。例如,用于制造商名稱“Opera Software"的規(guī)則可將該制造商分類為“瀏覽器”。而且,可以有將用于OS的操作所必需的所有應用程序和文件分組為類別“操作系統(tǒng)的文件”的規(guī)貝U。而且,例如,可以有將需要更新的所有應用程序分組為類別“用于更新的應用程序”的規(guī)則。而且,可以有將受信任的、非惡意的應用程序分類為被授權以在計算機103上安裝和執(zhí)行的應用程序的規(guī)則。分類模塊305可將這類經(jīng)授權的應用程序放置到經(jīng)授權類別“經(jīng)授權應用程序”中。
[0034]在一個實現(xiàn)方案中,分類模塊305通過對存儲在存儲303中的數(shù)據(jù)運用分類規(guī)則來對安裝在計算機103上的所有應用程序進行分類。一旦程序分類為一個或多個類別,則分類模塊305在數(shù)據(jù)存儲303中將用于每個程序的分類信息添加到用于該程序的軟件清點數(shù)據(jù)。在一個示范性實現(xiàn)方案中,可從由提供反病毒服務的公司所維持的遠程數(shù)據(jù)庫接收分類規(guī)則,該提供反病毒服務的公司諸如Kaspersky Lab (卡巴斯基實驗室)。在這種情況下,分類模塊305可連接到遠程數(shù)據(jù)庫以對尚未由來自存儲303的規(guī)則所分類的應用程序加以分類,或者以接收新分類規(guī)則。分類模塊305還可通過類別來過濾安裝在計算機103上的程序以識別哪些計算機103具有屬于特定類別的程序。在另一個示范性實現(xiàn)方案中,系統(tǒng)管理員可創(chuàng)建由不同計算機用戶所授權使用的程序的自定義類別,在該類別中包括例如特定的軟件包、圖形設計軟件、任務計劃器以及由用戶所使用的瀏覽器。
[0035]在一個示范性實施例中,管理模塊302和分類模塊305有權訪問遠程的干凈對象數(shù)據(jù)庫。該數(shù)據(jù)庫可由反病毒公司提供(圖3未示出)。干凈對象數(shù)據(jù)庫可包含關于諸如經(jīng)授權(或受信任的)對象的信息,諸如各種文件、參考資料等。這類數(shù)據(jù)庫包含關于所有“干凈”的即其不承載惡意功能并且可在計算機103上安全地安裝和執(zhí)行的應用程序的非常大量的信息。分類模塊305可與前述數(shù)據(jù)庫連接以確定計算機103上存在哪些未經(jīng)授權的(或不受信任的)程序。為此目的,分類模塊305可將其在計算機103的軟件清查期間所收集的信息與來自干凈對象數(shù)據(jù)庫的信息加以比較。在一個實現(xiàn)方案中,數(shù)據(jù)存儲303包含用于分類未知(或不受信任的)對象的規(guī)則。這樣的規(guī)則將允許對其數(shù)據(jù)在清查期間被收集,并且其數(shù)據(jù)在遠程的干凈對象數(shù)據(jù)庫處不存在的應用程序加以分類。分類模塊305通過對在清查的進程期間所收集的數(shù)據(jù)運用規(guī)則來確定這類應用程序的分類。
[0036]在一個示范性實現(xiàn)方案中,系統(tǒng)還支持反向操作。知悉已經(jīng)被分類為不受信任的應用程序實際上并非惡意的管理員可改變該應用程序的類別。同時,分類模塊305可將經(jīng)更新的分類信息發(fā)送給反病毒公司。例如,分類模塊305可將經(jīng)重新分類的應用程序的元數(shù)據(jù)發(fā)送給反病毒公司,諸如文件名稱、唯一標識符、制造商名稱和其他將應用程序分類為干凈的信息。反病毒公司可檢查應用程序的新分類的準確度并且通過將主題應用程序包括在干凈對象數(shù)據(jù)庫中來更新干凈對象數(shù)據(jù)庫。而且,可由反病毒公司來自動完成類似動作。例如,可將該特定應用程序不是惡意的信息發(fā)送給反病毒公司的服務器,其將在一定數(shù)目的用戶已經(jīng)發(fā)送類似信息之后更新干凈對象數(shù)據(jù)庫。
[0037]在另一個實現(xiàn)方案中,知悉特定應用程序被分類模塊305放置在錯誤類別中的管理員可在數(shù)據(jù)存儲303中改變該應用程序的類別。同時,分類模塊305可將關于應用程序的重新分類的信息發(fā)送給反病毒公司。在另一個實現(xiàn)方案中,當管理員無法確鑿地確定是否應將某一應用程序分類為經(jīng)授權(或受信任)時,其請求反病毒公司的服務器以實施應用程序的遠程分類。這類動作幫助反病毒公司創(chuàng)建新的分類規(guī)則并且改正舊規(guī)則。然后,新的或所改正的分類規(guī)則用來更新數(shù)據(jù)存儲303。
[0038]在一個示范性實施例中,管理模塊302還可包括策略模塊306,所述策略模塊306生成和運用對在計算機103上安裝和執(zhí)行應用程序和程序進行控制的策略。在一個實現(xiàn)方案中,策略是規(guī)定哪些用戶可在計算機103上使用哪些應用程序的規(guī)則的集合。該規(guī)則的集合起碼包括幫助基于程序的元數(shù)據(jù)來確定計算機103上的每個應用程序屬于哪個類別的規(guī)則,以及幫助確定哪個應用程序可由哪些用戶執(zhí)行的規(guī)則。還有對強加給特定用戶的各種限制加以規(guī)定的規(guī)則,其禁止某些應用程序的某些功能。對程序功能性進行限制的規(guī)則的示例是這樣一個規(guī)則,當某些用戶執(zhí)行應用程序時,其拒絕應用程序訪問某些網(wǎng)絡端口。而且,其他規(guī)則可對某些用戶完全禁止某些程序的使用。
[0039]在一個示范性實現(xiàn)方案中,可以為計算機103的每個用戶生成不同的策略。換句話說,對一個用戶所允許的動作可以對另一個用戶不允許,無論在同一臺計算機103上或在不同的計算機103上。不允許使用由策略所禁止的應用程序類別。這樣,為了禁止來自類別“Games”的所有應用程序的使用,不在來自一系列的管理模塊302的策略模塊306的幫助下創(chuàng)建策略是足夠的。因此,如果應用程序未列在某個用戶的策略中的應用程序的經(jīng)授權類別中,則禁止該用戶在計算機103上使用該應用程序。
[0040]如上文所解釋的,用于每個計算機103的策略包含用來確定在計算機103上由用戶所安裝/執(zhí)行的應用程序是否屬于應用程序的經(jīng)授權類別的規(guī)則的集合,利用該規(guī)則允許用戶進行工作。在一個實現(xiàn)方案中,該規(guī)則的集合用來在計算機103上生成/更新經(jīng)授權對象的數(shù)據(jù)庫308。例如,策略可包含用于計算機103的特定用戶的所有經(jīng)授權應用程序的列表。該列表不但可包含經(jīng)授權應用程序的名稱,而且可包含經(jīng)授權應用程序的其他元數(shù)據(jù)諸如唯一標識符,諸如哈希表或校驗和、數(shù)字簽名等等。策略模塊306配置為將這類策略轉移到網(wǎng)絡101中的計算機103以允許計算機用戶僅利用經(jīng)授權的應用程序和程序進行工作。在一個實現(xiàn)方案中,策略模塊306可生成轉移策略到某些計算機103的任務并且將其發(fā)送到控制模塊301。控制模塊301在所規(guī)定的計算機103上與管理代理端307建立連接并且將適當?shù)目刂撇呗园l(fā)送到每個計算機103。計算機103上的管理代理端307在計算機103上執(zhí)行這些策略。同時,對經(jīng)授權應用程序加以規(guī)定的規(guī)則的集合存儲在經(jīng)授權對象的數(shù)據(jù)庫308中。
[0041]在一個示范性實現(xiàn)方案中,管理代理端307配置為不斷地監(jiān)控計算機103的操作以識別用戶在計算機上啟動應用程序的嘗試。如果做出了這樣的嘗試,那么代理端307可根據(jù)適當?shù)目刂撇呗詠泶_定是否允許由該特定用戶在該特定計算機103上啟動該應用程序。代理端307通過將應用程序的元數(shù)據(jù)與存儲在經(jīng)授權對象的數(shù)據(jù)庫308中的規(guī)則相比較來完成該過程。如果比較顯示應用程序與應用程序的經(jīng)授權類別相對應,那么將允許在計算機103上啟動該應用程序。特別地,管理代理端307可使用規(guī)則的第一集合來確定該應用程序所屬類別。然后,代理端307可使用規(guī)則的第二集合來確定在計算機103上是否可由該用戶啟動來自該類別的應用程序。因此,當策略包括針對計算機103的特定用戶的在應用程序的某些類別內(nèi)的經(jīng)授權應用程序的列表,以及對用戶在計算機103上嘗試啟動的應用程序的元數(shù)據(jù)與經(jīng)授權應用程序的列表的比較指示該應用程序落入應用程序的經(jīng)授權類別時,管理代理端307允許在計算機103上啟動應用程序。
[0042]在一個示范性實施例中,策略可能并不被發(fā)送到每個計算機103 ;反而,用于所有計算機103的策略可存儲在中央數(shù)據(jù)庫中,諸如管理服務器102的數(shù)據(jù)存儲303。在該實現(xiàn)方案中,計算機103上的管理代理端307將例如基于應用程序的元數(shù)據(jù)來確定正嘗試在計算機103上啟動什么應用程序,并且將向管理服務器102發(fā)送詢問以解決該應用程序是否被授權在計算機103上執(zhí)行。服務器將檢查存儲在數(shù)據(jù)存儲303中的控制策略和并應答指示是否允許或者不允許應用程序在計算機103上由用戶執(zhí)行。
[0043]總之,為了在企業(yè)網(wǎng)絡101中的計算機上實施應用程序的有效管理,有必要在計算機103上實施軟件的清查、對所有應用程序和程序分類、并且生成和運用用于計算機103的每個用戶的控制策略,以便在計算機103上僅可啟動經(jīng)授權的應用程序。
[0044]圖4顯示了用于在計算機103上更新經(jīng)授權程序的系統(tǒng)的示范性實施例。系統(tǒng)400包括更新模塊201 (其可以是發(fā)起程序更新的應用程序)、安裝模塊203 (其可以是用于安裝程序更新的應用程序)、管理代理端307和經(jīng)授權對象的數(shù)據(jù)庫308。在更新進程期間,系統(tǒng)使用安裝包202 (未示出)和新的以及經(jīng)更新的程序文件204 (未示出)。為了該系統(tǒng)400工作,應提前定義經(jīng)授權應用程序的類別。而且,應為計算機103的所有用戶生成策略以識別允許哪些用戶在計算機103上利用哪些程序來工作。因此,根據(jù)分類,安裝在計算機103上的需要更新或者實施更新服務的所有軟件都可放進經(jīng)授權類別“用于更新的應用程序”中??蔀樵擃悇e生成用于計算機103的所有用戶的策略,其將允許用戶僅使用經(jīng)授權的程序。此外,策略中可提供的是,由經(jīng)授權的程序或應用程序所創(chuàng)建的新的和經(jīng)更新的程序文件204可被自動指定為“受信任的”以便該系統(tǒng)有效地發(fā)揮作用。因此,在一個實現(xiàn)方案中,系統(tǒng)將創(chuàng)建這樣的規(guī)則,其將由經(jīng)授權程序在更新進程期間所創(chuàng)建的新的或經(jīng)更新的程序文件指定為受信任的。例如,在一個實現(xiàn)方案中,如果在更新進程的操作或者程序的操作期間創(chuàng)建這些文件,那么可將新參數(shù)“可信賴性(trustworthiness)”作為元數(shù)據(jù)添加到新的或者經(jīng)更新的程序文件204。用于新的或經(jīng)更新的程序文件204的這些以及其他的元數(shù)據(jù)參數(shù),諸如這些文件的標識符,可存儲在經(jīng)授權對象的數(shù)據(jù)庫308中用于繼續(xù)更新進程。
[0045]在另一個實現(xiàn)方案中,用于安裝更新的計算機103上的所有軟件可放置在單獨的經(jīng)授權類別“用于安裝的應用程序”下??蔀樵擃悇e生成用于所有計算機103的策略。該策略將允許那些應用程序實施安裝功能。此外,為了該系統(tǒng)發(fā)揮作用,可以安裝模塊203也將成為受信任的方式生成用于該類別的策略,以給予模塊203對其他受信任的、在來自經(jīng)授權類別“用于更新的應用程序”的經(jīng)授權應用程序的工作期間所生成的對象的訪問權限。因此,在用于類別“用于安裝的應用程序”的該策略內(nèi),可以存在假如提供到受信任的對象的訪問權限則將指示安裝模塊203受信任的規(guī)則。于是,這些規(guī)則可允許創(chuàng)建用于安裝模塊203的新的程序文件204。在由模塊201所發(fā)起的更新進程的生命期期間,那些文件也將被指定為受信任的。
[0046]應該注意,上述類別可存儲在計算機103上的經(jīng)授權對象的數(shù)據(jù)庫308中。這些類別可由分類模塊305自動生成或由管理員生成。它們還可基于外部的專家知識,諸如由反病毒公司所給定的信息。
[0047]圖5示出了可由系統(tǒng)400 (圖4)所實施的、用于更新經(jīng)授權程序的方法的示范性實現(xiàn)方案。在步驟501處,方法確定在計算機103上發(fā)起程序更新的更新模塊201是否被允許在計算機103上執(zhí)行。如上文所解釋的,為了確定用戶在何時嘗試在計算機上啟動軟件程序,管理代理端307配置為監(jiān)控它安裝于其上的計算機103的資源。一旦管理代理端307檢測到在計算機103上啟動更新模塊201的嘗試,則代理端307還確定該更新模塊201是否被授權以在計算機103上執(zhí)行。為此,管理代理端307配置為識別更新模塊201的元數(shù)據(jù)。管理代理端307可隨后將該元數(shù)據(jù)中的至少一類(例如,更新模塊201的名稱)與存儲在經(jīng)授權對象的數(shù)據(jù)庫308中的信息諸如經(jīng)授權程序的類別以及相關聯(lián)的策略相比較?;诒容^的結果,管理代理端307確定更新模塊201是否屬于程序的經(jīng)授權類別。在一個實現(xiàn)方案中,管理代理端307還可使用確定來自程序的經(jīng)授權類別的該更新模塊201是否可自動啟動或者由計算機103的用戶所啟動。
[0048]在步驟502處,如果管理代理端307基于關于經(jīng)授權對象的信息而確定更新模塊201未被授權在計算機103上執(zhí)行,那么在步驟503處,管理代理端307阻止更新模塊201的執(zhí)行。如果有明確禁止在計算機103上執(zhí)行特定更新模塊201的策略,或者如果沒有允許執(zhí)行該更新模塊201的策略,則可阻止該更新模塊201。然而,在步驟502處,如果管理代理端307基于關于經(jīng)授權對象的信息而確定更新模塊201被授權在計算機103上執(zhí)行,則在步驟504處,代理端307允許執(zhí)行更新模塊201。當模塊201的元數(shù)據(jù)列在經(jīng)授權類別“用于更新的應用程序”中或者列于在計算機103上的經(jīng)授權對象的數(shù)據(jù)庫308中所存儲的相關聯(lián)的策略中時,可允許更新模塊201在計算機103上執(zhí)行。
[0049]在更新模塊201的執(zhí)行期間,模塊啟動更新進程205,該更新進程205在計算機103上下載與更新模塊201相關聯(lián)的安裝包202。由于更新模塊201屬于程序的經(jīng)授權類別,因此用于計算機103的策略可將由更新模塊201所啟動的所有進程(例如,更新進程205)和作為更新模塊的執(zhí)行的結果而所創(chuàng)建/所下載的所有對象(例如,安裝包202)指定為受信任的進程和對象。在一個示范性實現(xiàn)方案中,管理代理端307可在經(jīng)授權對象的數(shù)據(jù)庫308中對更新進程205的元數(shù)據(jù)和安裝包202的元數(shù)據(jù)進行更新以包括“受信任的”的屬性。然后,更新模塊201將所下載的安裝包202轉移到安裝模塊203。
[0050]在步驟505處,管理代理端307確定是否允許在計算機103上執(zhí)行安裝模塊203。如上文所解釋的,安裝模塊201啟動在計算機103上安裝安裝包202的安裝進程206。例如,Windows OS中的程序msiexec.exe可以是用于*.msi文件類型的安裝包202的安裝模塊203。在一個實現(xiàn)方案中,管理代理端307配置為確定安裝模塊203的元數(shù)據(jù)以及將該元數(shù)據(jù)的至少一類(例如,安裝模塊203的名稱)與來自經(jīng)授權對象的數(shù)據(jù)庫308的信息相比較,來自經(jīng)授權對象的數(shù)據(jù)庫308的信息諸如程序的經(jīng)授權類別和相關聯(lián)的策略。基于比較的結果,管理代理端307確定安裝模塊203是否屬于程序的經(jīng)授權類別,諸如類別“用于更新的應用程序”。在步驟507處,如果安裝模塊203被確定為被授權,則在步驟508處,管理代理端307將允許在計算機103上執(zhí)行安裝模塊203。然而,在步驟506處,如果安裝模塊203被確定為未被授權,則在步驟507處,管理代理端307將阻止在計算機103上執(zhí)行安裝模塊203。
[0051]此外,管理代理端307可基于更新模塊201和安裝模塊203之間的關系來確定是否允許或不允許在計算機103上執(zhí)行安裝模塊203。例如,經(jīng)授權對象的數(shù)據(jù)庫308中的策略可包括這樣的規(guī)則,該規(guī)則指示只有對象(或進程)列在程序的經(jīng)授權類別中(或具有“受信任的”屬性)才允許該對象(或進程)執(zhí)行,并且該對象(或進程)由經(jīng)授權的對象所創(chuàng)建,那么該子對象(或進程)就應被認為是受信任的。在這種情況下,如果管理代理端307確定安裝模塊203 (或安裝進程206)是更新模塊201 (或更新進程205)的子并且安裝模塊203(或安裝進程206)與程序的經(jīng)授權類別列在一起時,那么在步驟508處,管理代理端307將允許安裝模塊203的執(zhí)行。然而,如果安裝模塊203并非由經(jīng)授權的更新模塊201所創(chuàng)建或者未與程序的經(jīng)授權類別列在一起,那么在步驟507處,管理代理端307可阻止在計算機103上安裝模塊203的執(zhí)行。
[0052]在步驟508處,在執(zhí)行期間,安裝模塊203啟動安裝進程506,其在計算機103上安裝安裝包202。由于安裝包202屬于受信任的程序類別(例如,具有“受信任的”屬性的元數(shù)據(jù))和/或安裝模塊203被認為是經(jīng)授權的程序,因此用于計算機103的策略可將自受信任的、由經(jīng)授權的安裝模塊203所執(zhí)行的安裝包202所創(chuàng)建的或由該安裝包202所修改的所有更新程序文件204指定為受信任的進程和對象。在一個實現(xiàn)方案中,管理代理端307可在經(jīng)授權對象的數(shù)據(jù)庫308中更新新創(chuàng)建的或新修改的程序更新文件204的元數(shù)據(jù)以包括“受信任的”屬性。該信任的轉移允許更新系統(tǒng)400的平穩(wěn)操作。
[0053]在一個示范性實現(xiàn)方案中,當完成經(jīng)授權應用程序計算機103的更新時,管理代理端307可連接到管理服務器102以將新的或經(jīng)修改的程序文件轉發(fā)到服務器,使得關于該應用程序的信息存儲在數(shù)據(jù)存儲303中用于將來使用。如上文所解釋的,在一個示范性實現(xiàn)方案中,管理服務器102的控制模塊301有權訪問由反病毒公司所提供的遠程的干凈對象數(shù)據(jù)庫。因此,一旦控制模塊102接收用于數(shù)據(jù)存儲303的更新諸如新的或經(jīng)修改的程序文件的元數(shù)據(jù),就可將該信息轉發(fā)到遠程的干凈對象數(shù)據(jù)庫,如果后者缺少該信息的話。在另一個實現(xiàn)方案中,計算機103上的管理代理端307可直接連接到遠程的干凈對象數(shù)據(jù)庫并且將關于新的或經(jīng)修改的程序文件的信息發(fā)送到數(shù)據(jù)庫。
[0054]圖6描繪了計算機系統(tǒng)5的一個示范性實施例,其可用于實現(xiàn)本文所述的用于更新經(jīng)授權軟件的系統(tǒng)和方法。如所示的,計算機系統(tǒng)5可包括由系統(tǒng)總線10所連接的一個或多個硬件處理器15、存儲器20、一個或多個硬盤驅動器30、光學驅動器35、串行端口 40、圖形卡45、聲卡50和網(wǎng)卡55。系統(tǒng)總線10可以是數(shù)個類型的總線結構中的任何一種,包括使用各種已知的總線架構中的任何一種的存儲器總線或存儲器控制器、外圍總線和局部總線。處理器15可包括一個或多個Imel? Core2Quad2.33GHz處理器或其他類型的微處理器。
[0055]系統(tǒng)存儲器20可包括只讀存儲器(ROM) 21和隨機存取存儲器(RAM) 23??稍谌鏒RAM(動態(tài)RAM)、EPR0M、EEPR0M、閃存或其他類型的存儲器架構中實現(xiàn)存儲器20。R0M21存儲基本輸入/輸出系統(tǒng)22 (BIOS),該BIOS包含有助于在計算機系統(tǒng)5的組件之間轉移信息的基本例程,諸如在啟動期間。RAM23存儲諸如Windows? XP Professional或其他類型操作系統(tǒng)的操作系統(tǒng)24 (OS),該操作系統(tǒng)24在計算機系統(tǒng)5中負責程序的管理和協(xié)調以及硬件資源的分配和共享。存儲器20也存儲應用程序和程序25。存儲器20還存儲由程序25所使用的各種運行時數(shù)據(jù)26。
[0056]計算機系統(tǒng)5可進一步包括諸如SATA磁性硬盤驅動器(HDD)的硬盤驅動器30,以及用于讀取自或寫入到諸如CD-ROM、DVD-ROM或其他光學媒介的可移動光盤的光盤驅動器35。驅動器30和35及其相關聯(lián)的計算機可讀媒介提供了實現(xiàn)本文所公開的算法和方法的計算機可讀指令、數(shù)據(jù)結構、應用程序以及程序模塊/子例程的非易失性存儲。盡管示例性計算機系統(tǒng)5采用磁盤和光盤,但是本領域技術人員應該理解,可存儲由計算機系統(tǒng)5可訪問的數(shù)據(jù)的其他類型的計算機可讀媒介,諸如磁帶盒、閃存卡、數(shù)字視頻盤、RAM、ROM、EPROM以及其他類型的存儲器,也可在計算機系統(tǒng)5的替代實施例中使用。
[0057]計算機系統(tǒng)5進一步包括諸如通用串行總線(USB)的多個串行端口 40,其用于連接數(shù)據(jù)輸入設備75,諸如鍵盤、鼠標、觸摸板以及其他設備。串行端口 40還可用來連接數(shù)據(jù)輸出設備80以及其他外圍設備85,數(shù)據(jù)輸出設備80諸如打印機、掃描儀和其他設備,其他外圍設備85諸如外部數(shù)據(jù)存儲設備等等。系統(tǒng)5還可包括聲卡50,用于經(jīng)由內(nèi)部或外部揚聲器65重現(xiàn)聲音。此外,系統(tǒng)5可包括諸如以太網(wǎng)、WiF1、GSM、藍牙或其他有線的、無線的或蜂窩網(wǎng)絡接口的網(wǎng)卡55,用于將計算機系統(tǒng)5連接到諸如因特網(wǎng)的網(wǎng)絡70。
[0058]在各種實施例中,本文所述的系統(tǒng)和方法可在硬件、軟件、固件或其任何組合中實現(xiàn)。如果在軟件中實現(xiàn),則方法可在非暫時性計算機可讀介質上存儲為一個或多個指令或代碼。計算機可讀介質包括數(shù)據(jù)存儲。以示例的方式但并非限制,這類計算機可讀介質可包括RAM、ROM、EEPR0M、CD-ROM、閃速存儲器或其他類型的電、磁或光存儲介質、或任何其他可用來以指令或數(shù)據(jù)結構的形式承載或存儲所期望的程序代碼并可由計算機所訪問的介質。
[0059]為了清晰起見,本文沒有公開系統(tǒng)和方法的所有常規(guī)特征。應該理解,在任何實際的實現(xiàn)方案的開發(fā)中,為了達到開發(fā)者的特定目標,必需制定大量特定于實現(xiàn)方案的決策,并且這些特定目標將針對不同的實現(xiàn)方案和不同的開發(fā)者而變化。應該理解,這類開發(fā)工作可能是復雜并且耗時的,但是其對于從本公開中受益的本領域普通技術人員而言仍然會是常規(guī)的工程任務。
[0060]此外,應理解的是,本文所使用的措辭或術語是為了描述而不是限制,使得本領域技術人員根據(jù)本文所呈現(xiàn)的教導和指導并結合相關領域技術人員的知識來解釋本說明書的術語或措辭。此外,除非如此明確地予以闡述,否則對于說明書或權利要求中的任何術語都并非旨在將其歸結為不常見的或特殊的意義。
[0061]本文所公開的各種實施例包括本文以例示方式所指的已知組件現(xiàn)在的和將來的已知等同物。此外,雖然已示出并描述了實施例和應用,但對于從本公開中受益的本領域技術人員顯而易見的是,比以上所提到內(nèi)容更多的修改是可能的,而不脫離本文所公開的發(fā)明構思。
【權利要求】
1.一種用于在計算機上更新軟件程序的方法,所述方法包括: 檢測更新進程要在所述計算機上執(zhí)行的嘗試,其中在執(zhí)行期間,所述更新進程下載用于軟件程序的更新對象; 檢索至少包含用于所述計算機的軟件程序的經(jīng)授權類別的策略,其中所述經(jīng)授權類別包括經(jīng)允許在所述計算機上執(zhí)行和更新的軟件程序; 從所述策略確定所檢測的更新進程是否與軟件程序的所述經(jīng)授權類別相關聯(lián); 當所述更新進程與軟件程序的所述經(jīng)授權類別相關聯(lián)時,(i)將所述更新進程指定為受信任的進程,(ii)允許所述受信任的更新進程在所述計算機上下載用于軟件程序的更新對象,(iii)以及將所述軟件程序的所述更新對象指定為受信任的對象; 由所述受信任的更新進程在所述計算機上下載所述受信任的更新對象,其中所述受信任的更新對象包含軟件程序更新; 檢測安裝進程要在所述計算機上執(zhí)行的嘗試,其中在執(zhí)行期間,所述安裝進程安裝所述受信任的更新對象; 從所述策略確定所檢測的安裝進程是否與所述受信任的更新進程相關并且與軟件程序的所述經(jīng)授權類別相關聯(lián);以及 當所述安裝進程與所述受信任的更新進程相關并且與軟件程序的所述經(jīng)授權類別相關聯(lián)時,將所述安裝進程指定為受信任的并且允許所述受信任的安裝進程在所述計算機上安裝所述受信任的更新對象。
2.根據(jù)權利要求1所述的方法,進一步包括: 當所述更新進程不與軟件程序的所述經(jīng)授權類別相關聯(lián)時,阻止所述更新進程要在所述計算機上執(zhí)行的所述嘗試; 當所述安裝進程不與所述受信任的更新進程相關時,從所述策略確定所述安裝進程是否與經(jīng)授權類別相關聯(lián);以及 當所述安裝進程不與所述經(jīng)授權類別相關聯(lián)時,阻止所述安裝進程要在所述計算機上安裝所述更新對象的所述嘗試。
3.根據(jù)權利要求1所述的方法,其中確定所述安裝進程是否與所述受信任的更新進程相關進一步包括,確定所述安裝進程是否是所述受信任的更新進程的子進程。
4.根據(jù)權利要求1所述的方法,進一步包括: 在所述計算機上部署遠程管理服務器的管理代理端; 由所述管理代理端收集關于安裝在所述計算機上的軟件程序的信息;以及 將所收集的信息發(fā)送到所述遠程管理服務器。
5.根據(jù)權利要求4所述的方法,進一步包括; 基于所述所收集的信息對所述軟件程序進行分類;以及 生成包含軟件程序的經(jīng)授權類別的策略,其中允許來自所述經(jīng)授權類別的軟件程序在所述計算機上執(zhí)行和更新。
6.根據(jù)權利要求5所述的方法,其中從所述策略確定所述更新進程是否與軟件程序的所述經(jīng)授權類別相關聯(lián)進一步包括: 確定是否允許所述計算機的給定用戶啟動所述更新進程。
【文檔編號】G06F21/57GK103530563SQ201310349574
【公開日】2014年1月22日 申請日期:2013年8月12日 優(yōu)先權日:2012年8月10日
【發(fā)明者】安德烈·Y·索洛多思尼克夫, 基里爾·N·克魯格洛夫 申請人:卡巴斯基實驗室封閉式股份公司