本申請要求2015年6月30日提交的俄羅斯聯邦的專利申請No.2015125968的權益,其內容通過引用被合并于此。
技術領域
本發(fā)明一般地涉及信息系統(tǒng)安全,并且更具體地,涉及一種一般信息處理功能與安全保障運算分離的安全布置。
發(fā)明背景
現今的計算機和軟件技術解決著廣泛的任務,從簡單的玩游戲或創(chuàng)建文檔,到非常復雜的,如控制工業(yè)設施。這種計算機化急劇地提高了保證計算機安全的必要性。安全性對家庭計算機用戶來說很重要,因為惡意的軟件,例如病毒,計算機蠕蟲及木馬程序非常普遍,且可以成為制造網絡犯罪的工具,例如從銀行賬戶中盜竊資金。但安全事項對關鍵基礎設施及工業(yè)系統(tǒng)來說尤其重要。例如,震網計算機蠕蟲證明已經存在軟件可以被用作非法數據收集及破壞工業(yè)公司、發(fā)電廠、機場和其他關鍵設備設施的自動處理控制系統(tǒng)(APCS)的工具。確保安全是一個非常重要的話題,在家庭計算機及工業(yè)系統(tǒng)的操作中應被及時解決。
目前,軟件具有自己的安全相關的功能,可以與操作系統(tǒng)的安全功能分離或結合。換句話說,在今天的操作系統(tǒng)和軟件中,安全和功能的邏輯可以被聯合起來。這種方法有其缺點。例如,犯罪者利用功能性邏輯中的錯誤和零日漏洞通常可以繞開指定的安全等級。例如TCP/IP協議棧,一組網絡協議,其中一個協議位于低級操作“以上”的高級操作中,其使用封裝機制。這組協議功能性上被設計用來傳遞網絡上的信息。同時,微軟公司的操作系統(tǒng)由于在IPv4數據包的處理過程中TCP/IP協議棧中的錯誤而包含隱患。遠程用戶可以使用特別創(chuàng)建的數據包結束系統(tǒng)操作。另外一個例子是NTFS文件系統(tǒng),其具有自己的安全機制-例如,訪問分化。因此,啟動磁盤上信息塊訪問的NTFS驅動程序也執(zhí)行訪問控制。如果這些安全功 能被從驅動程序中移除,則NTFS文件系統(tǒng)將會容易受到許多可能的攻擊。
此外,目前存在的OS的保護機制不足以面對施加于信息系統(tǒng)上的機密性和完整性的請求。信息系統(tǒng)的多樣性和其中發(fā)起的應用創(chuàng)造了大量的不同的安全請求,使多種形式的安全策略成為必須。一種安全體系架構必須是充分可靠的,并可以靈活地支持大量的安全策略。
作為一種自動化系統(tǒng)的安全體系架構的例子,Flask授權訪問控制體系架構被提出;它被國家安全局(NSA)及安全計算公司(SCC)聯合開發(fā),且以類型強制(TE)機制為基礎。所述Flask體系架構被集成到Linux OS的內核中。這一計劃被命名為SELinux(安全增強Linux)。
在Flask體系架構下,一個單獨的組件被分派到OS中,稱為安全服務器,安全策略被實施在其中。安全服務器提供了對OS其他部件的一種特殊的編程接口,從而允許其他部件接受安全策略解決方案。OS的其他組件被稱為對象管理器。例如,文件系統(tǒng)是一個文件管理器。Flask體系架構只界定了安全服務器為對象管理器提供的接口。在SELinux中,安全服務器支持以下三種訪問控制機制:類型強制(TE-類型強制),基于角色的控制(RBAC-基于角色的訪問控制),和多級安全(MLS-多級安全)。這些安全模型在體系架構中是難寫的,且這一表單的任意變化都將導致必須在體系架構的主要組件中做出改變(即在安全服務器和對象管理器中)。
上述的例子遭受了功能和安全之間缺乏差異化的問題。任何既保證功能又保證安全的軟件模塊如果被犯罪者利用,可讓犯罪者繞開系統(tǒng)安全,且例如提升執(zhí)行犯罪者動作需要的進程的特權。
技術實現要素:
本發(fā)明的一個方面是針對用于提供一種計算機安全體系架構的系統(tǒng)。所述系統(tǒng)包括計算硬件,其包括至少一個處理器,數據存儲器,及與所述至少一個處理器相連接的輸入/輸出設備。所述數據存儲器包括一個操作系統(tǒng)和多個由所述至少一個處理器執(zhí)行的主題實體。主題實體的例子包括計算機系統(tǒng),應用程序,進程,網絡設備,移動電話,工業(yè)基礎設施中的多種設備,等等。
所述數據存儲進一步包括一個安全子系統(tǒng),由所述至少一個處理器執(zhí)行,當其被執(zhí)行時會引起計算硬件實現安全服務器引擎,多個網關引擎和安全強制引擎。
所述安全服務器配置為將從定義一個或多個安全性策略的一組規(guī)則中所選出的規(guī)則應用到給定的一組安全環(huán)境參數。這產生了安全裁定,其代表主題實體請求的一個特定動作是否是可允許的,一個或多個安全策略中的每一個與對應的通信接口相關聯。
所述多個網關引擎中的每一個都至少與一個主題實體關聯,且專用于與所述安全服務器相連接。每一個所述網關引擎都配置為監(jiān)控相關聯的主題實體所請求的動作,并且對于每個檢測到的被請求的動作,識別安全環(huán)境,基于對應的已識別的安全環(huán)境,針對被請求的動作,確定適用的安全策略,并且通過對應于適用的安全策略的通信接口從安全服務器引擎請求安全裁定。
所述安全強制引擎配置為根據所述安全裁定,允許或拒絕每一個被請求的動作。
在本發(fā)明的一個相關方面中,一種用于執(zhí)行計算機安全體系架構的方法包括將從定義一個或多個安全策略的一組規(guī)則中選定的規(guī)則應用到給定的一組安全環(huán)境參數,以產生安全裁定,每個安全裁定代表主題實體請求的特定的動作是否是可允許的,并且所述一個或多個安全策略中的每一個與對應的通信接口相關聯。所述方法進一步包括執(zhí)行多個網關引擎,每個網關引擎與至少一個所述主題實體相關聯且專用于與所述安全服務器相連接。所述網關引擎中的每一個執(zhí)行對相關主題實體請求的動作的監(jiān)控,并且針對每一個被檢測到的被請求的動作,識別安全環(huán)境。
基于對應的已識別的安全環(huán)境,一種適用的安全策略由所述被請求的動作決定,并且經由對應于所述適用的安全策略的通信接口,從所產生的安全裁定中獲得安全裁定。根據所述安全裁定,一個安全強制決定被做出,以允許或拒絕每一個被請求的動作。
附圖說明
聯系附圖考慮以下本發(fā)明多種實施例的詳細描述,本發(fā)明應被更完全地理解,其中:
圖1是說明根據本發(fā)明的一個實施例的實現一種安全體系架構的操作系統(tǒng)的應用操作的基本例子的示圖。
圖2是說明根據一個實施例的一種示例性安全系統(tǒng)的示圖。
圖3是說明根據本發(fā)明一個實施例的一種安全服務器的示圖。
圖4是說明根據本發(fā)明一個實施例的一種網關的示圖。
圖5是說明根據本發(fā)明的某些方面的安全體系架構的基本實施例的示圖。
圖6是說明一種計算機系統(tǒng)600的示圖,此處描述的本發(fā)明的某些方面會根據不同的實施例被執(zhí)行在其上。
本發(fā)明可經受多種修改和替換形式,其細節(jié)已通過附圖中的示例展示,且將會被詳細描述。然而應該被理解的是,本發(fā)明不限于某個特定實施例中描述的發(fā)明。相反,本發(fā)明應覆蓋屬于本發(fā)明精神和范圍內的、如由所附的權利要求書限定的所有的修改,等同,和替代。
具體實施方式
本發(fā)明的方面針對一種新的安全體系架構范例。本發(fā)明的方面可作為計算機系統(tǒng)的部分被實施。所述計算機系統(tǒng)可以是物理的機器,或者可以被分配于多種物理機器中,例如通過角色或功能,或通過云計算分布式模型中的處理線程。在多種實施例中,本發(fā)明的方面可以配置為運行在依次由一個或多個物理計算機執(zhí)行的虛擬計算機中。本領域技術人員將理解,本發(fā)明的特征可由多種不同合適的機器實現來實現。
根據多種實施例的系統(tǒng)包括多種引擎,其中每一個被構造,編程,配置,或適配為實施一種功能或一組功能。此處使用的術語引擎意味著現實世界的設備,組件或使用硬件實現的組件的布置,例如通過專用集成電路(ASIC)或現場可編輯門陣列(FPGA),例如,或作為硬件和軟件的結合,例如通過微處理器系統(tǒng)及一組程序指令,使引擎適用于實現某種特定功能,其(在被執(zhí)行時)將微處理器系統(tǒng)轉換為特殊專用設備。引擎還可以被實現為結合了兩個單獨由硬件輔助的特定功能,或由硬件和軟件結合輔助的其他功能。在特定的實施中,至少一部分,在某些情況下,全部的引擎可以被執(zhí)行在一個或多個計算機的處理器上,其執(zhí)行操作系統(tǒng),系統(tǒng)程序,和應用程序,且使用多重任務處理,多線程,分布式的(例如簇,對等層,云等)程序,其中適當的,或其他此類技術實施所述引擎。由此,每個引擎可以實現為多種適當的配置,且通常不應被限定為任意此處例示的具體實施方式,除非該限制被清楚地表明。而且,一個引擎自身可以由不止一個子引擎組成,每個子引擎都應被視為一個獨立的引擎。此外,在此處描述的實施例中,不同引擎中的每一個都符合一種特定的功能;然而, 應該被理解,在其他構想的實施例中,每個功能都可被分配給不止一個引擎。類似地,在其他構想的實施例中,多重定義功能可以由執(zhí)行這些多重功能的單獨引擎執(zhí)行,可能與其他功能一起,或不同地分散在一組引擎中,而非此處特別地闡明的例子。
本發(fā)明的實施例在此處被描述,針對操作系統(tǒng)的環(huán)境中的安全體系架構及微內核體系架構,以及更具體地,用一個描述在這種操作系統(tǒng)中的進程間通信的示例。進程間通信(IPC)是一組用于提供一個或多個進程中多線程間數據交換的程序。一個或多個被網絡連接的計算機可以啟動進程。
示例性安全體系架構的一個基本原則是將信息處理功能與根據預先指定的請求的這種處理的安全保證功能分離。
根據一個實施例,為了在安全體系架構中實施這種原則,基于預先指定的策略計算裁定的責任與申請裁定的責任不同。所述系統(tǒng)的組件,安全服務器,負責計算解決方案,例如被計算的裁定或被計算的決定。在一個實施例中,與此服務器的交流通過專用的信道發(fā)生。根據安全服務器做出的決定的動作的執(zhí)行由OS微內核支持的安全基礎設施執(zhí)行。根據一個實施例,為了顯示操作系統(tǒng)中的動作在用于決定裁定的安全策略上,安全網關(下文稱為“網關”)被用于系統(tǒng)中的活動實體。例如,安全網關可被系統(tǒng)中的活動實體用于映射(或關聯)實體所有可能的動作與多個安全策略。相應地,所述策略可以接著被用于決定所述裁定。
這類實施例所描述的方法確保了指定的任務與外部提供的規(guī)則的一致性。解決問題涉及的實體可以完全不了解這種規(guī)則或有能力控制它們。任何此類能力必須在安全策略中基于參數及目標系統(tǒng)中定義的責任被明確定義。
類似地,做決定的系統(tǒng)不具備關于其控制的實體的信息,且只被從安全網關得到的控制所述策略和設置所需要的信息管理。相應地,根據此實施例所述安全體系架構實現在授權控制中隔離責任的原則。
圖1是說明根據本發(fā)明一實施例實現安全體系架構的操作系統(tǒng)應用的操作的基本示例的示圖。
圖1中描繪的計算機系統(tǒng)環(huán)境,其中此實施例的示例性系統(tǒng)運行在計算機系統(tǒng)上,例如PC或服務器,可以包括操作系統(tǒng)101,若干應用104,和一個安全子系統(tǒng),其中包括一個安全服務器102和網關103,分別對應于所述應用104。
應用104代表了任意計算機裝置中安裝的應用程序。每個應用104都具有自己的功能能力,即它可以執(zhí)行特殊的用戶任務。而且,應用104可以為了其運算被設置為從用戶處接收某種特定類型的信息。應用104可以是用于處理文檔的應用,圖像編輯器,網絡瀏覽器,或例如控制一個工業(yè)工序所要求的任意專用軟件。
操作系統(tǒng)101包括一組互相關聯的處理和控制程序,其邏輯上位于計算機裝置的組件和應用104之間,且被設計用于執(zhí)行多種任務。這些任務可以連接上述組件或應用104。而且,操作系統(tǒng)101完成來自應用104請求的執(zhí)行,例如訪問媒體上的數據,存儲器的分配和解除分配,數據輸入和輸出等。
任意應用彼此之間以及與使用編程接口的操作系統(tǒng)通信。在計算機系統(tǒng)中,所有的通信被分配一種類型且基于編程接口的使用。例如,應用編程接口(API)允許一個程序訪問另一個程序以便執(zhí)行某種特殊的操作或獲得對數據的訪問,同時接受其他程序的請求。為了保證安全,可以檢查使用編程接口的應用之間的通信。
在根據一個實施例的安全體系架構中,網關103被用于使用編程接口的應用之間的通信。網關103的目的是提供一個信道,應用104可以通過該信道與操作系統(tǒng)101或另一個應用104通信。每個應用104可以有自己的網關103。所述網關103允許分配關于嘗試執(zhí)行某個動作(即操作)使用指令的安全環(huán)境,例如API調用,被通過接口發(fā)送。這種安全環(huán)境可以是例如試圖執(zhí)行動作的時間,發(fā)起執(zhí)行動作的嘗試的用戶ID,請求的動作的環(huán)境中調用的一個或多個調用方法,實體開始嘗試執(zhí)行動作的一個標識符,實體作為實施動作的對象的標識符,適用環(huán)境變量的狀態(tài),實體的狀態(tài)(如果所述實體是一個應用,其形態(tài)可以是表示應用現狀的參數值,例如“正在運行”,或安全模型參數(例如類型強制型,強制的訪問指示器,用戶的角色(在RBAC模型中),表明類型的信息,及任意的限制,在會話中,關于可用資源的信息,等等)。
另外,所述網關103包括能夠控制所述應用104的操作的規(guī)則的名字,而這些規(guī)則自身是保存在安全服務器103中的。這種規(guī)則可以指定,例如,允許和禁止被應用104使用的接口,當使用特定接口被允許的時間,等等。所述網關103可以發(fā)送規(guī)則的名字并分配安全環(huán)境到所述安全服務器102。在另一個實施例中,所述規(guī)則可以被規(guī)則標識符,散列值或其他合適的查 找值引用。所述安全服務器102可以表示為操作系統(tǒng)101中提供的一個獨立的模塊。所述安全服務器102的目的為根據提供的安全環(huán)境中的參數檢查規(guī)則的執(zhí)行以便允許或禁止操作,也就是,通過接口發(fā)送的指令的執(zhí)行。如果所述運算被安全服務器102允許,該指令將被所述操作系統(tǒng)101處理。
根據一個實施例的一種典型的安全系統(tǒng)在圖2中被闡明。在該實施例中,一種微內核操作系統(tǒng)和一種進程間通信運算被描述用以說明。圖2中描繪的安全系統(tǒng)體系架構包括一個微內核200,實體A,B,C分別通過引用數字201,202,203表明,網關A,B,C,在211,212,213處表明,對應上述實體,及安全服務器210。
所述微內核200保證了實體之間彼此隔離,并提供實體之間進行通信的機制。因此,所述內核200保證所有用作監(jiān)控目的的攔截。實體是系統(tǒng)的活動組件,從安全子系統(tǒng)的立場來看,由安全環(huán)境代表。在其他的方式中,所述實體的活動被顯示在實體發(fā)起經受監(jiān)控的動作的能力中。因此,所述由與另一個實體或安全系統(tǒng)相關的實體執(zhí)行的動作是在安全子系統(tǒng)中做出決策的對象。安全環(huán)境,代表性地例如數據結構,由一個特殊的安全標識符(SID)識別,這對于實體來說是非透明的。在一個實施例中,所述SID是經受決策的第一基礎組件。該調用自身以及其屬性是第二基礎組件。
在進程間通信中,進程被視為實體,而一組參數和每個特定進程的屬性被視為安全環(huán)境。實體還可以是更復雜的對象,例如網絡設備,個人計算機,移動電話或工業(yè)基礎設施中各種各樣的設備。因此,所述微內核200還可以被設計為獨立的固件復合體,其用于在信息系統(tǒng)中執(zhí)行通信。
安全子系統(tǒng)中的資源是經受安全監(jiān)控的動作的對象,但資源自身不能發(fā)起這種動作。資源的一個例子是文件,可識別的內存區(qū)域,網絡接口,打印機,任何其他設施。資源,正如一個實體,從監(jiān)控的角度看,代表性地為使用SID的安全子系統(tǒng)中可識別的安全環(huán)境。
實體201,202,203中所有的通信都是嚴格類型化的,且被用描述接口的規(guī)范的語言描述,例如特殊的接口描述語言或接口定義語言(IDL)。所有此類的通信,在被微內核200發(fā)送的時刻,被使用安全服務器210檢查。下列代碼可以是IDL語言中描述文件系統(tǒng)實體接口的最簡單的示例:
上述例子中描述了兩個接口-主要的接口用于與所述文件系統(tǒng),I文件系統(tǒng),和所述安全接口,I文件安全通信。在每個接口中,三個主要的通信方法被描述為:打開,讀和寫。作為說明,以下為一個用IDL語言描述具有鉆孔的帶式運輸的實體的接口的例子:
所述安全服務器210可以被視為一個實體,即進程間通信的示例中的進程,存在描述其接口的IDL語言。所述安全服務器210,及所述微內核200,可以被設計為一個獨立的固件復合體,其用于檢查自動化系統(tǒng)中的消息。所述特殊的CFG語言(安全配置語言)可以被用于描述所述安全服務器210的安全配置。
所述安全服務器210的安全配置包括執(zhí)行多種安全策略的規(guī)則?;谒霭踩掌?10的配置,特殊網關211,212和213被建立。在目前的進程間通信的例子中,所述網關211,212和213可以被自動建立,通過使用CFG語言編譯配置。
為了更好地幫助理解所述安全服務器210的配置,以下是一個涉及為了過濾來自使用白名單域名地址的網絡瀏覽器的URL調用而執(zhí)行安全策略的任務的示例,其中只有帶有*.kaspersky.com和*.securelist.com掩蔽的地址是被允許的。解決此任務利用了一個代理服務器,通過其對因特網的訪問將被提供。所述網絡瀏覽器和代理服務器將是分離的實體;其間的交互將被安全服務器210檢查,以服從所述URL請求過濾策略。根據本例子,所述代理服務器的接口的IDL語言的描述表現如下:
這一代理服務器接口的描述只提供了一種方法,http_get,其使用三個參數發(fā)布一個網頁(數據)-主機域名,端口值,和資源標識符(uri)。然后所述安全服務器210中安全策略的執(zhí)行可以被用于過濾來自使用白名單域名地址的網絡瀏覽器的URL請求,其可被用CFG語言描述如下:
01 use call policy allow=secsrv.policies.basic.allow;
02 use call policy match=secsrv.policies.string.match;
03 use call policy eq=secsrv.policies.arith.eq_uint32;
04 entity ProxyServer{
05 call in http_get(proto,host,port,uri)=match[“*.kaspersky.com”,
“*.securelist.com”](host),eq 443(port);
06 call out http_get(data)=allow;
07 }
以下是對這一安全策略實施方案的每個字符串的描述的更詳細的討論。字符串01聲明了使用一個基本的且最簡單的安全策略,在使用這一策略時允許任意通信。字符串02聲明了使用包括用于對比字符串進行匹配的 規(guī)則的安全策略。字符串03聲明了使用包括用于檢測數值匹配(數值相等)的規(guī)則的安全策略。字符串04—07描述了代理服務器實體的安全配置,所述代理服務器實體中主機的域名和端口值必須被匹配和相等策略檢驗以服從安全策略中定義的值(“*.kaspersky.com”或“*.securelist.com”為主機的域名及433為端口),以便使網頁在網絡瀏覽器中被顯示。
所述安全策略,如上述示例中所示,可以從其他安全策略中被建立,允許建立復雜安全策略作為簡單安全策略的結合。因此,被提出的安全策略的靈活性不只決定于安全服務器的存在和多重網關,其允許新策略的簡單實現而不干擾系統(tǒng)組件運行進程,但也提供從已存在安全策略中建立新安全策略的選項。從已存在安全策略中創(chuàng)建新安全策略消除了從頭開始寫安全策略的必要性。從頭開始寫新的安全策略增加了在其中存在缺陷的可能性,而且,此外,這種策略通常證明是太過特殊且無法在相同系統(tǒng)中重復利用。而且,每次安全策略在一個系統(tǒng)中被重復利用時,系統(tǒng)的安全性增加,因為寫新的安全策略增加了系統(tǒng)代碼的大小,這增加了攻擊面,且因此增加了系統(tǒng)的隱患且使支持和執(zhí)行此系統(tǒng)的進程復雜化。
建立用以驗證實體的動作的安全服務器210的請求是與實體有關的網關的責任。所述網關在實體的起始被初始化并與其連接。所有隨后的動作,包括安全環(huán)境的初始化,以及對相關實體通信的監(jiān)控,被根據網關配置分配的規(guī)則執(zhí)行。所述安全配置具有二級引用結構,包括以下:
·系統(tǒng)配置;以及
·動作到安全策略的反射的配置(下文中被稱為“反射配置”)。在一個實施例中,反射還可以被稱為“映射”動作在安全策略上。
所述系統(tǒng)配置描述了在某一特定安全模型中執(zhí)行安全功能的方面,其作為一個整體適用于系統(tǒng)。
所述反射配置描述了應用策略在實體的動作中的規(guī)則,適用于任意實體。所述反射配置被用于建立一個實體以用于初始化其網關。所述網關隨后存儲對所述涉及實體的安全策略的引用且召集這些策略以驗證其動作。
一種安全網關,因此,在系統(tǒng)中連接了所述應用軟件和安全模型,通過聲明哪個程序動作必須被哪個安全策略管理。在這種情況下,網關除了對它們的任何其他的動作或策略的信息的引用之外,不需要它們的任何其他的動作或策略的信息。根據一個實施例,網關請求的策略被所述安全服務器210計算。
所述反射配置包括涉及所述當實體執(zhí)行安全相關動作時被應用的安全策略:
·實體開始(這被反射到子代實體的安全環(huán)境和授權控制的初始化策略);
·實體間消息的通信(這被反射到所述交互監(jiān)控策略);
·實體使用安全接口的請求(這被反射到所述交互監(jiān)控策略)。
任何被應用在系統(tǒng)中的運算可以使用靜態(tài)定義的實體接口執(zhí)行。這些接口使用通信間進程中類型化的請求被實現。對使用這種動作執(zhí)行的操作的允許或拒絕是基于所述安全服務器210計算的裁定做出的。
盡管所有的動作基本上都是在進程間通信中執(zhí)行的,三種上述類型的動作以一種執(zhí)行算法被區(qū)分并被安全子系統(tǒng)監(jiān)控:實體的開始,實體間消息的通信,及使用實體的安全接口的請求。以下描述的是在用于三種類型的進程間通信之間的動作的安全解決方案的應用的安全子系統(tǒng)的組件之間通信的序列。
實體的開始被執(zhí)行如下:
·實體A201請求創(chuàng)建實體B202通過召集操作系統(tǒng)內核接口;
·微內核為子代實體B202創(chuàng)建一個網關;
·所述子代實體B202的網關B212發(fā)送親代和子代實體的SIDs,初始化策略和允許策略到安全服務器;
·所述安全服務器210允許引用所述親實體A201的安全環(huán)境,初始化所述子實體B202的安全環(huán)境,并發(fā)布一個安全裁定;
·如果該裁定為正,所述微內核允許實體B202的創(chuàng)建;
·如果該裁定為負,所述微內核移除所述實體B202的網關B212并返回一個訪問錯誤消息。
所述親代實體的網關A211不參與新安全環(huán)境的初始化(盡管在一個實施例中初始化期間親代實體環(huán)境可以被子代實體環(huán)境繼承)。所述安全子系統(tǒng)也不存儲新創(chuàng)建的實體樹的信息。親代實體和子代實體之間的通信(在后者的創(chuàng)建之后)根據安全配置被管理,以它們和所有其他實體通信同樣的方式。
消息的傳輸由兩個實體參與執(zhí)行-實體B202,其發(fā)起了消息的發(fā)送,以及實體C203。取決于安全環(huán)境和網關C213,安全環(huán)境和網關B212,以 及消息內容,所述消息的傳輸被監(jiān)控。在一個實施例中,為了驗證所述消息,只使用網關中的一個就足夠了,而且,一般來說,只有接收網關中的網關,即網關C213。
所述消息的傳輸被監(jiān)控如下:
·實體B202請求轉移信息到實體C203,通過召集操作系統(tǒng)內核的功能;
·微內核比較實體的C203網關C213及所述實體;
·網關C213反射請求到所述安全策略上;
·網關C213調用安全服務器210,傳送引用到策略,所述實體B202和實體C203的安全環(huán)境的SID,及計算安全裁定的信息的選定的參數(所述策略可能需要的);
·安全服務器210計算裁定;
·如果該裁定為正,所述消息的傳輸被允許;
·如果該裁定為負,所述消息的傳輸被阻止,且一個錯誤信息被返回。
如果一個實際的安全裁定存在于高速緩存中,網關C213可以不調用安全服務器210。被計算的安全裁定可以被存儲為進一步使用。
監(jiān)控通信的可能性不只通過通信雙方的安全環(huán)境,也通過消息內容,允許廣泛的政策的實現。這種政策可以包括不止發(fā)送/接收,還有通過內容或接口合并對信息的過濾的策略,等。
當實體需要通知安全系統(tǒng)其內部事件或請求另一項服務時,一個通過安全接口的調用被做出。
通過安全接口的調用被使用,特別是,用于管理對受保護資源的訪問的監(jiān)控。如上所述,沒有網關被與所述資源比較。因此,為了監(jiān)控對資源的訪問,一個中間的實體被使用,用其自身的安全接口請求安全服務器210的裁定。
使用安全接口的安全裁定的發(fā)布一般來說被執(zhí)行如下:
·實體C203做出請求,使用所述安全接口,使比較其自身的網關C213傳送必要的參數;
·網關C213反射請求到安全策略上;
·如果沒有實際裁定在高速緩存中,網關C213做出請求使安全服務器210計算安全裁定,傳輸必要參數;
·安全服務器210計算安全裁定;
·網關C213返回安全裁定到實體C203。
如果一個實際的安全裁定存在于高速緩存中,網關C213可以不調用安全服務器210。被計算的安全裁定可以被存儲在之后使用。
一個示例可以作為文檔轉換系統(tǒng)的模型—具有不同訪問級別(保密,絕對保密,非保密)的活動者,可以讀/寫從/到另一個。讀操作只被允許在讀者的訪問級別高于或等同于被讀的活動者的訪問級別時,而寫操作只被允許在相反情況。
所有被上述安全模型控制的實體的安全系統(tǒng)的配置中,以下規(guī)則是指定的:對于“讀”和“寫”消息—執(zhí)行訪問級別的比較。在消息轉移時,系統(tǒng)使用消息的屬性,判定消息的類型。知道涉及的實體的安全環(huán)境并使用安全配置,相關的網關判定被安全服務器210計算的策略以便接收裁定。安全服務器210,根據所述訪問策略,使用安全環(huán)境中的訪問等級,執(zhí)行比較并發(fā)送其裁定到安全系統(tǒng)。
圖3闡明了安全服務器210。安全服務器210中的主要任務是計算安全策略,或換句話說,是關于系統(tǒng)中的信息作出安全裁定。安全服務器210具有關于安全體系架構中使用的安全策略的廣泛知識—例如,安全策略的類型和以規(guī)則形式存在的它們的特性設計,該規(guī)則操作來自從安全環(huán)境的參數。所述安全策略可以屬于多種安全模型-例如,使用類型強制(TE)機制的模型,基于角色的訪問控制(RBAC),和多級安全(MLS)。而且,安全策略可以被建立基于授權訪問模型,其決定了每個進程(實體)的訪問級別,而此模型中所有的資源(文件,目錄,套接字等)都被匹配一個特定的類型(安全級別),以及限制實體訪問特定類型的能力的規(guī)則列表被建立。另外一個安全模型的示例是Bell-LaPadula模型,其中所有的活動者(進程)和對象(文件)都有自己的權限級別。具有特定權限級別的活動者被允許讀和創(chuàng)建(寫/更新)具有相同權限級別的對象。此外,活動者被允許讀次保密對象及建立告級別對象。一個活動者將永遠不能以比自身權限級別低的許可級別(clearance level)來創(chuàng)建對象,或讀有更高許可級別的對象。將被理解的是這些只是更寬泛的示例中的一些。
對于每個在安全服務器210上的安全策略的實現,一個接口被分配,一個網關通過其請求對消息的關于特定安全策略的安全裁定的計算。安全服務器210運行在實體的功能邏輯之外且只能計算相關的安全策略,基于從特定接口接收的數據,并返回判定到請求的網關。例如,如果我們考慮一個使用三個策略結合的安全策略實施選項,分別依照上述訪問控制機 制—TE,RBAC和MLS中的一個被描述,然后,從網關的觀點看,安全服務器210將被三個接口代表,前文列出的策略中的每一個都有一個。而且,對于每一個信息,所述網關會請求安全服務器210計算一個裁定在所有三個接口上。所述裁定,反過來,會代表每個策略的計算結果的結合(TR&&RBAC&&MLS)。
圖4顯示了網關211的一個基本的圖表,根據一個實施例。網關的主要的任務如下:判定系統(tǒng)消息中特定的通信方法及與其對應的安全策略;識別與在消息中通信的實體相關的安全環(huán)境;并從安全服務器210請求安全裁定,發(fā)送所述安全環(huán)境到安全服務器210的相關接口。網關211比較多個安全策略,其計算需要被從安全服務器中請求以計算一個裁定,以及各自實體201的每個被監(jiān)控的事件。為了優(yōu)化以安全體系架構為代表的所述安全系統(tǒng)的操作,所有的從關于實體201的安全服務器210接收的安全裁定被在網關211的裁定高速緩存中保存。
裁定高速緩存的關鍵可以由參與的實體的安全環(huán)境的標識符、事件標識符(由安全服務器210接口號和系統(tǒng)信息中的交流方法號組成)、和計算裁定時使用的方法參數值(如果它們是在網關配置中指定的)組成。
每次網關請求安全服務器210計算裁定時,它會檢驗裁定高速緩存中是否存在該事件的裁定。如果存在,所述網關直接返回該裁定;否則它將發(fā)送一個請求到安全服務器210。
圖5闡明了根據本發(fā)明一些方面的安全體系架構的一個基本實施例。這一選項中所述安全體系架構包括三個級別:
·系統(tǒng)組件級別,在其中實體501,502,503被實施;
·安全策略強制級別,被系統(tǒng)組件通信工具504執(zhí)行;及
·裁定計算級別,在其中安全子系統(tǒng)500被實施,包括多重網關501和安全服務器505。
所述系統(tǒng)組件級別由多個實體組成。在一個實施例中,每一個實體執(zhí)行一個單獨的組件;例如,一個文件系統(tǒng)或一個操作系統(tǒng)中的應用,或一個控制面板,一個傳送機或一個工業(yè)系統(tǒng)中的機器。通過發(fā)送和接收帶有被請求的動作的消息,所述實體彼此通信。每個實體可以有若干參數(或屬性),其描繪了實體自身,例如其獨特的ID,及其狀態(tài),例如“開”或“關”。實體內的所有通信和參數可以以安全策略的方式描述。
被實施在裁定計算等級的安全服務器505,使用多種規(guī)則,該規(guī)則被 規(guī)定在一個或多個安全策略中,及裁定發(fā)布的安全環(huán)境,其定義是否允許對被請求的動作的執(zhí)行,其中安全環(huán)境是一組參數,描述其執(zhí)行過程中的實體。
對于每一個系統(tǒng)組件通信工具504攔截的消息,一組網關510中的各個網關執(zhí)行了下列:
·基于與其自身配置一致的安全環(huán)境,所述網關判定對該類型通信適用的一組策略;
·所述網關請求安全服務器505計算該組策略;
·基于該組策略計算的結果,所述網關定義最終裁定;
·所述網關發(fā)送所述裁定用于強制執(zhí)行到系統(tǒng)組件通信工具505.
如上所述關于特定的實施例,對于在安全服務器505中每個安全策略的實現,一個接口被專用于網關可以通過該接口請求關于特定安全策略的消息的安全裁定的計算。網關還可以請求對一組策略的裁定的計算,通過發(fā)送請求到所述安全服務器505的相關接口,且,在從服務器接受了每個請求的裁定(即一組裁定)之后,所述網關可以定義一個最終的裁定,例如,使用結合方法。因此,只有在每個從所述安全服務器505接收的裁定都為正時,最終裁定將為正。
被實施在安全策略強制等級的所述系統(tǒng)組件通信工具504被設計用作監(jiān)控所述實體的執(zhí)行,以管理實體間的通信,及直接與一組網關中已存在的網關通信以接收和實施裁定。所述裁定可以表現為簡單的布爾值,其中0意味著“拒絕”而1意味著“允許”,或表現為更復雜的任意字符(字母,數字和特殊符號)的結合,包括已知的單詞,例如“重啟/暫停/激活實體”。
圖6是闡明計算機系統(tǒng)600的示圖,其中如此處描述的發(fā)明的方面可被根據各種實施例實施。計算機系統(tǒng)600可以包括計算裝置例如個人計算機602。所述個人計算機602包括一個或多個處理單元604,系統(tǒng)存儲器606,視頻接口608,輸出外部接口610,網絡接口612,用戶輸入接口614,可移動的存儲器接口616和不可移動的存儲器接口617,以及耦合所述多種組件的系統(tǒng)總線或高速通信信道620。在多種實施例中,所述處理單元604可以由多個邏輯內核,能夠處理存儲在計算機可讀媒體,如系統(tǒng)存儲器606或附于可移動的616或不可移動的618存儲器接口上的存儲器中的信息。所述計算機602系統(tǒng)存儲器606可以包括非易失性存儲器,如只讀存儲器(ROM)622或易失性存儲器如任意訪問存儲器(RAM)。所述ROM 622 可以包括一個基本的輸入/輸出系統(tǒng)(BIOS)626以幫助與所述計算機602的其他部分通信。所述RAM 624可以存儲多種軟件應用的部分例如操作系統(tǒng)628,應用程序630和其他的程序引擎632。進一步的,所述RAM 624可以存儲其他信息例如程序或應用數據634。在多種實施例中,所述RAM 624存儲請求低延遲和有效訪問的信息,例如被操縱或操作的程序和數據。在多種實施例中,RAM 624包括雙數據速率(DDR)存儲器,誤差校正存儲器(ECC)或其他具有不同的延遲和配置的存儲技術,例如RAMBUS或DDR2或DDR3。用這種方法,在不同的實施例中,所述系統(tǒng)存儲器606可以存儲輸入數據存儲,訪問憑證數據存儲,操作存儲器數據存儲,指令集數據存儲,分析結果數據存儲及操作存儲器數據存儲。進一步的,在多種實施例中,所述處理單元604可以配置為執(zhí)行指令限制訪問上述的數據存儲,通過在訪問信息被允許前請求訪問憑證。
所述可移動的存儲器616和不可移動的存儲器618可以使所述計算機602與磁盤驅動器如SSD或轉動的磁盤驅動器耦合。這些磁盤驅動器636可以為不同的軟件應用如操作系統(tǒng)638,應用程序640和其他的程序引擎642提供進一步的存儲。進一步的,所述磁盤驅動器636可以存儲其他的信息,例如程序或應用數據644。在不同的實施例中,所述磁盤驅動器636存儲信息不請求同樣的低延遲,如在其他的存儲媒介中。進一步的,所述操作系統(tǒng)638,應用程序640數據,程序引擎642和程序或應用數據644可以是如在上述不同實施例中被存儲在RAM 624中的同樣的信息,或也可以是RAM 624中存儲的數據可能衍生出的不同的數據。
進一步的,所述可移動的非易失性存儲器接口616可以耦合計算機602與利用磁性媒體例如軟盤648,Zip或Jazz的磁性便攜式磁盤驅動器646,或利用光學媒體652存儲計算機可讀媒體如,DVD-R/RW,CD-R/RW和其他類似格式的光盤驅動器650。還有其他的實施例利用SSD或放置在便攜式附件54中的轉動磁盤以增加可移動存儲器的能力。
計算機602可以利用網絡接口612通過局域網(LAN)658或廣域網(WAN)660與一個或多個遠程計算機656通信。所述網絡接口612可以利用網絡接口卡(NIC)或其他接口如調制解調器662進行通信。所述調制解調器662可以使通信穿過電話線,同軸電纜,光纖,電話線或無線地。所述遠程計算機656可以包括一個相似的硬件和軟件配置或可以有一個存儲器664包括遠程應用程序666為計算機602提供附加的計算機可讀指令。 在不同的實施例中,所述遠程計算機存儲器664可以被用作存儲信息例如已識別的文件信息,其可在之后被下載到本地系統(tǒng)存儲器606中。進一步的,在不同的實施例中所述遠程計算機656可以是應用服務器,管理服務器,客戶端計算機或網絡設備。
使用與用戶輸入接口614連接的輸入設備(例如鼠標668和鍵盤670),用戶可以輸入信息到計算機602中。此外,所述輸入設備可以是觸摸板,指紋掃描儀,控制桿,條形碼掃描器,媒體掃描儀或類似的。視頻接口608可以提供視覺信息到顯示器,例如監(jiān)控器672。所述視頻接口608可以是嵌入式的接口或者它也可以是分立的接口。進一步的,計算機可以利用多個視頻接口608,網絡接口612和可移動的接口616和不可移動的接口618以便增加所述計算機606操作的靈活性。進一步的,不同的實施例利用幾個監(jiān)控器672和幾個視頻接口608,以改變所述計算機602的性能和能力。其他的計算機接口可以被包括在計算機602中,例如輸出外圍接口610。這一接口可以耦合于打印機674或揚聲器676或其他外圍設備,為計算機602提供附加的功能。
各種可供選擇的計算機602的配置和實現被包括在本發(fā)明精神中。這些變化可以包括且不限于,耦合于系統(tǒng)總線620(如通用串行總線(USB))附加接口,打印機端口,游戲端口,外圍部件互連總線,串行總線,或上述不同部件與芯片集組件的集合,例如北橋或南橋。例如,在不同實施例中,處理單元604可以包括嵌入式存儲控制器(未示出),以使數據從系統(tǒng)存儲器606中的傳遞比所述系統(tǒng)總線620能提供的更有效。
上述實施例旨在說明且不是限制性的。附加的實施例在權利要求中。此外,盡管本發(fā)明的方面已被根據特定實施例描述,本領域的技術人員將認識到,形式上和細節(jié)上可以做出的改變不超出本發(fā)明的范圍,如權利要求書規(guī)定的。
相關領域的技術人員將認識到,本發(fā)明包括的特征可以少于任意單獨的上述實施例所闡明的。此處描述的實施例不意味著詳盡的展示了本發(fā)明不同實施例可以被結合的方式。相應地,所述實施例不是互相排斥的特征的結合;而是,本發(fā)明可以包括從不同單獨的實施例中挑選出的不同單獨特征的結合,正如本領域技術人員所理解的那樣。
任意通過引用被合并的上述文檔被限定為不合并與此明確披露的相反的主題。任意通過引用被合并的上述文檔進一步被限定為所述文檔中包括 的權利要求不通過引用被合并到本申請的權利要求之內。然而,任意所述文件的權利要求被合并為此的披露的一部分,除非被特別地排除。任意通過引用被合并的上述文檔還進一步被限制為任意所述文檔中提供的定義不在此通過引用被合并,除非明確地被包括于此。
為了解釋本發(fā)明的權利要求,明確表示,U.S.C.第35卷第六段第112節(jié)不被調用,除非專用名詞“的方法”或“的步驟”在權利要求中被列舉。