參考本文中的信息,可以:
了解云中的托管應(yīng)用程序的安全優(yōu)勢(shì)
評(píng)估平臺(tái)即服務(wù)(PaaS)相比其他云服務(wù)模型的安全優(yōu)勢(shì)
將安全重心從以網(wǎng)絡(luò)為中心的方案轉(zhuǎn)換為以標(biāo)識(shí)為中心的外圍安全方案
實(shí)施一般的PaaS安全最佳實(shí)踐建議
開(kāi)發(fā)適用于云的應(yīng)用程序時(shí),在軟件開(kāi)發(fā)生命周期的每個(gè)階段應(yīng)考慮的安全問(wèn)題和控制措施是一般的指導(dǎo)。
云的安全優(yōu)勢(shì)
請(qǐng)務(wù)必了解你與Microsoft之間的責(zé)任分工。在本地,擁有整個(gè)堆棧,但遷移到云后,某些責(zé)任將轉(zhuǎn)移到Microsoft。
轉(zhuǎn)移到云中可帶來(lái)一定的安全優(yōu)勢(shì)。在本地環(huán)境中,組織的可用資源可能有限,無(wú)法盡責(zé)在安全措施上投資,使得攻擊者能夠利用所有層中的漏洞。
組織可以使用提供商的基于云的安全功能和云智能來(lái)改善其威脅檢測(cè)和響應(yīng)時(shí)間。通過(guò)將責(zé)任轉(zhuǎn)移到云提供商,組織可以擴(kuò)大安全覆蓋范圍,為其他優(yōu)先業(yè)務(wù)重新調(diào)配安全資源與預(yù)算。
PaaS云服務(wù)模型的安全優(yōu)勢(shì)
讓我們來(lái)了解一下Azure PaaS部署相比本地部署的安全優(yōu)勢(shì)。
PaaS的安全優(yōu)勢(shì)
從堆棧的底部(即物理基礎(chǔ)結(jié)構(gòu))開(kāi)始,Microsoft可以消除常見(jiàn)的風(fēng)險(xiǎn)和管理責(zé)任。由于Microsoft云受到Microsoft的持續(xù)監(jiān)視,因此很難攻破。攻擊者將Microsoft云當(dāng)作攻擊目標(biāo)是不會(huì)得逞的。他們往往會(huì)改換目標(biāo),除非他們有大量的金錢(qián)和資源。
在堆棧的中間,PaaS部署與本地之間沒(méi)有差別。在應(yīng)用程序?qū)雍蛶襞c訪問(wèn)管理層,面臨的風(fēng)險(xiǎn)是類似的。本文的后續(xù)步驟部分將提供有關(guān)消除或盡量避免這些風(fēng)險(xiǎn)的最佳實(shí)踐指導(dǎo)。
堆棧的頂層(即數(shù)據(jù)監(jiān)管和權(quán)限管理)存在一種風(fēng)險(xiǎn),不過(guò)可以使用密鑰管理來(lái)緩解。(最佳實(shí)踐中介紹了密鑰管理。)盡管密鑰管理是一個(gè)附加的責(zé)任,但你不再需要管理PaaS部署中的某些區(qū)域,因此可將資源轉(zhuǎn)移到密鑰管理。
Azure平臺(tái)還使用各種基于網(wǎng)絡(luò)的技術(shù)提供強(qiáng)大的DDoS保護(hù)。但是,根據(jù)鏈路和數(shù)據(jù)中心的不同,所有類型的基于網(wǎng)絡(luò)的DDoS保護(hù)方法都有自身的限制。為了幫助避免大規(guī)模DDoS攻擊造成的影響,可以利用Azure的核心云功能快速自動(dòng)擴(kuò)展,以防御DDoS攻擊。在建議的實(shí)踐文章中,我們將更詳細(xì)地介紹如何采取這種措施。
革新防御者的思維方式
PaaS部署為整體安全方案帶來(lái)了變革。事必躬親的局面現(xiàn)在可以改為與Microsoft分擔(dān)責(zé)任。
PaaS與傳統(tǒng)本地部署之間的另一個(gè)重大差別在于,前者為主要安全邊界的界定因素提供了全新的視野。一直以來(lái),主要的本地安全邊界就是網(wǎng)絡(luò),大多數(shù)本地安全設(shè)計(jì)都使用網(wǎng)絡(luò)作為主要安全樞紐。在PaaS部署中,可將標(biāo)識(shí)視為主要安全邊界,從而改善安全性。
采用標(biāo)識(shí)用作主要安全邊界的策略
在云計(jì)算的五大基本特征中,一個(gè)特征就是網(wǎng)絡(luò)訪問(wèn)范圍廣泛,這使得以網(wǎng)絡(luò)為中心的理念顯得有點(diǎn)毫不相干。許多云計(jì)算解決方案的目標(biāo)是不管用戶身居何處,都能允許他們?cè)L問(wèn)資源。對(duì)于大多數(shù)用戶而言,他們的位置就是Internet上的某個(gè)節(jié)點(diǎn)。
下圖演示了安全邊界從網(wǎng)絡(luò)邊界演進(jìn)成標(biāo)識(shí)邊界的過(guò)程。安全性越來(lái)越少地與如何保護(hù)網(wǎng)絡(luò)相關(guān),而更多地與如何保護(hù)數(shù)據(jù),以及如何管理應(yīng)用和用戶的安全性相關(guān)。兩者的關(guān)鍵差別在于如何為公司的重要資產(chǎn)提供更多的安全保障。
標(biāo)識(shí)用作新的安全邊界
最初,Azure PaaS服務(wù)(例如Web角色和Azure SQL)提供的傳統(tǒng)網(wǎng)絡(luò)邊界防護(hù)措施很少,或者根本不提供。開(kāi)發(fā)人員已認(rèn)識(shí)到,設(shè)計(jì)元素的目的就是在Internet上公開(kāi)(Web角色),而身份驗(yàn)證可提供新的邊界(例如BLOB或Azure SQL)。
新式安全措施假設(shè)入侵者會(huì)突破網(wǎng)絡(luò)邊界。因此,新式防護(hù)措施已轉(zhuǎn)移到標(biāo)識(shí)。組織必須使用強(qiáng)身份驗(yàn)證和授權(quán)保護(hù)機(jī)制建立基于標(biāo)識(shí)的安全邊界(最佳實(shí)踐)。
網(wǎng)絡(luò)邊界的原理和模式早在幾十年前就已建立。相比之下,行業(yè)在使用標(biāo)識(shí)作為主要安全邊界的經(jīng)驗(yàn)相對(duì)缺乏。正因如此,我們累積了足夠的經(jīng)驗(yàn),樂(lè)于提供已在現(xiàn)場(chǎng)得到證實(shí)的、適用于幾乎所有PaaS服務(wù)的一些普通建議。
下面是管理標(biāo)識(shí)邊界的最佳做法。
最佳做法:保護(hù)密鑰和憑據(jù)以保護(hù)PaaS部署。
詳細(xì)信息:丟失密鑰和憑據(jù)是一個(gè)常見(jiàn)問(wèn)題。可以使用集中式解決方案,將密鑰和機(jī)密存儲(chǔ)在硬件安全模塊(HSM)中。Azure Key Vault通過(guò)使用受HSM保護(hù)的密鑰對(duì)身份驗(yàn)證密鑰、存儲(chǔ)帳戶密鑰、數(shù)據(jù)加密密鑰、.pfx文件和密碼進(jìn)行加密來(lái)保護(hù)你的密鑰和機(jī)密。
最佳做法:不要將憑據(jù)和其他機(jī)密放入源代碼或GitHub。
詳細(xì)信息:唯一比丟失密鑰和憑據(jù)更遭糕的事情是讓未經(jīng)授權(quán)的一方獲取這些密鑰和憑據(jù)的訪問(wèn)權(quán)限。攻擊者可以利用bot技術(shù)來(lái)查找GitHub等代碼存儲(chǔ)庫(kù)中存儲(chǔ)的密鑰和機(jī)密。請(qǐng)不要將密鑰和機(jī)密放入這些公共代碼存儲(chǔ)庫(kù)。
最佳做法:通過(guò)使用可以直接遠(yuǎn)程管理這些VM的管理接口來(lái)保護(hù)混合PaaS和IaaS服務(wù)上的VM管理接口。
詳細(xì)信息:可以使用遠(yuǎn)程管理協(xié)議,如SSH、RDP和PowerShell遠(yuǎn)程處理。通常,我們建議不要從Internet啟用對(duì)VM的直接遠(yuǎn)程訪問(wèn)。
如果可以,請(qǐng)使用替代方法,例如在Azure虛擬網(wǎng)絡(luò)中使用虛擬專用網(wǎng)絡(luò)。如果其他方法不可用,請(qǐng)確保使用復(fù)雜的密碼和雙因素身份驗(yàn)證(例如Azure AD多重身份驗(yàn)證)。
最佳做法:使用強(qiáng)身份驗(yàn)證和授權(quán)平臺(tái)。
詳細(xì)信息:在Azure AD而不是自定義用戶存儲(chǔ)中使用聯(lián)合標(biāo)識(shí)。使用聯(lián)合標(biāo)識(shí)時(shí),可以利用基于平臺(tái)的方法,將已獲授權(quán)的標(biāo)識(shí)的管理權(quán)限委托給合作伙伴。如果員工離職后,需要通過(guò)多個(gè)標(biāo)識(shí)和授權(quán)系統(tǒng)反映該信息,則聯(lián)合標(biāo)識(shí)方法就特別重要。
使用平臺(tái)提供的身份驗(yàn)證和授權(quán)機(jī)制,而不要使用自定義代碼。原因是開(kāi)發(fā)自定義身份驗(yàn)證代碼可能很容易出錯(cuò)。大部分開(kāi)發(fā)人員都不是安全專家,不太可能會(huì)注意到身份驗(yàn)證和授權(quán)的細(xì)微之處與最新開(kāi)發(fā)情況。商業(yè)代碼(例如Microsoft編寫(xiě)的代碼)通常會(huì)接受廣泛的安全性評(píng)審。
使用雙重身份驗(yàn)證。雙重身份驗(yàn)證是最新的身份驗(yàn)證和授權(quán)標(biāo)準(zhǔn),它避免了用戶名與密碼類型的身份驗(yàn)證所固有的安全漏洞。應(yīng)將對(duì)Azure管理(門(mén)戶/遠(yuǎn)程PowerShell)接口和面向客戶的服務(wù)的訪問(wèn)權(quán)限設(shè)計(jì)并配置為使用Azure AD多重身份驗(yàn)證。
使用OAuth2和Kerberos等標(biāo)準(zhǔn)身份驗(yàn)證協(xié)議。這些協(xié)議經(jīng)過(guò)廣泛的同行評(píng)審,有時(shí)可實(shí)現(xiàn)為平臺(tái)庫(kù)的一部分用于身份驗(yàn)證和授權(quán)。
在應(yīng)用程序設(shè)計(jì)期間使用威脅建模
Microsoft安全開(kāi)發(fā)生命周期指定團(tuán)隊(duì)?wèi)?yīng)在設(shè)計(jì)階段參與名為威脅建模的過(guò)程。為了幫助簡(jiǎn)化此過(guò)程,Microsoft已創(chuàng)建SDL威脅建模工具。對(duì)應(yīng)用程序設(shè)計(jì)進(jìn)行建模,并在所有信任邊界中枚舉STRIDE威脅可能會(huì)及早捕獲設(shè)計(jì)錯(cuò)誤。
下表列出了STRIDE威脅,并提供了一些使用Azure功能的示例緩解措施。這些緩解措施并非在每種情況下都起作用。
在Azure應(yīng)用服務(wù)上開(kāi)發(fā)
Azure App Service是一個(gè)PaaS產(chǎn)品,可創(chuàng)建適用于任何平臺(tái)或設(shè)備的Web和移動(dòng)應(yīng)用,并可連接到云中或本地任何位置的數(shù)據(jù)。應(yīng)用服務(wù)所包括的Web功能和移動(dòng)功能是以前作為Azure網(wǎng)站和Azure移動(dòng)服務(wù)單獨(dú)交付的。它還包括各種新功能,可以實(shí)現(xiàn)業(yè)務(wù)流程的自動(dòng)化,并可托管云API。應(yīng)用服務(wù)以單個(gè)集成服務(wù)的形式為Web、移動(dòng)和集成方案提供一組豐富的功能。
下面是使用應(yīng)用服務(wù)的最佳做法。
最佳做法:通過(guò)Azure Active Directory進(jìn)行身份驗(yàn)證。
詳細(xì)信息:應(yīng)用服務(wù)為標(biāo)識(shí)提供者提供OAuth 2.0服務(wù)。OAuth 2.0注重簡(jiǎn)化客戶端開(kāi)發(fā)人員的工作,同時(shí)為Web應(yīng)用程序、桌面應(yīng)用程序和移動(dòng)電話提供特定的授權(quán)流。Azure AD使用OAuth 2.0,可讓你授予移動(dòng)和Web應(yīng)用程序的訪問(wèn)權(quán)限。
最佳做法:根據(jù)“需要知道”和“最低權(quán)限”安全原則限制訪問(wèn)。
詳細(xì)信息:對(duì)于想要實(shí)施數(shù)據(jù)訪問(wèn)安全策略的組織,限制訪問(wèn)是必須要做的事??梢允褂肁zure RBAC向特定范圍內(nèi)的用戶、組和應(yīng)用程序分配權(quán)限。若要了解有關(guān)向用戶授予應(yīng)用程序訪問(wèn)權(quán)限的詳細(xì)信息,請(qǐng)參閱訪問(wèn)管理入門(mén)。
最佳做法:保護(hù)密鑰。
詳細(xì)信息:Azure Key Vault可幫助保護(hù)云應(yīng)用程序和服務(wù)使用的加密密鑰和機(jī)密。通過(guò)Key Vault,可以使用受硬件安全模塊(HSM)保護(hù)的密鑰,來(lái)加密密鑰和機(jī)密(例如身份驗(yàn)證密鑰、存儲(chǔ)帳戶密鑰、數(shù)據(jù)加密密鑰、.PFX文件和密碼)。為了提升可靠性,可以在HSM中導(dǎo)入或生成密鑰。請(qǐng)參閱Azure Key Vault了解詳細(xì)信息。還可以使用Key Vault和自動(dòng)續(xù)訂來(lái)管理TLS證書(shū)。
最佳做法:限制傳入的源IP地址。
詳細(xì)信息:應(yīng)用服務(wù)環(huán)境提供虛擬網(wǎng)絡(luò)集成功能,可幫助你通過(guò)網(wǎng)絡(luò)安全組限制傳入的源IP地址。使用虛擬網(wǎng)絡(luò)可將Azure資源置于可以控制其訪問(wèn)權(quán)限但無(wú)法通過(guò)Internet路由的網(wǎng)絡(luò)中。若要了解詳細(xì)信息,請(qǐng)參閱將應(yīng)用與Azure虛擬網(wǎng)絡(luò)集成。
最佳做法:監(jiān)視應(yīng)用服務(wù)環(huán)境的安全狀態(tài)。
詳細(xì)信息:使用Azure安全中心監(jiān)視應(yīng)用服務(wù)環(huán)境。在安全中心識(shí)別潛在的安全漏洞時(shí),它會(huì)創(chuàng)建一些建議,這些建議會(huì)指導(dǎo)完成配置所需控件的過(guò)程。
備注
監(jiān)視應(yīng)用服務(wù)的功能以預(yù)覽版提供,僅適用于安全中心的標(biāo)準(zhǔn)層。
安裝Web應(yīng)用程序防火墻
Web應(yīng)用程序已逐漸成為利用常見(jiàn)已知漏洞的惡意攻擊的目標(biāo)。這些攻擊中最常見(jiàn)的攻擊包括SQL注入攻擊、跨站點(diǎn)腳本攻擊等。防止應(yīng)用程序代碼中的此類攻擊頗具挑戰(zhàn)性,可能需要在應(yīng)用程序拓?fù)涞亩鄠€(gè)層進(jìn)行嚴(yán)格的維護(hù)、修補(bǔ)和監(jiān)視。集中式Web應(yīng)用程序防火墻有助于大幅簡(jiǎn)化安全管理,為抵卸威脅或入侵的應(yīng)用程序管理員提供更好的保障。相較保護(hù)每個(gè)單獨(dú)的Web應(yīng)用程序,WAF解決方案還可通過(guò)在中央位置修補(bǔ)已知漏洞,更快地響應(yīng)安全威脅??蓪F(xiàn)有應(yīng)用程序網(wǎng)關(guān)輕松轉(zhuǎn)換為支持Web應(yīng)用程序防火墻的應(yīng)用程序網(wǎng)關(guān)。
Web應(yīng)用程序防火墻(WAF)是應(yīng)用程序網(wǎng)關(guān)的功能,可以對(duì)Web應(yīng)用程序進(jìn)行集中保護(hù),避免其受到常見(jiàn)的攻擊和漏洞危害。WAF基于開(kāi)放Web應(yīng)用程序安全項(xiàng)目(OWASP)核心規(guī)則集3.0或2.2.9中的規(guī)則。
監(jiān)視應(yīng)用程序的性能
監(jiān)視是一種數(shù)據(jù)收集和分析操作,用于確定應(yīng)用程序的性能、運(yùn)行狀況及可用性。有效的監(jiān)視策略有助于了解應(yīng)用程序組件的詳細(xì)運(yùn)行狀況,它有助于向你發(fā)送關(guān)鍵情況的通知,讓你在這些情況成為問(wèn)題之前解決它們,從而提高運(yùn)行時(shí)間。它還有助于檢測(cè)可能與安全相關(guān)的異常。
使用Azure Application Insights監(jiān)視應(yīng)用程序的可用性、性能和使用情況,不管其是托管在云中還是在本地。通過(guò)使用Application Insights,可以快速確定并診斷應(yīng)用程序中的錯(cuò)誤,而無(wú)需等待用戶報(bào)告這些錯(cuò)誤。利用所收集的信息,可作出有關(guān)應(yīng)用程序維護(hù)和優(yōu)化的明智抉擇。
Application Insights提供各種可以與所收集的數(shù)據(jù)交互的工具。Application Insights在公用存儲(chǔ)庫(kù)中存儲(chǔ)其數(shù)據(jù)。它可以通過(guò)Kusto查詢語(yǔ)言充分利用各種共享功能,例如警報(bào)、儀表板和深入分析。
執(zhí)行安全滲透測(cè)試
驗(yàn)證安全防御與測(cè)試任何其他功能一樣重要。將滲透測(cè)試規(guī)定為生成和部署過(guò)程的標(biāo)準(zhǔn)組成部分。針對(duì)已部署應(yīng)用程序?qū)Χㄆ诎踩珳y(cè)試和漏洞掃描進(jìn)行計(jì)劃,并監(jiān)視打開(kāi)的端口、終結(jié)點(diǎn)和攻擊活動(dòng)。
模糊測(cè)試是一種通過(guò)將格式錯(cuò)誤的輸入數(shù)據(jù)提供給分析并使用此數(shù)據(jù)的程序接口(入口點(diǎn))來(lái)查找程序故障(代碼錯(cuò)誤)的方法。Microsoft安全風(fēng)險(xiǎn)檢測(cè)是一種基于云的工具,可以在將軟件部署到Azure之前,使用該工具查找軟件中的bug和其他安全漏洞。該工具設(shè)計(jì)為在部署軟件前捕獲漏洞,因此你無(wú)需在軟件發(fā)布后修補(bǔ)bug、處理崩潰或響應(yīng)攻擊。