跟着大公司學安全之BeyondCorp安全架構
2018-05-30 22:35 來源:Freebuf 作者: mcvoodoo 編輯:過去這些年,技術發生了很大的革命,雲計算改變了業務方式,敏捷改變了開發方式,某寶改變了購物方式。而在內部安全上,零信任則提供了一個新的模式。
過去這些年,各種數據泄漏層出不窮,我懶得去找例子,反正比比皆是,從大公司到小公司,從政府到商業機構。這說明什麼呢?這說明我們過去的方法出了問題,以前基於邊界來劃分可信不可信的辦法行不通了。
傳統的內部安全外圍取決於防火牆、VPN來隔離,但隨着員工用自己的電腦、用自己的手機、再加上雲計算,整個網絡邊界越來越模糊。零信任安全則直接在概念上顛覆了原有概念,內部用戶比外部用戶更不可信!看以往的各種案例,太多由於黑客掌握了密碼,證書之後得手的攻擊。因此,對這些內部用戶零信任,可能是未來減少數據泄漏的主要方法。
一、Google實踐
Gartner提出了CARTA方法論,意為持續自適應風險與信任評估,包含了零信任安全的核心元素。當然,更關鍵的是,Google已經在15年就開始付諸實施,這個項目就是大名鼎鼎的BeyondCorp,開始從本質上改變。BeyondCorp完全不信任網絡,而是基於設備、用戶、動態訪問控制和行為感知策略。零信任需要一個強大的身份服務來確保每個用戶的訪問,一旦身份驗證通過,並能證明自己設備的完整性,則賦予適當權限訪問資源。所以這裡有四個元素:驗證用戶、驗證設備、權限控制、自學習和自適應。
1. 驗證用戶
驗證用戶最基本的是用戶名和密碼,但怎麼確保這個密碼不是從黑市上買來的?所以就出現了多因素認證來獲得額外的保證,國內一般是短信驗證碼或軟硬件token,當然現在也開始逐漸出現人臉、指紋等。用戶有很多類型,普通用戶、管理員、外包、合作夥伴、客戶,多因素認證都可以適用。
2.驗證設備
要實現零信任安全,要把控制擴展到設備級。如果設備未經過驗證,設備就不可信。如果用戶數用常用、可信設備訪問,則有可信度。如果他在網吧用一台電腦來登陸,那這個信任度就低。設備驗證還包括了一些安全准入條件,比如是否安裝殺毒軟件和最新補丁。
3. 限制訪問權限和特權
限制用戶最小權限的訪問,就可以限制攻擊的橫向移動。其次是對業務應用的授權,業務層包含大量敏感數據,是攻擊的首要目標,因此在應用側限制權限也同樣重要。數據越重要,權限越少,也可以用多因素來進一步驗證。
4.自學習和自適應
收集用戶、設備、應用和服務器數據和行為信息,形成日誌數據庫進行機器學習分析,達到異常識別的目的,比如從異常位置訪問資源,則立即觸發強認證。
整個方案有幾個好處:
一是重新定義了身份,以前都是根據角色進行的,而零信任模型則更加動態,用時間、屬性、狀態的組合來實時評估。
二是集中控制,所有的流量都通過中央網關來處理認證和授權,這種網關可以攔截所有到資源之間的通信。但中央網關不是只有一個,而是分佈式的,只是邏輯上的集中。BeyondCorp就在每個受保護的資源之前放了一個反向代理服務。
三是主動防範,能夠檢查日誌做審計是一回事,能夠實時攔截主動防範則是另一回事了。
Google的方法很好,值得借鑒,但不一定要完全照搬。每個企業有自己的實際情況,要是上來就干,可能會導致更多的問題。根據Google的幾篇論文,我試着分析一下實現路徑做參考。
二、信息收集
整個項目上,第一步要實現的就是數據的收集,收集數據的作用是掌握全局,包括賬號和應用的流向關係、網絡架構、應用協議等。在這個過程中也能清理掉很多沒用的系統和賬號。而數據的收集分為幾種:
1、設備信息
因為設備驗證屬於一個重要環節,因此要對設備進行清點。Google要求所有設備都有IT管理,並且保存一個資產庫,但這在國內企業中並不現實,例如有的員工自帶電腦,自帶手機。所以實際上需要在Google的思路上有所拓展,雖然我不知道,但我可以通過設備指紋來建立一個資產庫。每個設備都有的獨一無二的標識,通過標識,把員工常用設備作為可信設備,從而建立自己的資產庫。
2、梳理訪問記錄
零信任的目標是完全消除靜態密碼的使用,轉為更加動態的驗證,可以對每個單獨的訪問發布範圍、時間的證書。這是這個架構的好處,也是防範內部風險的最佳答案。所以需要掌握公司內部的訪問記錄,常見是通過SSO訪問日誌來進行。而且定期review內網訪問日誌,也應該是一個常態化工作。梳理這個的目的,是了解賬戶和應用之間的關係。
3、系統架構圖
零信任的目標是拋棄掉網絡層的訪問控制,但現實是需要在整個過程中逐步改造,因此需要掌握網絡拓撲,掌握各訪問控制的位置,掌握資源位置。最後才能達到把訪問控制放到應用側來實現。所以這裏的着眼思考點是,如果我把這個資源放到互聯網上,需要怎麼控制。
4、流量日誌
流量是基於網絡拓撲來的,在應用日誌完備的情況下,甚至可以不需要做流量日誌。不過考慮到大家的實際情況,還是加上比較好。另外網絡內跑的協議也很重要,Google在計劃階段發現網內使用了各種協議,因此在新系統中作了嚴格的規定,以HTTPS和SSH為主要協議。
二、訪問策略
在Google的論文中,多次提到了他們在形成這個框架時面臨的挑戰,為了有效推進,這個安全措施必須在全公司強制執行,覆蓋廣泛且易於管理。這其實在很多公司是個不容易的事情。而且Google也提到,安全架構不應該影響生產力,在國內就是就是安全不應影響業務。因此把敏感應用放到公網上,需要小心謹慎。零信任要求每個請求都完整驗證身份,授權和加密,這個信任是基於動態用戶和設備決定的,而不再基於網絡單一維度進行判斷。
數據收集以後,接下來要做的事情就是訪問策略框架了。Google整個項目周期是7年(淚奔,7年後我還在不在現在的公司都不好說),提到的建議是情景決策,換成中國話的意思就是業務場景。例如我是一個運營,要去訪問運營報表系統,那麼我用公司給我的筆記本電腦登錄報表系統,然後通過跳板機登陸到Hadoop上去調整源數據。這些業務場景會告訴你一些信息,運營應該授予報表系統、Hadoop權限,而在這裏的授權元素包括,設備、角色、被訪問資源、時間等。
1、數據字段
聽上去比較彆扭,換成中國話的意思,要收集那些數據維度,以用做訪問控制要素。常見的比如組織架構、角色。新增的設備與用戶配對關係,也包括比如操作系統是否更新,殺毒軟件是否安裝這些設備狀態。同時也可以包括更多的要素:時間、位置、多因素等。這些條件組成了驗證規則,但這太容易被猜測出來了,所以在這個基礎上,還可以增加一些新的判斷字段,比如wifi的mac等信息。
2、規則
接下來制定規則,規則中除了包括上面所說的字段,還應包括行為信息。例如有一個提出離職的員工,進入文檔系統大量下載文檔,這就是一個風險。可能需要的規則是,打通PS系統掌握誰提出了離職,然後限制該員工對文檔系統的大量下載行為。再細分一點規則,主動離職和被動離職對系統的風險是不同的,下載和查看文檔也是不同的。
規則中一個常見錯誤是設置了太多細緻的規則,Google在實踐中遇到了這個問題,最終他們在代理服務的粗粒度,和後端資源的細粒度之間找到了平衡點。在論文中他們提到了兩個例子:
全局規則:粗粒度,影響所有服務和資源。比如"底層設備不允許提交代碼"。特定服務規則:比如G組中的供應商允許訪問web應用A。
如果規則太複雜,或者對資源規定太過具體,那對規則的語言是很有挑戰性的,所以應該用一套任何人都可以理解的策略規則。Google的做法是從粗規則開始,然後再將RBAC和ABAC引入。
3、權限
零信任是把信任從外圍改變到端點,目標是在不斷變化的環境中基於動態用戶和設備,做出智能的選擇。BeyondCorp是最小權限原則,通過不斷地處理用戶、設備、行為數據,為這些數據建立信任值,每個資源都有一個信任層,必須滿足才能訪問。比如你的手機版本過低,系統會給你一個低信任評分。當你訪問工資數據的時候,需要你有更高的信任等級。你必須把手機版本升級,否則不能訪問資源。這其實和金融里的信用分一個意思,這些元素的組合形成了分數。
但有一點,就是要明確的告訴用戶,基於什麼原因,你的分數過低,要把補救方法明確的提示出來,不然用戶就陷入了迷思,然後會幹出一些亂七八糟的事情出來。換句話說,可以把規則形成問題,你的補丁打了嗎?殺毒軟件更新了嗎?然後通過驗證這些問題,賦予權限。
三、訪問控制
策略訂好了以後就是控制措施,這裏也是國內大多數公司和Google做法有分叉的地方,Google當然有能力自己造所有輪子,操作系統都能自己寫,但國內公司很少會這麼干,同時在內部這些應用里,或多或少都會有外購的應用系統。
1、微服務
傳統系統已經做了很多訪問控制手段,有的可能就是一個SSO賬號,這種方式是角色、權限是在後面邏輯上處理的,也就是說,你先進入內網門戶,然後通過門戶進入各個子系統。在進入門戶這個環節並不做後面的資源的驗證,把驗證放在了後端應用上處理。這也就是之前烏雲還在的時候,我們看到一旦拿到一個員工賬號,就可以在內部各種橫向漂移。
而在Google,則使用了微服務,把驗證邏輯和資源系統隔離,以實現靈活的驗證。加入你們採購了外部的一個財務系統,那麼財務系統在這裏只看作是一個原始數據的記錄系統。通過微服務方式的解耦,服務之間不再需要關心對方的模型,僅通過事先約定好的接口來進行數據流轉即可。因此策略層改變起來也很容易,這是其中一個關鍵。
2、集中處理
零信任中有一個處理所有流量的ACCESS GATEWAY,這是個反向代理服務,集中了身份驗證和授權過程,統一進行處理,也是理想的日誌監控點。代理服務支持PKI證書,所有請求都通過HTTPS提供給網關,用戶和設備的數據在這時候被提取出來進行驗證授權。再接下來則是SSH,RDP或TLS連接,與資源進行安全會話,這就大大限制了攻擊面。
在某個時間點,根據動態數據來配置身份驗證,而不是單純的依靠網絡。這就是零信任系統的能力。但在初期的時候,這個動態,是需要經過磨合的。最簡單的例子是根據大多數人的共同的行為來調整策略,這裏就需要機器學習來輔助,讓機器來了解共同行為是什麼意思。
四、資源遷移
最後一步則是資源的遷移。資源遷移有個灰度過程,關鍵系統往後放,先從簡單應用開始,這個應用應該適合粗粒度規則,且數據敏感度比較低,比如內部的wiki這種。為了防止在這個過程中的數據泄漏,Google初期是並聯傳統系統的,然後逐漸割接。Google非常強調他們把所有資源都放到公網上,消滅了網絡分區需求。但實際上,我們大可不必這麼冒險,傳統基於網絡層的控制方法仍然可以使用。
通過這個邏輯,只需要把流量指向訪問結構,就可以保護資源。在所有流量都經過網關的情況下,需要確保和應用的連接是安全的,每個請求必須端到端加密。但只有這麼個安全隧道是不夠的,還需要確保每個請求都被完全驗證授權,方法上可以是對請求證書和關聯數據進行簽名,再配置應用驗證,也可以是對特定IP列入白名單。
五、總結
Google在基礎架構安全上付出了巨大的努力。我在看這些paper的時候就在想,為什麼Google公開宣傳內部的安全實踐呢,我以小人之心揣測,可能與Google雲相關,從Google一系列的博客來看,信息保護一直都是重點範圍。但對於我們這些安全從業者來說,這5個paper提供了很多安全的先進點,讓我們一探頂尖互聯網企業的基礎安全架構。整個閱讀理解過程中,有幾句話我覺得是特別值得總結的:
1、"我們不依賴於內部網絡分隔或防火牆作為我們的主要安全機制"
我曾在阿里工作過幾年,早在14年阿里安全就提出"去防火牆"。但當時的"去防火牆"思想,更多的是擺脫傳統盒子硬件防火牆層次,和Google還不一樣。零信任的核心主題是,它是一個無周邊架構,這和Google的員工分佈在全球各地辦公有關係。這並不是說防火牆完蛋了,而是說不作為"主要"安全機制。但是在借鑒過程上,去防火牆不是第一步,而應在各種認證、授權等機制建立后的最後一步。
2、"最終用戶登陸由中央服務器驗證,然後中央服務器向用戶端設備發送憑證,例如cookie或OAuh令牌,從客戶端設備到Google的每個後續請求都需要該憑據"。
零信任基於用戶和設備的狀態做出智能決策,憑證是動態的,也就是可撤銷、可審計、有較短時間期限。這其中說,每個後續都需要該憑據,這就是零信任的精髓了。
3、"實際上,任何發布的服務都使用GFE作為智能反向代理前端,這個代理提供了DNS,拒絕服務保護,TLS終止和公共IP託管"
把內部應用放到公網,可以實現端到端的前向加密,但卻讓系統面臨攻擊,通過反向代理來管理這些流量。現實而言,我們並不需要這麼激進,抗ddos保護對於中小企業來說,還是應該依靠外部力量。
4、"在企業局域網上不是我們授予訪問權限的主要機制。相反,我們使用應用程序級的訪問管理控制,允許我們只在特定用戶來自正確管理的設備以及期望的網絡和地理位置時才將內部應用程序公開。
身份認證是整個流程中的重要部分,但零信任獨特在於:用戶、設備組成一個可以實時進行信任決策的配置文件。舉例來說,我在北京從我的手機上登陸crm應用,那肯定不會在同一時間允許我在上海的pc上登陸。訪問策略上要麼允許,要麼提示你另一個認證因素。
安全性和可用性一直存在互相矛盾,安全部門要在這裏尋找平衡。每個公司也都有自己的風險容忍度,有的公司因為月餅開除員工,有的公司因為雲盤上傳開除員工。每一個處罰,都會引起內部很多爭論,對於零信任來說,決策是動態的,允許更多的自適應,其中機器學習是這裏的重要工具。
5、"我們積極地限制和監督已經被授予基礎設施管理權限的員工的活動,提供能安全和可控的方式完成相同任務的自動化,不斷努力消除特定任務的特權訪問需求。
零信任目的在減少內部威脅,整個架構中學習和適應是重要環節。同時也對自動化很敏感,在這麼大一個全球企業中,人工是不現實的。另外,整個項目對特權的檢查,會比對普通權限的檢查要仔細的多。
網站內容來源http://safe.it168.com/
【精選推薦文章】
想知道網站建置、網站改版該如何進行嗎?將由專業工程師為您規劃客製化網頁設計及後台網頁設計
帶您來看台北網站建置、套版網頁設計、台北網站改版設計、台北RWD響應式網頁設計,各種案例分享
廣告預算用在刀口上,網站設計公司幫您達到更多曝光效益
https://www.3chy3.com/?p=2139
Orignal From: 跟着大公司學安全之BeyondCorp安全架構
留言
張貼留言