SQL Injection是一個有十年歷史的老問題了,但你可不要以為它只是個老掉牙的劇碼不就是網站開發人員不仔細檢查程式碼而讓駭客有可乘之機。現在,隨著攻擊手法的精進,這個老問題帶來了新的威脅。

SQL Injection攻擊的手法已歷經多次轉變。網站要呈現動態的資訊,主要都是由網站應用程式以SQL語法查詢資料庫所對應的資料,最早期的SQL Injection攻擊手法很簡單,駭客在SQL查詢語法中插入會造成資料庫系統無法辨識的字元,讓系統回應錯誤資訊,駭客藉由這些系統傳回的錯誤訊息,就能分析出資料庫系統的架構及設定等狀況,有助於進一步入侵資料庫之用。

後來大家都知道了這個攻擊手法,因此都會關閉系統回覆錯誤訊息的功能,讓駭客無從進一步掌握資訊。當然,現在沒人用這個攻擊方法了,不過,卻仍有不少管理人員以為關閉錯誤訊息回應功能就不會有SQL Injection的疑慮了。

SQL Injection的攻擊手法接著轉為,在SQL查詢語法中插入能夠讓資料庫的邏輯判斷誤以為真的惡意指令,藉此取得資料庫系統的指令權限或是控制權。如果資料庫系統管理者疏於注意,以系統管理者的最高權限安全來安裝資料庫,在這種攻擊手法下,很可能就會被駭客取得與管理者相同的使用權限,那麼駭客就可以對資料庫為所欲為了。

現在,隨著駭客手法的精進,在混搭不同的攻擊方法後,新型態的SQL Injection攻擊手法則又更上一層樓了。今年上半年,臺灣就爆發短時間內超過10萬個網站遭受SQL Injection攻擊的事件,這種「爆量SQL Injection(Mass SQL Injection)」攻擊事件甚至還出現在歐洲地區。

這個短時間造成大量攻擊的現象,讓人對於SQL Injection攻擊有了全新的認知。以往,SQL Injection普遍被認為是蓄意竊取網站資料庫的攻擊手法,就像是狙擊手一樣,以遠距離的狙擊步槍鎖定特定對象,只會精準地攻擊被鎖定的對象,而不會傷及旁人。所以,除非是知名的網站,否則應該不至於會成為駭客鎖定的攻擊對象。在以前,這個關於SQL Injection攻擊特性的認知或許是對的,但現今新型態的Mass SQL Injection攻擊,有點像是拿著散彈槍到處亂打的槍手,然而,他不只是想要擴大攻擊面而已,更要狙擊手一般的精準攻擊效果。

資安專家追蹤發現,Mass SQL Injection是一種複合式、分階進擊的自動攻擊手法。首先,駭客先掌握一批傀儡電腦,利用這些電腦自動找尋有SQL Injection漏洞的網站,乘機在網站資料庫的資料表植入惡意網站的連結。如此,這個受害網站的瀏覽者就會連結到惡意網站。在這個階段,駭客並沒有在惡意網站放置任何惡意程式,所以瀏覽受害網站的電腦並不會被感染,因此大量攻擊的前兆幾乎是看不出來。過了幾天,駭客乘著Flash播放器一個剛公布的漏洞,撰寫了一隻利用這個漏洞入侵的木馬程式,並將這個程式掛載到惡意網站,這個時候,瀏覽受害網站的電腦就會被下載安裝木馬程式,並因而被駭客掌握了電腦。由於駭客分階段布局,讓攻擊的徵兆不容易顯現,然而一旦最後一步攻擊發動了,就會立即造成大量電腦被植入惡意程式。這種自動化的攻擊手法,就是SQL Injection這個老問題的新威脅。

因為是老問題,大家就很容易疏忽,然而,當這個老問題有了新威脅時,就值得特別注意,所以,我們以本期封面故事深入分析SQL Injection的攻擊手法,以及許多大家其實都做得到的防禦手法。駭客手法在改變,防禦的觀念也必須改變。

專欄作者

熱門新聞

Advertisement