1. 程式人生 > 其它 >2021-2022-1學期20212408《網路空間專業導論》第十一週學習總結

2021-2022-1學期20212408《網路空間專業導論》第十一週學習總結

2021-2022-1學期20212408《網路空間專業導論》第十一週學習總結

第四章 系統安全基礎

4.1 系統安全概述

4.1.1 系統安全的演變

網路空間是人類活動的第五大疆域,人類所觸及的空間已經不侷限於海、路、空、天四個領域,隨著計算機、網路、人工智慧的技術發展,在今天,提起系統安全聯想到作業系統安全是合情合理的。

21世紀以來,新的數字化裝置不斷催生出新的應用,自網際網路普及以來,網路的滲透不斷增加,網路空間生態系統的影響越來越明顯,網路空間種的系統,從大型主機到網路化系統,再到網路空間生態系統,其形態不斷演變,其內涵不斷豐富,其影響不斷深入。與此同時,系統所面臨的挑戰更加嚴峻,系統安全的探索全景廣闊,意義深遠。

4.1.2 系統與系統安全

一個系統是由相互作用或相互以來的元素或成分構成的的某種型別的一個統一的整體,其中的元素完整的關聯在一起,它們之間的這種關聯關係有別於他們與系統外其他元素之間可能存在的關係。

系統的邊界有時候是明顯的,有時候是模糊的,人的生命系統就有明顯的血肉邊界,一個手機能看得見外殼,能觸碰到螢幕,但是一個作業系統,既看不見也摸不到,作業系統的邊界很難劃分。系統的邊界也不是唯一的、一成不變的,隨著觀察角度的不同,可能會發生變化。但是不管怎麼樣,系統存在著邊界。

4.1.3 整體論與還原論

研究系統安全必須要有正確的方法論。因為還原論存在著一些侷限性,我們便提出了整體論。
系統的巨集觀特性(整體特性)可以區分為湧現性和綜合特性。
綜合特性可以通過系統組成部分的特性的綜合而得到。而湧現性是系統組成部分相互作用產生的組成部分所不具有的新特性,是不可還原的特性。網路空間中的安全性屬於湧現性。
現在國際上已經意識到整體論在解決網路空間安全問題中的重要性,大量問題有待不斷探索。

4.1.4 系統安全思維

網路空間安全系統安全知識領域的核心包含著兩大理念,一是保護物件,二是思維方法。系統一方面表示會受到威脅因此需要保護的物件,另一方面表示考慮安全問題時應具有的思維方法,即系統化思維方法。系統化思維方法具有普適性,不是網路空間獨有,運用到網路空間安全之中就稱為系統安全思維。
系統工程是涵蓋系統生命週期的具有關聯活動和任務的技術性和非技術性過程的集合,技術性過程應用工程分析與設計原則建設系統,非技術性過程通過工程管理保障系統建設工程專案的順利實施。
系統工程的主要目標是獲得總體上可信賴的系統,核心是系統整體思想。它為建設可信賴的人工系統提供了一套基礎保障,適用於網路空間中的系統建設。
簡而言之,系統安全思維重視整體論思想,強調從系統的全生命週期衡量系統的安全性,主張通過系統安全工程措施建立和維護系統的安全性。當然並不是否認還原論,而是說,僅僅靠還原論是不夠的。

4.2 系統安全原理

站在系統建設者的位置,要把安全理念貫徹到系統建設之中。

4.2.1 基本原則

①最小特權原則: 系統中執行任務的實體(程式或使用者)應該只擁有完成該項任務所需特權的最小集合;如果只要擁有n項特權就足以完成所承擔的任務,就不應該擁有n+1項或更多的特權。

②失敗-保險預設原則:安全機制對訪問請求的決定應採取預設拒絕方案,不要採取預設允許方案;也就是說,只要沒有明確的授權資訊,就不允許訪問,而不是,只要沒有明確的否定資訊,就允許訪問。

③完全仲裁原則:安全機制實施的授權檢查必須能夠覆蓋系統中的任何一.個訪問操作,避免出現能逃過檢查的訪問操作。該原則強調訪問控制的系統全域性觀,它除了涉及常規的控制操作之外,還涉及初始化、恢復、關停和維護等操作,它的全面落實是安全機制發揮作用的基礎。

