微軟Azure安全功能如何實(shí)現(xiàn)PaaS的安全性
正如我在之前的文章中所討論的那樣,應(yīng)用程序安全專(zhuān)業(yè)知識(shí)是PaaS安全性的關(guān)鍵之所在。對(duì)于使用PaaS環(huán)境的企業(yè)來(lái)說(shuō),投資于教育與軟件開(kāi)發(fā)生命周期過(guò)程是極其重要的。但是,總的來(lái)說(shuō)企業(yè)在應(yīng)用程序安全方面的投資一直是緩慢的。
因此,對(duì)于PaaS環(huán)境的安全專(zhuān)業(yè)人士來(lái)說(shuō),挑戰(zhàn)如下:雖然已為應(yīng)用程序安全性投入大量資金,但是哪一種短期措施可作為PaaS安全性的權(quán)宜之計(jì)?例如,在Azure的支持下,微軟公司的無(wú)數(shù)以開(kāi)發(fā)為重點(diǎn)的安全資源發(fā)揮了巨大效應(yīng),但如果應(yīng)用程序已經(jīng)編寫(xiě)完成,那又該如何呢?可能未必有時(shí)間將SDL或威脅模型納入特定的應(yīng)用程序。
處于該位置的公司應(yīng)當(dāng)知道的有兩件事:首先,Azure環(huán)境本身提供了一些非常強(qiáng)大的安全功能,以保護(hù)相關(guān)應(yīng)用程序,這些功能包括諸如網(wǎng)絡(luò)級(jí)控制、物理安全、托管強(qiáng)化等措施。但是這些保護(hù)只完成了一半的任務(wù);無(wú)論做好了如何完備的保護(hù),任何環(huán)境仍然可能因?yàn)槲唇鉀Q的應(yīng)用程序而受到攻擊。幸運(yùn)的是,一旦所開(kāi)發(fā)的程序在應(yīng)用程序?qū)釉黾恿艘恍┍Wo(hù)措施,那么就有一些我們可以依賴(lài)的功能。
這些權(quán)宜之計(jì)并不是唯一適用的應(yīng)用程序安全措施——它們不包括你應(yīng)該做的事(如SSL),他們并不是普遍適用于每一個(gè)用例。但是,這些微軟公司的Azure安全功能并不能幫助安全專(zhuān)家了解更多信息,因?yàn)樗麄兛上鄬?duì)快速實(shí)施,要求盡可能少的代碼更改,并可多次復(fù)用于現(xiàn)有應(yīng)用程序而無(wú)需大量的業(yè)務(wù)邏輯復(fù)檢。
Microsoft公司Azure安全:部分信任
Windows Azure可能會(huì)作為非管理員用戶(hù)在本地操作系統(tǒng)上通過(guò)運(yùn)行用戶(hù)供應(yīng)代碼來(lái)提供某種針對(duì)顛覆應(yīng)用程序攻擊的隔離措施(從調(diào)用者的角度來(lái)看,這幾乎是完全透明的)。但是,企業(yè)組織可以通過(guò)采用“部分信任”而非“完全信任”以便于進(jìn)一步限制對(duì)某個(gè)角色的訪(fǎng)問(wèn)權(quán)限。
那些熟悉傳統(tǒng).NET上下文安全模式的人會(huì)認(rèn)出這一概念,但是這個(gè)想法也通過(guò)限制應(yīng)用程序本身功能而限制應(yīng)用程序本身中安全故障所造成的影響。如同一些網(wǎng)絡(luò)服務(wù)器和應(yīng)用程序使用一個(gè)“受限”文件系統(tǒng)或受限權(quán)限模式一樣,部分信任的概念也與之類(lèi)似。微軟公司提供了部分信任下的完整功能列表,以及如何在Visual Studio中啟用該功能的說(shuō)明。
但有一個(gè)需要注意的地方。雖然使用部分信任是從事小型應(yīng)用程序/服務(wù)的一條康莊大道,但是大型或復(fù)制應(yīng)用程序/服務(wù)(例如從一個(gè)現(xiàn)有.NET應(yīng)用程序的直接端口)可能需要完全信任的權(quán)限以實(shí)現(xiàn)正常功能。
Microsoft公司Azure安全:AntiXSS
在應(yīng)用程序上下文(更確切地說(shuō),是一個(gè)網(wǎng)絡(luò)應(yīng)用程序上下文)中發(fā)生的眾多問(wèn)題都源于惡意輸入;換而言之,用戶(hù)提供的輸入是一種常見(jiàn)的攻擊途徑,除非輸入受到限制或作為應(yīng)用程序處理的一部分進(jìn)行驗(yàn)證才會(huì)免除這個(gè)可能性。這并不容易實(shí)現(xiàn);一般而言,需要花費(fèi)相當(dāng)?shù)呐?和培訓(xùn))以獲知開(kāi)發(fā)人員的業(yè)務(wù)邏輯從而明白應(yīng)當(dāng)過(guò)濾什么,為什么要過(guò)濾以及如何測(cè)試過(guò)濾措施是全面有效的。
正因?yàn)槿绱耍④浌久赓M(fèi)提供了網(wǎng)絡(luò)保護(hù)庫(kù)(WPL)以提供一個(gè)輸入驗(yàn)證封裝庫(kù),以便于開(kāi)發(fā)人員使用來(lái)解決部分類(lèi)似問(wèn)題。WPL中的AntiXSS庫(kù)提供了相關(guān)功能,以便于開(kāi)發(fā)人員可以集成編碼用戶(hù)輸入,從而減少惡意攻擊顛覆輸入域從而對(duì)應(yīng)用程序行為造成負(fù)面影響的可能性。
Microsoft公司Azure安全:使用診斷
能夠防止攻擊的下一個(gè)有效措施在于有辦法知道它是否發(fā)生。在傳統(tǒng)內(nèi)部應(yīng)用程序部署場(chǎng)景中,安全專(zhuān)業(yè)人士可以實(shí)施強(qiáng)化記錄和檢測(cè)控制措施以應(yīng)對(duì)應(yīng)用程序級(jí)安全風(fēng)險(xiǎn)。同樣的策略也可應(yīng)用于Azure。具體來(lái)說(shuō),可配置Azure的診斷功能以提供額外的安全相關(guān)信息,即不僅僅是儀器已經(jīng)存在于應(yīng)用程序本身。IIS日志、基礎(chǔ)設(shè)施日志以及其他日志記錄可以是一種留意應(yīng)用程序的方法,即一旦運(yùn)行就無(wú)需進(jìn)行工作量巨大的規(guī)劃、編碼以及重新測(cè)試。
顯而易見(jiàn),這些措施不是針對(duì)PaaS安全問(wèn)題的全面答案。理想情況下,該組織的目的是一個(gè)長(zhǎng)期、復(fù)雜、以生命周期為重點(diǎn)的方法學(xué),其中包括通過(guò)SDLC和流程變更事項(xiàng)應(yīng)用程序安全性。但在短期內(nèi),當(dāng)很難實(shí)現(xiàn)代碼改變和難以立即上馬時(shí),這些簡(jiǎn)單易行的步驟可能會(huì)幫上忙。



















