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