1. 程式人生 > >作業系統虛擬化之安全模型

作業系統虛擬化之安全模型

(一)BLP經典模型

BLP模型形式化地定義了系統狀態及狀態轉換間的轉換規則,並制定了一組約束系統狀態間轉換規則的安全公理!

模型的安全策略:

  • 自主安全策略:自主安全策略使用一個訪問矩陣表示,訪問矩陣第i行第j列的元素Mij表示主體Si對客體Oj的所有允許的訪問模式,主體只能按照在訪問矩陣中被授予的對客體的訪問許可權對客體進行相應的訪問。
  • 強制安全策略:包括簡單安全特性和*-特性,系統對所有的主體和客體都分配一個訪問類屬性,常稱為安全級,包括主體和客體的密級和範疇,系統通過比較主體與客體的安全級控制主體對客體的訪問。

系統的狀態表示:

系統狀態是集合V=(B×M×F×H)中的元素,其中B⊆(S×O×A)為當前訪問集,S為主體的集合,O為客體的集合,A為訪問許可權集合; M為訪問控制矩陣,它由元素mij∈A組成,mij表示主體Si對客體Oj具有的訪問權;F為安全級函式,由以下3個分量組成:fo

和 fc為分別為主體的最大安全級和當前安全級, fo為客體的安全級;H為當前層次結構,即當前客體的樹型結構.
系統任一狀態v=(b, M, f, H)∈V, 其中b=(Si, Oj , x)∈B, x⊆mij; f=(fs , fc , fo)∈F.

安全系統的定義與轉換規則

系統狀態間的轉換是由一組規則定義的, 一個規則的定義為ρ:R×V→D×V, 其中R×V為系統中“請求-狀態對”集合, D×V為系統中“判定-狀態對”集合. R為請求集, D為判定集.判定的結果為(Yes, No,?)之一. “Yes”表示請求被執行, “No”表示請求被拒絕, “?”表示規則不能處理該請求。
規則ρ保持安全狀態當且僅當ρ(Rk

, v)=(Dm, v*), v是安全狀態時,有v*是安全狀態.
設Ω=(ρ1 ρ2 ,… ,ρs)是相對於R,D,V的一組規則集,關係W(Ω) ∈R x D x V x V 定義為: (Rk, Dm, v*, v) ∈W(Ω) ,iff Dm≠?並且存在唯一的i, 1≤ i ≤s,使得 (Dm, v*)= ρi(Rk , v )

安全公理,為BLP模型的基礎:

這裡寫圖片描述

(二)BIBA完整性安全模型

完整性的三個操作原則:
  • 職責隔離: 一個極其重要的功能必須由幾個不同的人員一起完成
  • 功能隔離: 單獨某一個人不能承擔某一極其重要的過程中互補的任務 (如出納、會計)
  • 審計: 可恢復性和可追蹤性要求維護審計記錄。

1977年,Biba等人提出了第一個完整性安全模型-Biba模型,它基本是BLP模型的對偶,不同的只是它對系統中的每個主體和客體均分配一個完整性級別(integritylevel)。

客體的完整性級別,記為:f(o):用於描述對一個客體中所包含資訊的信任度。比如:過路人的報告和專家組的報告。
主體的完整性級別,記為:f(s):用於衡量主體產生/處理資訊能力上的信心“confidence”。比如:經鑑定軟體產品和網上自由下載的軟體。

三個策略:低水印(low-water-mark)、嚴格(strict)、環(ring):

這裡寫圖片描述

基本思想是:對一個客體的不可靠資訊流破壞或毀壞了該客體的完整性。這個不可靠的資訊可能來自一個更低完整性級別的主體或者一個更低完整性級別的客體。

三種訪問模式:observe(類似read),modify(類似write), invoke(類似execute)

✈低水印(low-water-mark)

(1)基於主體的低水印、
  • 如果主體 s 讀了(observes)客體 o , 那麼: f*(s) = min (f(s), f(o)),其中i’ (s) 是主體讀之後新的完整性級別。(一個主體讀了比他安全級低的客體,那麼他的安全級就要降到和客體一樣)
  • 主體 s 可以寫(can modify)客體 o,僅當f(o) ≤ f (s) (主體安全級高於客體安全級)
  • 主體 s1 可以執行(can invoke)主體 s2,僅當f (s2) ≤ f (s1)(S1級別高)

