waf知识的积累
一、背景
? ? ? ?在web應用越來越豐富的背景下,web安全得到了重視。因此,waf(Web Application Firewall)代表了一類新興的信息安全技術,用以解決諸如防火墻一類傳統設備束手無策的Web應用安全問題。與傳統防火墻不同,WAF工作在應用層,因此對Web應用防護具有先天的技術優勢。
? ? ? ?其功能主要有幾點:
? ? ? ?1.異常檢測協議
? ? ? ? ? ? ? Web應用防火墻會對HTTP的請求進行異常檢測,拒絕不符合HTTP標準的請求。并且,它也可以只允許HTTP協議的部分選項通過,從而減少攻擊的影響范圍。
? ? ? ?2.增強的輸入驗證
????????? ? ? 增強輸入驗證,可以有效防止網頁篡改、信息泄露、木馬植入等惡意網絡入侵行為。從而減少Web服務器被攻擊的可能性。
? ? ? ?3.基于規則的保護和基于異常的保護
????????? ? ? 基于規則的保護可以提供各種Web應用的安全規則,WAF生產商會維護這個規則庫,并時時為其更新。用戶可以按照這些規則對應用進行全方面檢測。還有的產品可以基于合法應用數據建立模型,并以此為依據判斷應用數據的異常。
? ? ? ?4.狀態管理
? ? ? ? ? ? ? WAF能夠判斷用戶是否是第一次訪問并且將請求重定向到默認登錄頁面并且記錄事件。通過檢測用戶的整個操作行為我們可以更容易識別攻擊。狀態管理模式還能檢測出異常事件(比如登錄失敗),并且在達到極限值時進行處理。
二、介紹
????? ? 參考鏈接:http://http://www.freebuf.com/articles/web/18084.html
? ? ? ? 2.1 WAF分類
? ? ? ? ? ? ? 2.1.1 硬件WAF
? ? ? ? ? ? ? 2.1.2 軟件WAF
? ? ? ? ? ? ? 2.1.3 代碼級WAF(使用腳本語言實現的過濾器模式)
? ? ? ? ? ? ? ? ? 2.1.3.1 一些開源的web框架如CodeIgniter會采用一些Global Routing全局路由機制來改變原本的HTTP交互流程,從而使程序猿有機會hook住一些關鍵的處理邏輯,在進入核心代碼前對用戶發送的數據進行處理。
? ? ? ? ? ? ? ? ? ?鏈接:http://codeigniter.org.cn/user_guide/general/routing.html
????????????????? ?2.1.3.2 還可以使用web應用的編程語言來實現過濾器。 模塊代碼可以在請求和響應階段之間進行執行。
? ? ? ? ? ? ? ? ? ?ASP.NET的System.Web.IHttpModule接口:
? ? ? ? ? ? ? ? ? ?http://msdn.microsoft.com/zh-cn/library/system.web.ihttpmodule(VS.80).aspx
? ? ? ? ? ? ? ? ? ??http://msdn.microsoft.com/zh-cn/library/ms227673(v=vs.90).aspx
? ? ? ? ? ? ? ? ? ? 2.1.3.3 javax.servlet.Filter接口:
? ? ? ? ? ? ? ? ? ??http://docs.oracle.com/javaee/6/api/javax/servlet/Filter.html
public class SqlInjDetectionFilter implements Filter{ public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { //check request data for maliious characters deDetectSqlI(rep, res); //call next filter in the chain chain.doFilter(servletRequest, servletResponse); } }????????????? ? ? ?將這個接口代碼添加到應用中,并在應用配置文件(web.xml)中顯示地激活它們。之后每個請求/響應就會"自動"地去對J2EE web源(.jsp,servlet)文件的請求而調用該方法。這就是接口編程的好處,因為J2EE原本就實現了這個Filter機制,并提供了一個接口規范,我們只要在我們的代碼中去繼承實現這個接口,就可以把代碼具現化,從而自定義我們自己的安全處理邏輯。
????????????????? ? OWASP Stinger? ? ?https://www.owasp.org/index.php/Category:OWASP_Stinger_Project? ?一款開源的J2EE過濾器
? ? ? ? ? ? ? ? ? ? Security Parameter Filter(SPF)? ??http://spf.codeplex.com/? ? ? ? ? ? ? ? ? ? ? ?一款ASP.NET HttpModule
? ? ? ? ? ?2.2 WAF的特性
? ? ? ? ? ? ? ? ? 2.2.1 異常檢測協議
? ? ? ? ? ? ? ? ? ? ? Web應用防火墻會對HTTP的請求進行異常檢測,拒絕不符合HTTP標準的請求。RFC對HTTP的數據包格式有明確的定義:http://www.rfc-editor.org/rfc/rfc2068.txt。正常情況下,應用收到的HTTP數據包應該符合這個規定的范疇內,除此之外,在具體的應用中對HTTP Headers中的字段的數據類型以及參數長度都有明確的規定,如果超過了這個范疇,也會造成安全問題。
? ? ? ? ? ? ? ? ? ? ? ? ?應用場景:
? ? ? ? ? ? ? ? ? ? ? ? ?2.2.2.1 HTTP Split攻擊(CRLF攻擊的一種)?http://http://resources.infosecinstitute.com/http-response-splitting-attack
????????????????????? ? 2.2.2.2 利用cookie信息超過一定的長度限制來繞過Cookie中的HttpOnly(XSS攻擊)?http://http://hi.baidu.com/aullik5/item/938f60fb7747b16e3c1485ca
? ? ? ? ? ? ? ? ? ? ? ? 2.2.2.3 基于Content-Length的DOS攻擊? ??http://http://ha.ckers.org/slowloris/
? ? ? ? ? ? ? ? ? ? ? ? 2.2.2.4?X-Forward- For注入http://http://sebug.net/vuldb/ssvid-8427
? ? ? ? ? ??????????? ? 2.2.2.5?本地變量覆蓋攻擊? ??http://http://sebug.net/vuldb/ssvid-15146
? ? ? ? ? ? ? ? ? ? ? ? 2.2.2.6?變量類型導致目標應用程序運行報錯信息泄漏攻擊? ?http://http://sebug.net/vuldb/ssvid-1080
? ? ? ? ? ? ? ? ? ? ? ? 2.2.2.7?HTTP Parameter Pollution??
????????????????????????????????http://http://www.80sec.com/%E6%B5%85%E8%B0%88%E7%BB%95%E8%BF%87waf%E7%9A%84%E6%95%B0%E7%A7%8D%E6%96%B9%E6%B3%95.html
????????????????????????????? http://http://www.freebuf.com/articles/web/5908.html
? ? ? ? ? ? ? ? ? ? ? ? ? ? ??http://http://hi.baidu.com/aullik5/item/860da508a90709843c42e2ca
? ? ? ? ? ? ? ? ? ? ? ? ?注意:我們應該考慮一種輸入驗證策略就是將應用輸入分為可編輯的和不可編輯的兩類來區別對待。并且鎖定不可編輯的輸入以便無法操作它們。不可編輯輸入是指最終用戶不需要直接修改的輸入,比如隱藏表單字段、URI和查詢字符串參數、cookie等(或者說如果你是正常的用戶,你是不會去修改的變量,這樣可以對攻擊者進行針對性的防御,體現了用戶平衡的安全的原則)。
? ? ? ? ? ? ? ? ? ? ? ? ?實現這種策略的技術范例是HDIV(HTTP Data Integrity Validator HTTP數據完整性驗證器)和SPF(Security Parameter Filter)??梢允褂肏DIV保護大多數遵循MVC模式的J2EE web應用。? ??http://www.hdiv.org/
? ? ? ? ? ? ? ? ? 2.2.2 增強的輸入驗證
? ? ? ? ? ? ? ? ? ? ? ? ? 輸入驗證是一種在保證應用安全上很有用的工具。可以把它作為縱深防御的一部分來看待。
? ? ? ? ? ? ? ? ? ? ? ? ? 3.2.1 在應用輸入層使用白名單輸入驗證以便驗證所有用戶輸入都符合應用要接收的內容。應用只允許接受符合期望格式的輸入
? ? ? ? ? ? ? ? ? ? ? ? ? 3.2.2 在客戶端瀏覽器上同樣執行白名單過濾策略(節省往返流量)
? ? ? ? ? ? ? ? ? ? ? ? ? 3.2.3 在web應用防火墻(WAF)層使用黑名單和白名單輸入驗證(以漏洞"簽名"和"有經驗"行為的形式)以便提供入侵檢測/阻止功能和監視應用攻擊
? ? ? ? ? ? ? ? ? ? ? ? ? 3.2.4 在應用中自始至終地使用參數化語句以保證執行安全的SQL執行? ?
? ? ? ? ? ? ? ? ? ? ? ? ? 3.2.5 在數據庫查詢中使用轉義技術(要注意跨系統間的編碼問題,防御基于字符編碼位寬的繞過:寬字節注入)
? ? ? ? ? ? ? ? ? ? ? ? ? 3.2.6 在向UI發送之前對數據進行編碼。? ?http://code.google.com/p/owasp-esapi-php/? ? ?http://www.oschina.net/p/owasp-esapi-java
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 而在WAF中這些規則被抽象成了積極模型和消極模型。也就是白名單和黑名單的互補使用。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??http://www.nsfocus.com/waf/jishu/js_01.html
? ? ? ? ? ? ? ? ? 2.2.3 及時補丁
? ? ? ? ? ? ? ? ? ? ? ? ? ?任何時候,遵循安全編碼規范http://www.php.net/manual/zh/security.php,并進行嚴格的代碼審計。
? ? ? ? ? ? ? ? ? ? ? ? ? ?http://code.google.com/p/pasc2at/wiki/SimplifiedChinese都是最好的辦法。解決漏洞的源頭也是對源代碼進行修補。但是,在面對突發事件的0DAY攻擊的時候,代碼防御往往不能適應快速響應的需求,所以就需要一種快速的運行時保護機制。WAF在這種場景下可以充當虛擬補丁或補綴解決方案的作用。通過針對具體的漏洞場景編寫緊急響應防御規則,來進行hotpatch。? ? ?http://security.zdnet.com.cn/security_zone/2012/0208/2077704.shtml
? ? ? ? ? ? ? ? ? 2.2.4 基于規則的保護和基于異常的保護
? ? ? ? ? ? ? ? ? ? ? ? ? ?基于規則的保護可以提供各種Web應用的安全規則,WAF生產商會維護這個規則庫,并時時為其更新。用戶可以按照這些規則對應用進行全方面檢測。
? ? ? ? ? ? ? ? ? ? ? ? ? ?ModSecurity? ??https://github.com/SpiderLabs/ModSecurity/wiki/Reference-Manual#wiki-Configuration_Directives
? ? ? ? ? ? ? ? ? ? ? ? ? ?和PHPIDS都是使用規則的保護模式? ??http://phpids.org/docs/
? ? ? ? ? ? ? ? ? ? ? ? ? ?還有的產品可以基于合法應用數據建立模型,并以此為依據判斷應用數據的異常。但這需要對用戶企業的應用具有十分透徹的了解才可能做到。自學習思想,前期使用大量的樣本對分析器進行學習,以此來建立一種概率統計下的識別模式,更多的來說是行為模式,比如正常用戶的URL跳轉流程,每分鐘發送HTTP請求數量,HTTP包平均大小等。
? ? ? ? ? ? ? ? ? ?2.2.5 狀態管理
? ? ? ? ? ? ? ? ? ? ? ? ? ?WAF能夠判斷用戶是否是第一次訪問并且將請求重定向到默認登錄頁面并且記錄事件。通過檢測用戶的整個操作行為我們可以更容易識別攻擊。狀態管理模式還能檢測出異常事件(比如登錄失敗),并且在達到極限值時進行處理。這對暴力攻擊的識別和響應時十分有利的。
? ? ? ? ? ? ? ? ? ?2.2.6 URL策略/頁面層策略
? ? ? ? ? ? ? ? ? ? ? ? ? ? WAF可以不在修改源代碼的情況下,為易受攻擊的URL或頁面打虛擬補丁。
? ? ? ? ? ? ? ? ? ? ? ? ? ? 2.2.6.1 頁面覆寫
? ? ? ? ? ? ? ? ? ? ? ? ? ? 2.2.6.2 URL重寫
? ? ? ? ? ?2.3 ModSecurity配置和分析? ? ??https://github.com/SpiderLabs/Mod
? ? ? ? ? ? ? ? ?事實上,WAF的標準就是開源的ModSecurity。ModSecurity被開發成了Apache的一個模塊。
? ? ? ? ? ? ? ? ?2.3.1 安裝? ??https://github.com/SpiderLabs/ModSecurity/wiki/Reference-Manual#wiki-Windows_MS_VC_8
? ? ? ? ? ? ? ? ? ? ? ? ? linux下可以通過數據源直接安裝:
$ sudo yum install mod_security $ sudo /etc/init.d/httpd restart????????????????????? ? ? windows下需要下載.dll文件? ?http://www.apachelounge.com/download/
? ? ? ? ? ? ? ? ? ? ? ? ? 放到指定目錄下,修改httpd.conf中模塊加載的加載項即可。
LoadModule security2_module modules/mod_security2.so? ? ? ? ? ? ? ? ? ?2.3.2 配置
? ? ? ? ? ? ? ? ? ? ? ? ? ?ModSecurity配置指令可以直接被添加到你的配置文件中(典型配置是在httpd.conf文件中)。但是他不一定確信這個模塊被激活或者是禁止在web服務器啟動的時候啟動它(分布式配置文件機制.htaccess)。它通常是將配置信息放在<IfModule>容器內。在沒有激活這個模塊的時候,它可以允許Apache跳過這個配置容器。
<IfModule security2_module> Include conf/security2/security2.conf</IfModule>????????????????????????? ? 自從Apache允許將一組配置數據保存在一個(例如modsecurity.conf)配置文件中,然后被httpd.conf使用Include方法調用。保存后,重啟apache。
? ? ? ? ? ? ? ? ? ?2.3.3 規則編寫學習:
? ? ? ? ? ? ? ? ? ? ? ? ? ? 我們接下來從WAF在檢測和防御SQL注入上使用到的技術來學習ModSecurity規則的編寫。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?2.3.3.1 可配置規則集
? ? ? ? ? ? ? ? ? ? ? ? ? ? ??https://github.com/SpiderLabs/ModSecurity/wiki/Reference-Manual#wiki-Configuration_Directives
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? web應用的環境是惟一的。WAF必須高度可配置才能使用各種不同的情況。ModSecurity的威力在于規則語言上,這種語言是配置指令和應用到HTTP請求和響應上的一種簡單編程語言的組合。ModSecurity的結果通常是一個具體的動作,比如允許請求通過、把請求記錄到日志或阻塞該請求。
::: 出現"匹配"時做哪些操作(可選,它可以定義默認的全局動作)????????????????????????????? ? 處理HTTP請求時,可以對ModSecurity的規則進行配置以實現否定(黑名單)或肯定(白名單)的安全模型。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ModSecurity采用鏈式的規則模式(類似iptables中的路由鏈),把整個HTTP交互檢測過程分為5個階段:
1.HTTP頭部 2.HTTP內容 3.服務器的回復HTTP包頭部 4.服務器的回復HTTP包內容 5.日志記錄????????????????????????? ? ? ?2.3.3.2 規則編寫(請求)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? modsecurity_crs_40_generic_attacks.conf
# SQL injection SecRule REQUEST_FILENAME|ARGS|ARGS_NAME "(?:\b(?:(?:elect\b(?:.{1,100)?\b(?:(?:length|count|top)\b.{1,100}?\bfrom|from\b.{1,100}\bwhere)|.*?\b(?:d(?:ump\b.*\bfrom|ata_type)|(?:to_(?:numbe|char)|inst)r))|p_(?:(?:addextendedpro|sqlexe)c|(?:oacreat|prepar)e|execute(?:sql)?|makewebtask)|q1 (?:longvarchar|variant))xp_(?:reg(?:re(?:movemultistring|ad)|delete(?:value|key)|enum(?:value|key)s|addmultistring|write)|e(?:xecresultset|numdsn)|(?:terminat|dirtre)e|availablemedia|loginconfig|cmdshell|filelist|makecab|ntsec)|u(?:nion\b.{1,100}?\bselect|tl_(?:file|http))|group\b.*\bby\b.{1,100}?\bhaving|d(?:elete\b\w*?\bfrom|bms_java)|load\b\w*?\bdata\b.*\binfile|(?:n?varcha|tbcreato)r)\b|i(?:n(?:to\b\w*?\b(?:dump|out)file|sert\b\w*?\binto|ner\b\w*?\bjoin)\b|(?:f(?:\b\w*?\(\w*?\bbenchmark|null\b)|snull\b)w*?\()|a(?:nd\b ?(?:\d{1,10}|[\'\"][^=]{1,10}[\'\"]) ?[=<>]+|utonomous_transaction\b)|o(?:r\b ?(?:d[1,10}|[\'\"[[^=]{1,10}[\'\"])?[=<>]+|pen(?:rowset|query)\b)|having\b ?(?:\d{1,10}|[\'\"][^=]{1,10}[\'\"])?[=<>]+print\b\w*>\@\@|case\b\w*?\()|(?:;\w*?\b(?:shutdown|drop)|\@\@version)\b|'(?:s(?:qloledb|a)|msdasql|dbo)')" \"phase:2,capture,t:none,t:htmlEntityDecode,t:replaceComments,t:compressWhit-eSpace,t:lowercase,ctl:auditLogParts=+E,log,auditlog,msg:'SQL injection Attach;, id:'950001',tag:'WEB_ATTACK/SQL_INJECTION',logdata:'%{TX.0}',severity:'CRITICAL'"????????????????????????? ? ? ?a) SecRule REQUEST_FILENAME|ARGS|ARGS_NAME
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 該規則是一個安全規則(SecRule),用戶分析數據并根據結果執行動作,并且我們在結尾處看到phase:2。代表這是鏈式檢測中的第二階段,就HTTP Body的檢查。檢查的范圍(參數)是REQUEST_FILENAME(請求路徑)|ARGS(POST數據)|ARGS_NAME(參數名)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?b) "(?:\b(?........msdasq|dbo)')"\
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?由于正則表達式較長,這里推薦一個正則工具來做輔助
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?RegexBuddy:http://www.regexbuddy.com/
? ? ? ??????????????????????????? ? ?可以看到,規則對用戶發送的數據中包含的敏感關鍵字進行了不區分大小寫地匹配:包括select,from,where等。對字符型的split and balance繞過(使用+,||等連字符來拼接字符串,以及chr,char的使用)進行了防御。對sqlserver的存儲過程,xp_cmdshell,oracle的PL/SQL代碼dbms_*進行了防御。對Timing Attack的時間延遲性盲注benchmark進行了防御。
????????????????????????????? ?c) 規范化(canonicalization)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 在前端安全技術中常見的編碼繞過技術利用的就是不同系統間的編碼位寬,不同編碼的解碼順序(htmlParserjavascriptParser的解碼順序),不同的解碼規則(unicode->ascii轉換中非可見字符的占位符問題)的這些"不一致"導致的漏洞。
????????????????????????????????????????? ? WAF為了解決這個"非規范化"帶來的問題,在進行實際的檢查前會對數據進行一次規范化處理。把所有輸入轉換成可預見和可控范圍內的數據。讓我們的規則能100%地匹配到目標對象。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? t:none,t:htmlEntityDecode(html解碼,HTML編碼繞過思路),t:replaceComments(刪除注釋,防御注釋繞過/*!sql_code*/這種漏洞利用),t:compressWhiteSpace(/**/,空格/*&id=*/等繞過思路),t:lowercase(繞過基于黑名單的大小寫畸形繞過思路;SelCt FroM ..)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?d) auditLogParts=+E,log,auditlog,msg:'SQL injection Attack;,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? id:'950001&@#039;,tag:'WEB_ATTACK/SQL_INJECTION',logdata:'%{TX.0}',severity:'CRITICAL'"
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 借助之前的正則捕獲分組特性將抓到的攻擊參數記錄進數據庫,方便審計人員后續的跟進以及0DAY的捕獲。注意在這之前要進行轉移處理以避免日志偽造攻擊(success/r admin failed...偽造換行符的攻擊)。
? ? ? ? ? ? ? ? ? ? ?????????????? ? 總體來說,ModSecurity的這個規則集是基于消極模型的黑名單規則,它們可以根據應用產生錯誤肯定。因而,這些動作action的最好的動作就是log。因為黑名單是一種經驗的產物,只要被黑名單匹配到就"一定(相對)"是一種攻擊模式。而要實現白名單,感覺就難很多,首先要解決的第一個問題就是:什么樣的行為是正確的,不同的應用(銀行系統,CMS,B2C)的業務差別很大,用戶在瀏覽和使用過程中產生的點擊行為也差別很大,例如對于銀行業務來說,用戶的操作一般是遵循一條線性的軌跡,不會差太多。而對于B2C網站來說,往往各個鏈接之間的關聯不是很大,用戶經常會產生跳躍性URL。這個行為模式很難去界定。
????????????????????????????????? ? ? 舉個白名單的例子,假如在script.php的請求中必須包含一個id參數,它的值必須是1~3位長度的數字。我們可以這樣編寫正則表達式:
<Location /app/script.php>SecRule &ARGS "!@eq 1"SecRule ARGS_NAMES "!^id$" SecRule ARGS:id "!^d{1,3}$" </Location>????????????????????????????????2.3.3.3 規則編寫(響應)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?WAF在減輕SQL注入的影響方面還有另外一個關鍵特性---抑制關鍵信息泄露。
????????????????????????????????? ?modsecurity_crs_50_outbound.conf
# SQL Errors leakage SecRule RESPONSE_BODY "(?:\b(?:?:s(?:elect list because it is not contained in (?:an aggregate function and there is no|either an aggregate function or the GROUP BY clause|upplied argument is not a valid (?:(?:M(?:s |y)|Postgre)SQL|O(?:racle|DEC)))|S(?:yntax error converting the \w+ value .*? to a column of data type|QL Server does not exist or access denied)|Either BOF is True , or the current record has been deleted(?:; the operation|\. Requested)|The column prefix .{0,50}? does not match with a table name or alias name used in the query|Could not find server '\w+' in sysservers\. execute sp_addlinkedserver)\b|Un(?:closed quotation mark before the character string\b|able to connect to PostgreSQL server:)|(?:Microsoft OLE DB Provider for .{0,30} [eE]rror |error '800a01b8)'|(?:Warning: mysql_connect\(\)|PostgreSQL query failed):|you have an error in your SQL syntax(?: near '|;)|cannot take a \w+ data type as an argument\*.|incorrect syntax near (?:\'|the\b|@@error\b)|microsoft jet database engine error'8|ORA-\d(5)}: ) |\[Microsoft\]\[ODBC\"\"Phase:4,t:none,ctl:auditLogParts=+E,deny,log,auditlog,status:500,msg:'SQLInformation Leakate'970003',tag:'LEAKAGE/ERRORS', severity:'4'"????????????????????????????????? ? 一般來說,泄露與應用行為有關的不必要的信息會明顯幫助攻擊者發現應用中的弱點。這些信息包括軟件版本(攻擊者可以針對性的進行NDAY攻擊)和與應用失敗有關的錯誤明細(sqlserver的錯誤回顯尤其嚴重,例如利用強制類型轉換的錯誤回顯注入),比如發生在數據庫服務器上的sql語法錯誤,有時候,不僅錯誤本身,攻擊者還可以利用sql的邏輯推理來實施盲注。
? ? ? ? ? ? ? ? ? ?2.3.4 總結
? ? ? ? ? ? ? ? ? ? ? ? ? ? 可以使用傳統的基于網絡的IDS(Intrusion Detection Systems)來檢測SQL注入攻擊。但這些IDS距離應用和Web服務器非常遠,通常不是最理想的選擇。如果已經在網絡中運行了這樣一種IDS,則可以修改它并將其作為防御的起始線??梢詫AF作為一種非常好的IDS,因為它運行在應用層并且可針對受保護的應用進行微調。
備注:
? ? ? ?SQL Injection Pocket Reference鏈接:
https://docs.google.com/document/d/1rO_LCBKJY0puvRhPhAfTD2iNVPfR4e9KiKDpDE2enMI/edit?pli=1#
總結
- 上一篇: 中文pppoe中文拨号的解决方案
- 下一篇: 读WAF与IPS的区别总结之摘抄