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