WAF是英文"Web Application Firewall"的縮寫,中文意思是"Web應用防火牆",也稱爲"網站應用級入侵防護系統"。WAF是集WEB防禦、網頁保護、負載均衡、應用交付於一體的WEB總體安全防禦設備。前端
WAF須要部署在Web服務器的前面,串行接入,不只在硬件性能上要求高,並且不能影響Web服務,因此HA功能、Bypass功能都是必須的,並且還要與負載均衡、Web Cache等Web服務器前的常見的產品協調部署。web
WAF的主要技術是對入侵的檢測能力,尤爲是對Web服務入侵的檢測能力。常見的實現形式包括代理服務、特徵識別、算法識別、模式匹配。算法
代理服務shell
代理方式自己是一種安全網關,基於會話的雙向代理,中斷了用戶與服務器的直接鏈接,適用於各類加密協議,這也是Web的Cache應用中最經常使用的技術。代理方式有效防止入侵者的直接進入,對DDOS攻擊能夠抑制,對非預料的「特別」行爲也有所抑制。apache
特徵識別安全
識別出入侵者是防禦它的前提。特徵就是攻擊者的「指紋」,如緩衝區溢出時的Shellcode,SQL注入中常見的「真表達(1=1)」。應用信息沒有「標準」,但每一個軟件、行爲都有本身的特有屬性,病毒與蠕蟲的識別就採用此方式,麻煩的就是每種攻擊都本身的特徵,數量比較龐大,多了也容易相象,誤報的可能性也大。雖然目前惡意代碼的特徵指數型地增加,安全界聲言要淘汰此項技術,但目前應用層的識別尚未特別好的方式。服務器
算法識別cookie
特徵識別有缺點,人們在尋求新的方式。對攻擊類型進行歸類,相同類的特徵進行模式化,再也不是單個特徵的比較,算法識別有些相似模式識別,但對攻擊方式依賴性很強,如SQL注入、DDOS、XSS等都開發了相應的識別算法。算法識別是進行語義理解,而不是靠「長相」識別。網絡
模式匹配app
IDS中「古老」的技術,把攻擊行爲概括成必定模式,匹配後能肯定是入侵行爲。協議模式是其中簡單的,是按標準協議的規程來定義模式,行爲模式就複雜一些。
WAF最大的挑戰是識別率,這並非一個容易測量的指標,由於漏網進去的入侵者,並不是都大肆張揚,好比給網頁掛馬,很難察覺進來的是哪個,不知道固然也沒法統計。對於已知的攻擊方式,能夠談識別率;對未知的攻擊方式,你也只好等他本身「跳」出來才知道。
WAF從形態上可分爲硬件WAF、WAF防禦軟件和雲WAF。
硬件WAF
一般串行部署在Web服務器前端,用於檢測、阻斷異常流量。經過代理技術代理來自外部的流量,並對請求包進行解析,經過安全規則庫的攻擊規則進行匹配,如成功匹配規則庫中的規則,則識別爲異常並進行請求阻斷。
軟件WAF
一般部署在須要防禦的服務器上,經過監聽端口或以Web容器擴展方式進行請求檢測和阻斷。
雲WAF
雲WAF,也稱WEB應用防火牆的雲模式,這種模式讓用戶不須要在本身的網絡中安裝軟件程序或部署硬件設備,就能夠對網站實施安全防禦,它的主要實現方式是利用DNS技術,經過移交域名解析權來實現安全防禦。用戶的請求首先發送到雲端節點進行檢測,如存在異常請求則進行攔截不然將請求轉發至真實服務器。
WAF的做用主要包括WEB防禦和防止WEB信息泄露兩大部分,具體以下:
Web防禦
1.網絡層:DDOS攻擊、Syn Flood、Ack Flood、Http/Https Flood(CC攻擊)、慢速攻擊;
2.應用層:URL黑白名單、HTTP協議規範(包括特殊字符過濾、請求方式、內容傳輸方式,例如:multipart/form-data,text/xml,application/x-www-form-urlencoded);
3.注入攻擊(form和URL參數,post和get):SQL注入防護、 LDAP注入防護、 命令注入防禦(OS命令,webshell等)、 XPath注入、 Xml/Json注入、XSS攻擊(form和URL參數,post和get,現階段分爲三類攻擊:存儲式(危害大,也是一種流行方式),反射式、基於Dom的XSS);
4.目錄遍歷(Path Traversal)
5.form表單數據驗證和表單篡改和注入(表單驗證銀行卡、數據、日期等)
6.認證管理和會話劫持(cookie加密:防禦會話劫持,包括cookie超時)。
7.內容過濾(這兒強調上傳內容過濾post form和get 參數,主要應用論壇)
8.Web服務器漏洞探測(apache版本等隱藏,站點隱藏)
9.爬蟲防禦(基於SRC IP,週期判斷訪問數,爬蟲白名單除外)
10.CSRF(Cross-site request forgery)(WAF採用token方式處理可以解決)
11.篡改(包括盜鏈)(WAF週期爬服務器網頁,進行對比驗證,若是篡改發現篡改,Client訪問WAF網頁)
12Web服務器漏洞掃描(模擬攻擊,判斷缺陷,自動配置對應規則)
13.cache加速(靜態頁面優化,PDF,圖片等,須要週期映像)
14.錯誤碼過濾(探測服務,及其目錄結構)
15.站點轉換(URL rewrite)
16.發現攻擊鎖定(發現攻擊,鎖定用戶)
17.查殺毒
18.加密傳輸(http -> https轉化,即client-waf之間經過https,waf與server之間http)。
URL ACL(URL匹配一些規則)。
防止Web信息泄露
銀行卡(信用卡、借記卡)、社保卡、駕照等,採用覆蓋和隱藏兩種方式。
敏感詞過濾、Web中關鍵詞(政治敏感詞、技術關鍵詞等)
防止文件泄露(word、pdf等擴展文件及其關鍵詞),Web服務器上的文件。