這些Web應用程序有這樣一些共同點:
* 使用經典ASP代碼的程序
* 使用SQL Server數據庫的程序
應用程序代碼根據URI請求字符動態地生成SQL查詢。這體現了一種新的SQL注入(SQL injection)的途徑。在過去,SQL注入攻擊的目標是具有如下特點的特殊Web應用程序:攻擊者知道或者可以探測出后臺數據庫的漏洞或者結構。這樣的攻擊(指本文討論的攻擊- 譯者注)不同,因為它是抽象的,對于攻擊來說,任何存在于使用URI請求字符串動態創建SQL查詢的ASP頁面都可能存在。
這樣的攻擊并非利用了Window、IIS、SQL Server或者其他底層代碼的漏洞,而是利用了在這些平臺上運行的由程序員自行編寫的代碼中的漏洞。Microsoft已經對這些攻擊進行了徹底的調查,并且發現,他們和以往的Microsoft產品的補丁和0-day漏洞無關。
正如上面所指出的,這些攻擊在近年來呈現一種增長的趨勢。這至少與兩個因素有關:
第一,有暴力性的惡意攻擊工具自動化進行此類操作。該工具使用搜索引擎來尋找具有SQL注入漏洞的站點。
第二,一個或多個惡意僵尸正在進行SQL注入攻擊,用以廣泛傳播僵尸。
一旦某臺服務器被該漏洞所攻擊,它將被插入指向某.js文件的惡意script標簽。雖然這些文件的內容不同,但是他們都嘗試利用已經被修復的Micfosoft產品的漏洞或者第三方ActiveX控件的漏洞。由于這些腳本被單獨存儲,這些腳本就很容易的被更新以利用更新的客戶端漏洞,也更容易按照不同瀏覽器來定制。
給信息技術/數據庫管理員的建議
有很多事情是信息技術管理員或者數據庫管理員可以采取的,以減少他們的風險和響應他們的代碼和平臺中可能出現的事件:
* 檢查IIS日志和數據表來尋找未知風險的標志。
由于該漏洞利用方式通過URI請求字符串作用,管理員們可以檢查IIS日志來查找嘗試利用該漏洞的非正常請求。
如果IIS日志表明服務器可能已經被侵害,那么下一步要采取的行動就是審計相應的Web應用程序所使用的數據庫中的表,并且查找附加在文本內容中的script標簽。
提示:IIS服務器不應當在生產環境中關閉日志。存儲和適當的管理對于IIS日志都是重要的,缺少IIS日志對于響應安全事件是非常困難的。
* 如果運行了使用后端數據庫的第三方代碼,則考慮不受SQL注入影響的獨立軟件開發商(ISV,Independent Software Vendors)。
在使用第三方ASP Web程序的情況下,管理員應當聯系應用程序廠商來確定他們的產品不受SQL注入攻擊的影響。
* 確認Web應用程序所使用的數據庫帳戶具有最少的權限。
管理員應當確保Web應用程序所使用的SQL用戶具有最小的必要權限。Web應用程序不應當以諸如”sysadmin”的服務器管理員權限或者”db_owner”的數據庫權限鏈接。
給Web開發者的建議
有很多優秀的文檔論述在編碼時如何防御SQL注入攻擊。由于這些攻擊者leverage有漏洞的Web應用程序代碼,所以完全防御他們的唯一方法是解析在代碼中存在的漏洞。程序中任何一個使用外部資源(一般指從URI請求字符串)數據來動態生成SQL請求的地方都應當被認為是可疑的。當代碼漏洞被識別出來,他們應當被小心的修復。
文章來源于領測軟件測試網 http://www.kjueaiud.com/