監(jiān)理公司管理系統(tǒng) | 工程企業(yè)管理系統(tǒng) | OA系統(tǒng) | ERP系統(tǒng) | 造價(jià)咨詢管理系統(tǒng) | 工程設(shè)計(jì)管理系統(tǒng) | 簽約案例 | 購(gòu)買價(jià)格 | 在線試用 | 手機(jī)APP | 產(chǎn)品資料
X 關(guān)閉
重慶OA行業(yè)資訊

當(dāng)前位置:工程項(xiàng)目OA系統(tǒng) > 泛普各地 > 重慶OA系統(tǒng) > 重慶OA行業(yè)資訊

談?wù)凷OA面向服務(wù)體系架構(gòu)的安全問題

申請(qǐng)免費(fèi)試用、咨詢電話:400-8352-114

來(lái)源:泛普軟件

本文我們討論的是面向服務(wù)體系架構(gòu)(SOA)的安全應(yīng)用。在展開討論之前,首先讓我們來(lái)解析面向服務(wù)體系架構(gòu)的實(shí)際含義。面向服務(wù)體系架構(gòu)是一種涉及若干以服務(wù)為導(dǎo)向的應(yīng)用軟件的體系架構(gòu)。最初面向服務(wù)體系架構(gòu)中的服務(wù)與一系列技術(shù)相關(guān),包括SOAP, WSDL和UDDI。不過許多研發(fā)人員對(duì)REST(表象化狀態(tài)轉(zhuǎn)變,簡(jiǎn)稱REST)服務(wù)顯示出更大的興趣,由此REST成為面向服務(wù)體系架構(gòu)中廣為接受的組成部分。由于REST被廣泛應(yīng)用于Web 2.0軟件,因此Web2.0的興起也鞏固了REST在面向服務(wù)體系架構(gòu)領(lǐng)域中的地位。最近云服務(wù)(諸如亞馬遜在線的簡(jiǎn)單查詢服務(wù)SQS)也開始和本地服務(wù)并駕齊驅(qū),共同創(chuàng)建混合面向服務(wù)體系架構(gòu)環(huán)境。所有這些使得面向服務(wù)體系架構(gòu)成為包含最初的SOAP/REST/VDDI堆棧,REST服務(wù)和云的集合體。從安全應(yīng)用的專業(yè)角度來(lái)看,所有這些都必須得到安全保障。

提及面向服務(wù)體系架構(gòu)安全,首先要問的是為什么。為什么要對(duì)面向服務(wù)體系架構(gòu)實(shí)施安全保障呢?毋庸置疑的答案就是要保護(hù)面向服務(wù)體系架構(gòu)不受攻擊。這是一個(gè)合理的理由,但是應(yīng)用面向服務(wù)體系架構(gòu)安全還有其他不可忽視的動(dòng)因,諸如監(jiān)控面向服務(wù)體系架構(gòu)中服務(wù)的使用。我們首先從審查面向服務(wù)體系架構(gòu)技術(shù)(包括SOAP和REST)的攻擊漏洞開始。然后我們將審核諸如WS-Security等安全標(biāo)準(zhǔn)如何應(yīng)用到面向服務(wù)體系架構(gòu),如何通過協(xié)議實(shí)現(xiàn)控制使用和監(jiān)控,最后我們將檢查企業(yè)在整合本地網(wǎng)站應(yīng)用軟件和云計(jì)算服務(wù)時(shí)可能產(chǎn)生的安全隱患。

面向服務(wù)體系架構(gòu)風(fēng)險(xiǎn)綜述

在面向服務(wù)體系架構(gòu)中影響XML和REST服務(wù)的內(nèi)容風(fēng)險(xiǎn)是什么?在XML里,有幾種大家所熟知的攻擊風(fēng)險(xiǎn),諸如XML Entity-Expansion和SQL注入式攻擊。

SQL注入式攻擊

在面向服務(wù)體系架構(gòu)中,SQL注入式攻擊會(huì)將SQL碎片插入XML數(shù)據(jù),然后將錯(cuò)誤的數(shù)據(jù)返回,或者制造泄露數(shù)據(jù)庫(kù)訪問信息的錯(cuò)誤。

在面向服務(wù)體系架構(gòu)中能實(shí)施成功的SQL注入式攻擊需要兩個(gè)先決條件:

--面向服務(wù)體系架構(gòu)中服務(wù)接受的數(shù)據(jù)被直接插入SQL Statement。

--SQL Statement在執(zhí)行攻擊時(shí)有足夠的優(yōu)先權(quán)

