監(jiān)理公司管理系統(tǒng) | 工程企業(yè)管理系統(tǒng) | OA系統(tǒng) | ERP系統(tǒng) | 造價(jià)咨詢(xún)管理系統(tǒng) | 工程設(shè)計(jì)管理系統(tǒng) | 甲方項(xiàng)目管理系統(tǒng) | 簽約案例 | 客戶(hù)案例 | 在線(xiàn)試用
X 關(guān)閉

Web服務(wù)防黑談(二)

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

AMTeam.org

Web服務(wù)防黑談(二)

在Web服務(wù)防黑談系列的第1篇文章里,我們討論了Web服務(wù)開(kāi)發(fā)者所必須正視和優(yōu)先防范的黑客類(lèi)別,同時(shí),我們還研究了SSL的原理以及為什么說(shuō)SSL可能無(wú)法提供自身足夠安全性的原因?,F(xiàn)在,我們就向讀者提出若干種防范Web服務(wù)免遭信息和功能竊賊危害的技術(shù)。

Web服務(wù)路由器和IP阻塞

先說(shuō)說(shuō)Web服務(wù)路由器和IP阻塞技術(shù)。當(dāng)然,這些技術(shù)在本系列文章的第一篇中就討論過(guò)了。對(duì)Web服務(wù)開(kāi)發(fā)者來(lái)說(shuō),他們最擔(dān)心的無(wú)非是敏感功能在暴露給外部世界的時(shí)候所面臨的巨大危險(xiǎn)??墒枪δ艿谋┞恫徽? Web服務(wù)的目的嗎?Web服務(wù)不就是為了能在公司或個(gè)人之間公開(kāi)地分享和消費(fèi)有用的功能嗎?然而,這種開(kāi)放性的共享卻比傳統(tǒng)型的標(biāo)準(zhǔn)網(wǎng)站制造出了更大的危險(xiǎn),顯然,大多數(shù)網(wǎng)站都在用戶(hù)界面之后隱蔽了它們的功能。

黑客要想獲得訪(fǎng)問(wèn)Web服務(wù)器上保存數(shù)據(jù)的非法權(quán)限可以采取多種方法。黑客們可以設(shè)法模仿合法的用戶(hù)或 IP 地址;或者也可以通過(guò)服務(wù)器開(kāi)放的端口或五花八門(mén)的攻擊方式獲得訪(fǎng)問(wèn)權(quán)限。這就是為什么大多數(shù)公司在防火墻后面隱蔽雇員計(jì)算機(jī)的原因:為了讓黑客訪(fǎng)問(wèn)計(jì)算機(jī)或者偷竊數(shù)據(jù)更為困難。

拒絕黑客的訪(fǎng)問(wèn)正是采用Web路由器和IP阻塞技術(shù)的目標(biāo)。在這種情形下,在訪(fǎng)問(wèn)Web服務(wù)的時(shí)候要用到兩種服務(wù)器。第一種服務(wù)器作為路由器位于防火墻之外。第二種服務(wù)器則位于防火墻之內(nèi)并包含了實(shí)際的Web服務(wù)代碼。當(dāng)授權(quán)客戶(hù)調(diào)用Web服務(wù)時(shí),他們實(shí)際調(diào)用了防火墻之外的服務(wù)器上的路由器Web服務(wù),同時(shí)傳遞參數(shù)表明它們想調(diào)用的真正Web服務(wù)。路由器對(duì)參數(shù)進(jìn)行檢驗(yàn)決定向哪兒發(fā)送請(qǐng)求。接著,路由器調(diào)用Web服務(wù)并等候回應(yīng)。在收到回應(yīng)后,路由器就可以把回應(yīng)傳回給客戶(hù)(參看圖A)。

圖A

采用帶IP阻塞的Web服務(wù)路由器

這種靈活性實(shí)現(xiàn)了通過(guò)單一路由器訪(fǎng)問(wèn)任何Web服務(wù)的可能。單一路由器Web服務(wù)能把請(qǐng)求路由給內(nèi)部服務(wù)器上的任何方法。而且,因?yàn)閃eb服務(wù)可以在多種操作系統(tǒng)之間互操作,這種內(nèi)部服務(wù)就可以在任何平臺(tái)上用任何語(yǔ)言編寫(xiě)而不考慮路由器Web服務(wù)的語(yǔ)言或平臺(tái)。

