Web2.0是表述新一代網(wǎng)絡(luò )應用的新鮮術(shù)語(yǔ)。Start.com,Google maps,Writely以及MySpace.com都是使用Web2.0的范例。技術(shù)水平的不斷進(jìn)步,推動(dòng)了web2.0應用的發(fā)展。在網(wǎng)絡(luò )服務(wù)方面,它加強了服務(wù)端的核心技術(shù)組件,而在客戶(hù)端方面,AJAX和豐富網(wǎng)絡(luò )應用(RIA)則改進(jìn)了瀏覽器中的客戶(hù)端用戶(hù)接口。
XML語(yǔ)言對表示層和傳輸層(HTTP/HTTPS)有巨大的影響。SOAP成為基于XML的傳輸機制的特別選擇后,從某種程度上說(shuō),XML在表示層上取代了HTML語(yǔ)言。
Web2.0關(guān)注點(diǎn)——重整行業(yè)
技術(shù)變革帶來(lái)了新的安全關(guān)注點(diǎn)和新的攻擊向量。Yamanner,Samy以及Spaceflash這些典型蠕蟲(chóng)正在攻擊包含保密信息的AJAX架構的客戶(hù)端,它們提供攻擊途徑。
在服務(wù)器端,基于XML的網(wǎng)絡(luò )服務(wù)正在取代一部分的關(guān)鍵功能。它提供可通過(guò)網(wǎng)絡(luò )服務(wù)接口來(lái)訪(fǎng)問(wèn)的分布式應用。用戶(hù)可以從瀏覽器端遠程激活基于GET,POST或者SOAP的方法,這項能力給各種應用帶來(lái)新的缺陷。另一方面,使用XML,XUL, Flash,Applets和JAVAScripts的RIA框架增加了更多可用的攻擊向量。RIA,AJAX以及網(wǎng)絡(luò )服務(wù)給網(wǎng)絡(luò )應用安全增加了新的維度。
下面是10個(gè)攻擊向量的列表以及簡(jiǎn)短介紹:
1.AJAX中的跨站點(diǎn)腳本
前幾個(gè)月,人們發(fā)現了多種跨站點(diǎn)的腳本攻擊。在此類(lèi)攻擊中,受害者的包含信息的瀏覽器上會(huì )運行來(lái)自特定網(wǎng)站的惡意JAVA腳本代碼。Yamanner蠕蟲(chóng)就是一個(gè)最近的范例,它利用Yahoo郵件的AJAX調用中的跨站點(diǎn)腳本機會(huì )來(lái)攻擊受害者。另一個(gè)近期的范例就是Samy蠕蟲(chóng),它利用MySpace.com的跨站點(diǎn)腳本漏洞來(lái)攻擊。AJAX在客戶(hù)端上運行,它允許錯誤書(shū)寫(xiě)的腳本被攻擊者利用。攻擊者能夠編寫(xiě)惡意鏈接來(lái)哄騙那些沒(méi)有準備的用戶(hù),讓他們用瀏覽器去訪(fǎng)問(wèn)特定的網(wǎng)頁(yè)。傳統應用中也存在這樣的弱點(diǎn),但AJAX給它添加了更多可能的漏洞。
2.XML中毒
很多Web2.0應用中,XML傳輸在服務(wù)器和瀏覽器之間往復。網(wǎng)絡(luò )應用接收來(lái)自AJAX客戶(hù)端的XML塊。這XML塊很可能染毒。多次將遞歸負載應用到產(chǎn)出相似的XML節點(diǎn),這樣的技術(shù)還并不普遍。如果機器的處理能力較弱,這將導致服務(wù)器拒絕服務(wù)。很多攻擊者還制作結構錯誤的XML文檔,這些文檔會(huì )擾亂服務(wù)器上所使用的依賴(lài)剖析機制的邏輯。服務(wù)器端的剖析機制有兩種類(lèi)型,它們是SAX和 DOM。網(wǎng)絡(luò )服務(wù)也使用相同的攻擊向量,這是因為網(wǎng)絡(luò )服務(wù)接收SOAP消息,而SOAP就是XML消息。在應用層大范圍地使用XMLs使攻擊者有更多的機會(huì )利用這個(gè)新的攻擊向量。
XML外部實(shí)體參照是能被攻擊者偽造的一個(gè)XML的屬性。這會(huì )使攻擊者能夠利用人意的文件或者TCP連接的缺陷。XML schema中毒是另一個(gè)XML中毒的攻擊向量,它能夠改變執行的流程。這個(gè)漏洞能幫助攻擊者獲得機密信息。
3.惡意AJAX代碼的執行
AJAX調用非常不易察覺(jué),終端用戶(hù)無(wú)法確定瀏覽器是否正在用XMLHTTP請求對象發(fā)出無(wú)記載的調用。瀏覽器發(fā)出AJAX調用給任意網(wǎng)站的時(shí)候,該網(wǎng)站會(huì )對每個(gè)請求回應以cookies。這將導致出現泄漏的潛在可能性。例如,約翰已經(jīng)登陸了他的銀行,并且通過(guò)了服務(wù)器認證。完成認證過(guò)程后,他會(huì )得到一個(gè)會(huì )話(huà) cookie。銀行的頁(yè)面中包含了很多關(guān)鍵信息?,F在,他去瀏覽器他網(wǎng)頁(yè),并同時(shí)仍然保持銀行賬戶(hù)的登陸狀態(tài)。他可能會(huì )剛好訪(fǎng)問(wèn)一個(gè)攻擊者的網(wǎng)頁(yè),在這個(gè)網(wǎng)頁(yè)上攻擊者寫(xiě)了不易被察覺(jué)的AJAX 代碼,這個(gè)代碼不用經(jīng)過(guò)約翰的同意,就能夠發(fā)出后臺調用給約翰的銀行網(wǎng)頁(yè),因而能夠從銀行頁(yè)面取得關(guān)鍵信息并且把這些信息發(fā)送到攻擊者的網(wǎng)站。這將導致機密信息的泄漏甚至引發(fā)安全突破。
4.RSS/Atom 注入
這是一項新的web2.0攻擊。RSS反饋是人們在門(mén)戶(hù)網(wǎng)站或者網(wǎng)絡(luò )應用中共享信息的常用手段。網(wǎng)絡(luò )應用接受這些反饋然后發(fā)送給客戶(hù)端的瀏覽器。人們可以在該RSS反饋中插入文本的JavaScript來(lái)產(chǎn)生對用戶(hù)瀏覽器的攻擊。訪(fǎng)問(wèn)特定網(wǎng)站的終端用戶(hù)加載了帶有該RSS反饋的網(wǎng)頁(yè),這個(gè)腳本就會(huì )運行起來(lái)——它能夠往用戶(hù)的電腦中安裝軟件或者竊取cookies信息。這就是一個(gè)致命的客戶(hù)端攻擊。更糟糕的是,它可以變異。隨著(zhù)RSS和ATOM反饋成為網(wǎng)絡(luò )應用中整合的組件,在服務(wù)器端將數據發(fā)布給終端用戶(hù)之前,過(guò)濾特定字符是非常必要的。
5.WSDL掃描和enumeration
WSDL(網(wǎng)絡(luò )服務(wù)界定語(yǔ)言)是網(wǎng)絡(luò )服務(wù)的一個(gè)接口。該文件提供了技術(shù),開(kāi)放方法,創(chuàng )新形式等等的關(guān)鍵信息。這是非常敏感信息,而且能夠幫助人們決定利用什么弱點(diǎn)來(lái)攻擊。如果將不必要的功能或者方法一直開(kāi)著(zhù),這會(huì )為網(wǎng)絡(luò )服務(wù)造成潛在的災難。保護 WSDL文件或者限定對其的訪(fǎng)問(wèn)是非常重要的。在實(shí)際情況中,很有可能找到一些使用WSDL掃描的一些漏洞。
6.AJAX常規程序中客戶(hù)端的確認
基于web2.0的應用使用AJAX常規程序來(lái)在客戶(hù)端上進(jìn)行很多操作,比如客戶(hù)端數據類(lèi)型的確認,內容檢查,數據域等等。正常情況下,服務(wù)端也應該備份這些客戶(hù)端檢查信息。大部分開(kāi)發(fā)者都沒(méi)有這么做;他們這樣做的理由是,他們假設這樣的確認是由AJAX常規程序來(lái)負責的。避開(kāi)基于A(yíng)JAX的確認和直接發(fā)送POST或者GET請求給那些應用——這些應用是諸如SQL注入,LDAP注入等類(lèi)隨確認進(jìn)入的攻擊主要來(lái)源,它們能夠攻擊網(wǎng)絡(luò )應用的關(guān)鍵資源——都是可以做到的。這都增加了能夠為攻擊者所利用的潛在攻擊向量的數量。
7.網(wǎng)絡(luò )服務(wù)路由問(wèn)題
網(wǎng)絡(luò )服務(wù)安全協(xié)議包括WS-Routing服務(wù)。WS-Routing允許SOAP消息在互聯(lián)網(wǎng)上各種各樣不同的節點(diǎn)中的特別序列中傳輸。通常加密的信息在這些節點(diǎn)來(lái)回傳送。交互的節點(diǎn)中的任意一個(gè)被攻擊都將致使攻擊者能夠訪(fǎng)問(wèn)到在兩個(gè)端點(diǎn)之間傳輸的SOAP消息。這將造成SOAP消息的嚴重的安全泄漏。隨著(zhù)網(wǎng)絡(luò )應用開(kāi)始被網(wǎng)絡(luò )服務(wù)框架所采用,攻擊者們開(kāi)始轉而利用這些新協(xié)議和新的攻擊向量。
8.修改SOAP參數
網(wǎng)絡(luò )服務(wù)接收信息和來(lái)自SOAP消息的變量。修改這些變量是很可能的。例如,“10”是 SOAP消息中多個(gè)節點(diǎn)中的一個(gè)。攻擊者可以修改點(diǎn),并且嘗試不同種的注入攻擊——比如,SQL,LDAP,XPATH,命令行解釋器——并且探索能被他用來(lái)掌握及其內部信息的攻擊向量。網(wǎng)絡(luò )服務(wù)代碼中錯誤的或者不夠完備的輸入確認使網(wǎng)絡(luò )服務(wù)應用易于發(fā)生泄漏.這是一個(gè)目標指向網(wǎng)絡(luò )服務(wù)所帶的網(wǎng)絡(luò )應用的一項新的攻擊向量。
9.SOAP消息中的XPATH注入
XPATH是一種用來(lái)查詢(xún)XML文檔的語(yǔ)言,它跟SQL語(yǔ)句很類(lèi)似:我們提供某些信息(參數)然后從數據庫中得到查詢(xún)結果。很多語(yǔ)言都支持XPATH 解析的功能。網(wǎng)絡(luò )應用接收大型XML文檔,很多時(shí)候這些應用從終端用戶(hù)和XPATH語(yǔ)句中取得輸入量。這些代碼的段落對XPATH注入沒(méi)有什么防御能力。如果XPATH執行成功,攻擊者能夠繞過(guò)認證機制或者造成機密信息的一些損失?,F在人們只知道很少部分的能夠被攻擊者利用的XPATH的漏洞。阻止這個(gè)攻擊向量的唯一方法就是在給XPATH語(yǔ)句傳遞變量值的時(shí)候提供適當的輸入確認。
10. RIA瘦客戶(hù)端二進(jìn)制的偽造
豐富網(wǎng)絡(luò )應用(RIA)使用非常豐富的UI要素比如Flash,ActiveX控件或者 Applets,它使用這些要素作為網(wǎng)絡(luò )應用的基本接口。這個(gè)框架存在幾個(gè)安全問(wèn)題。其中最主要的一個(gè)就是關(guān)于會(huì )話(huà)管理。它是在瀏覽器中運行的,并且共享相同的會(huì )話(huà)。同時(shí),由于客戶(hù)端將下載整個(gè)二進(jìn)制元件到自己的主機,攻擊者就可以顛倒工程的那個(gè)二進(jìn)制文件并且反編譯代碼。把這些二進(jìn)制串打包并繞過(guò)一些包含在代碼中的認證邏輯是有可能實(shí)現的。這是WEB2.0框架下的另一個(gè)有趣的攻擊向量。
結論
AJAX,RIA以及網(wǎng)絡(luò )服務(wù)是WEB2.0應用空間的三項重要的技術(shù)向量。這些技術(shù)很有前景,它們帶給桌面新的程式,加強了網(wǎng)絡(luò )應用的整體效率和效用。隨著(zhù)這些新技術(shù)而來(lái)的是新的安全問(wèn)題,忽略這些問(wèn)題將會(huì )導致整個(gè)世界發(fā)生巨大的災難。本文中,我們只討論了10種攻擊。但是實(shí)際上還有很多其他的攻擊向量。對這些新的攻擊向量的最好的防御方法是增加WEB2.0的安全意識,提高代碼操作的安全性以及配置的安全性。
聯(lián)系客服