為了避免受到攻擊,必須確保從可疑用戶處接受的數(shù)據(jù)不會(huì)直接插入SQL Statement。對(duì)接受的文件內(nèi)容執(zhí)行內(nèi)容驗(yàn)證和風(fēng)險(xiǎn)偵測(cè)以便進(jìn)行防范。

捕捉-重放攻擊(Capture-replay attack)

想象一下:面向服務(wù)體系架構(gòu)中的服務(wù)受到協(xié)議的保護(hù),服務(wù)請(qǐng)求需要數(shù)字簽名。這看起來(lái)很安全,但結(jié)果真是這樣嗎?答案是這種系統(tǒng)存在重放攻擊的弱點(diǎn),系統(tǒng)只需簡(jiǎn)單的重新播放驗(yàn)證的簽名信息就能實(shí)現(xiàn)未經(jīng)授權(quán)的訪問。

解決這種問題的答案涉及時(shí)間戳的使用。網(wǎng)絡(luò)服務(wù)安全性(WS-Security)標(biāo)準(zhǔn)就包括對(duì)時(shí)間戳的支持。網(wǎng)絡(luò)服務(wù)協(xié)議(WS-Policy)可以用來(lái)掌控信息中出現(xiàn)的簽名時(shí)間戳,因此重新播放的信息時(shí)間戳過期就會(huì)被系統(tǒng)偵測(cè)到。用戶必須認(rèn)真制定時(shí)間戳信任間隔。這個(gè)間隔必須足夠短,只有這樣攻擊者才沒有時(shí)間對(duì)驗(yàn)證信息進(jìn)行捕捉,破解和重放。但是時(shí)間戳信任間隔又必須足夠長(zhǎng),以便在網(wǎng)絡(luò)服務(wù)系統(tǒng)時(shí)鐘和網(wǎng)絡(luò)服務(wù)請(qǐng)求之間細(xì)微的差別不會(huì)導(dǎo)致驗(yàn)證信息被阻隔。

XML外部實(shí)體攻擊(External Entity Attack)

所謂的XML外部實(shí)體攻擊是通過DTD(文件類型定義)入口將外部數(shù)據(jù)嵌入到XML文檔中。通過指定一個(gè)本地文件會(huì)產(chǎn)生某些XML引擎,通過本地文件系統(tǒng)訪問未經(jīng)授權(quán)的信息。請(qǐng)注意SOAP不允許使用DTD。

XPath注入(XPath Injection)

XPath注入式攻擊與SQL注入類似,它被用于從XML數(shù)據(jù)庫(kù)中竊取信息。如果能確保進(jìn)入XPath的數(shù)據(jù)本身不包含XPath,那么XPath注入攻擊就能被阻斷。

XML拒絕服務(wù)(XDOS)

這種攻擊包含了文件類型定義的特性,即攻擊可以進(jìn)入DTD定義的實(shí)體。通過遞歸進(jìn)入實(shí)體,攻擊者可以制造在內(nèi)存中爆炸的XML信息(因此這個(gè)術(shù)語(yǔ)也被稱之為“XML炸彈”),從而導(dǎo)致拒絕服務(wù)。

有害的SOAP附件

像電子郵件信息一樣,SOAP信息也包含附件。如果這些附件很大而且很難打開,那么它可能含有病毒或者其它危險(xiǎn)。解決這個(gè)問題的方案是確保SOAP附件可以基于MIME類型進(jìn)行阻斷和過濾,或者通過病毒掃描進(jìn)行偵測(cè)。

XML簽名差異攻擊(Signature dereference attack)

XML簽名包括指向簽名數(shù)據(jù)的參考要素。解析應(yīng)用軟件必須對(duì)參考URI解除參照。XML簽名標(biāo)準(zhǔn)陳述如下:“XML簽名應(yīng)用軟件必須能夠解析URI語(yǔ)法。我們推薦在HTTP中對(duì)URI進(jìn)行參照解除”。不過如果參考數(shù)據(jù)是偽造的就會(huì)帶來(lái)風(fēng)險(xiǎn)。

REST Web 2.0和面向服務(wù)體系架構(gòu)

