新技術,新威脅 十大Web2.0下的攻擊(轉)

ba發表於2007-08-16
新技術,新威脅 十大Web2.0下的攻擊(轉)[@more@]出處:賽迪網

Web2.0是表述新一代網路應用的新鮮術語。Start.com,Google maps,Writely以及MySpace.com都是使用Web2.0的範例。技術水平的不斷進步,推動了web2.0應用的發展。在網路服務方面,它加強了服務端的核心技術元件,而在客戶端方面,AJAX和豐富網路應用(RIA)則改進了瀏覽器中的客戶端使用者介面。

XML語言對錶示層和傳輸層(HTTP/HTTPS)有巨大的影響。SOAP成為基於XML的傳輸機制的特別選擇後,從某種程度上說,XML在表示層上取代了HTML語言。

Web2.0關注點——重整行業

技術變革帶來了新的安全關注點和新的攻擊向量。Yamanner,Samy以及Spaceflash這些典型蠕蟲正在攻擊包含保密資訊的AJAX架構的客戶端,它們提供攻擊途徑。

在伺服器端,基於XML的網路服務正在取代一部分的關鍵功能。它提供可透過網路服務介面來訪問的分散式應用。使用者可以從瀏覽器端遠端啟用基於GET,POST或者SOAP的方法,這項能力給各種應用帶來新的缺陷。另一方面,使用XML,XUL,Flash,Applets和JAVAScripts的RIA框架增加了更多可用的攻擊向量。RIA,AJAX以及網路服務給網路應用安全增加了新的維度。

下面是10個攻擊向量的列表以及簡短介紹:

1.AJAX中的跨站點指令碼

前幾個月,人們發現了多種跨站點的指令碼攻擊。在此類攻擊中,受害者的包含資訊的瀏覽器上會執行來自特定網站的惡意JAVA指令碼程式碼。Yamanner蠕蟲就是一個最近的範例,它利用Yahoo郵件的AJAX呼叫中的跨站點指令碼機會來攻擊受害者。另一個近期的範例就是Samy蠕蟲,它利用MySpace.com的跨站點指令碼漏洞來攻擊。AJAX在客戶端上執行,它允許錯誤書寫的指令碼被攻擊者利用。攻擊者能夠編寫惡意連結來哄騙那些沒有準備的使用者,讓他們用瀏覽器去訪問特定的網頁。傳統應用中也存在這樣的弱點,但AJAX給它新增了更多可能的漏洞。

2.XML中毒

很多Web2.0應用中,XML傳輸在伺服器和瀏覽器之間往復。網路應用接收來自AJAX客戶端的XML塊。這XML塊很可能染毒。多次將遞迴負載應用到產出相似的XML節點,這樣的技術還並不普遍。如果機器的處理能力較弱,這將導致伺服器拒絕服務。很多攻擊者還製作結構錯誤的XML文件,這些文件會擾亂伺服器上所使用的依賴剖析機制的邏輯。伺服器端的剖析機制有兩種型別,它們是SAX和DOM。網路服務也使用相同的攻擊向量,這是因為網路服務接收SOAP訊息,而SOAP就是XML訊息。在應用層大範圍地使用XMLs使攻擊者有更多的機會利用這個新的攻擊向量。

XML外部實體參照是能被攻擊者偽造的一個XML的屬性。這會使攻擊者能夠利用人意的檔案或者TCP連線的缺陷。XML schema中毒是另一個XML中毒的攻擊向量,它能夠改變執行的流程。這個漏洞能幫助攻擊者獲得機密資訊。

3.惡意AJAX程式碼的執行

AJAX呼叫非常不易察覺,終端使用者無法確定瀏覽器是否正在用XMLHTTP請求物件發出無記載的呼叫。瀏覽器發出AJAX呼叫給任意網站的時候,該網站會對每個請求回應以cookies。這將導致出現洩漏的潛在可能性。例如,約翰已經登陸了他的銀行,並且透過了伺服器認證。完成認證過程後,他會得到一個會話 cookie。銀行的頁面中包含了很多關鍵資訊。現在,他去瀏覽器他網頁,並同時仍然保持銀行賬戶的登陸狀態。他可能會剛好訪問一個攻擊者的網頁,在這個網頁上攻擊者寫了不易被察覺的AJAX 程式碼,這個程式碼不用經過約翰的同意,就能夠發出後臺呼叫給約翰的銀行網頁,因而能夠從銀行頁面取得關鍵資訊並且把這些資訊傳送到攻擊者的網站。這將導致機密資訊的洩漏甚至引發安全突破。

4.RSS/Atom 注入

