2010年6月13日 星期日

絕招1 借力使力,從攻擊手法學防守

http://www.ithome.com.tw/itadm/article.php?c=50860&s=3

絕招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等。

不怕沒有工具,只怕放錯力氣。對開發人員而言,將攻擊資訊轉換成防禦重點、善用自動化源碼檢測工具,就能減輕繁重的程式碼修補負擔,這才能有效提高企業對抗自動化攻擊的能力。
文⊙王宏仁