盡管面向服務(wù)體系架構(gòu)最初是和SOAP,WSDL和VDDI三者聯(lián)系在一起的,但許多研發(fā)人員寧愿使用REST服務(wù),因?yàn)镽EST更加接近網(wǎng)站上的瀏覽器界面。Web 2.0的蓬勃發(fā)展對(duì)其起到了推波助瀾的作用,因?yàn)樨S富互聯(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ā)生的。舉例來(lái)說,F(xiàn)lickr網(wǎng)站包括在瀏覽器中運(yùn)行的JavaScript腳本,我們稱之為服務(wù)器端的網(wǎng)絡(luò)服務(wù),可以對(duì)照片進(jìn)行更名。為了撤銷XML或者JSON(JavaScript目標(biāo)符號(hào))數(shù)據(jù),客戶端的“AJAX”(非同步JavaScript和XML)可以召回服務(wù)器上的網(wǎng)絡(luò)服務(wù)。這種行為不是同步發(fā)生的,用戶無(wú)需瀏覽新的網(wǎng)頁(yè)。

在Web 2.0的世界中,這成為攻擊關(guān)鍵點(diǎn)的后端網(wǎng)絡(luò)服務(wù)。有時(shí)這種網(wǎng)絡(luò)服務(wù)被定義為Web 2.0的“大型攻擊界面”。攻擊者會(huì)試圖通過它的客戶端界面攻擊應(yīng)用軟件,或者他們會(huì)簡(jiǎn)單的繞過后端網(wǎng)絡(luò)服務(wù)界面長(zhǎng)驅(qū)直入。

問題依然存在

在這點(diǎn)上,很多讀者可能會(huì)認(rèn)為“這和傳統(tǒng)的網(wǎng)絡(luò)應(yīng)用軟件并沒有實(shí)質(zhì)不同,因此為什么要對(duì)它單獨(dú)進(jìn)行安全保障?”,畢竟在Web 2.0 環(huán)境中,用到的是網(wǎng)絡(luò)瀏覽器和網(wǎng)絡(luò)服務(wù)器,涉及的是一個(gè)用戶。確實(shí)當(dāng)數(shù)據(jù)在網(wǎng)絡(luò)瀏覽器和網(wǎng)絡(luò)服務(wù)器之間傳輸時(shí),對(duì)SQL注入或者交叉腳本的攻擊跡象進(jìn)行數(shù)據(jù)掃描就可以了。當(dāng)XML在網(wǎng)絡(luò)上,你就必須對(duì)XML拒絕服務(wù)或者XPath注入等攻擊也進(jìn)行掃描。另外,保證譯碼安全也同樣重要。瀏覽器上的豐富應(yīng)用軟件承擔(dān)著增強(qiáng)安全譯碼的職責(zé)。如果攻擊者將JavaScript腳本插入遞歸下行至瀏覽器的數(shù)據(jù),那么交叉腳本也是可能的。因?yàn)樵S多Web 2.0的腳本交叉都取決于服務(wù)于客戶的JavaScript。帶病毒的JavaScript傳播的可能性就會(huì)變?yōu)楝F(xiàn)實(shí)。因此也必須進(jìn)行偵測(cè)和隔離。

Freemium模式和數(shù)據(jù)被盜的風(fēng)險(xiǎn)

所謂的Freemium網(wǎng)絡(luò)服務(wù)指的是免費(fèi)提供的基礎(chǔ)服務(wù),如果有特殊需求或者增強(qiáng)型服務(wù)再另行收取額外費(fèi)用。Freemium這個(gè)詞本身是兩種商業(yè)模式,免費(fèi)和收費(fèi)合二為一的混合詞。

允許某些在面向服務(wù)體系架構(gòu)中的服務(wù)在Freemium模式下運(yùn)行是很很吸引眼球的,因?yàn)樗峁┝艘环N付費(fèi)商業(yè)模式的途徑。不過這種模式的實(shí)用性更加復(fù)雜。 Freemium模式要預(yù)先設(shè)定面向服務(wù)體系架構(gòu)安全框架,這個(gè)框架能夠偵測(cè)服務(wù)的過度使用,強(qiáng)迫用戶對(duì)使用的服務(wù)進(jìn)行付費(fèi)。使用服務(wù)必須通過驗(yàn)證以便系統(tǒng)能偵測(cè)到某個(gè)特別用戶過度使用了服務(wù),從而要求用戶進(jìn)行付費(fèi)。通常Freemium模式是使用研發(fā)人員代號(hào)來(lái)實(shí)現(xiàn)的。這些代號(hào)是嵌入在網(wǎng)絡(luò)服務(wù)符號(hào)庫(kù)中的,能傳遞給所提供的服務(wù)。舉例來(lái)說,用戶可以使用搜索服務(wù)來(lái)尋找特定的點(diǎn),但是他們無(wú)法在不被察覺的情況下進(jìn)行數(shù)據(jù)搜索,系統(tǒng)會(huì)要求他們進(jìn)行付費(fèi)。