定理:如果從客體o1到客體on之間存在資訊傳輸路徑,那麼策略要求f(on+1) ≤ f(o1), 對於所有n > 1.

(2)基於客體的低水印策略(降客體級別)

主體在對某些持有較低或不相容的完整級別的客體執行“observe”操作後,會降低自身的完整級別。(低階主體寫了高階客體,那麼客體完整性就要下降了)

後果: 有可能減少主體可存取的客體集,使某些原來對主體說來是可以存取的客體在執行“observe”操作後變成不可存取的。比如:在“observe”操作後執行的某些“modify” 。

基於客體的策略:一個主體能夠對具有任何完整級別的客體持有“modify”權。當主體執行了對客體的“modify”操作後,客體的完整級別被置為執行存取前主體和客體的完整級別的最大下界。

(3) 基於審計的低水印:

一個主體能夠“modify”具有任何完整級別的客體。如果一個主體“modify”一個具有更高或不可比的完整級別的客體,這一違反安全的操作將被記錄在審計追蹤記錄中。或“invoke”操作會由於相應的客體變成不可存取的而不能執行

✈環策略:

  1. 不考慮完整性級別,任何主體可以讀任何客體。

  2. 主體 s 可以寫客體 o 僅當 f(o) ≤ f(s).

  3. 主體 s1 可以執行主體 s2 僅當 f(s2) ≤ f(s1).

環策略的問題:然而,由於“observe”存取是非受限的,仍可能發生不恰當的“modify”操作。如:一個具有高完整級別的主體能夠“observe”一個具有較低完整級別的客體,然後“modify”具有自己安全級別的客體,這樣資訊就從低完整級別流向高或不可比完整級別。為了避免這種情況,主體在使用來自低完整級別客體的資料時要十分小心。

✈嚴格策略:

前兩個規則類似BLP模型的簡單安全規則和-規則,只是完整級別間的關係是相反的。Biba模型中沒有考慮“append”方式,主體的完整級別也是惟一的,使其-規則得到簡化。嚴格完整策略防止資訊從低完整性級別客體向更高或不可比完整性級別客體傳遞,保證資訊流僅是“observe”和“modify” 的結果。

Biba模型的不足:
(1)完整標籤的確定很困難。完整性的分級和分類一直沒有相應的標準予以支援 。
(2)在有效保護資料一致性方面不完備。完整性目的是保護資料免受非授權使用者的惡意修改,同時內部完整性威脅應該通過程式驗證來保證,但本模型中並沒有包括這個要求。
(3)不同性質的範疇在同時滿足機密性和完整性目標方面難以配合使用。

Biba模型的優勢:

(1)具有簡單性。由於Biba的嚴格完整性策略是BLP機密性策略的對偶,所以它的實現是直觀的和易於理解的。
(2)Biba和BLP模型相結合的可能性基於Biba模型和BLP模型的相似性,Biba模型可以比較容易的與BLP模型的相結合用以形成集機密性和完整性於一體的綜合性安全模型。比如:Lipner聲稱已在格模型中實現了機密格和完整格的結合。

(三)經典Chinese Wall混合安全模型

1.中國牆模型的主要設計目標: 為了保護相互競爭的客戶,諮詢公司需要在她的代理間建立密不可透的牆,這個牆就稱為中國牆。
2.利益衝突類概念:中國牆安全策略的本質是將全體資料劃分成利益衝突類“,根據強制性約束,主體至多訪問每個”利益衝突類“中的一個數據集。
3.安全規則:
(1)讀規則:
- 檢視歷史訪問,若歷史訪問了某家公司的資料集,現在仍然可以訪問;
- 可以訪問非利益衝突類,例如訪問了A石油公司,還可以訪問A銀行,但是不能訪問B石油公司。
- 可以訪問公開的資訊

(2)寫規則:
- 現在要寫的和之前讀的都在同一個類中。

(四)RBAC中立安全模型(基於角色的訪問控制)

1.RBAC的優點

  • 便於實現組織級的授權管理;

  • 支援繼承關係;

  • 便於實現最小特權原則;

  • 可實現職責隔離原則;

  • 支援客體抽象;除了作業系統中提供的讀、寫以及執行許可權之外,RBAC中可以根據實際應用的需要定義抽象的訪問許可權,如賬號的借款和貸款。

  • 策略中立,通過不同配置能夠實現特殊策略。

2.RBAC主要設計思想:

(1)本概念及原理:角色是一些工作職能的集合,或者說是一些特權的集合。RBAC的基本原理是:一個主體要想訪問一個客體,必須具備如下條件:
  • 主體被授權扮演某個角色
  • 該角色被授權可以執行某個操作-
  • 該操作被授權可以訪問相應的客體

RBAC可以說是一種表達策略的策略(policy neutral),它可以經由適當的配置而表達不同的安全策略。

(2)模型的基本性質:

①如果一個主體被授權訪問某個角色,且該角色包含另一角色,那麼該主體也被授權訪問這個被包含的角色。
②一個使用者可以被授權成為某角色的成員,僅當該角色的特權與該使用者已扮演角色的特權是互不干涉的。
③在任何時候,角色的成員數不能超過角色的限定成員數。(總經理只有一個,副經理最多不能超過三個)
④主體永遠不能扮演一個沒有被授權的主動角色。
⑤只有當主體在扮演主動角色時,它才能執行操作。
⑥主體能扮演新的主動角色的前提是該角色的特權與主體當前正在扮演的主動角色的特權互不衝突。
⑦主體能執行一個操作的前提是主體當前正在扮演的主動角色已被授權訪問該操作。
⑧如果要完成某個特殊業務職能需用多個操作,那麼不允許出現這樣的授權:某單個使用者的授權角色集能執行所有這些操作。
⑨主體能訪問客體的前提是主體的當前主動角色集的某些角色允許執行某操作,且該操作被授權用於訪問主體想訪問的客體。

(五)DTE中立安全模型

DTE基於安全標籤(domain,type)來限制程序進行訪問。根據最小特權原則,通過恰當地配置來劃分系統。策略中立,可以表達多種安全目標。
DTE將系統視為一個主動實體(主體)的集合和一個被動實體(客體)的集合:
(1)每個主體有一個屬性─域,每個客體有一個屬性─型,這樣所有的主體被劃分到若干個域中,所有的客體被劃分到若干個型別中。
(2)DTE再建立 “域定義表”(Domain Definition Table),描述各個域對不同型客體的訪問許可權。
(3)建立 “域互動表”(DomainInteraction Table),描述各個域之間的許可訪問模式(如建立、發訊號、切換)。

相關推薦

作業系統虛擬化安全模型

(一)BLP經典模型 BLP模型形式化地定義了系統狀態及狀態轉換間的轉換規則,並制定了一組約束系統狀態間轉換規則的安全公理! 模型的安全策略: 自主安全策略:自主安全策略使用一個訪問矩陣表示,訪問矩陣第i行第j列的元素Mij表示主體Si對客體Oj

作業系統虛擬化訪問控制機制

一、主訪問控制機制: DAC:Discretionary Access Control DAC概念: 檔案的擁有者可以按照自己的意願精確指定系統中的其他使用者對其檔案的訪問權。 定義:自主訪問控制是基於客體所屬使用者/組身份,以及需知原則來約束對客體

作業系統虛擬化TESEC和CC標準

國內外相關標準 TCSEC:Trusted Computer System Evaluation Criteria ITESEC:Information Technology Secur

作業系統虛擬化安全的預備知識

微核心與巨集核心的區別: 微核心是將各種服務功能放到核心之外,自身僅僅是一個訊息中轉站。 巨集核心是將所有服務功能集成於一身,使用時直接呼叫。 從資源管理角度,作業系統主要功能劃分:CPU管理、儲存管理、I/O裝置管理、檔案系統、使用者介面 檔案描述符表

5Python全棧路系列Django模型

模型續Python全棧之路系列之Django模型續連表操作一對一在app的models.py文件內添加以下內容用戶創建一對多關系的表:from django.db import models # Create your models here. class UserType(models.Model):

多路I/O轉接select模型

struct truct rose sleep 輸出 問題 pre strerror 結構 I/O復用使得程序可以同一時候監聽多個文件描寫敘述符。這對提高程序的性能至關重要。通常,網絡程序同一時候處理或者監聽多個socket文件描寫敘述符的時候可以考慮使用I/O復用模型

KVM硬件輔助虛擬化 EPT in Nested Virtualization

family mil 虛擬 target adding 多層嵌套 top 方法 執行 在嵌套虛擬環境(Nested Virtualization)下,執行在hypervisor上的Virtual Machine仍能夠作為hypervisor去執行其他的Virutal

雲服務器安全組之一_好玩的安全