④特權分離原則(Separation of Privilege): 對資源訪問請求進行授權或執行其他安全相關行動,不要僅憑單一條件做決定,應該增加分離的條件因素;例如,為一把鎖設兩套不同的鑰匙,分開由兩人保管,必須兩人同時拿出鑰匙才可以開鎖。

⑤信任最小化原則:系統應該建立在儘量少的信任假設的基礎上,減少對不明物件的信任;對於與安全相關的所有行為,其涉及的所有輸人和產生的結果,都應該進行檢查,而不是假設它們是可信任的。

簡單性原則包括機制經濟性原則、公共機制最小化原則和最小驚訝原則。
①機制經濟性原則:應該把安全機制設計得儘可能簡單和短小,因為,任何系統設計與實現都不可能保證完全沒有缺陷;為了排查此類缺陷,檢測安全漏洞,很有必要對系統程式碼進行檢查;簡單、短小的機制比較容易處理,複雜、龐大的機制比較難處理。

②公共機制最小化原則 :如果系統中存在可以由兩個以上的使用者共用的機制,應該把它們的數量減到最少;每個可共用的機制,特別是涉及共享變數的機制,都代表著一-條資訊傳遞的潛在通道,設計這樣的機制要格外小心,以防它們在不經意間破壞系統的安全性,例如資訊露。

③最小驚訝原則(Least Astonishment):系統的安全特性和安全機制的設計應該儘可能符合邏輯並簡單,與使用者的經驗、預期和想象相吻合,儘可能少給使用者帶來意外或驚訝,目的是提升它們傳遞給使用者的易接受程度,以便使用者會自覺自願、習以為常地接受和正確使用它們,並且在使用中少出差錯。

方法性原則包括公開設計原則、層次化原則、抽象化原則、模組化原則、完全關聯原則和設計迭代原則。
①公開設計原則:不要把系統安全性的希望寄託在保守安全機制設計祕密的基礎之上,應該在公開安全機制設計方案的前提下,藉助容易保護的特定元素,如金鑰、口令或其他特徵資訊等,增強系統的安全性;公開設計思想有助於使安全機制接受廣泛的審查,進而提高安全機制的魯棒性。

②層次化原則:應該採用分層的方法設計和實現系統,以便某層的模組只與其緊鄰的上層和下層模組進行互動,這樣,可以通過自頂向下或自底向上的技術對系統進行測試,每次可以只測試一層。

③抽象化原則:在分層的基礎上,遮蔽每一層的內部細節,只公佈該層的對外介面,這樣,每一層內部執行任務的具體方法可以靈活確定,在必要的時候,可以自由地對這些方法進行變更,而不會對其他層次的系統元件產生影響。

④模組化原則:把系統設計成相互協作的元件的集合,用模組實現元件,用相互協作的模組的集合實現系統;每個模組的介面就是一種抽象。

⑤完全關聯原則: 把系統的安全設計與實現與該系統的安全規格說明緊密聯絡起來。

⑥設計迭代原則:對設計進行規劃的時候,要考慮到必要時可以改變設計;因系統的規格說明與系統的使用環境不匹配而需要改變設計時,要使這種改變對安全性的影響降到最低。

為了使全生命週期的整體安全保障思想落到實處,系統的設計者和開發者在設計和實現系統的過程中,應該深人理解、正確把握、自覺遵守以上原則。

4.3 系統安全結構

4.3.1 硬體系統安全

網路空間是個計算環境,它主要由各式各樣的計算機通過網路連線起來構成。這裡所說的計算機並非只是常見的膝上型電腦、桌上型電腦、伺服器、平板計算機、手機等,還有很多藏在嵌人式裝置或物聯網裝置等之中不易被看到的東西,它們的關鍵特徵是都有處理器。

計算機由硬體和軟體組成,儘管有些軟體因為固化在硬體上而被稱為韌體。計算機提供的豐富多彩的功能,不管是拍照,還是播放音樂,或是別的,都是通過計算實現的。硬體負責計算,軟體負責釋出計算命令。硬體是軟體的載體,軟體在硬體之上工作。

在系統安全的背景下觀察硬體安全,主要是觀察它能給軟體提供什麼樣的安全支援,如何幫助軟體實現想要實現的安全功能。同時,也觀察它自身可能存在什麼安全隱患,會給系統安全帶來什麼樣的影響。