為了安全起見(jiàn),防火墻內(nèi)部的服務(wù)器只能接受來(lái)自具有已知IP地址的服務(wù)器的請(qǐng)求,而這些服務(wù)器還必須包含路由器Web服務(wù)。這樣就可以把實(shí)際的服務(wù)代碼放在防火墻之內(nèi),保護(hù)代碼免于受到常見(jiàn)的非法攻擊。而且,訪(fǎng)問(wèn)防火墻內(nèi)的開(kāi)放端口或執(zhí)行遠(yuǎn)程命令可就困難多了。

雖然以上的技術(shù)措施提升了Web服務(wù)功能的整體安全性,但卻并沒(méi)有為防范IP地址欺詐或者其他非法認(rèn)證方法提供額外的保護(hù)。如果黑客設(shè)法欺騙路由器Web服務(wù),那么他們?nèi)匀荒塬@取實(shí)際Web服務(wù)的訪(fǎng)問(wèn)權(quán)限。

參數(shù)迷惑

由于采用Web服務(wù)路由器和IP阻塞技術(shù)尚不能防止真實(shí)服務(wù)被未授權(quán)路由器Web服務(wù)的非法使用,從而令非法攻擊者可以重定向到真實(shí)的Web服務(wù),因此,你需要采用其他技術(shù)方案來(lái)保護(hù)路由器Web服務(wù)。Web服務(wù)的問(wèn)題之一是非授權(quán)用戶(hù)可以很輕松地找出訪(fǎng)問(wèn)函數(shù)所需要的特定方法和參數(shù)名、類(lèi)型。這類(lèi)信息可以方便地通過(guò)WSDL文件獲取。某些產(chǎn)品,比如Visual Studio .NET可以自動(dòng)地創(chuàng)建示例網(wǎng)頁(yè)允許有興趣的用戶(hù)在標(biāo)準(zhǔn)的HTML表單中鍵入?yún)?shù)。

所有這一切使得有意的黑客可以采取隨機(jī)參數(shù)值的方法輕松訪(fǎng)問(wèn)你的Web服務(wù)并嘗試調(diào)用它。例如,如果黑客看見(jiàn)某個(gè)方法被稱(chēng)為RefundCreditCardCharge并接受兩個(gè)參數(shù),CardNumber和Amount,那么他可以很輕松地創(chuàng)建自己的函數(shù)調(diào)用,同時(shí)把他自己的信用卡號(hào)和需要的美元數(shù)量傳遞給你的Web服務(wù)。

當(dāng)然,這類(lèi)Web服務(wù)自然會(huì)采取其他安全措施,比如我們?cè)谝郧拔恼轮兴懻摰腤eb服務(wù)安全技術(shù)等。然而,如果黑客能克服這些安全措施,那么再也沒(méi)有什么辦法能阻止他們給自己的的信用卡非法加入大量的金錢(qián)。

對(duì)策還是有的,這就是所謂的參數(shù)迷惑技術(shù)(parameter obfuscation),通過(guò)這種措施隱藏Web服務(wù)調(diào)用的細(xì)節(jié)來(lái)防止黑客的窺探(參見(jiàn)圖B)。在圖B的例子中,我們把兩個(gè)必需的參數(shù)組合為難以復(fù)制的單一參數(shù),從而模糊了服務(wù)的調(diào)用細(xì)節(jié)。這個(gè)單一參數(shù)可以是一個(gè)簡(jiǎn)單的XML字符串或復(fù)雜的、由用戶(hù)定義的必要參數(shù)的組合。

圖B

參數(shù)迷惑技術(shù)使得黑客難以發(fā)起Web服務(wù)調(diào)用

使用參數(shù)迷惑技術(shù)的好處是黑客眼里看到的Web服務(wù)調(diào)用方法RefundCreditCardCharge只有唯一的參數(shù)Data。黑客無(wú)法知道Data參數(shù)的結(jié)構(gòu)組成方式,因此對(duì)他而言就很難發(fā)起有效的Web服務(wù)調(diào)用了。接著,Web服務(wù)首先采取的行動(dòng)就是驗(yàn)證數(shù)據(jù)參數(shù)的結(jié)構(gòu),如果結(jié)構(gòu)不對(duì)就返回錯(cuò)誤信息。

當(dāng)參數(shù)迷惑技術(shù)再應(yīng)用到Web服務(wù)路由器時(shí)更帶來(lái)了額外的益處。這樣設(shè)置就可以讓路由器只接受兩個(gè)參數(shù),一個(gè)參數(shù)標(biāo)識(shí)目標(biāo)方法,而另一個(gè)參數(shù)則包含目標(biāo)Web服務(wù)所需要的數(shù)據(jù)。這樣從路由器調(diào)用多少方法都無(wú)所謂了,而且也不再為各種方法所需要的參數(shù)數(shù)量和類(lèi)型費(fèi)腦筋。

