Web 2.0 Hacking
Web 2.0 興起,所衍生的入侵行為與惡意程式程式碼


惡意程式碼從病毒、蠕蟲、間諜程式至網頁掛馬,再加上架設偽冒網站企圖詐騙帳號、密碼與網路銀行資訊的網路釣魚,也許我們都以為,可以用既有的防毒、IPS、網頁過濾方式去控制。然而,Web 2.0融合Web Services、RIA、SOAP、JavaScript、XML等技術,強調高度互動與多人協同創作等概念,又大規模地帶動新的網頁形態產生。架構複雜,而且技術之間互相援引,關連性很強。

在當前的網頁環境中,威脅的面貌、破壞性與目的也不像過去硬走偏鋒,卻也越來越難以辨識,例如有些蠕蟲擅自更改使用者在網站的個人資料,目的只是為了在MySpace上面結交更多網友,而有的則設法潛入、複製到許多Yahoo使用者的網頁電子郵件通訊錄中。個人端在執行各網站上的JavaScript也變得很危險,例如在個人端電腦的瀏覽器偷偷執行惡意VBScript、JavaScript。

此外,資料來源的可信度無法持續驗證、RSS Feeds也可能遭到竄改,因為使用者帳號逐漸走向單一登入的關係,帳號有效性與登入狀態的操弄也成為許多入侵者的目標,一些桌面小工具或元件,使用上也有不夠安全的問題。

有人說,Web 2.0只是把攻擊行為換了新的載具而已,不過也有人提醒,攻擊對象和漏洞發生的地方已不再是應用伺服器,個人端也難以倖免;而且XSS攻擊依然猖獗,CSRF攻擊更是防不勝防,使得安全控管與驗證可能會被略過、無法發揮作用。文⊙李宗翰

Cross-Site Scripting,XSS
跨站指令碼攻擊、跨網站腳本攻擊

是指Web應用程式沒有好好管制使用者,防止惡意程式碼「注入」網頁。例如未妥善過濾特殊字元,或未適當轉換瀏覽者輸入的字元,加上由瀏覽器本身所致。

一旦攻擊者有辦法利用該網站的跨站指令碼漏洞,就可以繞過原有的存取控制。這種漏洞的主因是能直接將使用者本身發出的執行請求,回送至原來的瀏覽器執行,使得攻擊者可趁機擷取使用者的Cookie或Session資料。

Malicious File Execution
惡意檔案執行

Web應用程式將外部的惡意檔案引入,同時趁機執行檔案的內容。簡單地說,有人先將惡意程式碼或惡意網頁的連結植入網頁,讓瀏覽該頁面的使用者遭受攻擊,這臺電腦可能因此成為傀儡,幫入侵者收集帳號、密碼。

因為有些網頁程式在執行時,允許從遠端夾帶其他檔案,使得攻擊者可以藉機夾藏惡意的程式碼與資料,造成破壞。整臺伺服器很可能因此受損。

Backdooring Media Files
成為後門程式的多媒體檔

利用特定多媒體檔案的指令碼執行能力,引發安全性漏洞,例如Flash、QuickTime、PDF檔。不過最近後門程式針對的目標更多了,例如已經有人針對MP3這個格式實作出概念驗證性的程式碼。

例如,QuickTime player 3.×版到7.×版一直都存在的不安全功能──Text Tracks中的HREF Tracks,它可用來開啟FTP、HTTP、HTTPS的網址,並且支援JavaScript協定。

Cross-Site Request Forgery,CSRF
跨站冒名請求

與XSS漏洞類似,容易搞混。XSS是指攻擊者在未經授權的情況下擅自注入到網站上,而前者只從使用者信任的網站上,利用他們對於網站的授權,單純發送不合法的程式碼,讓入侵者得以執行不被許可的指令和動作,例如提升權限或將某些規則寫入系統的個人設定,而不需要依賴任何個人端的指令執行環境。由於惡意程式碼夾帶在電子郵件或網站內,不論是直接進行或利用XSS漏洞,在執行時,使用者根本無從判斷。

Drive-by Downloads
自動從網路下載檔案

是指使用者不知情的狀況下,在系統背景自動下載、安裝與執行特定的檔案。通常是指間諜程式、病毒或惡意程式採用的某種傳播方式。可能發生的時機在平常瀏覽網站、檢視電子郵件或點選彈跳視窗,但也可能因為有人從遠端網路滲透進來,企圖利用對方電腦的瀏覽器、郵件收發信軟體或作業系統的漏洞或弱點,在使用者沒發覺時,就命令它們從網路下載了惡意程式,例如Windows Metafile的漏洞就足以引發這類行為。

JavaScript malware
JavaScript惡意軟體

JavaScript如果被惡意程式碼濫用,將是一種很可怕的現象,它將是一種可以在防火牆內攻擊內部網路個人端的方式,而且不論是那種作業系統或瀏覽器,幾乎都有執行JavaScript的能力,因此這種攻擊方式將不會受限在特定平臺。JavaScript可以製造連結,而且能存取串接樣式表的API。有些惡意JavaScript也可以用特定的函式讓個人端下載其他惡意程式碼到瀏覽器上,例如ADODB.Stream或setSlice()。

SQL Injection/Command Injection
SQL注入/指令注入

由於網站應用程式需連結資料庫,進而獲取資料,透過這種手法,入侵者可以取得部署惡意程式的權限。

當使用者輸入特定的跳脫字元,使得在應用程式查詢資料庫時,將這些字串在過濾的情況下,嵌在SQL敘述;或者是使用者輸入了沒有指定資料型別的字串,導致系統產生管理者未預料到的執行結果。這問題很常發生,不論何時、程式語言類型或嵌入式的指令碼執行環境,都有可能。

RSS/Atom Feeds Injection
RSS/Atom Feeds注入

RSS和Atom已成為許多使用者獲取網站動態的管道,但這種方式有可能因為連線方式而產生安全性的問題。例如1995年Yahoo就被發現Feeds蒐集程式(RSS Aggregator)介面中有弱點;另一個是AOL ICQ Toolbar,該應用程式預設的網頁,在載入內容前並未驗證頁面本身,也無法順利驗證feed的標題和敘述欄位。一旦使用者在這樣的環境下瀏覽惡意網站時,這些電腦可以執行各種HTML語法、指令碼,不受管制。

XML Port Scanning
XML網路埠掃描

是一種即使在防火牆內也能使用的入侵技術,也就是說,攻擊者利用XML解析器(parser)去執行網路埠掃描,它需要特定的實作方式才能自遠端利用該漏洞。

它主要是利用XML的DTD(Document Type Definition)元件,從解析器中去啟動傳統的網路埠掃描;這個XML檔如果允許內部的元素能夠動態定義,就可以建立出外部實體的參考,以便對應出各系統的網路埠。

專欄作者

熱門新聞

Advertisement