當(dāng)前位置:工程項目OA系統(tǒng) > 泛普各地 > 重慶OA系統(tǒng) > 重慶OA行業(yè)資訊
談?wù)凷OA面向服務(wù)體系架構(gòu)的安全問題
本文我們討論的是面向服務(wù)體系架構(gòu)(SOA)的安全應(yīng)用。在展開討論之前,首先讓我們來解析面向服務(wù)體系架構(gòu)的實際含義。面向服務(wù)體系架構(gòu)是一種涉及若干以服務(wù)為導(dǎo)向的應(yīng)用軟件的體系架構(gòu)。最初面向服務(wù)體系架構(gòu)中的服務(wù)與一系列技術(shù)相關(guān),包括SOAP, WSDL和UDDI。不過許多研發(fā)人員對REST(表象化狀態(tài)轉(zhuǎn)變,簡稱REST)服務(wù)顯示出更大的興趣,由此REST成為面向服務(wù)體系架構(gòu)中廣為接受的組成部分。由于REST被廣泛應(yīng)用于Web 2.0軟件,因此Web2.0的興起也鞏固了REST在面向服務(wù)體系架構(gòu)領(lǐng)域中的地位。最近云服務(wù)(諸如亞馬遜在線的簡單查詢服務(wù)SQS)也開始和本地服務(wù)并駕齊驅(qū),共同創(chuàng)建混合面向服務(wù)體系架構(gòu)環(huán)境。所有這些使得面向服務(wù)體系架構(gòu)成為包含最初的SOAP/REST/VDDI堆棧,REST服務(wù)和云的集合體。從安全應(yīng)用的專業(yè)角度來看,所有這些都必須得到安全保障。
提及面向服務(wù)體系架構(gòu)安全,首先要問的是為什么。為什么要對面向服務(wù)體系架構(gòu)實施安全保障呢?毋庸置疑的答案就是要保護(hù)面向服務(wù)體系架構(gòu)不受攻擊。這是一個合理的理由,但是應(yīng)用面向服務(wù)體系架構(gòu)安全還有其他不可忽視的動因,諸如監(jiān)控面向服務(wù)體系架構(gòu)中服務(wù)的使用。我們首先從審查面向服務(wù)體系架構(gòu)技術(shù)(包括SOAP和REST)的攻擊漏洞開始。然后我們將審核諸如WS-Security等安全標(biāo)準(zhǔn)如何應(yīng)用到面向服務(wù)體系架構(gòu),如何通過協(xié)議實現(xiàn)控制使用和監(jiān)控,最后我們將檢查企業(yè)在整合本地網(wǎng)站應(yīng)用軟件和云計算服務(wù)時可能產(chǎn)生的安全隱患。
面向服務(wù)體系架構(gòu)風(fēng)險綜述
在面向服務(wù)體系架構(gòu)中影響XML和REST服務(wù)的內(nèi)容風(fēng)險是什么?在XML里,有幾種大家所熟知的攻擊風(fēng)險,諸如XML Entity-Expansion和SQL注入式攻擊。
SQL注入式攻擊
在面向服務(wù)體系架構(gòu)中,SQL注入式攻擊會將SQL碎片插入XML數(shù)據(jù),然后將錯誤的數(shù)據(jù)返回,或者制造泄露數(shù)據(jù)庫訪問信息的錯誤。
在面向服務(wù)體系架構(gòu)中能實施成功的SQL注入式攻擊需要兩個先決條件:
--面向服務(wù)體系架構(gòu)中服務(wù)接受的數(shù)據(jù)被直接插入SQL Statement。
--SQL Statement在執(zhí)行攻擊時有足夠的優(yōu)先權(quán)
為了避免受到攻擊,必須確保從可疑用戶處接受的數(shù)據(jù)不會直接插入SQL Statement。對接受的文件內(nèi)容執(zhí)行內(nèi)容驗證和風(fēng)險偵測以便進(jìn)行防范。
捕捉-重放攻擊(Capture-replay attack)
想象一下:面向服務(wù)體系架構(gòu)中的服務(wù)受到協(xié)議的保護(hù),服務(wù)請求需要數(shù)字簽名。這看起來很安全,但結(jié)果真是這樣嗎?答案是這種系統(tǒng)存在重放攻擊的弱點,系統(tǒng)只需簡單的重新播放驗證的簽名信息就能實現(xiàn)未經(jīng)授權(quán)的訪問。
解決這種問題的答案涉及時間戳的使用。網(wǎng)絡(luò)服務(wù)安全性(WS-Security)標(biāo)準(zhǔn)就包括對時間戳的支持。網(wǎng)絡(luò)服務(wù)協(xié)議(WS-Policy)可以用來掌控信息中出現(xiàn)的簽名時間戳,因此重新播放的信息時間戳過期就會被系統(tǒng)偵測到。用戶必須認(rèn)真制定時間戳信任間隔。這個間隔必須足夠短,只有這樣攻擊者才沒有時間對驗證信息進(jìn)行捕捉,破解和重放。但是時間戳信任間隔又必須足夠長,以便在網(wǎng)絡(luò)服務(wù)系統(tǒng)時鐘和網(wǎng)絡(luò)服務(wù)請求之間細(xì)微的差別不會導(dǎo)致驗證信息被阻隔。
XML外部實體攻擊(External Entity Attack)
所謂的XML外部實體攻擊是通過DTD(文件類型定義)入口將外部數(shù)據(jù)嵌入到XML文檔中。通過指定一個本地文件會產(chǎn)生某些XML引擎,通過本地文件系統(tǒng)訪問未經(jīng)授權(quán)的信息。請注意SOAP不允許使用DTD。
XPath注入(XPath Injection)
XPath注入式攻擊與SQL注入類似,它被用于從XML數(shù)據(jù)庫中竊取信息。如果能確保進(jìn)入XPath的數(shù)據(jù)本身不包含XPath,那么XPath注入攻擊就能被阻斷。
XML拒絕服務(wù)(XDOS)
這種攻擊包含了文件類型定義的特性,即攻擊可以進(jìn)入DTD定義的實體。通過遞歸進(jìn)入實體,攻擊者可以制造在內(nèi)存中爆炸的XML信息(因此這個術(shù)語也被稱之為“XML炸彈”),從而導(dǎo)致拒絕服務(wù)。
有害的SOAP附件
像電子郵件信息一樣,SOAP信息也包含附件。如果這些附件很大而且很難打開,那么它可能含有病毒或者其它危險。解決這個問題的方案是確保SOAP附件可以基于MIME類型進(jìn)行阻斷和過濾,或者通過病毒掃描進(jìn)行偵測。
XML簽名差異攻擊(Signature dereference attack)
XML簽名包括指向簽名數(shù)據(jù)的參考要素。解析應(yīng)用軟件必須對參考URI解除參照。XML簽名標(biāo)準(zhǔn)陳述如下:“XML簽名應(yīng)用軟件必須能夠解析URI語法。我們推薦在HTTP中對URI進(jìn)行參照解除”。不過如果參考數(shù)據(jù)是偽造的就會帶來風(fēng)險。
REST Web 2.0和面向服務(wù)體系架構(gòu)
盡管面向服務(wù)體系架構(gòu)最初是和SOAP,WSDL和VDDI三者聯(lián)系在一起的,但許多研發(fā)人員寧愿使用REST服務(wù),因為REST更加接近網(wǎng)站上的瀏覽器界面。Web 2.0的蓬勃發(fā)展對其起到了推波助瀾的作用,因為豐富互聯(lián)網(wǎng)應(yīng)用軟件(RIS)就是利用REST服務(wù)將數(shù)據(jù)從網(wǎng)絡(luò)服務(wù)器傳遞到瀏覽器。能利用Web 2.0的技術(shù)包括瀏覽器端的JavaScript,多數(shù)稱之為REST網(wǎng)絡(luò)服務(wù)的部分都是在服務(wù)器端發(fā)生的。舉例來說,F(xiàn)lickr網(wǎng)站包括在瀏覽器中運(yùn)行的JavaScript腳本,我們稱之為服務(wù)器端的網(wǎng)絡(luò)服務(wù),可以對照片進(jìn)行更名。為了撤銷XML或者JSON(JavaScript目標(biāo)符號)數(shù)據(jù),客戶端的“AJAX”(非同步JavaScript和XML)可以召回服務(wù)器上的網(wǎng)絡(luò)服務(wù)。這種行為不是同步發(fā)生的,用戶無需瀏覽新的網(wǎng)頁。
在Web 2.0的世界中,這成為攻擊關(guān)鍵點的后端網(wǎng)絡(luò)服務(wù)。有時這種網(wǎng)絡(luò)服務(wù)被定義為Web 2.0的“大型攻擊界面”。攻擊者會試圖通過它的客戶端界面攻擊應(yīng)用軟件,或者他們會簡單的繞過后端網(wǎng)絡(luò)服務(wù)界面長驅(qū)直入。
問題依然存在
在這點上,很多讀者可能會認(rèn)為“這和傳統(tǒng)的網(wǎng)絡(luò)應(yīng)用軟件并沒有實質(zhì)不同,因此為什么要對它單獨(dú)進(jìn)行安全保障?”,畢竟在Web 2.0 環(huán)境中,用到的是網(wǎng)絡(luò)瀏覽器和網(wǎng)絡(luò)服務(wù)器,涉及的是一個用戶。確實當(dāng)數(shù)據(jù)在網(wǎng)絡(luò)瀏覽器和網(wǎng)絡(luò)服務(wù)器之間傳輸時,對SQL注入或者交叉腳本的攻擊跡象進(jìn)行數(shù)據(jù)掃描就可以了。當(dāng)XML在網(wǎng)絡(luò)上,你就必須對XML拒絕服務(wù)或者XPath注入等攻擊也進(jìn)行掃描。另外,保證譯碼安全也同樣重要。瀏覽器上的豐富應(yīng)用軟件承擔(dān)著增強(qiáng)安全譯碼的職責(zé)。如果攻擊者將JavaScript腳本插入遞歸下行至瀏覽器的數(shù)據(jù),那么交叉腳本也是可能的。因為許多Web 2.0的腳本交叉都取決于服務(wù)于客戶的JavaScript。帶病毒的JavaScript傳播的可能性就會變?yōu)楝F(xiàn)實。因此也必須進(jìn)行偵測和隔離。
Freemium模式和數(shù)據(jù)被盜的風(fēng)險
所謂的Freemium網(wǎng)絡(luò)服務(wù)指的是免費(fèi)提供的基礎(chǔ)服務(wù),如果有特殊需求或者增強(qiáng)型服務(wù)再另行收取額外費(fèi)用。Freemium這個詞本身是兩種商業(yè)模式,免費(fèi)和收費(fèi)合二為一的混合詞。
允許某些在面向服務(wù)體系架構(gòu)中的服務(wù)在Freemium模式下運(yùn)行是很很吸引眼球的,因為它提供了一種付費(fèi)商業(yè)模式的途徑。不過這種模式的實用性更加復(fù)雜。 Freemium模式要預(yù)先設(shè)定面向服務(wù)體系架構(gòu)安全框架,這個框架能夠偵測服務(wù)的過度使用,強(qiáng)迫用戶對使用的服務(wù)進(jìn)行付費(fèi)。使用服務(wù)必須通過驗證以便系統(tǒng)能偵測到某個特別用戶過度使用了服務(wù),從而要求用戶進(jìn)行付費(fèi)。通常Freemium模式是使用研發(fā)人員代號來實現(xiàn)的。這些代號是嵌入在網(wǎng)絡(luò)服務(wù)符號庫中的,能傳遞給所提供的服務(wù)。舉例來說,用戶可以使用搜索服務(wù)來尋找特定的點,但是他們無法在不被察覺的情況下進(jìn)行數(shù)據(jù)搜索,系統(tǒng)會要求他們進(jìn)行付費(fèi)。
當(dāng)用戶在面向服務(wù)體系架構(gòu)中實行Freemium服務(wù)模式時,企業(yè)可以選擇編譯自定義代碼來執(zhí)行,或者使用非定制的產(chǎn)品來實現(xiàn),諸如XML網(wǎng)關(guān)。XML網(wǎng)關(guān)的優(yōu)勢是在無需改變實際代碼的前提下就能更改模式中的參數(shù)。XML網(wǎng)關(guān)也能對我們前文所討論的攻擊進(jìn)行掃描,諸如病毒代碼注入。
身份驗證和標(biāo)準(zhǔn)
了解是誰在使用面向服務(wù)體系架構(gòu)中的服務(wù)是很重要的,使用這些信息進(jìn)行訪問控制和通過審計跟蹤維護(hù)信息安全也是如此。對服務(wù)的訪問控制服務(wù)也要利用各種不同的標(biāo)準(zhǔn),某些標(biāo)準(zhǔn)是X.509證書類型的,某些是SAML和網(wǎng)絡(luò)服務(wù)安全這樣的新標(biāo)準(zhǔn)。重要的是我們不要被這些標(biāo)準(zhǔn)所蒙蔽,特別是當(dāng)他們以一種復(fù)雜的方式組合在一起時。
新與舊:密碼,X.509證書和網(wǎng)絡(luò)服務(wù)安全(WS-Security)
密碼的使用已經(jīng)由來已久。目前在面向服務(wù)體系架構(gòu)安全中依然應(yīng)用廣泛。在很多情況下只是HTTP驗證這種簡單的問題,可以通過SSL傳遞出去以便密碼不會被泄露。事實上即使是使用了數(shù)字簽名驗證,密碼的泄露也很難完全避免,因此為了阻隔特定的捕捉-重放攻擊,SSL還應(yīng)該別使用。盡管通過SSL進(jìn)行HTTP驗證是一項古老的技術(shù),但它在面向服務(wù)體系架構(gòu)的點對點身份驗證中依然應(yīng)用廣泛。
X.509證書被應(yīng)用于SSL驗證中,網(wǎng)絡(luò)服務(wù)可以向客戶證明它的身份,或者在雙向SSL中,客戶還能向服務(wù)證明自己的身份。在這種情況下身份驗證是沒有定形的,因為網(wǎng)絡(luò)服務(wù)交叉性經(jīng)常會涉及應(yīng)用程序與應(yīng)用程序的對話。由此這里的驗證也是對應(yīng)用程序的驗證。這些情況都是使用X.509證書,信任也是基于X.509證書的發(fā)行者(即授權(quán)機(jī)構(gòu),簡稱CA)。
和SSL一樣,X.509證書經(jīng)常會用于數(shù)字簽名。XML簽名是定義XML數(shù)據(jù)如何使用與X.509證書吻合的私人密鑰來進(jìn)行數(shù)字簽名的標(biāo)準(zhǔn),這樣任何持有X.509證書簽名方的用戶都可以對簽名進(jìn)行驗證。
XML 加密也是一項定義XML數(shù)據(jù)如何加密的標(biāo)準(zhǔn)?;蛟S你會問“在加密XML數(shù)據(jù)和加密其他類型數(shù)據(jù)之間有什么不同?”,答案是XML數(shù)據(jù)可以有選擇性的進(jìn)行加密,比如說有選擇性的對醫(yī)療記錄中患者姓名進(jìn)行加密。由于面向服務(wù)體系架構(gòu)中的信息多數(shù)都是XML的(REST和用于Web 2.0的JSON除外),XML加密在隱私保護(hù)方面非常有用。
Kerberos也是一項成熟的技術(shù),能繼續(xù)應(yīng)用在面向服務(wù)體系架構(gòu)安全中。特別是Kerberos經(jīng)常會用于Windows環(huán)境中,因為它也加強(qiáng)了Windows網(wǎng)絡(luò)中的身份驗證和單一簽名安全。
所有這些已經(jīng)存在的安全技術(shù)都會繼續(xù)應(yīng)用在面向服務(wù)體系架構(gòu)安全之中。
網(wǎng)絡(luò)服務(wù)安全(WS-Security)
網(wǎng)絡(luò)服務(wù)安全是在2004年才實施標(biāo)準(zhǔn)化的一項新興技術(shù),它是在先前技術(shù)的基礎(chǔ)上建立起來的。它是定義XML加密和XML簽名如何應(yīng)用到SOAP的標(biāo)準(zhǔn),這樣SOAP信息就可以被加密或者簽名。另外,它還定義了密碼和X.509證書在SOAP信息中的位置,SOAP如何與Kerberos共同運(yùn)作。使用網(wǎng)絡(luò)服務(wù)安全標(biāo)準(zhǔn)可是實現(xiàn)不同應(yīng)用程序之間的協(xié)同工作。
諸如Suns Glassfish和微軟.NET這樣的平臺都能與網(wǎng)絡(luò)服務(wù)安全標(biāo)準(zhǔn)相結(jié)合。這些技術(shù)能處理簽名XML(使用網(wǎng)絡(luò)服務(wù)安全標(biāo)準(zhǔn)的XML簽名),身份驗證(使用密碼,Kerberos或證書)和加密(使用網(wǎng)絡(luò)服務(wù)安全標(biāo)準(zhǔn)的XML加密)。
XML網(wǎng)關(guān)
XML 網(wǎng)關(guān)能通過提供網(wǎng)絡(luò)上的安全處理和硬件加速來保障面向服務(wù)體系架構(gòu)的安全。XML網(wǎng)關(guān)將安全協(xié)議應(yīng)用到需要保護(hù)的面向服務(wù)體系架構(gòu)服務(wù)。它代表的是位于真實網(wǎng)絡(luò)服務(wù)前端的虛擬服務(wù)。這些虛擬服務(wù)可以被提速,還可以包括在真實面向服務(wù)體系架構(gòu)服務(wù)之前發(fā)生的過渡服務(wù)。舉例來說,XML網(wǎng)關(guān)可以呈現(xiàn)在真實 SOAP網(wǎng)絡(luò)服務(wù)前端的REST界面。用這種方法,XML網(wǎng)關(guān)通常能提供協(xié)議調(diào)解,信息過渡,硬件加速以及安全。
面向服務(wù)體系架構(gòu)安全到云的未來
根據(jù)內(nèi)部應(yīng)用軟件到網(wǎng)絡(luò)應(yīng)用軟件的概念進(jìn)行定義,面向服務(wù)體系架構(gòu)目前正在尋找與云計算的連接。由亞馬遜在線,F(xiàn)orce.com和谷歌等提供的服務(wù)都是這種全球性面向服務(wù)體系架構(gòu)。他們能提供多種網(wǎng)絡(luò)服務(wù),通常都可以通過與應(yīng)用軟件結(jié)合的REST和AJAX界面來實現(xiàn)訪問。
目前占據(jù)主導(dǎo)地位的方式是混合模式,即在本地面向服務(wù)體系架構(gòu)上的服務(wù)和云上的服務(wù)混合使用。舉例來說,本地應(yīng)用軟件可能已經(jīng)將銷售數(shù)據(jù)從數(shù)據(jù)庫中導(dǎo)出,然后將其放在 TIBCO Rendezvous查詢中。Force.com中召回的數(shù)據(jù)在放入Rendezvous查詢之前可能會被用于豐富數(shù)據(jù)。另一個例子是本地應(yīng)用軟件使用亞馬遜S3服務(wù)來進(jìn)行存儲。
在連接到云上的本地面向服務(wù)體系架構(gòu)的混合模式中,很重要的一點是確保沒有私人數(shù)據(jù)被傳輸?shù)皆粕?。也可以通過對傳輸?shù)皆粕系臄?shù)據(jù)進(jìn)行選擇性加密來實現(xiàn)安全保障。另外,網(wǎng)絡(luò)中斷或者云服務(wù)故障不會經(jīng)常影響到本地應(yīng)用軟件也很重要。用戶可以使用XML網(wǎng)關(guān)作為本地“Cloud Broker”來控制從本地面向服務(wù)體系架構(gòu)到云上的連接。(安全在線)
- 1影響企業(yè)信息化進(jìn)程的幾個重要問題
- 2李包羅:撬動舊醫(yī)療體制的有力杠桿是什么
- 3評述中小企業(yè)的信息化管理實施架構(gòu)
- 4上網(wǎng)機(jī):機(jī)遇還是雞肋
- 5SaaS 2.0的內(nèi)涵
- 6Adobe順應(yīng)Web服務(wù)潮流 免費(fèi)升級服務(wù)器軟件
- 7電力信息化不僅是技術(shù)層面上的問題
- 8供應(yīng)鏈管理在公司中應(yīng)該排老幾?
- 9調(diào)查:企業(yè)應(yīng)用SOA勢頭正在強(qiáng)勁增長
- 10網(wǎng)站全國分公司代理商伙伴以及分享和優(yōu)化
- 11重慶2014年最新施工企業(yè)名錄
- 12什么是Web Service
- 13知識轉(zhuǎn)化:管理的視角和技術(shù)的視角(by AMT 萬濤 孟凡強(qiáng))
- 14財務(wù)管理系統(tǒng)選型之打印格式的設(shè)置
- 15Web服務(wù)讓CIO們左右為難 選擇.NET還是Java?
- 16重慶OA網(wǎng)絡(luò)協(xié)同辦公系統(tǒng)采用領(lǐng)先的B/S(瀏覽器/服務(wù)器) 體系架構(gòu)
- 176西格瑪考核ITSM
- 18重慶OA必須增強(qiáng)自身的交流溝通能力、交流的心態(tài)和技巧
- 19訪新華醫(yī)院信管部主任孟麗莉
- 20安防行業(yè)發(fā)展階段
- 21OA怎樣為重慶合川市政府解決問題
- 22重慶OA幫助企業(yè)雇傭員工頭腦(Kevin)
- 232013年,地區(qū)級OA軟件市場何去何從,我們無從得知
- 24安全網(wǎng)銀成為銀行新動力
- 25醫(yī)藥信息化:實現(xiàn)erp系統(tǒng)多少錢與GMP的完美結(jié)合
- 26應(yīng)急信息指揮平臺建設(shè)需要融合智能
- 27華爾街日報:公司重組時如何保住飯碗?
- 28信息通信能領(lǐng)跑創(chuàng)新經(jīng)濟(jì)嗎
- 29好用的開源ERP產(chǎn)品應(yīng)如何選擇?
- 30ITIL項目運(yùn)作的商業(yè)法則
成都公司:成都市成華區(qū)建設(shè)南路160號1層9號
重慶公司:重慶市江北區(qū)紅旗河溝華創(chuàng)商務(wù)大廈18樓