第4章 系統安全
4.1 作業系統概述
計算機是由硬體、作業系統軟體、應用軟體共同構成的複雜系統。
常見的計算機作業系統:Windows、Linux、安卓、iOS。
作業系統(Operating System):一組管理與控制計算機軟、硬體資源,為使用者提供便捷計算服務的計算機程式的集合。
計算機作業系統的功能包括:程序管理、記憶體管理、裝置管理、檔案管理、使用者接口。
作業系統的漏洞和虛拟化環境的安全問題将對作業系統的安全帶來嚴重威脅。
4.2 作業系統安全
4.2.1 作業系統的安全威脅與脆弱性
作業系統的安全威脅包括:非法使用者或假冒使用者入侵系統、資料被非法破壞或者資料丢失、不明病毒的破壞和黑客入侵、作業系統運作不正常。
作業系統的脆弱性包括:作業系統的遠端調用和系統漏洞和程序管理體系存在問題。
作業系統的常見漏洞包括:空密碼或弱密碼、預設共享密鑰、系統元件漏洞和應用程式漏洞。
4.2.2 作業系統中常見的安全保護機制
程序隔離和記憶體保護
為了實作程序隔離與記憶體保護的機制,計算機作業系統中加入了記憶體管理單元子產品(MMU),程式運作時,由MMU子產品負責配置設定程序運作所需的記憶體空間,程序隔離與記憶體保護機制為每個程序提供互相獨立的運作空間。
運作模式
現代CPU的運作模式通常分為核心模式與使用者模式兩種模式
1) 核心模式:也稱為特權模式,在Intel x86系列中,稱為核心層(Ring 0) 。
2) 使用者模式:也稱為非特權模式,或者使用者層(Ring 3)。
使用者權限控制
目前常用的作業系統通常将使用者權限分為系統管理者使用者、普通使用者、訪客使用者等不同權限級别。
檔案系統通路控制
典型的檔案操作權限控制是對檔案的讀、寫和執行三方面權限進行限制,分别對應對檔案進行讀取、修改和運作的操作。
4.2.3 作業系統的安全評估
TCSEC按處理資訊的等級和應采用的響應措施,将計算機安全從高到低分為A、B、C、D四類7個安全級别,共27條評估準則。
D類是最低的安全級别,經過評估、但不滿足較高評估等級要求的系統劃歸到D級。
C類采用的安全措施是自主通路控制和審計跟蹤。C類分為C1和C2兩個級别:自主安全保護級和控制通路通路保護級。
B類為強制保護級别,主要要求是TCB(可信計算基)應維護完整的安全标記,并在此基礎上執行一系列強制通路控制規則。B類分為三個級别:标記安全保護級(B1)、機構化保護級(B2)和安全區域保護級(B3)。
關于B3系統所支援的方面:
安全管理者職能
擴充審計機制
當發生與安全相關的事件時,發出信号
提供系統恢複機制
系統具有很高的抗滲透能力
A級為驗證保護級,包括嚴格的設計、控制和驗證過程。A類分為2個級别:驗證設計級(A1級)和超A1級。
超A1級系統涉及的範圍包括: 系統體系結構、安全測試、形式化規約與驗證、可信設計環境。
4.2.4 常用的作業系統及其安全性
現代作業系統一般可分為普通計算機作業系統、移動終端作業系統、嵌入式作業系統等。
Windows系統安全
Windows系統的安全性以Windows本機安全性授權為基礎,輔以NTFS檔案系統、Windows服務與更新檔包機制、系統日志等,形成完整的安全保障體系。
1)Windows本機安全性授權
Windows本機安全性授權位于Windows作業系統的核心層,是Windows系統安全的基礎。
Windows由系統登入控制流程、安全賬号管理器、本地安全認證和安全引用監控器所構成。
NTFS檔案系統
NTFS檔案系統自Windows NT版本開始被微軟作為Windows系統的預設檔案系統,該檔案系統不但提高了檔案系統的性能,更通過引入通路權限管理機制和檔案通路日志記錄機制大幅提高了檔案系統的安全性。
NTFS檔案的主要特點包括:
NTFS可支援的分區大小可到達2TB
NTFS是一個可恢複的檔案系統
NTFS支援對分區、檔案夾和檔案的壓縮及加密
NTFS采用了更小的簇,可以更有效率地管理磁盤空間
在NTFS檔案系統上,可以為共享資源、檔案夾以及檔案設定通路許可權限
在NTFS檔案系統下可以進行磁盤配額管理
NTFS檔案系統中的通路權限是累積的
NTFS的檔案權限超越檔案夾的權限
NTFS檔案系統中的拒絕權限超越其他權限
NTFS權限具有繼承性
Windows服務包和更新檔包
掃描和利用系統漏洞攻擊是黑客常用的攻擊手段,解決系統漏洞最有效的方法就是安裝更新檔程式。
微軟公司有四種系統漏洞解決方案:Windows Update、SUS、SMS和WUS。
Windows系統日志
1)正确設定和管理系統使用者賬戶
2)安全管理系統對外的網絡服務
3)啟用Windows系統的日志功能
Linux系統安全
Linux是完全免費使用和自由傳播的、符合POSIX标準的類Unix作業系統,遵循公共版權許可證,源代碼公開、自由修改、自由釋出,是能在各類硬體平台上運作的多使用者、多任務的作業系統。
(1)Linux系統的安全機制
1)PAM機制
2)加密檔案系統
3)防火牆
(2)Linux系統安全防範及設定
1)Linux引導程式安全設定 2)防止使用組合鍵重新開機系統
3)安全登入、登出
4)使用者賬号安全管理
5)檔案的安全
6)資源使用的限制
7)清除曆史記錄
8)系統服務的通路控制
9)系統日志安全
10)關閉不必要的服務
11)病毒防範
12)防火牆
13)使用安全工具
14)備份重要檔案
15)更新
16)Rootkit安全防範
Rookit的組成:以太網嗅探器程式、隐藏攻擊者的目錄和程序的程式、一些複雜的Rootkit還可以向攻擊者提供telnet、shell和finger、一些用來清理/var/log和/var/adm目錄中其他檔案的腳本。
防範Rootkit的手段:首先,不要在網絡上使用明文傳輸密碼,或者使用一次性密碼。其次,使用Tripwire和aide等檢測工具能夠及時地發現攻擊者的入侵,它們能夠提供系統完整性的檢查。另外,還可以使用chkrootkit(專門針對Rootkit的檢測工具)來檢查。
4.3 移動終端安全
目前主流的移動終端作業系統平台主要分為兩大陣營:由蘋果公司出品的iOS系統平台和谷歌公司出品的Android系統平台。
移動終端發展至今在安全防護上根基尚淺,而重視程度不高,是造成移動終端安全問題的最大原因。
4.3.1 移動終端的概念及其主要安全問題
移動終端是指可以在移動中使用的計算機裝置。
移動終端的分類:
1)有線可移動終端:指U盤、移動硬碟等需要用資料線來和電腦連接配接的裝置。
2)無線移動終端:指利用無線傳輸協定來提供無線連接配接的子產品,常見的無線移動終端主要包括智能手機,POS機,筆記本電腦也屬于無線移動終端。
移動終端中存在的安全問題可歸納為:敏感資訊本地存儲、網絡資料傳輸、惡意軟體、應用安全和系統安全問題等類型。
4.3.2 Android平台及其安全
Android系統是基于Linux的開源作業系統,無論是手機廠商還是個人開發者都可以在Android标準作業系統的基礎上進行定制。
Android平台在系統架構上分為多個層次,其中比較重要的有應用層、架構層、運作時和Linux核心層。
Android平台由于其開放的特性,相對其他移動終端平台存在更大的安全風險。
Android手機ROOT之後最主要的一個影響就是不能通過官方進行系統更新了,不過可以下載下傳大量的第三方系統固件,讓手機具有更好的機身擴充性。
惡意軟體可能會在使用者不知情的情況下執行資訊竊取、偷跑流量話費、背景靜默安裝其他應用等操作,對使用者的隐私安全和财産安全造成威脅。
為了避免惡意軟體侵害自己的移動終端裝置,使用者應當拒絕安裝來源不明的應用,盡量通過官方管道或可以信任的第三方應用市場下載下傳應用。同時,可以選擇安裝防毒軟體增強移動終端的安全防護。
4.3.3 iOS平台及其安全
iOS是從蘋果公司的桌面系統MacOSX精簡變化而來,兩款作業系統都基于名為Darwin的類UNIX核心。
iOS相較于Android的優點:封閉的開發環境和相對完善的安全機制使其系統的受攻擊面大大縮小,可以較好的保護使用者的資料,避免惡意軟體的侵害,是以獲得了衆多使用者的信賴。
在iOS衆多安全機制中,具有代表性的有權限分離、強制代碼簽名、位址空間随機布局和沙盒。
沙盒機制的功能限制:無法突破應用程式目錄之外的位置;無法通路系統上其他的程序;無法直接使用任何硬體裝置;無法生成動态代碼。
XcodeGhost造成的危害如下:
1)上傳使用者資訊
2)應用内彈窗
3)通過URLScheme執行其他操作
XcodeGhost造成重要影響的原因:從開發環境入手在編譯階段植入惡意代碼;沒有稽核應用中的惡意代碼;開發者安全意識的缺失。
4.3.4 移動系統逆向工程和調試
逆向工程:通過反彙編、反編譯等手段從應用程式的可執行檔案中還原出程式原代碼的過程。
逆向工程可以劃分為系統分析和代碼分析兩個階段。
在代碼分析階段,主要通過發現安全漏洞、檢測惡意代碼和病毒木馬分析對程式的二進制檔案進行分析。
逆向工程的兩個重要作用:
1)攻破目标程式,拿到關鍵資訊,可以歸類于與安全相關的逆向工程。
2)借鑒他人的程式功能來開發自己的軟體,可以歸類于與開發相關的逆向工程。
apk檔案所包含的檔案:
1)AndroidMainifest.xml檔案
2)res檔案夾
3)classes.dex檔案
4)Resources.arsc
5)META-INF檔案夾
為防止應用軟體被Android逆向工程,可以采用以下幾種防護措施:
1)代碼混淆:可以使用ProGuard對Java代碼進行混淆,增加反編譯後代碼閱讀的難度。
2)加殼:通過為apk增加保護外殼的方式,保護其中的代碼,增加非法修改和反編譯的難度。
3)調試器檢測:在代碼中添加檢測動态調試器的子產品,當程式檢測到調試器依附時,立即終止程式運作。
常用的iOS逆向分析工具如下:
1)Dumpcrypt:對從AppStore中下載下傳的應用進行脫殼操作。
2)class-dump:通常在逆向工程初始階段使用class-dump。
3)IDAPro與HopperDisassembler:知名的反彙編工具,用于對可執行檔案進行精确而細緻的靜态分析,轉化為接近源代碼的僞代碼。
4)GDB與LLDB
5)Cycript
逆向工程已經成為保障系統安全的主要手段,通過逆向工程,能夠進一步發現系統中的漏洞和安全隐患,更好地保證使用者安全。
4.4 虛拟化安全
虛拟化是目前雲計算重要地技術支撐,需要整個虛拟化環境中的存儲、計算及網絡安全等資源的支援。
4.4.1 虛拟化概述
計算機虛拟化技術是一種資源管理技術,它将計算機的各種實體資源,通過抽象、轉換後呈現給使用者。
4.4.2 虛拟化技術的分類
按應用分類:
1)作業系統虛拟化
2)應用程式虛拟化
3)桌面虛拟化
4)存儲虛拟化、網絡虛拟化等
按照應用模式分類:
1)一對多
2)多對一
3)多對多
按硬體資源調用模式分類:
1)全虛拟化
2)半虛拟化
3)硬體輔助虛拟化
按運作平台分類:
1)X86平台
2)非X86平台
4.4.3 虛拟化環境中的安全威脅
虛拟化系統中可能存在的安全問題:虛拟機逃逸、虛拟化網絡環境風險、虛拟化鏡像和快照檔案的風險和虛拟化環境風險。
4.4.4 虛拟化系統的安全保障
Hypervisor在虛拟化系統中處于核心地位,它能控制并允許啟動Guest OS、建立新Guest OS鏡像、執行其他特權操作。
關于如何增強Hypervisor安全的建議:
1)安裝廠商釋出的Hypervisor的全部更新
2)限制Hypervisor管理接口的通路權限
3)關閉所有不用的Hypervisor服務
4)使用監控功能來監視每個Guest OS的安全
5)仔細地監控Hypervisor自身地漏洞征兆
關于對Guest OS自身的安全建議:
1)遵守推薦的實體OS管理慣例
2)及時安裝Guest OS的全部更新
3)在每個Guest OS裡,斷開不用的虛拟硬體。
4)為每個Guest OS采用獨立的認證方案
5)確定Guest OS的虛拟裝置都正确關聯到宿主系統的實體裝置上
規劃和部署的安全的主要措施:規劃、設計(認證問題和密碼問題)、實施(實體到虛拟的轉化、監控方面、實施的安全性、運維)等方面。
7.2 雲安全
7.2.1 雲的相關概念
虛拟機:通過軟體模拟的具有完整硬體系統功能的、運作在一個完全隔離環境中的完整計算機系統,具有封裝性、獨立性、隔離性、相容性,且獨立于硬體。
雲是一個計算資源池,通常為一些大型伺服器叢集,每一群包括了幾十萬台甚至上百萬台伺服器,是一種為提供服務而開發的整套虛拟環境。
從技術架構上可以分為三層:服務軟體即服務、平台即服務和基礎設施即服務。
從雲面向的對象可以分為公有雲、私有雲和混合雲。
雲計算:一種計算方法,即将按需提供的服務彙聚成高效資源池,以服務的形式傳遞給使用者使用。
雲服務的提供的三種不同層次的模式:基礎架構即服務、平台即服務、軟體即服務。
雲安全:一個從雲計算衍生而來的新名詞,是指雲及其承載的服務,可以高效、安全的持續運作。
7.2.2 雲面臨的安全挑戰
目前雲面臨的安全挑戰主要集中在四個方面:
1)如何解決新技術帶來的風險
2)如何規劃資源、資料等帶來的風險
3)如何落實政策、法規方面的各項要求名額的風險
4)如何去運維管理雲及其資源的風險
新技術的安全風險主要集中在可控性、動态性和虛拟機逃逸等方面。
雲面臨的集中化安全挑戰:
1)雲資料中心安全防護方面存在網絡結構的規劃與設計,系統的識别與遷移,權限集中等問題
2)雲平台管理者存在權限濫用風險
3)使用者的安全隔離
4)資源池内使用者搶奪資源和惡意攻擊
雲安全建設需要從六大層面考慮,包括實體層、網絡層、主機層、應用層、虛拟化層和資料層:
1)實體安全方面需要考慮門禁、消防、溫濕度控制、電磁屏蔽、防雷、環境監控系統等方面的資訊安全建設防護。
2)網絡安全的安全建設通過FW、IDS/IPS、DDoS、VPN等方式去實作。
3)主機安全需要考慮終端安全、主機安全、系統完整性保護、OS加強、安全更新檔、病毒防護等方面的資訊安全建設防護。
4)虛拟化安全建設可以通過慮虛拟化平台加強、虛拟機加強與隔離、虛拟網絡監控、惡意VM預防、虛拟安全網關VFW/VIPS等多方面去進行技術實作。
5)應用安全建設可以考慮通過多因素接入認證、WAF、安全審計等技術實作。
6)資料安全可以從資料通路控制、DB-FW、鏡像加密、資料脫敏、剩餘資訊保護、存儲位置要求等方面進行資訊安全建設防護