跳到主要內容

跟着大公司學安全之BeyondCorp安全架構

網站內容來源http://server.it168.com/

跟着大公司學安全之BeyondCorp安全架構

2018-05-30 22:35    來源:Freebuf  作者: mcvoodoo 編輯:
0購買

  過去這些年,技術發生了很大的革命,雲計算改變了業務方式,敏捷改變了開發方式,某寶改變了購物方式。而在內部安全上,零信任則提供了一個新的模式。


  過去這些年,各種數據泄漏層出不窮,我懶得去找例子,反正比比皆是,從大公司到小公司,從政府到商業機構。這說明什麼呢?這說明我們過去的方法出了問題,以前基於邊界來劃分可信不可信的辦法行不通了。


  傳統的內部安全外圍取決於防火牆、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網頁設計已成為網頁設計推薦首選



想知道網站建置網站改版該如何進行嗎?將由專業工程師為您規劃客製化網頁設計後台網頁設計



帶您來看台北網站建置套版網頁設計台北網站改版設計台北RWD響應式網頁設計,各種案例分享



廣告預算用在刀口上,網站設計公司幫您達到更多曝光效益

https://www.3chy3.com/?p=2139



Orignal From: 跟着大公司學安全之BeyondCorp安全架構

留言

這個網誌中的熱門文章

請問貝果烤前為什麼需要用滾水燙過?

水燙 貝果 的目的是讓貝果提早形成麵包皮以在後續烘焙時避免貝果過度膨脹變成鬆軟的麵包,同時提早形成的麵包皮烤乾後比較硬,這兩個因素產生貝果的特殊口感。在有些食譜熱水會加鹼或糖,讓麵包面容易變褐。原理:水燙貝果時貝果表面的澱粉粒吸水糊化溶出澱粉,因為水煮的時間很短約30-60秒,溶出的澱粉仍舊糊在表面上。後續烘焙中澱粉漿硬化形成麵包皮,因麵包皮的硬殼強度使貝果內的氣泡不容易膨脹,最後形成貝果組織密實而具有咬感,所使用的高筋麵粉也提供的大量麵筋強度是造成這些特性的另一因素。貝果用油較少,產生的麵包皮硬不會酥脆,水溶澱粉產生的是硬殼回潮後變得很堅韌,藉著食用前的熱烤再使它脫水硬化,因硬麵包皮不厚所以咬下時有脆的口感。水煮的時間控制了麵包皮的厚度與強度,水煮時間愈短,貝果愈鬆軟,反之則氣體膨脹愈不容易,成品就會愈密實而有咬感,但也皮愈厚愈不容易咬下口。麵包麵的顏色在不同的烘焙程度與成分組成,受到非酵素褐變(梅納反應)、焦糖化、碳化等影響。一般以非酵素褐變最為重要,此反應是蛋白質與糖的化學反應,產生褐色的物質與特殊的氣味,在鹼性環境中容易進行,所以在有些食譜在水中會加糖或加鹼等處理。 貝果宅配     手工貝果     貝果 http://www.foodhy3.com/?p=65 Orignal From: 請問貝果烤前為什麼需要用滾水燙過?

咳嗽能吃柿子

