如何應(yīng)對WEB攻擊的防護盲點(2) |
發(fā)布時間: 2012/9/15 19:34:35 |
靜態(tài)防護SQL注入 SQL注入的防護一直是焦點話題,從編程角度看最有效的防護是對用戶輸入的變量通過參數(shù)來傳遞,而不是直接嵌入到SQL語句,但缺陷: 1.不是所有的數(shù)據(jù)庫和編程語言都有相應(yīng)的參數(shù)化功能; 2.編寫時面對眾多的輸入模塊,難免會有疏漏; 3.難以批量化和統(tǒng)一部署。 還有一些方法就是把參數(shù)進行分類,比如用戶遞交的參數(shù)值統(tǒng)一轉(zhuǎn)換成純數(shù)字或純字符串類型、加密用戶輸入、限制輸入長度等,但和以上方法的缺陷一樣。 比如這段代碼是直接把用戶輸入放置數(shù)據(jù)庫的SQL語句中進行執(zhí)行,如果不對member_login變量進行過濾和判斷是可以注入攻擊的:
如果一一檢查和修復(fù)需要花費大量的精力,而很多網(wǎng)站上線運營之后需要提高安全性的普遍舉措是采用一些編寫好的通用性的函數(shù),原理是對輸入進行判斷和過濾,它在一定程度上能緩解攻擊行為,并且花費成本相對不大,我們先看一段編寫的防護函數(shù):
以上代碼首先需要定義相對完整的過濾字符集,然后分別處理用GET和POST方式提交的數(shù)據(jù)報文,在需要防護的頁面里調(diào)用包括它既可[an error occurred while processing this directive] 但是編寫統(tǒng)一的防止注入函數(shù)有缺陷: 1.需要考慮不同語言的不同語法,不能統(tǒng)一,比如ASP、PHP、Java; 2.要充分考慮每一個可能用戶輸入的地方,但往往會有疏漏; 3.虛擬機往往有大量站點,而管理者是單個站點的屬主,系統(tǒng)管理員沒權(quán)利也沒能力統(tǒng)一定制防護措施; 4.如果是IDC或者大型企業(yè)的機房,會有更大量不同類型的WEB應(yīng)用服務(wù)器,要實現(xiàn)批量防護則更困難; 5.消耗服務(wù)器運算資源和網(wǎng)絡(luò)帶寬,因為大批量的網(wǎng)絡(luò)連接和提交數(shù)據(jù)都需要經(jīng)過函數(shù)來處理; 6.過濾不嚴(yán)謹(jǐn)則容易被攻擊者繞過。 最后一點其實很關(guān)鍵,不僅僅是過濾不嚴(yán)謹(jǐn),而且攻擊者對于輸入可變化大小寫,拼接攻擊語句,甚至構(gòu)造字符的不同編碼方式,比如字符 < 可被編碼為 <、<、< 或 %3c,而編碼方式又是如此之多,Unicode、十六進制、ASIIC、UTF-8等,所以用防護函數(shù)方式是非常困難的。 通過上面描述,我們知道了從編程方式來防御攻擊具有它的局限性,簡單概括:會有疏漏、消耗性能、難以統(tǒng)一、運算復(fù)雜等。 而這時WAF的優(yōu)點就體現(xiàn)出來了,綠盟科技WAF內(nèi)置了50多條精心配制的規(guī)則,用于防護SQL注入,有人可能會疑問這么少的規(guī)則能有效防御嗎?要知道雖然SQL注入的語句千變?nèi)f化,但規(guī)則只需要找出共同點進行匹配即可,并且可在此基礎(chǔ)上自定義規(guī)則。規(guī)則制定后可用于WAF后需要保護的不同類型的多臺WEB服務(wù)器,類型一致的可使用同一規(guī)則,對于大型WEB群來說這具有無可比擬的優(yōu)越性。它的優(yōu)點如下: 1.統(tǒng)一定制的規(guī)則能批量適用于不同類型的網(wǎng)站; 2.花費時間和精力最少,無論是應(yīng)用或編輯規(guī)則都方便,不用每臺WEB服務(wù)器去部署; 3.即使網(wǎng)站存在漏洞,也能在前端把攻擊流量給予清洗和阻斷; 4.網(wǎng)站無需處理錯誤的探測,避免把錯誤處理方式和信息暴露給攻擊者,同時也節(jié)省了服務(wù)器的處理資源。 本文出自:億恩科技【mszdt.com】 |
以上代碼首先需要定義相對完整的過濾字符集,然后分別處理用GET和POST方式提交的數(shù)據(jù)報文,在需要防護的頁面里調(diào)用包括它既可[an error occurred while processing this directive]
但是編寫統(tǒng)一的防止注入函數(shù)有缺陷:
1.需要考慮不同語言的不同語法,不能統(tǒng)一,比如ASP、PHP、Java;
2.要充分考慮每一個可能用戶輸入的地方,但往往會有疏漏;
3.虛擬機往往有大量站點,而管理者是單個站點的屬主,系統(tǒng)管理員沒權(quán)利也沒能力統(tǒng)一定制防護措施;
4.如果是IDC或者大型企業(yè)的機房,會有更大量不同類型的WEB應(yīng)用服務(wù)器,要實現(xiàn)批量防護則更困難;
5.消耗服務(wù)器運算資源和網(wǎng)絡(luò)帶寬,因為大批量的網(wǎng)絡(luò)連接和提交數(shù)據(jù)都需要經(jīng)過函數(shù)來處理;
6.過濾不嚴(yán)謹(jǐn)則容易被攻擊者繞過。
最后一點其實很關(guān)鍵,不僅僅是過濾不嚴(yán)謹(jǐn),而且攻擊者對于輸入可變化大小寫,拼接攻擊語句,甚至構(gòu)造字符的不同編碼方式,比如字符 < 可被編碼為 <、<、< 或 %3c,而編碼方式又是如此之多,Unicode、十六進制、ASIIC、UTF-8等,所以用防護函數(shù)方式是非常困難的。
通過上面描述,我們知道了從編程方式來防御攻擊具有它的局限性,簡單概括:會有疏漏、消耗性能、難以統(tǒng)一、運算復(fù)雜等。
而這時WAF的優(yōu)點就體現(xiàn)出來了,綠盟科技WAF內(nèi)置了50多條精心配制的規(guī)則,用于防護SQL注入,有人可能會疑問這么少的規(guī)則能有效防御嗎?要知道雖然SQL注入的語句千變?nèi)f化,但規(guī)則只需要找出共同點進行匹配即可,并且可在此基礎(chǔ)上自定義規(guī)則。規(guī)則制定后可用于WAF后需要保護的不同類型的多臺WEB服務(wù)器,類型一致的可使用同一規(guī)則,對于大型WEB群來說這具有無可比擬的優(yōu)越性。它的優(yōu)點如下:
1.統(tǒng)一定制的規(guī)則能批量適用于不同類型的網(wǎng)站;
2.花費時間和精力最少,無論是應(yīng)用或編輯規(guī)則都方便,不用每臺WEB服務(wù)器去部署;
3.即使網(wǎng)站存在漏洞,也能在前端把攻擊流量給予清洗和阻斷;
4.網(wǎng)站無需處理錯誤的探測,避免把錯誤處理方式和信息暴露給攻擊者,同時也節(jié)省了服務(wù)器的處理資源。
如果有需要服務(wù)器的租用與托管的敬請聯(lián)系QQ:1501281758(億恩星辰) 聯(lián)系電話:0371—63322220
服務(wù)器租用/服務(wù)器托管中國五強!虛擬主機域名注冊頂級提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM]