谷歌是世界上技術(shù)最牛的公司之一,。谷歌內(nèi)部的網(wǎng)絡(luò)安全體系BeyondCorp是安全領(lǐng)域最知名的安全架構(gòu)之一,。對于學(xué)習(xí)者來說,非常幸運的是,,谷歌沒有把BeyondCorp當(dāng)做秘密藏起來,,而是發(fā)了6篇論文,,事無巨細地介紹了BeyondCorp的技術(shù)架構(gòu)、資源配置,、如何一步步上線,、怎么給員工培訓(xùn)……基本上,這6篇論文可以當(dāng)做企業(yè)實施零信任的傻瓜式教程了,。
我就是做零信任的,,我設(shè)計產(chǎn)品的時候,常常會借鑒BeyondCorp的理念,。我在實施項目的時候,,也常常會碰到BeyondCorp團隊碰到過的問題。下面就是我對這BeyondCorp 6篇論文做的一次總結(jié),,也是對這幾年辛苦日子的一個紀念,。
1、BeyondCorp的誕生
為什么谷歌會搞BeyondCorp呢,?
因為谷歌在2009年曾經(jīng)受到過一次可能源自中國的嚴重網(wǎng)絡(luò)攻擊“極光行動”,。谷歌的一名員工點擊了即時消息中的一條惡意鏈接,最后引發(fā)了一系列事件導(dǎo)致這個搜索引擎巨人的網(wǎng)絡(luò)被滲入數(shù)月,,并且造成各種系統(tǒng)的數(shù)據(jù)被竊取,。
事后谷歌對安全事故進行了全面調(diào)查,。結(jié)果幾乎所有調(diào)查報告都指出,黑客在完成攻擊之前,,甚至之后,,曾長期潛伏在企業(yè)內(nèi)網(wǎng),利用內(nèi)部系統(tǒng)漏洞和管理缺陷逐步獲得高級權(quán)限,,最終竊取數(shù)據(jù),。
分析調(diào)查結(jié)果,谷歌發(fā)現(xiàn)了自身存在一個嚴重的問題——對來自內(nèi)網(wǎng)的攻擊防護太薄弱,。
做BeyondCorp之前,,谷歌與大多數(shù)企業(yè)一樣,都是以防火墻為基礎(chǔ)劃分出企業(yè)內(nèi)網(wǎng)和公眾網(wǎng)絡(luò)的邊界,,并基于此構(gòu)建安全體系,。企業(yè)內(nèi)網(wǎng)被認為是可信的,為了便于開展日常工作,,通常都不會對員工在內(nèi)網(wǎng)中訪問各種資源設(shè)置嚴格限制,。如果員工出差或在家辦公而只能使用公共網(wǎng)絡(luò),則需要先使用VPN接入企業(yè)內(nèi)網(wǎng),;如果員工要使用手機等移動設(shè)備辦公,,也需要先配置VPN才能使用內(nèi)網(wǎng)辦公資源。
谷歌的經(jīng)驗證明了這種做法是錯誤的,。
這種做法的問題在于一旦邊界被突破,,攻擊者可以暢通無阻地訪問企業(yè)的內(nèi)部特權(quán)網(wǎng)絡(luò),。
隨著應(yīng)用上云,、移動辦公的流行,以及APT攻擊的泛濫,,邊界的防護變得越來越難,。例如谷歌遇到的極光行動,例如這兩年的勒索病毒……來自內(nèi)部的攻擊事件已經(jīng)成為大概率事件,。內(nèi)部威脅成為最嚴重的威脅,。
那么,要怎么防護內(nèi)部威脅呢,?谷歌的答案是——BeyondCorp,。
2、BeyondCorp的架構(gòu)
下圖是BeyondCorp架構(gòu)的主要組件,。各組件之間相互作用,,保證——只有通過嚴格認證的設(shè)備和用戶才能被授權(quán)訪問需要的企業(yè)應(yīng)用。
從圖中可以看出BeyondCorp的幾個特點:
?。?)谷歌大樓的內(nèi)網(wǎng)是無特權(quán)網(wǎng)絡(luò),。谷歌員工插上公司網(wǎng)線或連上wifi之后,,只能連接互聯(lián)網(wǎng)和有限的基礎(chǔ)設(shè)施服務(wù)(如DNS、DHCP,、NTP),。不能直接連公司內(nèi)部的業(yè)務(wù)系統(tǒng)。而且員工進行802.1x認證之后才能連上內(nèi)網(wǎng),。
?。?)無論用戶身在谷歌大樓的內(nèi)網(wǎng),還是咖啡館公共網(wǎng)絡(luò),,要連公司的內(nèi)部系統(tǒng)的話,,都要通過“訪問代理”的驗證,才能訪問,。訪問代理是面向互聯(lián)網(wǎng)的,。
(2.1)訪問代理會驗證用戶的身份,。用戶通過單點登錄系統(tǒng)(SSO)的雙因子認證來驗證身份,。外化的單點登錄系統(tǒng)起到了一層防騷擾的作用,沒有通過身份驗證的人只能看到訪問代理,,看不到后面的業(yè)務(wù)系統(tǒng),。
(2.2)訪問代理會驗證用戶的設(shè)備,。只有企業(yè)采購并妥善管理的受控設(shè)備才能連接訪問代理,。谷歌公司的設(shè)備通常會禁止用戶亂裝軟件,自動更新安全補丁和病毒庫,。
?。?.3)訪問控制引擎持續(xù)給用戶的信任等級打分。等級保持在“高級”的用戶才能通過訪問代理,。例如,,一個未安裝最新操作系統(tǒng)補丁的設(shè)備,其信任等級可能會被降低,。一個從新位置訪問應(yīng)用的用戶,,其信任等級可能會被降低。而且用戶的等級是基于每個訪問請求隨時改變的,。用戶一旦做了可疑操作會被立即降低信任等級,。(信任等級的判斷是BeyondCorp中的核心,以后可以單開一篇文章來講)(2.4)用戶授權(quán)判定也往往參考用戶身份和設(shè)備的信任等級,。例如,,可以限制只有全職工程師、且使用工程設(shè)備才可以登錄谷歌的缺陷跟蹤系統(tǒng);限制只有財務(wù)部門的全職員工使用受控設(shè)備才可以訪問財務(wù)系統(tǒng),。
?。?)一切檢測都通過之后,訪問代理會將用戶請求轉(zhuǎn)發(fā)給后面的業(yè)務(wù)系統(tǒng),??蛻舳撕蛻?yīng)用之間的流量被強制加密。訪問代理還提供負載平衡,、應(yīng)用健康檢查和DDoS防護等等功能,。
3、用戶訪問流程
codereview.corp.google.com是谷歌工程師審核代碼用的系統(tǒng),。下面就以codereview網(wǎng)站為例,,看看BeyondCorp體系是如何配置的,員工是如何使用的,。
?。?)首先配DNS。把codereview網(wǎng)站的域名在公共 DNS 中注冊,,CNAME 指向訪問代理,。用戶訪問該域名時會連接到訪問代理上。
?。?)配置訪問控制規(guī)則,。例如,限制只有最高信任等級的受控設(shè)備可以訪問,、限制只有最高信任等級的全職和兼職工程師可以訪問,。
(3)一位出差的工程師小明使用谷歌配發(fā)的筆記本電腦,,接入機場的wifi,,不用VPN,直接訪問企業(yè)內(nèi)網(wǎng),。(如果小明身在內(nèi)網(wǎng),,則電腦需與 RADIUS 服務(wù)器進行 802.1x 握手,,并獲取設(shè)備證書,。)(4)小明訪問請求指向訪問代理,筆記本電腦提供設(shè)備證書,。
?。?)訪問代理無法識別小明的身份,重定向到單點登錄系統(tǒng),。
?。?)小明提供雙因素認證憑據(jù),由單點登錄系統(tǒng)進行身份認證,,頒發(fā)令牌,,并重定向回訪問代理,。
(7)訪問代理現(xiàn)在持有小明的設(shè)備證書和單點登錄令牌,。
?。?)訪問控制引擎進行授權(quán)檢查:確認小明是工程組成員、設(shè)備信任等級是高級,、設(shè)備在受控列表中,。
(9)如果所有檢查通過,,則小明的請求被轉(zhuǎn)發(fā)到一個某個應(yīng)用后端獲取服務(wù),。
(10)小明可以正常訪問內(nèi)網(wǎng)系統(tǒng)了,。但是每次訪問行為都受到監(jiān)控,,一旦發(fā)現(xiàn)異常,小明的電腦會被立即隔離,,或者觸發(fā)二次認證,。
4、BeyondCorp的好處
BeyondCorp增強了企業(yè)對抗內(nèi)部威脅的能力,,持續(xù)檢測用戶可信級別,,只允許合法設(shè)備連接內(nèi)網(wǎng)。具體來說BeyondCorp零信任安全可以提升對抗以下10大威脅的能力,。
5,、實施過程
谷歌2011年開始實施BeyondCorp,逐步推廣,,2017年全公司都在使用BeyondCorp辦公,。用6年時間,在不干擾用戶的情況下,,完成如此大規(guī)模的任務(wù),,項目實施非常成功。6年時間積攢的實施經(jīng)驗可能比BeyondCorp架構(gòu)本身更加寶貴,。
BeyondCorp團隊是如何得到管理層,、公司其他部門的支持的呢?
?。?)管理層:人人都恨VPN,,推廣BeyondCorp的一個重要理由是——擺脫VPN,經(jīng)過身份認證的遠程用戶可以直接訪問企業(yè) Web 應(yīng)用,。向管理層證明,,由此產(chǎn)生的生產(chǎn)力提升可以輕松超過BeyondCorp的實施成本。
(2)業(yè)務(wù)部門:把推廣的動機,、基本原理,、威脅模型以及所需成本形成文檔。然后,,向每一個業(yè)務(wù)部門解釋遷移過程的價值和必要性,。高度透明和對標準的清晰解釋幫助加深了與干系人的共識。讓他們充分參與到愿景及目標的規(guī)劃中,。
?。?)關(guān)鍵負責(zé)人:爭取到關(guān)鍵領(lǐng)域負責(zé)人的支持:安全、身份,、網(wǎng)絡(luò),、訪問控制、客戶端和服務(wù)器平臺軟件,、關(guān)鍵業(yè)務(wù)應(yīng)用程序服務(wù),,以及第三方合作伙伴或IT外包等等。讓負責(zé)人梳理和確定各領(lǐng)域?qū)<?,獲得其承諾,,并確保他們投入時間和精力。
?。?)保持溝通:高層領(lǐng)導(dǎo),、團隊負責(zé)人和其他參與者會通過在線文檔、郵件組和定期會議(面對面的和遠程的)聯(lián)系,,始終保持對當(dāng)前進展和項目狀態(tài)的了解,。
(5)組織內(nèi)部宣傳活動來提高大家對 BeyondCorp 的認識,,比如推出了電腦貼紙,、標識和口號,還在辦公室張貼隨處可見的文章,。
取得了公司支持之后,,下一步就是制定合理的推廣策略。
推廣BeyondCorp時,,并不是逐步改造現(xiàn)有網(wǎng)絡(luò),,而是新建了一個環(huán)境,逐步把設(shè)備轉(zhuǎn)移到新的環(huán)境里,。這樣始終保持了老環(huán)境是可用的,,而且可以穩(wěn)步推進新環(huán)境的建設(shè)。
第一階段:用戶在內(nèi)網(wǎng)可以直接訪問業(yè)務(wù)系統(tǒng),。外網(wǎng)通過VPN訪問。
第二階段:用戶在老內(nèi)網(wǎng)可以直接訪問業(yè)務(wù)系統(tǒng)。新內(nèi)網(wǎng)和外網(wǎng)可以通過“訪問代理”訪問,。此時,,DNS解析是分開的,內(nèi)部域名服務(wù)器直接指向應(yīng)用,,外部域名服務(wù)器指向訪問代理,。
第三階段:用戶在老內(nèi)網(wǎng)、新內(nèi)網(wǎng)和外網(wǎng)都可以通過“訪問代理”訪問,。并且限制VPN的使用,。網(wǎng)絡(luò)策略也逐步地由基于IP的策略變?yōu)橐揽啃湃蔚燃壏峙洳呗浴?/p>
有些系統(tǒng)在開發(fā)時,默認用戶永遠是直連的,。這些系統(tǒng)需要進行改造之后才能遷移到“訪問代理”之后,,接受保護。
所以在第二階段,,首先遷移的是那些無需改造的系統(tǒng)及其用戶,。
為了方便判斷哪些用戶符合遷移要求。谷歌開發(fā)了一個小工具,。用戶安裝小工具之后,,工具會記錄用戶所有訪問流量,如果用戶訪問的所有系統(tǒng)都已經(jīng)兼容BeyondCorp了,。那么小工具會變成仿真模式,,模擬新內(nèi)網(wǎng)的環(huán)境,讓該用戶試用,。連續(xù)30天試用沒問題后,,用戶會被自動遷移到新內(nèi)網(wǎng)。
同時這個小工具也會記錄哪些系統(tǒng)訪問量大,,接下來開發(fā)團隊與系統(tǒng)所有者合作,,優(yōu)先改造這些系統(tǒng)。
隨著遷移的系統(tǒng)越來越多,,新員工默認會被分配到新內(nèi)網(wǎng),。
當(dāng)用戶被選中進行遷移時,系統(tǒng)會自動給他們發(fā)送一封啟動郵件,,內(nèi)含:
?。?)明確時間安排
(2)遷移的影響
?。?)常見問題答疑和加急服務(wù)點
?。?)此外,還提供一個自助服務(wù)門戶網(wǎng)站,,允許受業(yè)務(wù)關(guān)鍵時間節(jié)點約束的用戶延遲遷移,。
通過這種方法進行過渡,,用戶使用不兼容 BeyondCorp的應(yīng)用不會感到不太方便;遷移壓力基本都在服務(wù)提供者和應(yīng)用程序開發(fā)人員上,。
在不到一年的時間里,,超過 50%的設(shè)備遷移到了新內(nèi)網(wǎng)。
6,、怎么做用戶教育和運維
在提高安全的急迫性與改變終端用戶的使用習(xí)慣之間總是存在矛盾,。當(dāng)基礎(chǔ)設(shè)施和工作流的改變威脅到生產(chǎn)力的時候,這種矛盾只會升級,。在發(fā)展和穩(wěn)定之間取得平衡,,與其說是科學(xué),不如說是藝術(shù),。
?。?)引導(dǎo)用戶使用BeyondCorp
對于許多新員工來說,BeyondCorp 模型這個概念是相當(dāng)陌生的,。他們習(xí)慣了通過VPN,、公司專屬 WiFi、和其他特權(quán)環(huán)境來訪問他們?nèi)粘9ぷ魉璧馁Y源,。
BeyondCorp 上線之初,,許多新員工仍然會申請 VPN 接入。用戶過會習(xí)慣性地認為如果不在辦公室的時候需要工作,,就是需要 VPN,。
BeyondCorp 架構(gòu)師原本以為用戶不在辦公室,有遠程訪問需求時,,會嘗試直接訪問內(nèi)網(wǎng)資源,,并發(fā)現(xiàn)可以成功訪問。
然而事與愿違,,遠程訪問需要申請 vpn 權(quán)限的用戶習(xí)慣根深蒂固,。
后來,谷歌做了一個改進,。在VPN的申請門戶上明確提醒了用戶 BeyondCorp 是自動化配置的,,他們在請求 VPN 訪問之前應(yīng)嘗試直接訪問他們需要的資源。
如果用戶跳過這個警告,,BeyondCorp 團隊還會對用戶通過 VPN 隧道訪問的服務(wù)進行自動分析,。如果用戶在過去 45 天內(nèi)沒有訪問過任何一個BeyondCorp 模式不支持的企業(yè)服務(wù),就會收到一封郵件,。郵件中會解釋,,由于他們訪問的所有公司資源都支持 BeyondCorp。除非訪問了不支持 BeyondCorp 的服務(wù),,否則他們的 VPN 訪問權(quán)限將會在 30 天內(nèi)失效,。
?。?)入職培訓(xùn)
顯然,在用戶開始谷歌的 IT 之旅時,,就應(yīng)該讓其盡早了解這種新的訪問模式,,因此在新員工入職培訓(xùn)時就會開始介紹 BeyondCorp,。在培訓(xùn)中,,不會大段地講解模型的技術(shù)細節(jié),而是關(guān)注最終的用戶體驗,。強調(diào)用戶不需要 VPN,,就可以“自動”獲得遠程訪問權(quán)限。
使用BeyondCorp非常容易,。一旦驗證了必要的用戶憑證,,就會自動獲取一個Chrome插件。從用戶的角度看,,只要能夠看到插件中的綠色圖標,,他們就可以訪問企業(yè)資源。
?。?)技術(shù)人員的培訓(xùn)
要在支持團隊中培訓(xùn)一批技術(shù)人員,,將他們培養(yǎng)成為 BeyondCorp 模型的專家和本地的主要接口人。這些受過專業(yè)訓(xùn)練的技術(shù)人員有比其他部門同事更高的修復(fù)系統(tǒng)的權(quán)限,。
作為 BeyondCorp 上線的第一批“觀察員”,,他們會通過全球科技論壇、討論列表,、午餐時間和辦公時間來給其他支持團隊做培訓(xùn),。
谷歌鼓勵技術(shù)人員在發(fā)現(xiàn)問題后立即在內(nèi)部文檔中添加新的臨時變通辦法或修復(fù)手段,以便將解決問題的能力盡可能遍布全網(wǎng),,更有效地實現(xiàn)信息共享并獲得規(guī)?;С帧?/p>
?。?)用戶自助修復(fù)
“為什么我的訪問被拒絕了,?”這是遷移到BeyondCorp之后最常見的一個問題。除了培訓(xùn) IT 運維人員回答疑問之外,,谷歌還開發(fā)了一種服務(wù),,它可以分析信任引擎的決策樹和影響設(shè)備信任等級分配的事件的時間順序,從而提出補救措施,。這樣,,有些問題用戶就可以自己解決了。
?。?)用戶自助申請權(quán)限
如果一個資源要求特定群組成員才可訪問,,門戶會提供群組名和一個鏈接,。用戶可以點鏈接申請訪問權(quán)限。門戶在后臺查詢后端的訪問控制列表來判斷該資源的授權(quán)要求,,與用戶當(dāng)前部門比較,,門戶前端將比較結(jié)果進行提示,并引導(dǎo)用戶用戶自助申請加入有權(quán)限的用戶組,。
?。?)錯誤頁面
BeyondCorp的錯誤提示頁面上會帶上用戶信息,這樣技術(shù)人員更容易排查,。例如如果用戶信任等級不夠,,錯誤提示彈窗中會展示用戶的設(shè)備、名稱,,技術(shù)支持人員讓用戶截圖就可以獲取足夠的信息去后臺查詢該用戶的權(quán)限不足的具體原因了,。
7、實施的難點
?。?)系統(tǒng)對接
BeyondCorp能夠從廣泛的數(shù)據(jù)來源中導(dǎo)入數(shù)據(jù),。系統(tǒng)管理數(shù)據(jù)源可能包括Active Directory、Puppet 和Simian,,其他設(shè)備代理,、配置管理系統(tǒng)和企業(yè)資產(chǎn)管理系統(tǒng)也會輸入數(shù)據(jù)。還有括漏洞掃描系統(tǒng),、證書頒發(fā)機構(gòu)和諸如 ARP 映射表等網(wǎng)絡(luò)基礎(chǔ)設(shè)施單元,。每個數(shù)據(jù)源都可以發(fā)送設(shè)備相關(guān)的完整數(shù)據(jù)或增量更新數(shù)據(jù)。
BeyondCorp已經(jīng)從超過 15 個數(shù)據(jù)源中吸收了數(shù)十億的增量數(shù)據(jù),,速度約 300 萬條/天,,總量超過 80TB。
許多數(shù)據(jù)源之間并不具備數(shù)據(jù)關(guān)聯(lián)所必須的“統(tǒng)一標識符”,。例如,,資產(chǎn)管理系統(tǒng)可能存儲資產(chǎn) ID 和設(shè)備序列號,而磁盤加密托管系統(tǒng)存儲硬盤序列號,,證書頒發(fā)機構(gòu)存儲證書指紋,,ARP 數(shù)據(jù)庫存儲 MAC 地址。這些數(shù)據(jù)只能在報告幾個或全部這些標識信息之后,,才可能合并為一條記錄,。
如果再考慮到設(shè)備的全生命周期,相關(guān)的信息及其關(guān)聯(lián)過程將更加一團糟,,因為硬盤,、網(wǎng)卡、機箱和主板都有可能被替換,,甚至?xí)谠O(shè)備之間交換,。另外,,如果還存在人為的數(shù)據(jù)錄入錯誤,情況會更加復(fù)雜,。
?。?)協(xié)議支持
事實證明,BeyondCorp一開始只打算支持 HTTP 協(xié)議是完全不夠的,,隨著項目的推進,,不得不為更多的協(xié)議(其中多數(shù)都需要端到端加密,如 SSH)提供解決方案,。支持這些協(xié)議通常需要對客戶端進行改造,,以確?!霸L問代理”能準確識別設(shè)備,。
第三方軟件通常比較麻煩,因為它可能無法提供 TLS 證書,,也可能其實現(xiàn)邏輯假設(shè)網(wǎng)絡(luò)總是直連的,。為了適配這些軟件,谷歌設(shè)計了一種可以自動建立點到點加密隧道(使用 TUN 設(shè)備)的方案,。軟件對隧道無感知,,就像是直連到服務(wù)器一樣。
8,、意外事件的處理經(jīng)驗
意外緊急情況主要有兩類:
?。?)生產(chǎn)類緊急事件:由于服務(wù)訪問的邏輯鏈路上關(guān)鍵部件的中斷或失靈造成的緊急事件。
?。?)安全類緊急事件:由于迫切需要撤回特定用戶的訪問權(quán)限造成的緊急事件,。
快速推送安全策略是解決意外緊急情況的關(guān)鍵能力。比如,,由于安全掃描設(shè)備可能尚未升級,,檢測不出某種零日攻擊,但可以通過例外處理立即阻止某臺可能遭受零日攻擊的設(shè)備,。
物聯(lián)網(wǎng)設(shè)備的安裝和維護可能并不容易,,可以通過例外處理,直接為其分配適合的信任等級以確保正常訪問,。
面對某些重要用戶訪問失敗的情況,,也需要在后臺直接進行緊急處理,以便保證用戶工作能夠順利進行,。
9,、總結(jié)
BeyondCorp經(jīng)過這么多年的發(fā)展,已經(jīng)從一個前衛(wèi)的理念,,變成了一個成熟的方案,。之前BeyondCorp一直是谷歌內(nèi)部用,。今年疫情,谷歌把BeyondCorp中的“訪問代理”抽象出來,,做成了商業(yè)產(chǎn)品,,在谷歌云上賣。不過國內(nèi)用起來肯定比較麻煩,。國內(nèi)有不少廠商模仿BeyondCorp做了解決方案,。大家有興趣的話,后續(xù)我也可以分享一些國內(nèi)產(chǎn)品,。