文章導讀 咳嗽是因為嗓子不舒服引起的,因此咳嗽的時候人們應該避免吃刺激性的食物,比如辛辣的、過甜過鹹的、生冷的、腥的食物等等,這種食物會刺激嗓子粘膜,讓嗓子更不舒服,咳嗽也會因此變得更加嚴重,咳嗽的時候可以吃一些止咳化痰的水果,比如梨,那麼咳嗽能吃柿子嗎? 柿子是人們比較喜歡食用的果品,甜膩可口,營養豐富。不少人還喜歡在冬季吃凍柿子,別有味道。柿子的營養價值很高,含有豐富的胡蘿蔔素、核黃素、維生素等微量元素,所含維生素和糖分比一般水果要高很多。柿恭弘=恭弘=叶 恭弘 恭弘中含有多種活性成分,如維生素C、多種黃酮甙類、二萜類、膽鹼、β-胡蘿蔔素。所以,患者在咳嗽期間是可以吃柿子的,但是不能多吃,一定要適量,以免引起消化不良。患者咳嗽期間,除了柿子以外,還可以吃其他的一些新鮮蔬菜和水果,如蘋果、梨、獼猴桃、芹菜、花菜等,這對於咳嗽的早日康復是有幫助的。 能吃。柿子性寒,味甘、澀。歸肺經。故有健脾澀腸,主治咳嗽止血之功。是慢性支氣管炎、高血壓、動脈硬化、內外痔瘡患者的天然保健食品。但慢性胃炎、消化不良等胃功能低下者以及外感風寒咳嗽者不宜食柿子;體弱多病者、產婦、月經期間女性,均忌食柿子;糖尿病人勿食。 咳嗽是由多種因素造成的,包括吸入容易產生過敏的物質,比如花粉柳絮,以及炎症感染,包括氣候乾燥,辛辣含糖食物刺激,甚至情緒緊張,均可造成咳嗽的現象,而常見的咳嗽多是炎症感染造成的,柿子屬於熱性食物,容易加重局部咽喉炎症反應。 咳嗽期間是可以吃柿子的,一般可以少吃40具有寒涼的作用,一般對人體的刺激性比較大,咳嗽一般都是由於支氣管出現了炎症就會產生咳嗽咳痰的癥狀,一般是要採用口服化痰止咳的藥物來進行用藥治療,如果說咳嗽不是很明顯的話,一般也可以採用口服抗感冒的藥物來進行用藥治療。 網站內容來源https://www.cndzys.com/yinshi/ 【精選推薦文章】 想知道 台東名產 人氣商品是什麼?想知道更多 台東知名伴手禮 有哪些? 想知道全國票選五大 台東必買 、 台東伴手禮 最佳商品哪裡買的到? 台東團購美食 、 台東必買零...

躺着喝水有什麼壞處

文章導讀 躺着喝水是一種不好的做法,因為躺着喝水會導致水容易進入氣管,引起我們嗆到喉嚨,而且不利於水分進入腸道中,所以最好的方法是坐起來喝水。水我們身體重要的成分,每天都需要飲用大量的水來維持身體的運作,如果缺水是會引起新陳代謝下降的,而且會引起各種各樣的疾病,大家要引起重視。 1、容易嗆着,水容易進入氣管;如果嗆着,嚴重的後果有生命危險。 2、這樣喝不衛生,也不符合人的作為。 喝水喝多了有什麼壞處嗎? 1、水喝多了,會增加腎髒的負擔。人體是通過尿液來排毒的,那尿液的主要的組成部分就是水,而所有的尿液都是要經過腎臟過濾的,因此,如果喝水過多,就意味着腎髒的過濾就更多,就會增加腎髒的負擔。 2、飲水過量會引起水中毒。人體腎髒的持續最大利尿速度是每分鐘16毫升,如果人體攝入水的量超過了這個標準,或者喝水的速度超過這個標準,那體內就會出現水過剩的現象,而過剩的水分就會使細胞膨脹,繼而引起脫水低鈉症,臨床會表現為頭暈眼花、嘔吐、虛弱無力、心跳加快等癥狀,這種中毒的癥狀是全身的,嚴重的會出現痙攣、昏迷甚至危及生命。 擴展資料: 感冒時也並不是喝水越多越好。感冒時醫生都叮囑病人要多喝水,因為水可以加速排毒,緩解感冒的癥狀,而且,人在感冒的時候,身體也很容易缺水,所以適當的增加水的攝入是有好處的,但是也絕對不是喝的越多越好,而是要根據個人的差異,適當的增加喝水的量,而且一次喝的量不可過多。 每人飲水量應視個人情況而定,一般1.5~2升為宜。從衛生角度來說,喝涼開水、茶水或礦泉水較好。但應注意,一次飲水過多或喝得過快對身體不利,老年人尤其應該注意。一次飲水過多會加重心、腎負擔,對患有心臟病、高血壓、腎病和水腫的人傷害最大。因勞動或運動而大量出汗后也不宜一次喝水太多。 水喝多了,會引起水中毒。專家介紹,過量飲用卻會導致人體鹽分過度流失,一些水分會被吸收到組織細胞內,使細胞水腫。開始會出現頭昏眼花、虛弱無力、心跳加快等癥狀,嚴重時甚至會出現痙攣、意識障礙和昏迷,即水中毒。大量喝水后,人體易產生疲倦感,食慾大減,還使人感到昏昏沉沉的。 這是因為飲水過多衝淡了血液,全身細胞氣體交換就會受到影響。腦細胞一旦缺氧,人就會變得遲鈍。腎功能正常的人每天最多只可排出10~20升尿。如果飲水過...