安全思維模型解讀谷歌零信任安全架構(安全設計視角)
前言
本篇是安全思維模型解讀谷歌零信任安全架構系列文章,其它文章將陸續推出。
本篇: 安全設計視角解讀 BeyondCorp 專案;
第二篇: 安全運營視角解讀 BeyondCorp 專案;
第三篇: 安全產業視角解讀零信任安全體系的落地。
一、BeyondCorp專案背景
迄今為止,絕大多數企業都還是以防火牆為基礎劃分出企業內網和公眾網路的邊界,並基於此構建安全體系。出差員工或者分支機構通過VPN接入企業內網。Google公司在2011年之前也是如此。正是2009年的APT攻擊“極光行動”推動Google重新搭建整體安全架構,從而誕生了BeyondCorp專案。
更為普遍的情況是,幾乎所有網路安全事故的調查都指出,黑客曾長期潛伏在受害企業內網,利用內部系統漏洞和管理缺陷逐步獲得高階許可權;另一方面,內部人員的誤操作和惡意破壞一直是企業安全的巨大挑戰,長期以來都沒有好的解決方案。傳統看法認為企業內網是可信區域的是站不住腳的。
二、零信任技術體系
BeyondCorp實際上是拋棄了對本地內網的信任,進而提出了一個新的方案,取代基於網路邊界構築安全體系的傳統做法。
在這個新方案中,Google對外部公共網路和本地網路的裝置在預設情況下都不會授予任何特權。使用者無論在哪裡(出差、google大樓,全球其它分支機構等),必須:
1、使用由公司提供的“受管理裝置”; 2、通過使用者身份認證; 3、且符合“訪問控制引擎”中的策略要求; 4、通過專門的“訪問代理”,不可繞過。
才能訪問特定的公司內部資源。相應的,為了保證使用者獲得流暢的資源訪問體驗,Google主要完成了:
1、準確識別裝置,每臺裝置頒發唯一數字證書,通過“裝置庫存資料庫”維護裝置清單; 2、準確識別使用者,每個使用者分配唯一身份ID,通過“使用者/組資料庫”維護使用者身份清單; 3、通過面向網際網路的訪問代理提供內部應用(每個應用都分配域名)和工作流; 4、實現基於已知裝置和使用者的訪問控制,並動態更新裝置和使用者資訊。
幾個安全思維模型
思維模型一:C I A Triad原則
我們先來看一個比較簡單的思維模型,CIA Triad原則就是一切的攻防手段都是圍繞著保密性(C)、完整性(I)、可用性(A)三原則展開的。
保密性 :【保密性實際上是它的本質就是資訊越界】這個邊界實際上是有兩類:一:時間邊界;二:空間邊界。時間邊界就是說還沒到那個時間點,他提前給放出來。比方說我們說高考試卷,每年的高考語文試卷不到6月7號上午9點,九點之前你弄出來了,這就是一個重大的洩密。再說空間邊界,這個資訊從你的內網跑到外網去了,從本來是隻能張三李四知道是變成了王五知道。這就是一個跨越了空間的邊界,資訊它跨越了非授權、非受控的空間邊界,它就是一種資訊的洩密,保密性遭受破壞。
完整性 :【完整性是指資訊的它原本的狀態,系統的原本的結構和組成】如果說這資訊它原本的狀態發生了變化,它比方說從1變成了2,它的組成是從無到有或是結構要素的位置發生了變化、或比例發生了變化,這導致了完整性遭受破壞。
可用性 :這一點比較好理解,就是【我需要的時候,這個系統或資訊能夠去在合理的時間之內獲得,就是可用性】這就是所謂的我們說的CIA這個模型上,CIA定義的有DAD模型,所有的這些工坊都是圍繞CIA展開的,後面我會我們會看到CIA是怎麼來運用。
思維模型二:訪問控制模型
下面我們再來看這個訪問控制模型,就是一切的控制手段,都是圍繞主體、客體、資訊流三個要素展開。
大部分的攻擊最終都是為了獲取相關許可權,很多手段都是圍繞去獲取受害者的身份資訊和驗證資訊(比如密碼)。
這個模型當中,發起訪問的一方就是訪問主體,被訪問的那方就叫做客體。整個訪問就會產生資訊流。在任何一個訪問控制系統中,都包含以下四個行為:
身份標示 :訪問主體在一個確定邊界的系統範圍被給予唯一的標示,解決你是誰的問題;
身份驗證 :對訪問主體需要做基本的身份驗證,解決你宣稱就是誰誰誰的問題。
授權 :使用者身份驗證通過後,需要確定使用者可以訪問哪些資源,以及對資源進行怎樣的操作(讀、寫、刪除等)。解決使用者能做什麼的問題。
審計 :對使用者的訪問行為都記錄在案,以備事後追責或改進系統。
非常複雜的訪問控制系統都是在此基礎上構建的。主要通兩類手段,我稱之為在三個要素的基礎上面加了兩副眼鏡。一個叫做望遠鏡,一個叫做放大鏡。
望遠鏡 :望遠鏡能看的更寬,它是增加訪問者更多的環境的資訊,比如登陸時間、地點以及登入裝置狀態等。
放大鏡 :放大鏡能看的更細,加大了資訊流的粒度的控制,比方說下一代防火牆,在五元組的基礎上,基於應用的來進行控制,不僅僅要看ip,埠和協議,還是要具體的操作碼。
這一切的手段,都是圍繞著主體、客體和資訊流三個基本要素以及身份標示、身份認證、授權和審計四個行為展開的。
思維模型三:邊界與隔離模型
邊界和隔離是安全防禦的第一手段;
與美國邊界的隔離牆。無論是我們所說遠古的長城還是到現在的墨西哥和美國邊境之間的隔離牆,邊界和隔離都是非常有效的一種最古老、最樸素的技術手段,到現在還在運用。劃定邊界,以界隔離,大道至簡。
接下來看一個相對來說比較複雜的一個事情。用安全思維模型來分析它,是否可以幫助我們更清楚地去看明白?
安全思維模型,解讀谷歌零信任安全體系
下面就要用安全思維模型來分析零信任安全體系,只從純技術角度去分析零信任安全體系,不談零信任安全體系的部署和實施,也不談實現零信任安全防護體系的產品節奏。也即拋開運營視角和產品視角,只從安全設計的視角去看零信任安全體系。
對於複雜問題,我們一般會依照定義問題、模組思維和問題解構三個相互依賴、彼此促進的方法。定義問題給問題解構和模組思維輸出問題的邊界;問題解構給定義問題和模組思維輸出問題拆分的結果;模組思維給定義問題和問題解構輸出模組參考。這三者一般先從定義問題開始,但是也不存在絕對的先後關係。
講了這樣一種方法之後,接下來我們回來零信任體系。首先定義問題,設定問題的邊界:任何時間任何位置,裝置和使用者都是不可信任的,只有經過安全狀態檢測的裝置以及使用該裝置且經過身份驗證的使用者才可以依照企業既定的安全策略訪問企業的資源。這個問題定義其實基於以下幾個重要的安全假設:
1、裝置存在未公開的漏洞; 2、裝置存在已知漏洞但是沒有及時打上補丁; 3、人可能會犯錯誤,導致帳號、密碼等敏感資訊丟失;
基於這三個重要的假設,我們接下來看整個零信任安全體系,它可能夠適用的安全思維模型有:
1、CIATriad原則; 2、訪問控制的三要素模型; 3、邊界與隔離安全模型;
初步的問題解構可以把問題拆成以下三個:
1、裝置與使用者的身份定義以及安全狀態感知; 2、業務系統訪問(層級/角色)分解; 3、訪問控制引擎不過繞過;
可以看得出來,零信任安全架構體系主要是跟訪問控制模型相關。下面我們就套用訪問控制模型來解讀零資訊保安架構。
訪問主體包括裝置和使用者,不再是以前單純只看使用者。訪問主體涉及兩個基本問題,一個是身份標示和身份認證。唯一的身份標示意味著需要裝置和使用者註冊並持續維護著裝置清單庫和使用者/組資料庫;BeyondCorp專案中,使用公鑰證書唯一標示裝置身份,使用者使用唯一身份ID來標示身份,在Google所有服務上都使用這唯一id。裝置的身份認證通過自身私鑰簽發數字簽名,由對端系統(訪問代理)利用裝置的身份證書驗證其簽名來驗證裝置的身份。使用者的身份認證可以根據要求,進行一次身份認證甚至二次身份認證。
訪問客體包括google所有的業務伺服器,比如程式碼庫,Bug追蹤庫等。訪問主體與客體是邊界隔離的,使用者不可直接訪問這些資源;
接下來是訪問授權。授權相對是最複雜的地方,基本上看三個要素,訪問主體的屬性和操作,訪問客體的屬性以及授權策略。另外,訪問授權暗含的要求是所有的訪問都必須經過訪問控制器授權之後才可以訪問應用系統或其它資源,這意味著訪問授權控制是不可被繞過的。複雜的授權可以基於這三個要素構建細粒度的、動態的授權機制。如下圖所示。
BeyondCorp專案中訪問主體的屬性則包括裝置和使用者相關的屬性。裝置的屬性資訊提供則是由“裝置清單服務”完成。訪問客體的屬性主要包括各種應用、網路裝置等資源的信任層級。BeyondCorp對使用者的每一次請求都會實時依照訪問策略和訪問主客體的屬性做出授權決策。
基於前面的三個安全假設,需要評估且持續的評估裝置和使用者的安全狀態,這是“望遠鏡”做的事情。裝置的安全狀態主要由“裝置清單服務”提供。如下圖所示:
這個服務核心通過漏洞掃描系統依照裝置清單不斷獲取裝置的漏洞補丁情況以及其它裝置配置基線情況。
訪問控制引擎不可繞過主要外化所有應用和工作流,也即谷歌的所有企業應用都分配唯一域名,在公共DNS上註冊。同時把所有的應用域名解釋首先指向“訪問代理”,在邏輯上控制所有的訪問不過繞過訪問控制引擎。
運用模組化思維,Google零信任安全體系從技術層面上來看,就是這麼簡單。運用CIA Triad原則,邊界與隔離模型,特別是訪問控制模型,從底層上解構了零信任安全體系。
*本文作者:夏石資訊保安,轉載請註明來自FreeBuf.COM