參數(shù)和結(jié)果加密

先前我們已經(jīng)討論了采用迷惑參數(shù)的辦法防止黑客采用隨機(jī)參數(shù)值執(zhí)行Web服務(wù)功能。這個(gè)解決方案在黑客直接窺測(cè)服務(wù)的情形下很管用。然而,這一方法并沒(méi)有在黑客攔截服務(wù)調(diào)用的情況下提供額外的安全性。

如果黑客們能攔截Web服務(wù)調(diào)用,他們自然也就能獲取所有參數(shù)的名字和細(xì)節(jié)。就算多個(gè)參數(shù)經(jīng)過(guò)迷惑性的組合之后成為單一的XML參數(shù),黑客也能很容易地搞清楚單一參數(shù)的結(jié)構(gòu)并且通過(guò)模仿它的方式非法調(diào)用Web服務(wù)。

因此,我們這里要用到另一種邏輯技術(shù),這就是在把參數(shù)發(fā)送給服務(wù)器之前對(duì)客戶(hù)程序上的參數(shù)加密。這種技術(shù)實(shí)現(xiàn)起來(lái)不難,而且在Web服務(wù)開(kāi)發(fā)者控制或影響客戶(hù)程序的狀況下也能起到很好的作用。本系列的第一篇文章中曾經(jīng)舉過(guò)股票經(jīng)紀(jì)人的例子,經(jīng)紀(jì)人業(yè)務(wù)站點(diǎn)調(diào)用股票購(gòu)買(mǎi)Web服務(wù)。我們能夠很容易地采用相應(yīng)的加密解決方案以便經(jīng)紀(jì)人業(yè)務(wù)可以采用專(zhuān)門(mén)設(shè)計(jì)的定制代碼,而這些代碼則是對(duì)那些發(fā)送給Web服務(wù)的參數(shù)的加密。然后, Web服務(wù)將在完成請(qǐng)求之前對(duì)參數(shù)解密。

在這種情形下,Web服務(wù)開(kāi)發(fā)者就可以控制客戶(hù)程序調(diào)用Web服務(wù)的方式,因此開(kāi)發(fā)者實(shí)際上成為唯一知道密鑰的人。由于同一實(shí)體擁有加密通信的雙方所以也沒(méi)有必要采用公鑰體系結(jié)構(gòu)了。這種加密策略是很難攻破的。

如果Web服務(wù)包含了敏感信息,那么對(duì)Web服務(wù)的響應(yīng)進(jìn)行加密就更是必要的了。例如,我們的金融股票購(gòu)買(mǎi)服務(wù)會(huì)返回一個(gè)包含客戶(hù)敏感信息(比如社會(huì)保障號(hào)碼)對(duì)象。我們需要加密這一結(jié)果來(lái)防范響應(yīng)信息被攔截。

多種技術(shù)保安全

經(jīng)過(guò)以上的綜述我已經(jīng)討論了阻止Web服務(wù)受到黑客攻擊以及其他非法使用的若干技術(shù)。采用任何敏感數(shù)據(jù)或功能的Web服務(wù)都至少應(yīng)該包括SSL這樣的最低安全形式。而其他技術(shù)對(duì)典型的Web服務(wù)來(lái)說(shuō)則更具一定的安全性,它們對(duì)那些諸如銀行和股票購(gòu)買(mǎi)應(yīng)用程序等極其敏感的Web服務(wù)來(lái)說(shuō)具有非常重要的作用。為了實(shí)現(xiàn)高水平的安全性,以上所有這些技術(shù)可以通過(guò)聯(lián)合運(yùn)用的方式來(lái)增加安全層的難度。發(fā)送加密的迷惑性參數(shù)給采用SSL加密的路由器Web服務(wù)會(huì)讓那些蠢蠢欲動(dòng)的黑客們凍得發(fā)抖。

瀏覽:Web服務(wù)防黑談(一)

發(fā)布:2007-03-25 10:34    編輯:泛普軟件 · xiaona    [打印此頁(yè)]    [關(guān)閉]
相關(guān)文章:
上海OA系統(tǒng)
聯(lián)系方式

成都公司:成都市成華區(qū)建設(shè)南路160號(hào)1層9號(hào)

重慶公司:重慶市江北區(qū)紅旗河溝華創(chuàng)商務(wù)大廈18樓

咨詢(xún):400-8352-114

加微信,免費(fèi)獲取試用系統(tǒng)

QQ在線(xiàn)咨詢(xún)