當(dāng)用戶在面向服務(wù)體系架構(gòu)中實(shí)行Freemium服務(wù)模式時(shí),企業(yè)可以選擇編譯自定義代碼來(lái)執(zhí)行,或者使用非定制的產(chǎn)品來(lái)實(shí)現(xiàn),諸如XML網(wǎng)關(guān)。XML網(wǎng)關(guān)的優(yōu)勢(shì)是在無(wú)需改變實(shí)際代碼的前提下就能更改模式中的參數(shù)。XML網(wǎng)關(guān)也能對(duì)我們前文所討論的攻擊進(jìn)行掃描,諸如病毒代碼注入。

身份驗(yàn)證和標(biāo)準(zhǔn)

了解是誰(shuí)在使用面向服務(wù)體系架構(gòu)中的服務(wù)是很重要的,使用這些信息進(jìn)行訪問控制和通過審計(jì)跟蹤維護(hù)信息安全也是如此。對(duì)服務(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ù)雜的方式組合在一起時(shí)。

新與舊:密碼,X.509證書和網(wǎng)絡(luò)服務(wù)安全(WS-Security)

密碼的使用已經(jīng)由來(lái)已久。目前在面向服務(wù)體系架構(gòu)安全中依然應(yīng)用廣泛。在很多情況下只是HTTP驗(yàn)證這種簡(jiǎn)單的問題,可以通過SSL傳遞出去以便密碼不會(huì)被泄露。事實(shí)上即使是使用了數(shù)字簽名驗(yàn)證,密碼的泄露也很難完全避免,因此為了阻隔特定的捕捉-重放攻擊,SSL還應(yīng)該別使用。盡管通過SSL進(jìn)行HTTP驗(yàn)證是一項(xiàng)古老的技術(shù),但它在面向服務(wù)體系架構(gòu)的點(diǎn)對(duì)點(diǎn)身份驗(yàn)證中依然應(yīng)用廣泛。

X.509證書被應(yīng)用于SSL驗(yàn)證中,網(wǎng)絡(luò)服務(wù)可以向客戶證明它的身份,或者在雙向SSL中,客戶還能向服務(wù)證明自己的身份。在這種情況下身份驗(yàn)證是沒有定形的,因?yàn)榫W(wǎng)絡(luò)服務(wù)交叉性經(jīng)常會(huì)涉及應(yīng)用程序與應(yīng)用程序的對(duì)話。由此這里的驗(yàn)證也是對(duì)應(yīng)用程序的驗(yàn)證。這些情況都是使用X.509證書,信任也是基于X.509證書的發(fā)行者(即授權(quán)機(jī)構(gòu),簡(jiǎn)稱CA)。

和SSL一樣,X.509證書經(jīng)常會(huì)用于數(shù)字簽名。XML簽名是定義XML數(shù)據(jù)如何使用與X.509證書吻合的私人密鑰來(lái)進(jìn)行數(shù)字簽名的標(biāo)準(zhǔn),這樣任何持有X.509證書簽名方的用戶都可以對(duì)簽名進(jìn)行驗(yàn)證。

XML 加密也是一項(xiàng)定義XML數(shù)據(jù)如何加密的標(biāo)準(zhǔn)?;蛟S你會(huì)問“在加密XML數(shù)據(jù)和加密其他類型數(shù)據(jù)之間有什么不同?”,答案是XML數(shù)據(jù)可以有選擇性的進(jìn)行加密,比如說有選擇性的對(duì)醫(yī)療記錄中患者姓名進(jìn)行加密。由于面向服務(wù)體系架構(gòu)中的信息多數(shù)都是XML的(REST和用于Web 2.0的JSON除外),XML加密在隱私保護(hù)方面非常有用。

Kerberos也是一項(xiàng)成熟的技術(shù),能繼續(xù)應(yīng)用在面向服務(wù)體系架構(gòu)安全中。特別是Kerberos經(jīng)常會(huì)用于Windows環(huán)境中,因?yàn)樗布訌?qiáng)了Windows網(wǎng)絡(luò)中的身份驗(yàn)證和單一簽名安全。

所有這些已經(jīng)存在的安全技術(shù)都會(huì)繼續(xù)應(yīng)用在面向服務(wù)體系架構(gòu)安全之中。

網(wǎng)絡(luò)服務(wù)安全(WS-Security)

網(wǎng)絡(luò)服務(wù)安全是在2004年才實(shí)施標(biāo)準(zhǔn)化的一項(xiàng)新興技術(shù),它是在先前技術(shù)的基礎(chǔ)上建立起來(lái)的。它是定義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)可是實(shí)現(xiàn)不同應(yīng)用程序之間的協(xié)同工作。

