現在只要花400元,不論是否懂駭客攻防原理、原則,幾乎人人可變成SQL Injection駭客,而面對這些不斷翻新手法的SQL Injection攻擊,企業必須掌握駭客經濟學的特性,才能找到有效的縱深防禦策略。
從駭客經濟學看SQL Injection攻防
SQL Injection是一個有10年歷史的老問題了,而駭客的攻擊手法隨著時間的演進也不斷的推陳出新,企業必須要站在駭客的角度思考,從駭客經濟學的角度來思考戰略,才能持續打贏這場沒有終點的網路攻防戰。
4大SQL Injection防護絕招
絕招1 借力使力,從攻擊手法學防守
資安專家一致認為SQL Injection攻擊手法其實是老問題,但企業網站遭受SQL Injection攻擊的事件卻層出不窮,若要有效建立防護機制,企業必須借力使力,善用各種可用資源,甚至懂得利用駭客的攻擊資訊,來建構網站的防禦系統,讓防護人力發揮最大的效果。
絕招2 中途攔截,及時打斷攻擊路線
從SQL Injection攻擊地圖來看,不論是MS SQL/ASP或是MySQL/PHP,從前端網頁入侵到後端資料庫的過程,是一連串的攻擊組合,必須一氣呵成,才能達到入侵的效果。因此只要監控SQL Injection攻擊路線,及時打斷駭客入侵的連續程序,就能達到防禦效果。
絕招3 縱深防禦,用隔離與監控來鞏固
資料庫是SQL Injection攻擊的主要目標,理論上,採取徹底的隔離策略,就能有效降低潛在的入侵風險。若能清查資料庫帳號權限,只允許有經驗的資料庫人員接觸,就能有效預防潛在風險。
絕招4 先擋再修,以應用防火牆搶時間
企業網站發生SQL Injection問題後,不論是添加檢查使用者輸入資料的程式碼,或者是調整資料庫權限架構等,都需耗費數周時間才能達到一定的防護效果。而應用程式防火牆雖然要價百萬,卻可快速建立網站基本防護,爭取修補程式的緩衝時間,也是一個不錯的防護方法。
撰文⊙王宏仁、黃彥棻 攝影⊙楊易達、賴基能從駭客經濟學看SQL Injection攻防
你相信嗎?只要花100元人民幣就可以買到SQL Injection自動化攻擊工具,而且這片光碟還附有教學影片,教導如何攻擊與竄改資料庫。
SQL Injection是一個有10年歷史的老問題了,這個攻擊手法是利用網路程式存取資料庫的漏洞,將惡意指令嵌入資料庫SQL查詢語言,藉此欺騙資料庫的邏輯判斷,進而取得能夠執行資料庫指令的權限。
追查網路犯罪十多年的內政部警政署資訊室主任李相臣說:「有8成以上的企業資料庫資料外洩案件,都是被駭客以SQL Injection攻擊手法得逞的。」然而,現在只要花400元,不論是否懂駭客攻防原理、原則,幾乎人人可搖身一變為SQL Injection駭客,這個問題就不再只是個老問題,而是嚴重的新問題了。
SQL Injection十年野火燒不盡
從2005年開始,就有人在中國販售SQL Injection自動化攻擊工具,數聯資安研發處副總經理張裕敏指出,黑帽駭客只要花點錢,就可以買到整套的SQL Injection攻擊工具。而且,這些販售攻擊工具的中國黑客網站,甚至還提供攻擊手法教學影片,以及後續的升級與客製化等售後服務,儼然是企業化經營。
張裕敏說:「網路上找得到的P牌自動攻擊工具,已經針對Oracle、DB2、Informix、MySQL、SQL Server等企業常用的資料庫設計,只要按個滑鼠鍵,就可以啟動自動化的SQL Injection攻擊。」有了這種自動攻擊工具,即使攻擊者不懂得SQL Injection攻擊的原理、原則,也能像是操作玩具一般發動攻擊。張裕敏指出,在這種情況下,企業網站的監控、維護或設定,只要稍不注意,黑帽駭客就有機會趁虛而入。
在自動化攻擊工具出現後,SQL Injection的攻擊手法也就跟以往不同。今年上半年,臺灣與歐洲等地陸續發生大規模的SQL Injection攻擊事件(Mass SQL Injection),這一波攻擊的相同特點是攻擊數量龐大,據資安廠商估計,在這波攻擊中,臺灣起碼有超過10萬個網站被攻擊過。
阿碼科技資安顧問丁性佃追查這次攻擊手法發現,黑帽駭客事先掌控了大量的傀儡電腦,利用這些電腦執行自動化程式,以Google搜尋引擎找出有SQL Injection漏洞的網站,一旦找到了有漏洞的網站,就會將惡意網站的連結直接寫入網站資料庫中,讓這些網站的網頁都有惡意連結,一旦使用者連上受害的網站,就會連到惡意連結。
駭客一開始是藉由SQL Injection攻擊手法來大量散播惡意網站的連結。第二步就是等到Adobe Flash公布新的漏洞,駭客馬上寫出一個可利用這個漏洞來掌控電腦的木馬程式,並將木馬程式放到先前散播的惡意網站連結,藉此對大量的電腦發動零時差攻擊。這樣的複合式自動化攻擊手法,可以讓駭客在更短的時間內攻陷更多的電腦。
駭客的投資報酬率
這是截至目前為止最新的SQL Injection攻擊手法,而且,這個老掉牙的問題還會再衍生出更多新的攻擊手法,資安專家都認為,這將會是一場沒有終點的網路攻防戰,要持續打贏這場戰役,就一定要從「駭客經濟學」的角度來思考戰略。
阿碼科技艾克索夫資安實驗室首席資安顧問邱銘彰說:「這是一場成本戰爭。」現在的駭客不像以前一樣專挑難攻的網站下手,只為了證實自己的能力。現在的駭客像是在經營生意,要創造出規模經濟,唯有掌控更大量的電腦,才能隨心所欲地發動大規模的分散式攻擊,或是竊取更大量的個人資料。因此駭客所思考的策略是如何以最少的金錢、最少的心力,在最短的時間內攻陷最多的電腦。所以,多數的駭客都會尋求投資報酬率最好的攻擊手法,一旦投資報酬率不佳,就會選擇放棄。
依駭客經濟學的態勢來看,企業必須要從風險管控的角度來規畫防禦策略。如果企業可以增加駭客入侵的難度,駭客衡量投資報酬率之後可能就會尋找其他目標了。網駭科技總經理徐千洋表示,企業在思考與駭客攻防的戰略時,不能追求完美的防禦,要從追求絕對安全轉為相對安全,思考如何在公司可承擔的成本下,增加駭客入侵網站的困難度。他指出,從Web程式開發、改變網路資料庫架構,這些做法都可以增加駭客入侵的困難度。
電子商務網站PayEasy(康迅數位)去年在面對中國駭客與詐騙集團攻擊時,就採取相同的思維,PayEasy總經理林坤正表示,PayEasy主動告知網站被詐騙集團鎖定,讓會員提高警覺,目的就是要讓詐騙集團的難度增加。他說:「駭客和詐騙集團都是企業化經營,也要講求投資報酬率,如果可以花更短的時間,輕易入侵A網站取得資料,就不需要花更長的時間,去入侵B網站了。」
駭客思維已經轉變,企業不能不變。面對不斷翻新手法的SQL Injection攻擊,企業其實很難找到一勞永逸的防禦工具,必須先認清現今駭客的生態,掌握駭客經濟學的特性,從相對安全的角度思考,才能找到有效的縱深防禦策略。文⊙黃彥棻
點小圖看大圖絕招1 借力使力,從攻擊手法學防守
資安專家一致認為SQL Injection攻擊手法其實是老問題,但企業網站遭受SQL Injection攻擊的事件卻層出不窮。導致這類攻擊無法遏止的關鍵,其實,並非企業缺乏一套防禦SQL Injection攻擊的解決手法,而是,企業權衡防護成本與潛在風險後,往往選擇了長期改善的方式,來攤平高額的開發成本和人力資源。
然而,駭客不斷發展出新的自動化攻擊工具,加快SQL Injection攻擊的進化速度。慢步調的防護,遇上快速進化的攻擊,相較之下,企業網站被入侵的災情,依舊持續蔓延。
因此,若要有效建立防護機制,企業必須借力使力,善用各種可用資源,甚至懂得利用駭客的攻擊資訊,來建構網站的防禦系統,讓防護人力發揮最大的效果。
實際上,目前SQL Injection攻擊手法的相關資訊相當透明,也很容易取得。只要透過搜尋引擎,檢索SQL Injection,就能找到大量SQL Injection攻擊手法的參考資訊。
甚至還有SQL Injection指令的速查表(cheat sheet),上面提供了數千種SQL Injection的攻擊方式,詳盡地涵蓋了各種資料庫的潛在問題,以及各種入侵的指令,還提供了完整的攻擊範例,讓不懂技術原理的駭客,也能直接複製指令,來進行攻擊。
利用攻擊資訊鎖定修補程式的重點
但是,這些攻擊資訊並非只是駭客用來分享資訊而已,對企業來說,這也是最佳的防禦指引。企業可以從這些SQL Injection攻擊資訊中,找出自己所用的網站環境,可能會遇到的攻擊手法。再將這些攻擊程序與入侵指令整理成檢核清單,就可以用來逐一清查網路功能,讓開發人力直接針對需要補強的地方,進行修改。而不須曠日廢時地逐條檢視數萬行的原始程式碼。
從SQL Injection攻擊地圖來看,前期防禦的重點之一是要檢查使用者輸入的資訊,過濾掉不合理的可疑訊息。企業開發人員除了自行撰寫資料檢查條件外,還可以參考攻擊資訊,將攻擊指令的特徵,作為篩選程式的過濾條件。
現在已有一些開源社群,將這些過濾規則開發成一套現成的檢查函式庫,例如大陸白帽駭客對ASP語言開發的通用注入過濾器,企業可考慮採用或參考,以縮短自行開發的時間。
此外,軟體大廠也紛紛提供了各種防護資訊,像微軟早已在MSDN網站上,提供了上百頁的網站安全防護資訊(www.microsoft.com/taiwan/msdn/security/guidance/),而且全部都已翻譯成中文,並且列出具體的改善程序,甚至是針對不同防護需求下,提供了可用的安全檢核清單。
|
|
| 微軟已在MSDN網站上,提供了數百頁的中文網站安全防護資訊(www.microsoft.com/taiwan/msdn/security/guidance/)。 |
數聯資安研發處副總經理張裕敏建議:「若能按照微軟建議,逐步實施,的確能有效阻止SQL Injection攻擊,可惜很少有人全部看完。」
除了善用參考資訊,鎖定修補網頁程式的重點外,進一步,企業還可以採用自動化源碼檢測工具,提高發現程式問題的速度。阿碼科技執行長黃耀文表示:「用自動化工具進行源碼檢測,可以讓開發團隊專注在需要修改的地方,可節省人力。」
市面上,有許多源碼檢測工具,涵蓋了多數主流開發語言,例如Java、PHP、ASP、.NET等,付費產品例如阿碼科技的CodeSecure或Fortify的SCA。微軟和HP也釋出了免費的SQL Injection檢測工具Scrawlr等。
不怕沒有工具,只怕放錯力氣。對開發人員而言,將攻擊資訊轉換成防禦重點、善用自動化源碼檢測工具,就能減輕繁重的程式碼修補負擔,這才能有效提高企業對抗自動化攻擊的能力。文⊙王宏仁
點小圖看大圖絕招2 中途攔截,及時打斷攻擊路線
|
|
| 數聯資安研發處副總經理張裕敏建議:「駭客必須進行一連串的攻擊動作,才能完成SQL Injection 的入侵,只要打斷他的動作,就能阻止。」 |
從SQL Injection攻擊地圖來看,不論是MS SQL/ASP或是MySQL/PHP,從前端網頁入侵到後端資料庫的過程,是一連串的攻擊組合,必須一氣呵成,才能達到入侵的效果。數聯資安研發處副總經理張裕敏說:「只要打斷他的動作,就能阻止。」
之所以會發生SQL Injection的關鍵,是因為不少開發人員沒有檢查使用者輸入內容,就直接組合成SQL語法。微軟TechNet MVP李明儒說:「無形中等於賦予了使用者對資料庫直接下達SQL指令的權力。」如果,資料庫伺服器還被授與管理權限,使用者透過SQL指令,就幾乎能使用所有管理者功能。
李明儒認為:「原則上,只要將使用者輸入的內容,一律採用參數傳遞給資料庫的方式,SQL Injection的風險就不存在。」因此,不少資安專家通常建議,企業在開發網站時,透過安全程式碼的開發規範,強化對使用者輸入資料的檢查,並避免使用直接組合SQL語言的方式,來存取後端資料庫。
不過,開發人員難免會出錯,加上慣於重複利用舊有程式碼,問題程式碼的影響很容易繼續蔓延。對已完成建置的網站,也很難在短時間內完成所有的程式修補,尤其臺灣常用疊床架屋的系統開發方式,讓修補工作難上加難。
但是,若分析SQL Injection攻擊地圖,上述防護方法只是瞄準其中一個關鍵過程(攻擊地圖中的防護對策2、防護對策3),其實還有很多企業可以著力的防護點。針對不同的防護點,企業還有很多可以採取的防護措施。
隨著資料庫功能不同,SQL Injection的攻擊方式,從攻擊進入資料庫以後,也有所不同。
監控不明帳號與資料表,防止駭客取得更高權限
以臺灣常見的MS SQL Server搭配的ASP環境為例,防護重點是要注意可疑帳號。只要事先做好資料庫權限的管制,同時移除不必要的延伸預存程序(Extended Stored Procedure)和系統預存程序(System Stored Procedure),就可避免駭客使用這些預存程序,來提高自己的執行權限,或間接執行作業系統功能。
平時維護時,需注意作業系統中突然出現的不明帳號,那可能就是駭客試圖擴張控制範圍的線索,及時查核這些帳號,刪除可疑帳號,同時變更其他帳號的密碼,就能阻止駭客繼續入侵。
然而,在MySQL/PHP環境中,沒有類似MS SQL Server的延伸預存程序。駭客攻擊重點轉為透過MySQL資料表讀取外部檔案,再將惡意程式寫入系統中執行。因此,強化檔案目錄的權限控管,嚴格限制可存取系統目錄和網站目錄的帳號,就能降低駭客入侵的機會。不少自動化攻擊工具,還會留下攻擊用資料表的記錄,留意不明資料表的出現,也能發現入侵的徵兆。
只看Log記錄,不一定能及時發現
還要注意的是,入侵手法不斷翻新, MIS要小心過時的錯誤認知,避免搜尋入侵徵兆時,浪費時間。李明儒提醒, 有些MIS會誤以為SQL Injection攻擊時,會在網站Log記錄中,留下一連串明顯的入侵指令記錄。
但是,李明儒指出,幾個月前發生的Mass SQL Injection攻擊事件,駭客透過自動化工具進行盲目攻擊,攻擊指令只有短短幾行,不容易在Log記錄中發現。攻擊成功,甚至不會觸發HTTP Status 500 Error的錯誤訊息。只是依賴Log記錄,不一定能及時發現網站遭遇SQL Injection攻擊的痕跡,需組合不同的監控方式,發現駭客入侵的過程,並適時阻止,才能防止災情繼續擴大。文⊙王宏仁
點小圖看大圖絕招3 縱深防禦,用隔離與監控來鞏固
|
|
| PayEasy(康迅數位整合)購物網站資訊部副 總經理陳怡宏認為,只讓熟悉資料庫指令的 DBA 接觸資料庫,才能精準的設定與監控資料庫權限與使用狀態。 |
資料庫是SQL Injection攻擊的主要目標,理論上,採取徹底的隔離策略,就能有效降低潛在的入侵風險。但實務上,需針對不同的建置階段,採取不同的防範方式,串連成完整的防禦面,才能避免防護缺口。
一般常見的資料庫防護作法,是在網站開發階段,透過應用程式架構的調整,建立應用程式與資料庫間的中介層,來避免網頁程式直接接觸資料庫,即使開發人員疏於檢查輸入資料,也不易影響後端資料庫。
例如PayEasy採取的4層網站架構,讓網站應用程式,必須透過EJB(Enterprise Java Bean)的函式,用參數傳遞方式來與後端資料庫溝通。儘管後來出現各種SQL Injection威脅,PayEasy也無須修改太多前端網頁的程式,透過中介層的轉換,惡意程式的攻擊指令會自動被篩選掉,不易造成威脅。
像PayEasy這種運用應用程式架構將資料庫存取層抽離出來的作法,微軟TechNet MVP李明儒認為:「由有經驗的資深人員負責開發,不讓一般開發人員直接存取資料庫。除可確保資料庫安全性以外,還能避免無效率的SQL查詢語法拖垮資料庫效能。」
不過,企業必須在開發階段就進行應用程式架構的隔離,才能發揮效果,若等到網站完成後再變動架構,所需耗費的程式修改資源,幾乎等同重新開發,相當困難。
避免開放過高的資料庫權限
此外,還有另外一個常被忽略的防護關鍵,就是強化資料庫權限控管與清查。即使在網站建置初期忽略了這個作法,也可以事後補強。
透過資料庫權限的清查,可以更嚴格地管制資料庫的使用,對每一支應用程式,只開放所必須的最小權限。李明儒建議:「甚至可限制所有存取,都需透過事先寫好的預存程序進行,讓所有程式動作,都能在掌握中,可有效防止系統意外失控。」
不過,這種對資料庫權限的精準控管,需要有經驗的資料庫人員來處理。一般企業的開發人員,往往不熟悉資料庫的權限設定方式與指令,遇到資料庫讀取權限不足時,便任意開放更大的使用權限,甚至直接使用最高權限的管理帳號,導致駭客能透過資料庫系統,間接控制了整個作業系統環境。
例如,許多ASP網頁開發人員,往往使用作業系統的管理員身分安裝MS SQL伺服器,當駭客取得MS SQL的控制權時,透過延伸預存程序,如xp_cmdshel\等指令,就能執行所有系統管理員才能使用的指令。
若能依據不同使用需求,降低資料庫使用權限,就能增加入侵難度,進而降低駭客入侵意願。即使,受限於網站功能需求,建置完成後不易調降太多權限,數聯資安研發處副總經理張裕敏建議:「企業可以定期監控資料庫與系統的帳號狀態,若發現可疑帳號,或權限異常,趁早刪除,就能即時阻止更進一步的危害。」
透過預先設計的隔離架構與權限管制,能增加入侵門檻,產生資料庫防護效果。不過,在日常維護中,定期的監控和清查資料庫狀態,也有助於鞏固資料庫。文⊙王宏仁絕招4 先擋再修,以應用防火牆搶時間
企業網站發生SQL Injection問題後,不論是添加檢查使用者輸入資料的程式碼,或者是調整資料庫權限架構等,都耗費數周,甚至數個月的時間,才能達到一定的防護效果。只有,透過網路端的防禦設備,才能用幾天時間建構出防護系統。
這也是為什麼,從去年開始,不少企業,紛紛開始關注應用程式防火牆(Web Application Firewall)相關產品的主因之一。尤其是從事電子商務的企業,莫不希望能在最短的時間內,先建立網站的防禦機制,再慢慢修補程式的漏洞。WAF也的確能夠快速地在企業網站的前線,築出一道檢查網,過濾掉各種具有潛在威脅的資料。
不同於其他更低階的網通設備,WAF採用第七層網路協定的檢查技術,能夠檢查網頁程式所傳輸的使用者輸入資訊,可以針對不同的資訊類型和輸入源,設定白名單或黑名單的過濾條件,例如限制使用者輸入資料的長度、型態、格式等,能夠彌補原本應用程式所疏漏的內容檢查。還可進行雙向過濾,檢查輸出的網頁內容,避免將惡意資訊二度傳送給使用者。
用WAF確保網站服務不中斷,爭取修補程式的緩衝時間
|
|
| 敦揚科技資安顧問楊伯瀚認為,WAF的好處是能夠自動學習網站需要的防護特徵,採取白名單的作法,能一勞永逸的隔絕惡意資訊,不需要不斷更新過濾特徵。 |
網駭科技創辦人徐千洋表示,WAF雖然價格不斐,但的確可在最短時間內,幫企業架構出防護網,可以爭取一些修補網站程式的緩衝時間。
敦揚科技資安顧問楊伯瀚認為:「WAF的好處是能夠自動學習網站需要的防護特徵,採取白名單的作法,能一勞永逸的隔絕惡意資訊,不需要不斷更新過濾特徵。」他進一步補充,透過資安顧問來協助安裝,只需半天就能完成,可以達到70%的防禦效果,「再經過1~2個月的自動學習,讓 WAF了解企業網站的使用特性,就能達到99.5%的防禦程度。」楊伯瀚說。
WAF的過濾功能雖然強大,但代價也相當昂貴,企業往往需投資數百萬元,甚至上千萬元,才能架構出不影響原來網站服務品質的WAF防護網。換句話說,企業等於用金錢來換取時間,用WAF擋住攻擊,確保網站運行,再進行程式修補。
但是,對於中小企業而言,WAF卻是高不可攀的產品。不少中小企業,全公司只有1~2個IT人員,連網站開發都需委外開發,更別說投入這麼多錢來防禦。這些中小企業的網站,也往往成為這一波自動化攻擊的主要受害者。
其實,坊間有一些免費的軟體WAF,例如有套開源WAF工具ModSecurity,可以安裝在PHP網站常用的Apache伺服器中,能協助過濾Apache上網站程式的傳輸內容。微軟也針對ASP網頁的IIS伺服器環境,免費提供了一套軟體WAF工具UrlScan,連IIS 7都內建。
這類軟體防火牆,通常需耗用網站伺服器的硬體資源,來進行內容的檢查,當網站流量龐大時,很容易降低效能。不過,這的確是中小企業可負擔的SQL Injection防護工具。文⊙王宏仁
熱門新聞
2025-12-12
2025-12-12
2025-12-12
2025-12-15
2025-12-12
2025-12-12



