隨著B/S模式應用開發的發展,使用這種模式編寫應用程序的程序員也越來越多。但是由於程序員的水平及經驗參差不齊,相當大一部分程序員在編寫代碼的時候,沒有對用戶輸入數據的合法性進行判斷,使應用程序存在安全隱患。所謂SQL注入,就是通過把SQL命令插入到Web表單遞交或輸入域名或頁面請求的查詢字符串,最終達到欺騙服務器執行惡意的SQL命令,比如先前的很多影視網站VIP會員密碼洩露大多就是通過Web表單遞交查詢字符實現的,這類表單特別容易受到SQL注入式攻擊。
SQL注入攻擊的原理本身非常簡單,相關攻擊工具容易下載,攻擊者獲得權限後有利可圖。這使得它成為最有效的、攻擊者最常采用的Web入侵手段,是眾多網站成為惡意代碼傳播平台的起因之一。
針對這一攻擊手段,安全專家認為,最根本的措施是對Web應用的用戶輸入進行過濾。並針對Web應用的基本特性,對Web應用的整體安全工作采取以下具體措施:
1、Web應用安全評估:結合應用的開發周期,通過安全掃描、人工檢查、滲透測試、代碼審計、架構分析等方法,全面發現Web應用本身的脆弱性及系統架構導致的安全問題。應用程序的安全問題可能是軟件生命周期的各個階段產生的,其各個階段可能會影響系統安全的要點主要有:
2、Web應用安全加固:對應用代碼及其中間件、數據庫、操作系統進行加固,並改善其應用部署的合理性。從補丁、管理接口、賬號權限、文件權限、通信加密、日志審核等方面對應用支持環境和應用模塊間部署方式劃分的安全性進行增強。
3、對外部威脅的過濾:通過部署Web防火牆、IPS等設備,監控並過濾惡意的外部訪問,並對惡意訪問進行統計記錄,作為安全工作決策及處置的依據。
4、 Web安全狀態檢測:持續地檢測被保護應用頁面的當前狀態,判斷頁面是否被攻擊者加入惡意代碼。同時通過檢測Web訪問日志及Web程序的存放目錄,檢測是否存在文件篡改及是否被加入Web Shell一類的網頁後門。
5、事件應急響應:提前做好發生幾率較大的安全事件的預案及演練工作,力爭以最高效、最合理的方式申報並處置安全事件,並整理總結。
6、 安全知識培訓:讓開發和運維人員了解並掌握相關知識,在系統的建設階段和運維階段同步考慮安全問題,在應用發布前最大程度地減少脆弱點。
在現在和將來,由於受互聯網地下黑色產業鏈中盜取用戶賬號及虛擬財產等行為的利益驅動,攻擊者仍將Web應用作為傳播木馬等惡意程序的主要手段。盡管這會對廣大的運維人員和安全工作者造成很大的工作壓力,但是通過持續不斷地執行並改進相關安全措施,可以最大限度地保障Web應用的安全,將關鍵系統可能發生的風險控制在可接受的范圍之內。