首先,先來說說,什麼是資料隱碼?
「資料隱碼」』(SQL Injection)攻擊法其原理是利用正常查詢網站資料時,將攻擊資料庫的指令夾藏於網站查詢命令中,攻擊者即可穿透防火牆,繞過身分認證機制,取得資料庫使用權限,進而竊取資料或竄改、破壞資料庫。
舉例來說,有心者可趁填寫資料或是查詢資料的同時,在空白欄位上夾帶SQL查詢指令,如”select”、 “create”、”update”、”delete”、”insert”、”drop”、 “–“, ” ‘ “,以進行非法、未授權的資料查詢與修改動作。假如一個資料庫程式要做驗證密碼的工作,但是因為沒有作好「資料輸入」的查核,使得駭客可以夾帶 SQL 語法到資料內闖關:
假如說MS-SQL登入管理帳號的SQL查詢與法為:
“select * form Admin where id='” &id& “‘ and pwd='” &pwd&”‘”
駭客在id欄位輸入:
‘or 1=1–
那麼組合出來的字串就會變成
“Selece * from Admin where id=” or 1=1 — and pwd=””
最後,”–“後面的字會被當成是註解而不予判斷,而id=” or 1=1結果為ture,所以在語法成立的情況下….就堂而皇之的登入管理介面了..
正由於這種方式並非透過病毒及一般攻擊手段,而是經由標準且既定的程序操作,只是輸入具破壞性的程式碼,對目前任何的防火牆或是防駭客系統而言,是無法防範的。至於資料庫管理系統,依SQL程式來進行查詢等動作,而『隱碼』有可能是錯誤的輸入或SQL程式,因此較難從資料庫管理系統上來防範,唯有加強安全控管與降低程式存取資料庫的權限。
另外,要特別留意的是,駭客利用「資料隱碼」攻擊法入侵資料庫伺服器後,還可順便開個後門,植入木馬程式,日後上網時,即可直接走後門,利用木馬程式竊取、更改資料庫相關資訊。
「資料隱碼」攻擊方式可使用在Apache、IIS、Domino、Netscape等Web Server,透過ASP、PHP與JSP等程式碼,攻擊各種SQL資料庫,包括MS-SQL、MySQL、Oracle、Sybase與DB2等資料庫。
由以上簡單介紹,大家大概可以瞭解資料隱碼的原理是如何了,但其實資料隱碼並不是什麼新技術,而是因為前陣子有網路駭客使用這種技術來入侵並竊取或破壞電子商務網站甚至是網路銀行的事件,才真正引起國人對於網路上資料保密性的問題產生重視,也才發現這問題的嚴重性。
目前據我所知現在最好的防堵方式是從程式設計及網站管理來著手防範,比如說僅使用post,而不使用get、多用Procedure,少用SQL Statement 於WEB AP 中、只要使用萬用字元者一律擋掉、Web Server中有關程式的錯誤最好不要秀出來等等。
有興趣的人,可以到下面幾個連結看看一些資料
http://www.microsoft.com/taiwan/sql/SQL_Injection.htm
http://www.microsoft.com/taiwan/sql/SQL_Injection_G1.htm
http://www.asptoday.com/content/articles/20020225.asp
http://www.owasp.org/asac/input_validation/sql.shtml
資料來源:
藍色小鋪、Hackland電子報、微軟、中時蕃薯藤電子報
P.S.芸兒覺得悲哀的是…芸兒自栩為網路資訊人,但像在網路上使用SSL機制、查詢帳款、使用金鑰轉帳、網路報稅等等,芸兒卻從來不去使用,因為芸兒覺得網路的安全性實在是值得商確,重點不是在芸兒怕被駭客盜領存款(因為芸兒也沒什麼錢:p),而是怕被盜刷信用卡或是被取得完整的個人資料拿去被當做人頭戶…(有時駭客並不是專程想要你的資料,而是他拿了一大堆,剛好不小心拿到你的..)那才真的是損失慘重呢!所以說,網路雖然方便,但人還是不要太過於依賴才好。
本文是芸兒以前在PCHome的個人電子報所出刊的內容,目前整理至此~版權所有,如需轉載,請告知~謝謝~
關於本文的原始電子報,可到 http://mychannel.pchome.com.tw/channels/b/l/blueblueblu/content.htm?page=3&ord=v&vol=100 一窺