諸如Suns Glassfish和微軟.NET這樣的平臺(tái)都能與網(wǎng)絡(luò)服務(wù)安全標(biāo)準(zhǔn)相結(jié)合。這些技術(shù)能處理簽名XML(使用網(wǎng)絡(luò)服務(wù)安全標(biāo)準(zhǔn)的XML簽名),身份驗(yàn)證(使用密碼,Kerberos或證書)和加密(使用網(wǎng)絡(luò)服務(wù)安全標(biāo)準(zhǔn)的XML加密)。

XML網(wǎng)關(guān)

XML 網(wǎng)關(guān)能通過提供網(wǎng)絡(luò)上的安全處理和硬件加速來(lái)保障面向服務(wù)體系架構(gòu)的安全。XML網(wǎng)關(guān)將安全協(xié)議應(yīng)用到需要保護(hù)的面向服務(wù)體系架構(gòu)服務(wù)。它代表的是位于真實(shí)網(wǎng)絡(luò)服務(wù)前端的虛擬服務(wù)。這些虛擬服務(wù)可以被提速,還可以包括在真實(shí)面向服務(wù)體系架構(gòu)服務(wù)之前發(fā)生的過渡服務(wù)。舉例來(lái)說,XML網(wǎng)關(guān)可以呈現(xiàn)在真實(shí) SOAP網(wǎng)絡(luò)服務(wù)前端的REST界面。用這種方法,XML網(wǎng)關(guān)通常能提供協(xié)議調(diào)解,信息過渡,硬件加速以及安全。

面向服務(wù)體系架構(gòu)安全到云的未來(lái)

根據(jù)內(nèi)部應(yīng)用軟件到網(wǎng)絡(luò)應(yīng)用軟件的概念進(jìn)行定義,面向服務(wù)體系架構(gòu)目前正在尋找與云計(jì)算的連接。由亞馬遜在線,F(xiàn)orce.com和谷歌等提供的服務(wù)都是這種全球性面向服務(wù)體系架構(gòu)。他們能提供多種網(wǎng)絡(luò)服務(wù),通常都可以通過與應(yīng)用軟件結(jié)合的REST和AJAX界面來(lái)實(shí)現(xiàn)訪問。

目前占據(jù)主導(dǎo)地位的方式是混合模式,即在本地面向服務(wù)體系架構(gòu)上的服務(wù)和云上的服務(wù)混合使用。舉例來(lái)說,本地應(yīng)用軟件可能已經(jīng)將銷售數(shù)據(jù)從數(shù)據(jù)庫(kù)中導(dǎo)出,然后將其放在 TIBCO Rendezvous查詢中。Force.com中召回的數(shù)據(jù)在放入Rendezvous查詢之前可能會(huì)被用于豐富數(shù)據(jù)。另一個(gè)例子是本地應(yīng)用軟件使用亞馬遜S3服務(wù)來(lái)進(jìn)行存儲(chǔ)。

在連接到云上的本地面向服務(wù)體系架構(gòu)的混合模式中,很重要的一點(diǎn)是確保沒有私人數(shù)據(jù)被傳輸?shù)皆粕?。也可以通過對(duì)傳輸?shù)皆粕系臄?shù)據(jù)進(jìn)行選擇性加密來(lái)實(shí)現(xiàn)安全保障。另外,網(wǎng)絡(luò)中斷或者云服務(wù)故障不會(huì)經(jīng)常影響到本地應(yīng)用軟件也很重要。用戶可以使用XML網(wǎng)關(guān)作為本地“Cloud Broker”來(lái)控制從本地面向服務(wù)體系架構(gòu)到云上的連接。(安全在線)

發(fā)布:2007-04-27 16:17    編輯:泛普軟件 · xiaona    [打印此頁(yè)]    [關(guān)閉]
相關(guān)文章:

泛普重慶OA行業(yè)資訊其他應(yīng)用

重慶OA軟件 重慶OA新聞動(dòng)態(tài) 重慶OA信息化 重慶OA客戶 重慶OA快博 重慶OA行業(yè)資訊 重慶軟件開發(fā)公司 重慶網(wǎng)站建設(shè)公司 重慶物業(yè)管理軟件 重慶餐飲管理軟件 重慶倉(cāng)庫(kù)管理系統(tǒng) 重慶門禁系統(tǒng) 重慶微信營(yíng)銷 重慶ERP 重慶監(jiān)控公司 重慶金融行業(yè)軟件 重慶B2B、B2C商城系統(tǒng)開發(fā) 重慶建筑施工項(xiàng)目管理系統(tǒng)開發(fā)