讀零信任網(wǎng)絡(luò):在不可信網(wǎng)絡(luò)中構(gòu)建安全系統(tǒng)04最小特權(quán).png 1. 公鑰基礎(chǔ)設(shè)施 1.1. PKI 1.2. 數(shù)字證書本身并不能解決身份認(rèn)證問題 1.2.1. 需要一種方法來驗(yàn)證獲得的公鑰的確屬于某人 1.2.2. 公鑰基礎(chǔ)設(shè)施(PKI)解決了這個(gè)問題 1.3. PKI定義了一組角色及其職責(zé),能夠在不可信的網(wǎng)絡(luò)中安全地分發(fā)和驗(yàn)證公鑰 1.4. PKI的目標(biāo)是允許無特權(quán)的通信雙方通過共同信任的第三方來驗(yàn)證對(duì)方身份的真實(shí)性 1.5. PKI利用注冊(cè)中心(RA)把通信實(shí)體的身份與其公鑰進(jìn)行綁定,然后把這種綁定關(guān)系內(nèi)嵌入數(shù)字證書,并由可信的第三方進(jìn)行數(shù)字簽名 1.5.1. 只要發(fā)送方和接收方信任同一個(gè)第三方,發(fā)送方就可以使用經(jīng)過第三方簽名的證書來證明自己的身份 1.6. 證書授權(quán)中心(CA)和信任網(wǎng)絡(luò)(WoT)是較受歡迎的兩類供應(yīng)商 1.6.1. CA的信任依賴于數(shù)字簽名鏈,用戶能夠根據(jù)數(shù)字簽名鏈回溯到初始的可信根節(jié)點(diǎn) 1.6.1.1. CA的流行程度遠(yuǎn)遠(yuǎn)超過信任網(wǎng)絡(luò) 1.6.2. WoT沒有使用信任鏈的形式,而是允許參與通信的系統(tǒng)斷言對(duì)等方身份的有效性,最終形成相互背書的網(wǎng)狀結(jié)構(gòu) 1.6.2.1. WoT在PGP系統(tǒng)中得到了廣泛使用 1.7. PKI通常被部署為公共的信任系統(tǒng),簽發(fā)和管理互聯(lián)網(wǎng)上使用的X.509證書 2. CA 2.1. CA是數(shù)字證書鏈的信任錨,它們簽署并公開發(fā)布公鑰及其綁定的身份信息,允許無特權(quán)實(shí)體通過數(shù)字簽名來驗(yàn)證這種綁定關(guān)系的有效性 2.2. CA證書用于表明CA自己的身份,CA證書對(duì)應(yīng)的私鑰用于簽署由其頒發(fā)的客戶證書 2.3. CA證書是眾所周知的,所以通信實(shí)體可以使用CA證書來校驗(yàn)該CA頒發(fā)的客戶證書的數(shù)字簽名 2.4. CA作為可信的第三方,能夠?yàn)榭蛻艉灠l(fā)并維護(hù)數(shù)字證書的有效性 2.5. CA作為可信的第三方擁有非常高的特權(quán),因此必須不惜一切代價(jià)保護(hù)CA的安全性 2.5.1. CA的安全性一旦遭到破壞,就會(huì)導(dǎo)致災(zāi)難性的后果 2.6. X.509數(shù)字證書標(biāo)準(zhǔn)支持證書鏈,所以根CA可以保持離線狀態(tài) 2.6.1. 離線狀態(tài)的根CA可以得到更好的安全保護(hù),這也是絕大多數(shù)PKI體系的根CA的標(biāo)準(zhǔn)做法 3. 零信任模型中PKI 3.1. PKI是零信任模型身份認(rèn)證的基石,大多數(shù)零信任網(wǎng)絡(luò)都采用PKI來證明身份的真實(shí)性 3.1.1. PKI可以綁定實(shí)體的身份和公鑰 3.1.2. 需要安全地保存實(shí)體的私鑰,并且應(yīng)當(dāng)使其盡可能靠近實(shí)體的物理位置,這在身份認(rèn)證機(jī)制中是非常重要的一點(diǎn) 3.2. 零信任網(wǎng)絡(luò)頒發(fā)的證書數(shù)量可能會(huì)很多,因此非常有必要對(duì)證書進(jìn)行自動(dòng)化管理 3.2.1. 數(shù)字證書的簽發(fā)畢竟是敏感度很高的工作,因此很多系統(tǒng)在設(shè)計(jì)時(shí)都會(huì)保留人工可以介入的審批流程 3.3. 雖然公共PKI非常適合作為互聯(lián)網(wǎng)的信任基礎(chǔ)設(shè)施,但是卻不適合零信任網(wǎng)絡(luò) 3.4. 為什么公共PKI不適合零信任網(wǎng)絡(luò)? 3.4.1. 突出缺點(diǎn)是成本 3.4.1.1. 機(jī)構(gòu)都是商業(yè)化運(yùn)作的,簽發(fā)證書需要收取費(fèi)用 3.4.1.2. 零信任網(wǎng)絡(luò)可能會(huì)使用大量的證書,如果考慮到憑據(jù)輪換策略,證書的使用量會(huì)更大,這會(huì)產(chǎn)生高昂的證書簽發(fā)費(fèi)用,很多組織難以承受 3.4.2. 另一個(gè)重大缺點(diǎn),那就是CA機(jī)構(gòu)的可信度問題 3.4.2.1. 很多公共的CA機(jī)構(gòu)是由不同的國家和政府運(yùn)營的 3.4.2.2. 任何一個(gè)CA機(jī)構(gòu)出現(xiàn)問題,都會(huì)切斷整個(gè)零信任網(wǎng)絡(luò)的信任 3.4.2.3. 只使用特定的某一個(gè)公共CA,但是如果它與其他組織使用的CA沒有交集,那么如何建立和保持信任就是一個(gè)挑戰(zhàn) 3.4.3. 使用公共CA會(huì)影響零信任網(wǎng)絡(luò)的靈活性和可擴(kuò)展性 3.4.3.1. 零信任網(wǎng)絡(luò)為了完成身份認(rèn)證,可能需要在證書中存儲(chǔ)與組織相關(guān)的元數(shù)據(jù),比如用戶角色或用戶ID等 3.4.3.2. 規(guī)定并不一定適用于特定組織的零信任網(wǎng)絡(luò) 3.5. 使用公共PKI總比完全沒有PKI要好 3.5.1. 如果在零信任網(wǎng)絡(luò)建設(shè)的初期選擇使用公共PKI,那么在意識(shí)到風(fēng)險(xiǎn)變大時(shí),需要有明確的路徑能夠切換成使用私有PKI 4. 最小特權(quán) 4.1. 最小特權(quán)原則是指一個(gè)實(shí)體應(yīng)該只被授予完成任務(wù)所需要的特權(quán),而不是被授予該實(shí)體想要得到的權(quán)限 4.2. 最小特權(quán)原則能夠極大降低用戶或應(yīng)用程序?yàn)E用權(quán)限的可能性 4.2.1. 對(duì)應(yīng)用程序來說,最小特權(quán)通常意味著其運(yùn)行在服務(wù)賬號(hào)、容器或“監(jiān)獄”(Jail)中 4.2.2. 對(duì)用戶來說,最小特權(quán)通常表現(xiàn)為“只有工程師才能訪問源代碼”這樣的安全策略 4.2.3. 終端設(shè)備也同樣需要考慮最小特權(quán)原則,但通常情況下終端設(shè)備采用與用戶或應(yīng)用程序相同的策略 4.3. 以保護(hù)隱私的名義進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)包加密是一種經(jīng)常被忽視的最小特權(quán)應(yīng)用 4.4. 如果確實(shí)需要更高的訪問權(quán)限,那么用戶可以并且只能在需要的時(shí)候獲得這些特權(quán) 4.4.1. 當(dāng)需要提升權(quán)限時(shí),則需要使用擁有更高權(quán)限的獨(dú)立賬戶執(zhí)行操作 4.4.2. 提升用戶的權(quán)限通常需要驗(yàn)證其身份 4.5. 零信任網(wǎng)絡(luò)的情形與之類似,用戶在大多數(shù)情況下以最小特權(quán)模式訪問網(wǎng)絡(luò)資源,只在需要執(zhí)行敏感操作時(shí)才提升權(quán)限 4.5.1. 對(duì)于風(fēng)險(xiǎn)相對(duì)較低的操作,特權(quán)提升過程可以很簡單,只需重新提示用戶輸入口令、要求出示雙因素認(rèn)證令牌或者給用戶的手機(jī)推送認(rèn)證通知 4.5.2. 對(duì)于高風(fēng)險(xiǎn)的操作,可以選擇通過帶外方式要求相關(guān)人員進(jìn)行主動(dòng)確認(rèn) 4.6. 強(qiáng)制性關(guān)聯(lián)身份認(rèn)證的過程和現(xiàn)實(shí)世界是一個(gè)不錯(cuò)的辦法,這能夠避免已被攻陷的系統(tǒng)干擾正常的操作 4.6.1. 人們?cè)谂渲靡慌_(tái)新的計(jì)算機(jī)時(shí),第一步往往就是禁用保護(hù)計(jì)算機(jī)應(yīng)用程序的安全框架,這幾乎成了常態(tài) 4.7. 零信任網(wǎng)絡(luò)中的特權(quán)比傳統(tǒng)網(wǎng)絡(luò)更具有動(dòng)態(tài)性 4.7.1. 除了用戶,零信任網(wǎng)絡(luò)也應(yīng)當(dāng)為應(yīng)用程序配置最小特權(quán) 4.7.2. 零信任網(wǎng)絡(luò)還需要考慮設(shè)備的特權(quán) 4.7.2.1. 這種方式有效地降低了用戶憑據(jù)丟失或被盜而造成的損失和影響 4.8. 傳統(tǒng)網(wǎng)絡(luò)中的安全策略往往是靜態(tài)的,如果遇到需要更高特權(quán)的情形,則特權(quán)的請(qǐng)求者通常需要說服系統(tǒng)管理員變更安全策略,或者請(qǐng)求系統(tǒng)管理員代替他們執(zhí)行操作,后一種做法更普遍 4.8.1. 在管理相對(duì)寬松的組織中,特權(quán)數(shù)量會(huì)隨著時(shí)間的推移而逐漸增長,最終導(dǎo)致最小特權(quán)原則失效 4.8.2. 無論組織的管理是寬松還是嚴(yán)格,系統(tǒng)管理員都被賦予了更高的訪問權(quán)限,這會(huì)導(dǎo)致其成為攻擊者實(shí)施網(wǎng)絡(luò)釣魚攻擊的主要目標(biāo) 4.9. 零信任網(wǎng)絡(luò)依靠網(wǎng)絡(luò)活動(dòng)的諸多屬性來分析當(dāng)前訪問請(qǐng)求的風(fēng)險(xiǎn) 4.9.1. 時(shí)間屬性 4.9.1.1. 某用戶在正?;顒?dòng)時(shí)間窗口之外的訪問請(qǐng)求更加可疑 4.9.2. 空間屬性 4.9.2.1. 某用戶從與上次訪問不同的地理位置發(fā)起訪問請(qǐng)求 4.9.3. 行為屬性 4.9.3.1. 某用戶試圖訪問通常情況下不應(yīng)該訪問的資源 4.9.4. 用戶在正常工作時(shí)間從其正常地理位置訪問數(shù)據(jù)庫的請(qǐng)求應(yīng)該被授權(quán),但是從新的地理位置或者在非工作時(shí)間訪問數(shù)據(jù)庫的請(qǐng)求則被要求使用多因子身份認(rèn)證 4.9.5. 基于網(wǎng)絡(luò)活動(dòng)的風(fēng)險(xiǎn)分析主動(dòng)調(diào)整訪問權(quán)限的能力是零信任網(wǎng)絡(luò)的安全特性之一 4.9.5.1. 通過動(dòng)態(tài)調(diào)整安全策略和訪問權(quán)限,零信任網(wǎng)絡(luò)能夠積極應(yīng)對(duì)已知和未知的惡意攻擊 5. 可變的信任 5.1. 信任管理是網(wǎng)絡(luò)安全管理中非常困難的工作 5.1.1. 安全網(wǎng)絡(luò)的黃金標(biāo)準(zhǔn):根本就不存在高特權(quán)的系統(tǒng)管理員 5.2. 定義信任策略這項(xiàng)工作通常由安全工程師手工完成 5.2.1. 初級(jí)的用戶權(quán)限區(qū)隔(如超級(jí)用戶、管理員和普通用戶),很難滿足高級(jí)用戶的需求 5.2.2. 安全策略變更之后導(dǎo)致的影響范圍也同樣很難界定,于是系統(tǒng)管理員對(duì)策略的變更非常謹(jǐn)慎 5.2.3. 權(quán)限分配通常也是手工作業(yè),系統(tǒng)管理員根據(jù)用戶在組織中的職責(zé)為其分配相應(yīng)的權(quán)限 5.2.4. 管理員不得不制造出許多信任池(pool of trust) 5.3. 安全策略動(dòng)態(tài)性不足,無法應(yīng)對(duì)日益變化的網(wǎng)絡(luò)安全威脅 5.3.1. 需要重新思考網(wǎng)絡(luò)參與者的信任關(guān)系,意識(shí)到網(wǎng)絡(luò)參與者的信任是基于參與者過去和當(dāng)前的行為而不斷變化的 5.3.2. 安全策略的定義不僅基于確定性的描述,還要基于不斷變化的度量分值,這為系統(tǒng)提供了一種防御任意威脅的機(jī)制 5.3.2.1. 持續(xù)監(jiān)視參與者的網(wǎng)絡(luò)活動(dòng),并據(jù)此持續(xù)更新其信任評(píng)分,然后使用這個(gè)評(píng)分作為授權(quán)策略判定的依據(jù)之一 5.3.2.2. 能夠?qū)Υ_保信任所需的檢查與平衡進(jìn)行細(xì)粒度的決策判定 5.4. 安全成熟度比較高的組織會(huì)針對(duì)網(wǎng)絡(luò)活動(dòng)部署審計(jì)設(shè)備,執(zhí)行審計(jì)流程,但是審計(jì)工作的執(zhí)行頻率往往不高,而且坦率地說,網(wǎng)絡(luò)活動(dòng)的審計(jì)工作非常乏味,以至于沒人愿意認(rèn)真做好這件事 5.5. 由于零信任網(wǎng)絡(luò)中的所有網(wǎng)絡(luò)流量都是加密的,因此傳統(tǒng)的流量監(jiān)聽方法很難達(dá)到預(yù)期的效果,只能看到有限的內(nèi)容 5.6. 強(qiáng)策略是信任的“增壓器” 5.6.1. 基于信任評(píng)分的策略能夠根據(jù)歷史行為等多種變量動(dòng)態(tài)影響授權(quán)的判定結(jié)果,這將極大地改善網(wǎng)絡(luò)的安全態(tài)勢(shì) 5.6.2. 經(jīng)由這種機(jī)制檢查和授權(quán)的訪問會(huì)話有更高的可信度 5.6.3. 這種信任評(píng)分積累機(jī)制可以顯著降低此依賴,從而改善用戶的使用體驗(yàn) 5.6.4. 用戶的信任評(píng)分能夠基于歷史行為而降低,同樣也可以基于歷史的可信行為而增加 5.6.4.1. 只要延長用戶積累信任所需的“正?!毙袨榈臅r(shí)間,就能夠延緩攻擊者積累信任的進(jìn)度,從而應(yīng)對(duì)這種威脅 5.6.4.2. 把敏感操作的若干條信息公布給控制平面,并將其配置成只有可信位置的可信用戶才能夠訪問 5.6.4.3. 既可以顯式描述確定的授權(quán)策略,又可以通過計(jì)算信任評(píng)分的方式應(yīng)對(duì)未知的威脅 5.6.5. 單一的評(píng)分值是否足以保護(hù)所有的敏感資源 5.7. 安全策略和用戶組織角色之間的解耦可能會(huì)給最終用戶帶來一定的困擾 6. 控制平面和數(shù)據(jù)平面 6.1. 基本思想是,網(wǎng)絡(luò)設(shè)備有控制平面和數(shù)據(jù)平面兩個(gè)邏輯域,這兩個(gè)邏輯域之間存在清晰的接口 6.2. 數(shù)據(jù)平面的作用是轉(zhuǎn)發(fā)網(wǎng)絡(luò)流量,它需要高速處理數(shù)據(jù)包,因此其處理邏輯相對(duì)簡單,通常使用專用硬件 6.2.1. 零信任網(wǎng)絡(luò)中的數(shù)據(jù)平面由直接處理網(wǎng)絡(luò)流量的應(yīng)用程序、防火墻、代理服務(wù)器和路由器組成 6.2.2. 不能使用數(shù)據(jù)平面上的服務(wù)來獲得控制平面的特權(quán),從而在網(wǎng)絡(luò)中橫向移動(dòng) 6.2.2.1. 數(shù)據(jù)平面與控制平面之間的接口必須非常清晰,確保數(shù)據(jù)平面中的系統(tǒng)不會(huì)因?yàn)楸还ハ荻鴮?dǎo)致在網(wǎng)絡(luò)內(nèi)橫向移動(dòng) 6.2.3. 數(shù)據(jù)平面和控制平面系統(tǒng)之間的交互請(qǐng)求必須使用私有PKI系統(tǒng)進(jìn)行身份認(rèn)證和加密,以確保接收方的可信度 6.3. 控制平面可以看作是網(wǎng)絡(luò)設(shè)備的大腦,系統(tǒng)管理員用它來配置管理網(wǎng)絡(luò)設(shè)備,因此控制平面會(huì)隨著策略的變化而變化 6.3.1. 控制平面的強(qiáng)可塑性導(dǎo)致其無法處理高速網(wǎng)絡(luò)數(shù)據(jù)包流量 6.3.2. 任何在數(shù)據(jù)平面執(zhí)行的策略行為,都要盡可能減少向控制平面發(fā)送請(qǐng)求(相對(duì)于網(wǎng)絡(luò)流量速率來說) 6.3.3. 控制平面和數(shù)據(jù)平面之間的接口應(yīng)當(dāng)類似于操作系統(tǒng)內(nèi)核空間和用戶空間之間的接口,為了防止提權(quán)攻擊,兩個(gè)系統(tǒng)之間的交互需要進(jìn)行高度隔離 6.3.4. 控制平面是整個(gè)網(wǎng)絡(luò)的信任授予者 6.3.4.1. 由于控制平面對(duì)網(wǎng)絡(luò)行為的控制力度非常大,因此其自身的可信度至關(guān)重要 6.3.4.2. 零信任網(wǎng)絡(luò)中存在這樣一個(gè)具有極高特權(quán)的參與者 6.3.5. 控制平面授予數(shù)據(jù)平面的某個(gè)參與者的信任應(yīng)該具有時(shí)效性 6.3.5.1. 租用訪問令牌或短生命周期證書是實(shí)現(xiàn)這一原則的較合適的解決方案 6.3.5.2. 通過限制數(shù)據(jù)平面和控制平面進(jìn)行憑據(jù)交互的時(shí)間窗口,能夠降低對(duì)網(wǎng)絡(luò)進(jìn)行物理攻擊的可能性