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