click sdn iyu 現在 規則 cli csdn 端口 斷開 原文地址 根據好多的小夥伴反應,阿裏的安全組規則是個什麽鬼啊,怎麽還這麽麻煩,把端口啥的都給我開好,剩下的我搭建好網站就行,你看別的服務商就這樣,我就問一句安全嗎? 用啥開啥,是保障網站安全的一個很重要的

NGUI研究3D模型坐標轉2D屏幕坐標-血條

uic bject blank orm 組成 自己 index lan rac ?? 剛好今天有朋友問我,比較典型的樣例就是遊戲裏面人物的血條。原理非常easy就是把3D點換算成2D的點。可是因為NGUI自身是3D所以我們須要先把NGUI下的點轉成2D點。然後在把他轉成

Python基礎 Django模型

use Coding python 變更 安裝 uname odin sage end 本章節主要是包括通過Python安裝Mysql驅動(mysqlclient),通過Django創建app,更新數據庫模型。 1.安裝 mysql 驅動。如果你沒安裝 mysql 驅動,可

Spring MVC 傳遞模型數據到視圖中

sage size efi ram fix post head bmi 傳遞 類似於 JSP-Servlet 中的 req.setAttribute 、 req.getSession().setAttribute ... --> 最後在 JSP 用 EL 表達式取

python基礎IO模型

需要 ech 列表 window 網絡連接 其它 ron 都是 listen IO模型分類 五種IO Model blocking IO      阻塞IO nonblocking IO     非阻塞IO IO multiplexing     I

輕松學習JavaScript二十七:DOM編程學習事件模型

經歷 學習 不存在 obj 發生 rip gb2 article 不支持 在介紹事件模型之前,我們先來看什麽是事件和什麽是event對象。 一事件介紹 JavaScript事件是由訪問Web頁面的用戶引起的一系列操作,使

ASP.NET MVC Model模型綁定

數據包 set count 效果 模型 shtml 獲得 tex turn Asp.net mvc中的模型綁定,或許大家經常用,但是具體說他是怎麽一回事,可能還是會有些陌生,那麽,本文就帶你理解模型綁定。為了理解模型綁定,本文會先給出其定義,然後對通過比,來得出使用模型綁定

CSS布局模型 浮動模型(浮動的工作原理和清除浮動技巧?)

浮動 浮動模型 工作原理 浮動的工作原理浮動是讓某元素脫離文檔流,在浮動框之前和之後的非定位元素會當它不存在一樣,可能沿著它的另一側垂直流動,但都為其騰出空間,塊級元素也不例外(被浮動元素占據了部分行空間的塊級元素,仍然被看作是占據了一整行,只不過是被浮動元素占據的那部分空間無法利用罷了)。浮動的

布局模型 模型(position的relative、absolute與fixed區別?)

absolute fixed relative css的布局模型分為流動模型(Flow)、浮動模型(Float)、層模型(Layer)。 浮動模型(Float)和層模型(Layer)有什麽顯著區別? 浮動模型(Float):浮動是讓某元素脫離文檔流的限制,在浮動框之前和之後的非定位元素

python全棧開發從入門到放棄socket並發編程IO模型

map 超時 sting mon recv style 好的 exceptio 得到 一 IO模型介紹 同步(synchronous) IO和異步(asynchronous) IO,阻塞(blocking) IO和非阻塞(non-blocking)IO分別是什麽,到底有什

Python並發編程IO模型

完整 span lin 結果 ext mod 是什麽 返回 image 一:IO模型介紹 同步(synchronous) IO和異步(asynchronous) IO,阻塞(blocking) IO和非阻塞(non-blocking)IO分別是什麽,到底有什麽區別?這個

python並發編程IO模型

接口 延遲 return default 經歷 主動 import 線程編程 擁有 了解新知識之前需要知道的一些知識 同步(synchronous):一個進程在執行某個任務時,另外一個進程必須等待其執行完畢,才能繼續執行 #所謂同步,就是在發出一個功能調用時,在沒有得到結

【第三篇】ASP.NET MVC快速入門安全策略(MVC5+EF6)

對象 code word 單身 script ticket bsp 金額 class 【第一篇】ASP.NET MVC快速入門之數據庫操作(MVC5+EF6) 【第二篇】ASP.NET MVC快速入門之數據註解(MVC5+EF6) 【第三篇】ASP.NET MVC快速入門之