在硬體為軟體提供的安全支援功能中,最平凡的一-項是用於保護作業系統的功能。之所以說平凡,是因為這項功能太常用了,以致很多人甚至想不起來能把它和安全掛上鉤,那就是使用者態/核心態功能。

處理器硬體定義了使用者態和核心態兩種狀態,核心態給作業系統用,使用者態給其他程式用,規定使用者態的程式不能干擾核心態的程式。這樣,在免受其他程式破壞的意義上,作業系統受到了硬體的保護。

以通俗的方式說得更具體一點,硬體把指令和記憶體地址空間都分成了兩大部分,核心態程式可以看到所有的指令和地址空間,使用者態程式只能看到其中一個部分的指令和地址空間。
使用者態程式看不到的那部分指令稱為特權指令,看不到的那部分地址空間稱為核心地址空間。
·看不到的意思就是不能使用,就是說,使用者態程式不能執行特權指令,不能訪問核心地址空間。因為作業系統程式存放在核心地址空間,使用者態程式不能往核心地址空間寫東西,因此,就無法篡改或破壞作業系統程式.作業系統由此得到保護。

對於使用者程式破壞作業系統程式這樣的威脅模型,使用者態/核心態策略是有效的。可是,實踐證明,黑客有辦法把惡意程式插到核心地址空間中,讓它在核心態執行。這樣一來,惡意程式就有了篡改作業系統程式的能力,情況變得糟糕很多。能篡改作業系統程式意味著篡改應用程式就更不在話下,換言之,所有程式都有被篡改的風險。。

4.3.2 作業系統安全

作業系統是直接控制硬體工作的基礎軟體系統,它緊貼在硬體之上,介於硬體與應用軟體之間,這樣的特殊地位決定了它在系統安全中具有不可替代的作用。沒有作業系統提供的安全支援,應用系統的安全性無法得到保障。不妨以常用的加密功能為例考察這個問題。

假設某應用程式需要利用加密技術對資料進行加密保護.系統配備了硬體加密裝置。硬體加密裝置能夠正確實現所需的加密功能,加密所需的金鑰可以在硬體加密裝置中安全地生成。在硬體的保護下,加密演算法和金鑰既不會洩露也不會被破壞,這方面可以完全擺脫對作業系統的依賴。在這樣強有力的假設前提下,如果沒有作業系統提供相應的功能,應用程式完成加密任務依然存在薄弱之處:

①第一個弱點是無法保證硬體裝置的加密機制能夠順利啟動。攻擊者可以利用惡意程式干擾該應用程式啟動加密機制的操作。由於都在使用者地址空間,惡意程式比較容易篡改該應用程式。具體地說,惡意程式可以篡改該應用程式中啟動加密機制的程式碼,使該程式碼根本不發出啟動加密機制的命令,然後,冒充加密機制與該應用程式互動。雖然該應用程式並沒有啟動加密機制,但它以為加密機制已經啟動了,在後續的工作中,當它把待加密資料傳給加密機制時,實際上資料都由惡意程式代收了。
·該弱點之所以存在,主要是因為應用程式與硬體加密機制之間缺乏一條可信的互動路徑,這樣的可信互動路徑只能由作業系統幫助建立,應用程式自身無法把它建立起來。

②第二個弱點是無法保證硬體裝置的加密機制不被濫用。濫用硬體加密機制的意思是當合法應用程式啟動了該加密機制之後,其他應用程式有可能使用該加密機制,包括使用其中的演算法和金鑰。當合法應用程式A啟動了硬體加密機制H之後,就建立起了一個A 與H之間的會話s,就好比接通了一個電話-一樣。 此後,A是在會話S中使用H的功能的。由於硬體加密機制本身無法區分不同的應用,如果期間有惡意程式B利用會話S使用H的功能,那是有可能的,正如你正在打電話,有人跑到你身邊向對方喊話一樣。

4.3.3 資料庫系統安全

資料庫系統是提供資料管理功能的軟體系統,它由資料庫管理系統和資料庫應用構成。對於資料庫系統安全,我們要從DBMS角度增強資料庫應具有的安全功能,還要從資料庫應用的角度緩解資料庫系統無法迴避的安全風險。

4.3.4 應用系統安全

資料庫系統是提供資料管理功能的軟體系統,它由資料庫管理系統和資料庫應用構成。對於資料庫系統安全,我們要從DBMS角度增強資料庫應具有的安全功能,還要從資料庫應用的角度緩解資料庫系統無法迴避的安全風險。