這是一項新的web2.0攻擊。RSS反饋是人們在入口網站或者網路應用中共享資訊的常用手段。網路應用接受這些反饋然後傳送給客戶端的瀏覽器。人們可以在該RSS反饋中插入文字的JavaScript來產生對使用者瀏覽器的攻擊。訪問特定網站的終端使用者載入了帶有該RSS反饋的網頁,這個指令碼就會執行起來——它能夠往使用者的電腦中安裝軟體或者竊取cookies資訊。這就是一個致命的客戶端攻擊。更糟糕的是,它可以變異。隨著RSS和ATOM反饋成為網路應用中整合的元件,在伺服器端將資料釋出給終端使用者之前,過濾特定字元是非常必要的。

5.WSDL掃描和enumeration

WSDL(網路服務界定語言)是網路服務的一個介面。該檔案提供了技術,開放方法,創新形式等等的關鍵資訊。這是非常敏感資訊,而且能夠幫助人們決定利用什麼弱點來攻擊。如果將不必要的功能或者方法一直開著,這會為網路服務造成潛在的災難。保護WSDL檔案或者限定對其的訪問是非常重要的。在實際情況中,很有可能找到一些使用WSDL掃描的一些漏洞。

6.AJAX常規程式中客戶端的確認

基於web2.0的應用使用AJAX常規程式來在客戶端上進行很多操作,比如客戶端資料型別的確認,內容檢查,資料域等等。正常情況下,服務端也應該備份這些客戶端檢查資訊。大部分開發者都沒有這麼做;他們這樣做的理由是,他們假設這樣的確認是由AJAX常規程式來負責的。避開基於AJAX的確認和直接傳送POST或者GET請求給那些應用——這些應用是諸如SQL隱碼攻擊,LDAP注入等類隨確認進入的攻擊主要來源,它們能夠攻擊網路應用的關鍵資源——都是可以做到的。這都增加了能夠為攻擊者所利用的潛在攻擊向量的數量。

7.網路服務路由問題

網路服務安全協議包括WS-Routing服務。WS-Routing允許SOAP訊息在網際網路上各種各樣不同的節點中的特別序列中傳輸。通常加密的資訊在這些節點來回傳送。互動的節點中的任意一個被攻擊都將致使攻擊者能夠訪問到在兩個端點之間傳輸的SOAP訊息。這將造成SOAP訊息的嚴重的安全洩漏。隨著網路應用開始被網路服務框架所採用,攻擊者們開始轉而利用這些新協議和新的攻擊向量。

8.修改SOAP引數

網路服務接收資訊和來自SOAP訊息的變數。修改這些變數是很可能的。例如,“10”是SOAP訊息中多個節點中的一個。攻擊者可以修改點,並且嘗試不同種的注入攻擊——比如,SQL,LDAP,XPATH,命令列直譯器——並且探索能被他用來掌握及其內部資訊的攻擊向量。網路服務程式碼中錯誤的或者不夠完備的輸入確認使網路服務應用易於發生洩漏.這是一個目標指向網路服務所帶的網路應用的一項新的攻擊向量。

9.SOAP訊息中的XPATH注入

XPATH是一種用來查詢XML文件的語言,它跟SQL語句很類似:我們提供某些資訊(引數)然後從資料庫中得到查詢結果。很多語言都支援XPATH 解析的功能。網路應用接收大型XML文件,很多時候這些應用從終端使用者和XPATH語句中取得輸入量。這些程式碼的段落對XPATH注入沒有什麼防禦能力。如果XPATH執行成功,攻擊者能夠繞過認證機制或者造成機密資訊的一些損失。現在人們只知道很少部分的能夠被攻擊者利用的XPATH的漏洞。阻止這個攻擊向量的唯一方法就是在給XPATH語句傳遞變數值的時候提供適當的輸入確認。

10. RIA瘦客戶端二進位制的偽造

豐富網路應用(RIA)使用非常豐富的UI要素比如Flash,ActiveX控制元件或者Applets,它使用這些要素作為網路應用的基本介面。這個框架存在幾個安全問題。其中最主要的一個就是關於會話管理。它是在瀏覽器中執行的,並且共享相同的會話。同時,由於客戶端將下載整個二進位制元件到自己的主機,攻擊者就可以顛倒工程的那個二進位制檔案並且反編譯程式碼。把這些二進位制串打包並繞過一些包含在程式碼中的認證邏輯是有可能實現的。這是WEB2.0框架下的另一個有趣的攻擊向量。

結論

AJAX,RIA以及網路服務是WEB2.0應用空間的三項重要的技術向量。這些技術很有前景,它們帶給桌面新的程式,加強了網路應用的整體效率和效用。隨著這些新技術而來的是新的安全問題,忽略這些問題將會導致整個世界發生巨大的災難。本文中,我們只討論了10種攻擊。但是實際上還有很多其他的攻擊向量。對這些新的攻擊向量的最好的防禦方法是增加WEB2.0的安全意識,提高程式碼操作的安全性以及配置的安全性。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617731/viewspace-961448/,如需轉載,請註明出處,否則將追究法律責任。

相關文章