新威脅 十大Web2.0下的攻擊方式

引用來源:http://www.wretch.cc/blog/sosa168&article_id=11765615

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的安全意識,提高代碼操作的安全性以及配置的安全性。

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s