中間件工具會引起巨大的漏洞,足以抵消所帶來的好處。然而,通過一些簡單的步驟你就可以保護(hù)自己和數(shù)據(jù)。
在過去,開發(fā)者利用操作性用工具和特性去開發(fā)應(yīng)用,但大多數(shù)操作系統(tǒng)工具都聚焦在一個(gè)平臺和本地資源上。隨著應(yīng)用開發(fā)成為網(wǎng)絡(luò)化的組件集,從客戶/服務(wù)器到分布式多組件工作流,逐步形成了新的一組工具用以幫助開發(fā)者形成一致的實(shí)踐并促進(jìn)開發(fā)本身,這些工具被稱為中間件,提供了很好的價(jià)值,但因?yàn)樗麄兂洚?dāng)網(wǎng)絡(luò)服務(wù)和應(yīng)用之間的協(xié)調(diào),因此,這些中間件本身也會產(chǎn)生重大的安全問題。
為了處理好這一問題,開發(fā)者需要了解應(yīng)用的三個(gè)主要的安全屬性:建立應(yīng)用生命周期管理(ALM)實(shí)踐來實(shí)施中間件安全,優(yōu)化網(wǎng)絡(luò)安全作為第一道防御,逐步給特定中間件工具和界面增加安全。
用戶同意,“安全”的應(yīng)用有三個(gè)屬性。首先,它通過用戶鑒權(quán)和權(quán)限控制提供了訪問控制。其次,它保護(hù)工作流中的信息免受攔截或?yàn)g覽,最后,它確保事務(wù)的完整性及不可抵賴性。你可以通過寬泛或特定的安全舉措支持每一項(xiàng)屬性,所以確保中間件安全的最重要一步是探索可能的安全舉措并讓這些舉措與風(fēng)險(xiǎn)協(xié)調(diào)。
在受到中間件支持的應(yīng)用是敏感的地方,或者中間件位于敏感信息被處理或存放的平臺上時(shí),中間件的風(fēng)險(xiǎn)最大。在這些情況下,中間件可形成惡意軟件的第二路徑,通過它應(yīng)用和數(shù)據(jù)也會受到連累。不要把敏感應(yīng)用和更加開放的(Web)應(yīng)用混雜在同一個(gè)平臺上,這樣就可以減少中間件的安全風(fēng)險(xiǎn),也可以更容易成本更低地保證重要的東西的安全。
中間件安全始于ALM流程
一切中間件安全都必須從ALM流程內(nèi)開始,其目標(biāo)是確保中間件組件和應(yīng)用組件在集成到中間件朋友或應(yīng)用之前已得到完全驗(yàn)證。如果用于支持它的元素有可能受到惡意軟件感染或通過非授權(quán)變更攻潰的話,任何安全機(jī)制都沒有效。避免受惡意軟件影響的第一步是建立部署實(shí)踐,把中間件工具和安全舉措吸收進(jìn)共同的“安全中間件”元素中,然后只要這一元素有任何變化都要求ALM流程測試功能性和安全性。
網(wǎng)絡(luò)安全是防御惡意軟件的第一道防線。網(wǎng)絡(luò)越開放,內(nèi)容就越不安全,增加特殊安全機(jī)制來保護(hù)不受惡意軟件攻擊就越重要。顯然,應(yīng)用和平臺的互聯(lián)網(wǎng)訪問制造了最開放和最具風(fēng)險(xiǎn)的網(wǎng)絡(luò)框架。只要應(yīng)用和平臺運(yùn)行在VPN之內(nèi)并予以特殊的訪問控制,網(wǎng)絡(luò)本身的安全性就足以滿足某些應(yīng)用需求,從而可以簡化其他的安全舉措。
你可以建設(shè)針對應(yīng)用的疊加網(wǎng)絡(luò),通過對數(shù)據(jù)和訪問進(jìn)行分區(qū)處理來增強(qiáng)網(wǎng)絡(luò)安全。這些網(wǎng)絡(luò),通?;诩用芩淼澜ㄔO(shè),可提供訪問保護(hù)和偵聽安全,甚至降低信息在組件之間“飛行時(shí)”被盜用的風(fēng)險(xiǎn),從而確保不可抵賴性。然而,多應(yīng)用網(wǎng)絡(luò)也會導(dǎo)致員工訪問信息的復(fù)雜化,因此有可能的話最實(shí)用的做法是將應(yīng)用按照員工類型分組,提供“應(yīng)用級訪問”而不是協(xié)調(diào)按照應(yīng)用的訪問。
一旦網(wǎng)絡(luò)安全已被開放至實(shí)用的地步,就到審視惡意軟件自身的時(shí)候了。經(jīng)驗(yàn)表明,大多數(shù)有漏洞的中間件工具都是那些與工作流/消息總線管理相關(guān)的。工作流/消息管理中間件安全的目標(biāo)是防止非授權(quán)的消息引入或偵聽。
利用Web服務(wù)框架提高安全
保證中間件安全的一個(gè)明顯方式是實(shí)現(xiàn)更多的Web服務(wù)(WS)框架,尤其是在組件間的WS-Security,并特別保證與服務(wù)/消息總線的連接安全。這是在供應(yīng)商中間件架構(gòu)(比方說Microsoft的 .NET、IBM的 WebSphere, Oracle Fusion)內(nèi)提高安全的最容易的方式,因?yàn)榘踩ぞ呤羌稍诶锩?,且通過標(biāo)準(zhǔn)開發(fā)工具和實(shí)踐就能獲得的。
一般情況,基本的WS流程都存在限制,因?yàn)樗鼈儾⒉簧婕肮ぷ魅绾卧诤戏ńM件間進(jìn)行分配的,這會導(dǎo)致工作導(dǎo)航(通常通過BPEL)可發(fā)送某個(gè)東西給不安全的目的地的風(fēng)險(xiǎn)。盡管這一機(jī)制很難被外界利用,但內(nèi)部人士可用它來攔截接收者無權(quán)看到的事務(wù)或數(shù)據(jù)。為避免這一點(diǎn),你需要保證BPEL的安全,可能也要增加策略管理工具來限制中間件對特別關(guān)鍵數(shù)據(jù)的路由。再次地,這個(gè)也是某個(gè)往往由上述架構(gòu)化的中間件工具提供的東西。
大多數(shù)工作流中間件都是基于消息總線的,但是有些應(yīng)用則可受益于更加動態(tài)的結(jié)構(gòu)。我們往往會采用發(fā)布/訂閱模式,但如果沒有正確實(shí)現(xiàn)的話,這些工具尤其容易受到攻擊。當(dāng)使用此類 “發(fā)布”能力或接口的功能時(shí),把它限制給那些策略上有權(quán)訪問的人至關(guān)重要。通常而言,需要進(jìn)行消息過濾以確保發(fā)布/訂閱中間件的安全,除非是在安全網(wǎng)絡(luò)的“內(nèi)部”實(shí)現(xiàn)的。這通常在用戶和資源連接的那層上應(yīng)用于發(fā)布/訂閱中間件的外部。
對于所有的中間件安全問題來說,一個(gè)好的起點(diǎn)是檢查主流供應(yīng)商結(jié)構(gòu)化中間件包的安全特性。通過審視所有這些安全特性以及應(yīng)用方式,,你可以確定安全問題是否需要特定的中間件解決方案,也能看出不同的中間件元素一般是如何獲得安全保證的。甚至哪怕你并未采用某個(gè)供應(yīng)商的方案,理解那個(gè)方案能提供什么也能引導(dǎo)你改進(jìn)自己的中間件安全。
中間件會給企業(yè)帶來巨大的漏洞,足以抵消自身所帶來的好處。不要讓這一情況發(fā)生,通過有組織的方式采取一些簡單步驟就能保護(hù)你和你的數(shù)據(jù)。