WAF
Web應用防護系統
Web應用防護系統(也稱為:網站應用級入侵防禦系統。英文:Web Application Firewall,簡稱: WAF)。利用國際上公認的一種說法:Web應用防火牆是通過執行一系列針對HTTP/HTTPS的安全策略來專門為Web應用提供保護的一款產品。
當WEB應用越來越為豐富的同時,WEB 伺服器以其強大的計算能力、處理性能及蘊含的較高價值逐漸成為主要攻擊目標。SQL注入、網頁篡改、網頁掛馬等安全事件,頻繁發生。2007年,國家計算機網路應急技術處理協調中心(簡稱CNCERT/CC)監測到中國大陸被篡改網站總數累積達61228個,比2006年增加了1.5倍。其中,中國大陸政府網站被篡改各月累計達4234個。
企業等用戶一般採用防火牆作為安全保障體系的第一道防線。但是,在現實中,他們存在這樣那樣的問題,由此產生了WAF(Web應用防護系統)。Web應用防護系統(Web Application Firewall, 簡稱:WAF)代表了一類新興的信息安全技術,用以解決諸如防火牆一類傳統設備束手無策的Web應用安全問題。與傳統防火牆不同,WAF工作在應用層,因此對Web應用防護具有先天的技術優勢。基於對Web應用業務和邏輯的深刻理解,WAF對來自Web應用程序客戶端的各類請求進行內容檢測和驗證,確保其安全性與合法性,對非法的請求予以實時阻斷,從而對各類網站站點進行有效防護。
對於系統自身安全相關的下列事件產生審計記錄:
(1)管理員登陸後進行的操作行為;
(2)對安全策略進行添加、修改、刪除等操作行為;
(3)對管理角色進行增加、刪除和屬性修改等操作行為;
(4)對其他安全功能配置參數的設置或更新等行為。
用來控制對Web應用的訪問,既包括主動安全模式也包括被動安全模式。
當運行在反向代理模式,他們被用來分配職能,集中控制,虛擬基礎結構等。
這些功能增強被保護Web應用的安全性,它不僅能夠屏蔽WEB應用固有弱點,而且 能夠保護WEB應用編程錯誤導致的安全隱患。
需要指出的是,並非每種被稱為Web應用防火牆的設備都同時具有以上四種功能。
同時WEB應用防火牆還具有多面性的特點。比如從網路入侵檢測的角度來看可以把WAF看成運行在HTTP層上的IDS設備;從防火牆角度來看,WAF是一種防火牆的功能模塊;還有人把WAF看作“深度檢測防火牆”的增強。(深度檢測防火牆通常工作在的網路的第三層以及更高的層次,而Web應用防火牆則在第七層處理HTTP服務並且更好地支持它。)
打開 /www/server/nginx/waf 目錄,裡面的 config.lua 文件就是waf防火牆的配置文件。每一項的具體含義如下所示:
RulePath=”/www/server/panel/vhost/wafconf/”–waf 詳細規則存放目錄(一般無需修改)
attacklog =“on”–是否開啟攻擊日誌記錄(on 代表開啟,off 代表關閉。下同)
logdir =”/www/wwwlogs/waf/”–攻擊日誌文件存放目錄(一般無需修改)
UrlDeny=“on”–是否開啟惡意 url 攔截
Redirect=“on”–攔截后是否重定向
CookieMatch=“off”–是否開啟惡意Cookie攔截
postMatch=“off”–是否開啟 POST 攻擊攔截
whiteModule=“on”–是否開啟 url 白名單
black_fileExt={“php”,“jsp”}–文件後綴名上傳黑名單,如有多個則用英文逗號分隔。如:{“後綴名1”,“後綴名2”,“後綴名3”……}
ipWhitelist={“127.0.0.1”}–白名單 IP,如有多個則用英文逗號分隔。如:
{“127.0.0.1”,“127.0.0.2”,“127.0.0.3”……}下同
ipBlocklist={“1.0.0.1”}–黑名單 IP
CCDeny=“off”–是否開啟 CC 攻擊攔截
CCrate=“300/60”–CC 攻擊攔截閾值,單位為秒。”300/60″代表60秒內如果同一個 IP 訪問了300次則拉黑
配置文件中,RulePath 項對應的文件夾里存放的是具體的攔截規則。文件夾下有著相關的規則文件。作用解析如下:
args –GET 參數攔截規則
blockip –無作用
cookie –Cookie攔截規則
denycc –無作用
post –POST 參數攔截規則
returnhtml –被攔截后的提示頁面(HTML)
url –url 攔截規則
user-agent –UA 攔截規則
whiteip –無作用
whiteurl –白名單網址
Web應用防火牆會對HTTP的請求進行異常檢測,拒絕不符合HTTP標準的請求。並且,它也可以只允許HTTP協議的部分選項通過,從而減少攻擊的影響範圍。甚至,一些Web應用防火牆還可以嚴格限定HTTP協議中那些過於鬆散或未被完全制定的選項。
WAF部署拓撲
修補Web安全漏洞,是Web應用開發者最頭痛的問題,沒人會知道下一秒有什麼樣的漏洞出現,會為Web應用帶來什麼樣的危害。WAF可以為我們做這項工作了——只要有全面的漏洞信息WAF能在不到一個小時的時間內屏蔽掉這個漏洞。當然,這種屏蔽掉漏洞的方式不是非常完美的,並且沒有安裝對應的補丁本身就是一種安全威脅,但我們在沒有選擇的情況下,任何保護措施都比沒有保護措施更好。
(附註:及時補丁的原理可以更好的適用於基於XML的應用中,因為這些應用的通信協議都具規範性。)
基於規則的保護可以提供各種Web應用的安全規則,WAF生產商會維護這個規則庫,並時時為其更新。用戶可以按照這些規則對應用進行全方面檢測。還有的產品可以基於合法應用數據建立模型,並以此為依據判斷應用數據的異常。但這需要對用戶企業的應用具有十分透徹的了解才可能做到,可現實中這是十分困難的一件事情。
WAF能夠判斷用戶是否是第一次訪問並且將請求重定向到默認登錄頁面並且記錄事件。通過檢測用戶的整個操作行為我們可以更容易識別攻擊。狀態管理模式還能檢測出異常事件(比如登陸失敗),並且在達到極限值時進行處理。這對暴力攻擊的識別和響應是十分有利的。
WAF還有一些安全增強的功能,可以用來解決WEB程序員過分信任輸入數據帶來的問題。比如:隱藏表單域保護、抗入侵規避技術、響應監視和信息泄露保護。
Waf Build Tool
是基於python的開源編譯系統,
Waf is an open-source build system that is based on Python. It has a number of qualities that make it very attractive to use on our team: it is quite fast, has a very strong dependency model, and is flexible enough to support all of the custom tools and file formats that are used in our build process.