可信計算(Trusted Computing,簡稱TC)是一項由TCG(可信計算組)推進和開發的技術。可信的核心目標之一是保證系統和應用的完整性,從而肯定系統或軟件運行在設計目標指望的可信狀態。可信並不等同於安全,但它是安全的基礎,由於安全方案、策略只有運行在未被篡改的環境下才能進一步確保安全目的。經過保證系統和應用的完整性,能夠確保使用正確的軟件棧,並在軟件棧受到攻擊發生改變後能及時發現。總的來講,在系統和應用中加入可信驗證可以減小因爲使用未知或遭到篡改的系統/軟件遭到攻擊的可能性。算法
以PC機可信舉例,通俗來說,可信就是在每臺PC機啓動時檢測BIOS和操做系統的完整性和正確性,保障你在使用PC時硬件配置和操做系統沒有被篡改過,全部系統的安全措施和設置都不會被繞過;在啓動後,對全部的應用,如社交軟件、音樂軟件、視頻軟件等應用可進行實時監控,若發現應用被篡改當即採起止損措施。數據庫
具體來講,可信計算技術對安全有以下提高:安全
可信主要經過度量和驗證的技術手段實現。度量就是採集所檢測的軟件或系統的狀態,驗證是將度量結果和參考值比對看是否一致,若是一致表示驗證經過,若是不一致則表示驗證失敗。服務器
度量分爲靜態度量和動態度量兩種。靜態度量一般指在運行環境初裝或重啓時對其鏡像的度量。度量是逐級的,一般先啓動的軟件對後一級啓動的軟件進行度量,度量值驗證成功則標誌着可信鏈從前一級軟件向後一級的成功傳遞。以操做系統啓動爲例,可信操做系統啓動時基於硬件的可信啓動鏈,對啓動鏈上的UEFI、loader、OS的image進行靜態度量,靜態度量的結果經過雲上可信管理服務來驗證,以判斷系統是否被改動。網絡
動態度量和驗證指在系統運行時動態獲取其運行特徵,根據規則或模型分析判斷系統是否運行正常。架構
可信計算另外一個核心部分是可信根,一般是可信硬件芯片。可信計算經過芯片廠家植入在可信硬件中的算法和祕鑰,以及集成的專用微控制器對軟件棧進行度量和驗證來確保可信。根據安全芯片和其上運行的可信軟件基(Trusted Software Stack)分類,業界目前主流的可信計算標準主要有三種:Trusted Platform Module (TPM)、Trusted Cryptography Module (TCM)和Trusted Platform Control Module (TPCM)。框架
TPM/TCM的優點在於技術成熟、商業化條件好,產品商業化已經超過十年。微軟和谷歌都有基於TPM的商業化的可信雲方案。TPCM是基於國產化思路提出的可信標準。相對TPM和TCM,TPCM對硬件和可信軟件棧(TSS:Trusted Software Stack)架構作了較大的改動。TPCM最大的優勢是能夠作主動度量,但在計算主機上還沒有商業化和產品化成熟。機器學習
等保2.0將可信提高到一個新的強度。在等保一到四級都有可信的要求,主要在三個領域:計算環境可信、網絡可信、接入可信。以計算環境可信舉例,等保2.0中可信四級要求以下:性能
可基於可信根對系統引導程序、系統程序、重要配置參數和通訊應用程序等進行可信驗證,並在應用程序的全部執行環節進行動態的可信驗證,在檢測到其可信性受到破壞後進行報警,並將驗證結果造成審計記錄送至安全管理中心,並進行動態關聯感知。學習
可信基本要求之一「基於可信根對系統引導程序、系統程序、重要配置參數和通訊應用程序等進行可信驗證」在業界已有方案,如基於TCM安全芯片的系統啓動度量和驗證。等保2.0中對這項要求沒有明確提出動態的可信驗證,緣由之一是系統(如操做系統)過於複雜,很難造成完整的甚至局部的驗證基準值,在工程實現上沒法保障規則的完整性,誤報、漏報沒法控制,嚴重影響安全和用戶體驗。基於這個判斷,傳統的基於靜態度量和驗證的系統可信啓動應該知足這項要求。
與系統可信不一樣,等保2.0四級對應用可信有明確的動態驗證要求。再複雜的應用相對操做系統來講也簡單得多,因此作應用動態驗證在工程上是可行的,挑戰是如何在不嚴重影響應用的功能、性能,即保證用戶使用體驗的前提下作到應用動態可信。解決這個問題的實質在於如何選擇應用的度量對象,肯定度量值,以及如何收集和管理驗證基準值,或所謂的應用行爲白名單。
應用可信的實現可經過只容許指定的應用,即所謂白名單應用在某個環境下(通常是物理主機、虛擬機上或容器)運行,非白名單應用沒法在目標環境中運行;同時白名單應用受到監控,其運行行爲一旦被發現異常,系統會根據異常行爲的安全危害等級報警並採起相應措施,如阻斷應用、刪除應用、重啓系統等。對環境中運行的應用進行限制可減小不安全的應用對雲平臺進行攻擊的可能性,而對應用的監控能夠及時發現攻擊並作響應。
等保2.0並無明確規範應該如何實現應用可信,緣由之一是在現有的安全實踐中沒有很好的方式能夠參考。可信最終是爲安全服務的,若是應用的動態驗證可以幫助及時發現攻擊甚至阻止攻擊,將攻擊形成的危害降至最低,這樣的應用可信就應該是有效的。
等保2.0要求的動態關聯,可理解成在可信驗證失敗時對被監測的對象及時採起措施,阻斷攻擊並對可能遭受攻擊的資產進行保護。實現的方式可經過安全管理中心有效地傳遞驗證結果數據,使其餘安全手段可以及時響應。
雲平臺安全依賴操做系統、數據庫、虛擬化等技術,而這些系統/技術會存在原生的安全問題,使攻擊者可利用系統/技術漏洞實現其攻擊目的。同時,平臺上的第三方系統軟件、應用軟件等可能會在安裝或升級過程當中被修改或植入攻擊性模塊,存在經過相似中間人攻擊或內部攻擊替換正版軟件的風險。
阿里雲提供了較完整的平臺安全措施和強邊界防護能力,同時經過可信來有效減少攻擊面和攻擊源,提高攻擊門檻,使雲平臺安全升級。所謂可信,即雲平臺、雲上應用以及雲用戶運行環境、應用,經過使用用戶指定的軟件而達到行爲的可預判,以此來確保雲平臺上運行環境以及其上運行的應用的可信,來減小因爲未知因素引起成功攻擊的可能性。
可信總體框架
阿里雲可信是依賴雲平臺硬件安全中的可信計算能力,經過自研開發的可信服務,實現雲上的軟件棧可信,即:雲平臺安全可信、雲平臺上運行的應用可信,達到雲平臺總體安全可信升級的目標。
雲平臺可信即確保雲平臺上運行的系統軟件,如固件、操做系統(OS)都是安全的,保障平臺上的系統不被篡改,即保持運行環境是所要求的運行環境。爲實現這個目標,主要採用的手段是對系統軟件的度量和驗證,而度量和驗證自身的可信經過雲平臺可信硬件來支持。可信硬件做爲雲服務器或接入用戶服務器的可信根,經過在硬件內部實現最基礎的安全功能如祕鑰存儲、安全算法實現從下到上逐級的可信鏈傳遞。
阿里雲可信根採用在商業和產品化上成熟的TCM,經過使用裝有TCM可信芯片的可信服務器做爲系統的可信根逐級實現雲平臺以及其上業務的可信。在將來國有化和更強大的TPCM商業化成熟後,會過渡到用TPCM支持的可信服務器。
TCM能保障物理機的可信,而云平臺的物理宿主機上通常需運行多個虛擬機,但一個宿主機一般有一個TCM芯片,爲保證對虛擬機的度量,須要有效地對TCM資源進行分配;同時虛擬機會因業務的須要而遷移,爲保證虛擬機度量的延續性,其可信相關的安全管理數據如最後的PCR值等應同步遷移到目標主機上,爲實現上述需求,阿里雲開發TCM虛擬化(vTCM)以安全管理TCM的資源和數據。
雲平臺可信實現框架圖以下:
可信度量啓動鏈+遠程證實設計框架
阿里雲對白名單應用的保護是經過靜態度量和驗證、動態度量和驗證來實現的,同時採用動態關聯感知技術進一步確保應用可信。
靜態度量和驗證在應用啓動以前對其鏡像進行校驗,僅校驗合格後才容許應用啓動運行。校驗的基準值爲應用開發者發佈的應用簽名,或是可信服務提供的校驗基準值。
動態度量和驗證採用的是經過應用行爲白名單來實現的。被度量和驗證的應用行爲是系統調用行爲,包括進程啓動、進程調用、網絡訪問、文件訪問等。系統調用是應用的核心執行動做,一個被攻擊過、再也不可信的應用在執行實現攻擊者目標時必須經過系統調用實現,也就是說,經過對系統調用的監測可以有效地發現應用異常,即再也不可信。實現應用可信的具體方式是首先經過對白名單應用的分析,收集用戶正常行爲,並以此創建行爲規則庫,而後根據實時採集的應用行爲數據,對比應用行爲規則庫進行判斷。若是應用行爲沒法匹配任何一條規則,這個行爲會被判斷爲異常,可信雲決定是否告警或終止應用運行。
此外,動態關聯感知技術經過對應用行爲特徵的判斷,可發現應用在不調用白名單之外的狀況下的應用異常。動態關聯感知經過機器學習產生應用行爲基線,在應用運行時採集了一段時間應用的行爲,經過大數據分析和機器學習的方式造成應用行爲特徵,並以此對應用行爲特徵異常做出判斷。
阿里雲可信應用可信的實現方式以下:
可信和安全是相輔相成的,可信是安全的基礎,但可信自身的實現也須要有安全機制,有安全手段配合才能更有效,例如操做系統的只讀安全措施能夠大大減小系統動態度量的範圍,使系統動態度量成爲可能。
目前,國際領先雲服務商如谷歌的GCP和微軟的AZURE都已有完整的基於靜態度量/驗證的雲平臺可信方案,AWS可信方案也在開發中。在國內,阿里雲是首傢俱有可信能力的雲廠商,其專有云平臺研發了基於可信技術的雲平臺入侵檢測系統,知足了等保2.0對於可信部分的高標準要求,這也是其成爲經過等保2.0四級(可交付的最高等級)評測的緣由之一。
在目前中國雲計算可信發展初期階段,安全硬件、服務器、系統、應用等廠商須要聯合起來,造成協同雙贏的生態,共同推進可信的深刻發展,爲構建更穩固的安全體系固本強基。
本文做者:雲安全專家
本文爲雲棲社區原創內容,未經容許不得轉載。