【國內首例】如何構建不分內外網的雲安全網路?Google BeyondCorp商業實踐
全文5000字左右,閱讀時長約15分鐘,技術方案交流,文末有一個走心福利廣告。
預備知識1:什麼是CDN
CDN即內容分發網路,最核心基礎的作用是提供網路加速服務,如果企業或者個人建站,使用普通的雲主機部署為使用者提供訪問,網路將速度受到跨運營商線路轉換限制、長路徑傳輸、傳輸協議效率低效、等諸多問題影響,使用者的訪問體驗很差。CDN就是用來解決網路傳輸速度問題的手段,時至今日,CDN已經成為一種基礎網路設施,大到億級活躍使用者的微信、淘寶、抖音,小至創業公司官網,都能見到CDN的身影。
CDN的加速原理可以通過1個送快遞案例理解:
公司A是北京的一家售賣服裝的公司,福建的小明通過公司A的網店購買一了件衣服。小明該如何快速獲取他購買的衣服?
- 傳統模式:小明自己坐火車或其他交通工具,從福建長途跋涉趕往北京公司A,拿到衣服並再次返回福建,耗時耗力耗錢。
- 快遞模式(CDN模式):公司A在各個地區開設快遞門店,其中包括了小明所在福建區域。公司A可以預先將服裝發往各個門店,當小明購買服裝時,就可從福建本地就近取貨,或者快遞員發貨。 另一種情況是如果福建本地並沒有小明購買的服裝庫存,則由門店代理通過高效的交通工具(如飛機),為小明從北京取回他想要的服裝。
這個案例中,北京的公司A可以類比成企業的網站伺服器,福建的小明類比為網站的訪問使用者,購買的服裝類比使用者向網站請求的資料,CDN則扮演著各個快遞門店以及高效的交通工具角色。
預備知識2:Google BeyondCorp計劃(零信任網路模型)
Google BeyondGorp是谷歌2015年提出的計劃,旨在搭建安全可信、不分外網的無邊界網路,以下簡稱零信任網路模型。零信任網路模型認為現在普遍應用的內網模型並不是安全的,主要表現在:
- 一旦內網被侵犯,來犯者可在內網不受任何阻擾的獲取的企業內部資料;
- 安全的核心在於確保訪問者是不是使用者本人,而不是員工是否在內外網內;
- 持有密碼的不一定企業員工,有可能是其從從黑市裡買過來的,雙因素認證很有必要;
- 使用者至上,遠端辦公、分支辦公的比例日益增長,網路環境的限制和操作的複雜性,將會影響使用者的訪問體驗。
零資訊網路的最終目的:實現目標使用者不分時間段、不分地點、不分網路環境的對企業的敏感系統進行安全訪問。
零信任網路模型從員工裝置出發,包括筆記本、電腦、和手機,都需要登入裝置清單服務,在服務中保持一段時間的身份信任和裝置快照,使得使用者可以通過可信任的裝置,進行系統訪問。相比普通的內外網架構依據使用者所處的網路環境來決定是否為使用者的訪問放行,零信任網路的訪問策略關注使用者當前裝置的歸屬、裝置安全狀態判斷,使用者所持有的裝置是安全被授信的,使用者可以即可隨時隨地訪問網路。
不論是現有企業區分內外網,還是零信任網路模型,安全仍然是第一前提,需保障企業的敏感網站和敏感資料不受非法訪問侵害,Google 的零信任網路模型可以進一步總結為:持有安全裝置 + 服務定期快照安全裝置 + 公網資訊傳輸加密。 效果如下:
- 員工1持有可信任的裝置(可以是公司發放或者自購裝置),並在服務清單裝置中被標記為可信,則使用者1可以訪問其許可權範圍內的系統域名;
- 員工2持有可信任的裝置(可以是公司發放或者自購裝置),但該員工近期已經申請離職,並從裝置信任服務清單中被清除,則使用者2無法訪問系統公司的系統域名;
- 普通使用者使用私人電腦,裝置未經信任,則無法完成網路建聯。
CDN 與 零信任網路結合
零信任網路讓使用者訪問更便捷、企業業務更安全、維護投入成本更少、然後顯而易見的是,企業自主實施搭建零信任網路架構將要耗費大量的精力和成本,收益和成本可能不成正比。
零信任網路與CDN的結合可以比較完美的解決這個問題,當系統使用CDN加速時,使用者的訪問將會先到達CDN的伺服器,再由CDN將請求轉發至企業原始伺服器中。在這個過程,CDN的與使用者直接聯絡,可以將零信任網路模型搭建與此,承擔使用者過濾的作用,類似於防火牆幫助企業隔絕非目標使用者和黑客的訪問,而企業的源站則不需要改動。
》》核心訴求:
- 如何將指定使用者的裝置標記為可信?
- 如何定期為裝置設定安全快照,將離職員工的裝置或非法裝置從新人列表中移除?
- 如何保障敏感資訊在網路傳輸的安全?
》》增值訴求:
-
如何最大化簡化企業的管理流程,便捷使用者訪問系統的流程?
-
隱私網站在公網上,如何保障其不受黑客和爬蟲的侵擾,DDos攻擊?
-
如何讓系統的服務效能更優秀?
帶著上述的訴求,我將一一講述CDN與零信任網路的融合構建:
–
核心訴求:
1. 如何將指定使用者的裝置標記為可信 ?
Google BeyondCorp提倡使用客戶端數字證書作為裝置可信任的身份憑據,嵌在裝置當中。本次實踐也遵循著Google BeyondCorp的設計理念,在這裡客戶端證書可以理解為每個合法公民的身份證,身份證與使用者的關係為一一對應的關係,而CDN伺服器或者專屬的鑑權伺服器,也將記錄著使用者著身份證的資訊。 當用戶通過可信裝置發起訪問時,身份證的指紋資訊也將傳入伺服器中校驗。校驗通過,方可繼續訪問。這個過程就好比你指紋在公司上班打卡一樣。
2. 如何定期為裝置設定安全快照,將離職員工的裝置或非法裝置從新人列表中移除?
顯然沒有哪個裝置是經過一次授權,即可永久訪問的。為此必須考慮裝置授權的有效週期,因為在裝置被授權之後可能發生各種各樣的情況,比如員工從公司離職了、員工的職權範圍變化等,都可能影響著員工對特定系統的訪問。因此要求企業管理員能夠實時的為新使用者的新裝置授權、變更某特定裝置的訪問許可權、將可信任裝置從信任表中移除等一系列操作。為此需要一套專門的管理平臺,供企業管理進行這一系列的操作,並將操作結果定期下發至CDN服務中去,以便CDN能夠及時的對使用者的訪問許可權做出反應。
3. 如何保障敏感資訊在網路傳輸的安全?
傳輸安全相對好解決很多,直接在傳輸網路上套接SSL安全加密協議即可,這也是目前網路傳輸中最可靠的方式,比如VPN傳輸的加密、百度網站的傳輸加密都是如此應用,此處不做詳細描述。
增值訴求
1. 如何簡化企業管理,以及使用者訪問系統的流程?
從企業的使用成本和難度維度上來看,企業基本都是不要做額外的改動,內網、VPN硬體裝置等支援,僅需要將域名的訪問權CNAME給 CDN做代理,並在CDN提供的管理平臺或者API介面管理系統和使用者即可。
當然這裡還有另外一個重要的流程,前面講到裝置是否可信任的一個重要的評判指標是客戶端證書,那麼客戶端證書該如何生成、如何給到使用者、以及證書如何被裝載進使用者的裝置、如何提升訪問系統的便利性,均需要考慮每個步驟的操作便捷性。
■ 客戶端證書生成:
客戶端證書可以通過Openssl手動簽發,並手動新增到信任列表中。但這顯然不夠便捷,當用戶體量比較大的時候會為企業管理管理增加很多的工作量。本次實踐中將證書的簽發流程實現完全的自動化,將openssl證書籤發工具整合至管理平臺中,企業管理員可以通過管理平臺實現單使用者的新增、以及通過excel的批量生成客戶端證書。生成客戶端證書的過程其實就是建立使用者的過程,每一個使用者都將對應著一本專屬的客戶端證書,我們僅需對使用者做許可權管理操作即可。
■ 使用者如何獲取其專屬的客戶端證書:
被動獲取:當管理員建立使用者時,管理平臺將客戶端證書自動生成並通過郵件的形式傳送至使用者郵箱,但這種方式有一個明顯的不足之處就是使用者當下可能並沒有訪問系統訴求,這封郵件被限制的概率則很高,而當用戶想要訪問系統時,必須翻閱歷史郵件再做安裝。 主動獲取:當用戶訪問系統時,CDN伺服器監測當前使用者所使用的裝置並不是可信裝置,則會將請求跳轉到指定授權頁面,引導使用者獲取客取客戶端證書,此時使用者則可通過郵箱資訊驗證獲取客戶端證書,只要使用者的郵箱資訊在伺服器的可信任裡列表裡有可對應的證書,即會將證書發往相應郵箱以供安裝。
■ 證書如何被裝載進使用者電腦:
windows和mac對於客戶端證書的安裝已經有了很成熟的機制,使用者僅需要雙擊客戶端證書,一直按預設流程點選下一步5-6次即可完成安裝,全流程1~2分鐘,一次性安裝無需重複操作。當然當前也會有一些驅動或者客戶端可以做這件事情,本次實踐不涉及這塊,因為原生系統當前已經做得比較完善。
在這裡會衍生出一些其他的安全性問題。以下解釋本次實踐中針對這些事項解決方法: (1)證書是每個人都可以獲取和使用嘛? 答:每本證書都配有獨一無二的一次性安裝密碼,並且下載連結也會被設定時效性。 (2)安裝進電腦的裝置是否會被匯出使用者其他電腦? 答:獲得的證書只能被刪除卻不能被匯出。 (3)網路建聯過程中,證書會被髮給伺服器,是否會洩露? 答:僅會發送證書的一部分內容,這部分內容即使被擷取也無妨。 (4)如果裝置被人竊取,改如何保障系統安全? 答:管理平臺可以直接吊銷該裝置的訪問許可權,當然也可以為客戶端證書設定簡單的呼叫口令(可選),即使有他人用了該裝置,仍舊無法訪問系統。
■ 如何提升訪問系統的便利性
(1)一次安裝,長期使用 :客戶端證書被裝載進裝置後,裝置可以處於長期可信的狀態,二次訪問將無需重新裝載證書,伺服器會定期持續對裝置進行監測,直至被從可信列表中移除、許可權變更,或裝置被監測出安全隱患。
(2)相容絕大多數瀏覽器 :裝置安裝的證書將預設被嵌於底層作業系統中,基於其之上的谷歌瀏覽器、IE瀏覽器、QQ瀏覽器等需可以呼叫客戶端證書實現訪問(除火狐外、火狐需要獨立安裝)。
(3)一憑據訪問多域名 :客戶端證書作為使用者訪問通行證,將被分配指定許可權(角色形式),持有證書將可以訪問其職權範圍內的所有域名,而無需每訪問一個域名時均重複安裝證書。同時這種方式也將便利於企業管理員管理使用者的訪問許可權,避免因為跨職權的訪問帶來的資訊洩露。
■ 讓證書安裝更簡單 – AD域整合,證書靜默無感知安裝
儘管上述的證書安裝已經很便捷,使用者可以再1~2分鐘時間完成證書安裝。但如果能過做到使用者零操作、無感知的證書安裝,使用者甚至都不需要知道自己的裝置已經被授予信任了,整體的使用者體驗將會更佳。通過與企業AD域的整合,則可實現這種效果。
AD域:面向具備一定員工規模的企業,提供一種集中式的使用者統籌管理和資訊保安管控模式,是當前中大型企業管控員工裝置最常用的方式,其要求員工辦公裝置均需入域。AD域應用範疇很廣,網上的資料也很多,簡要了解可看連結:https://blog.csdn.net/afandaafandaafanda/article/details/48780485;
與企業AD域的整合,通過域策略實現客戶端證書的靜默安裝業務流程:
(2) 當用戶裝置進入到企業的AD域中,將會預設去到企業AD域伺服器中註冊一本專屬的客戶端證書,並自動安裝在自己電腦上;
(3) 企業管理員將使用者校驗客戶端證書的檔案(CA檔案),同步給CDN,即可完成整個服務的搭建。整體搭建週期1~2天。
完成上述操作後,入域的每一個員工,都能在自己的計算機裝置上檢視到個人專屬的客戶端證書,如同身份證一樣,證書中記錄著使用者的名字、使用週期、證書籤發組織等資訊,如下圖。
2. 隱私網站在公網上,如何保障其不受黑客和爬蟲的侵擾,DDos攻擊
爬蟲因為沒有客戶端證書,無法與CDN伺服器建立網路連線,自然無法獲取網站內容。另一方面CDN的節點資源也可用於抵禦DDos攻擊,此處不做過多的描述。
3. 如何讓系統的服務效能更優秀?
這是CDN天然的優勢,網路可用性保障、網路加速、併發處理等,此處不做過多的描述。
場景匹配
場景一:中小企業快速搭建安全訪問體系
對於創業公司而言,公司重心偏向於核心業務的突破與增長,公司系統也相對比較少。直接實施零信任網路在1~2天時間裡搭建一個安全網路,省去內網架構搭建、人工維護成本等諸多因素的投入。
場景二:大型政企區域性敏感系統應用
不能否認的是,受敏感資訊因素、歷史架構因素、政策因素、企業內部因素,企業內網將可能長期存在。對於大型的企業而言,顯然無法輕易得去除內網。但對於具備 “訪問使用者與伺服器異地”、“僅面向企業特定使用者開放的系統” 這兩類特徵的系統則和適合實施零信任網路模型。舉兩個簡單的案例:
- 一家大型醫院常年熱衷於慈善事業,並聘請了200+員工在全球各地做資訊錄入等文書工作,併為其提供專屬的網站。為了網站的安全性,那麼相比VPN,零信任網路將是一個優秀的選擇,在網路加速、訪問控制、成功管控等諸多方面均有建樹。
- 位於汽車門店內的電腦裝置,訪問相關價格查詢、型號查詢等系統,零信任網路依舊是一個不錯的選擇。
走心福利,無套路
感謝你堅持看到最後,鄙人國內某一線CDN廠商的產品經理,也是這個架構的設計者,鑑於是技術交流,便不直接貼公司名稱打廣告。大家可以隨時我發郵件 <[email protected],陳>交流,不限改進建議、機制探討、接入使用、錯誤指正等方方面面內容,也可以再留言板下發留言,我看到的話會盡可能的回覆您。
最後,發一個貨真價實用的走心福利,免費使用 CDN加速 + 零架構網路模型,有效日期至2019年3月底:
針對新客戶:10Mbps網路加速頻寬 + 50人使用零信任網路)* 6個月使用 = 免費(19200元) 贈送總價值:
(1) 頻寬費用 : 1700 元每月 = 10M * 170元M/月 ;
(2) 功能費用 : 1500元每月 = 50人 * 30元/ 人/月;
或者價值,不喜勿噴,感謝。歡迎郵件或留言交流。 原創文章,轉載不得刪減,並註明出處。