Azure WAF工作原理分析和配置向導
本文博客地址為:http://www.cnblogs.com/taosha/p/6716434.html ,轉載請保留出處,多謝!
本地數據中心往雲端遷移的的趨勢越來越明顯,安全始終是最熱門的話題之一。
本文討論的內容是Azure WAF,即微軟公有雲Azure的Web application firewall(下均簡稱WAF)。內容概述:
- 什么是WAF
隨着互聯網的進一步發展,Web應用大行其道,承載了客戶越來越多的應用,甚至各種核心應用,針對Web應用的"掘金行動"也越來越多,網上報道的各類受攻擊事件呈直線上升趨勢。WAF全稱Web application firewall,就是網站應用程序防火牆,顧名思義是專門針對Web應用的防火牆,這是一個細分領域的針對性防火牆。
2.Azure WAF功能和特點
微軟在雲端提供了WAF功能,目前這個功能還僅僅在海外版提供使用,國內21V的版本還沒有提供,不過海外有了,國內估計也快了,確實客戶的剛性需求擺在這里呢。
WAF不僅僅只是防御Web的http訪問,可以對Web應用做到全方位的立體防護。可以防范:
- 常見的命令注入攻擊,利用網頁漏洞將含有操作系統或軟件平台命令注入到網頁訪問語句中以盜取數據或后端服務器的控制權
- SQL 注入,找到數據查詢語句漏洞,通過數據庫查詢代碼竊取或修改數據庫中的數據
- 跨站腳本攻擊,利用網站漏洞攻擊訪問該站點的用戶,用戶登陸或認證信息;
- 各種HTTP 協議攻擊,利用http的協議漏洞進行攻擊;
- 機器人、 爬蟲和掃描,通過機器人,爬蟲,和掃描工具自動抓取網站數據以及對網站進行自動攻擊;
- 常見的應用程序配置錯誤 (如 Apache、 IIS 等),利用Web發布程序的配置漏洞或者已知bug進行攻擊
- HTTPS攻擊,使用SSL加密包繞過網絡防火牆和普通的WAF進行攻擊;
總結:微軟WAF使用開源的通用OWASP 規則包進行防范,目前支持CRS 2.2.9和CRS 3.0兩個版本的規則集。可以支持:
CRS規則集詳細內容參見:https://www.modsecurity.org/crs/以及https://docs.microsoft.com/en-us/azure/application-gateway/application-gateway-crs-rulegroups-rules
注意:Azure數據中心自帶防DDOS攻擊,所以WAF沒有防DDOS攻擊的能力。
Azure WAF的特點是配置簡單,功能強大,價格便宜;還可以將現有Application gateway快速升級為WAF。
3. Azure WAF的工作原理
這里要理解一下微軟WAF的設計理念,專有名詞和相關限制,這樣在后面配置時就比較清晰。
從網絡拓撲上來看,WAF是應用程序網關的一種,位置介於負載均衡器和后端服務器組之間,工作在OSI網絡堆棧的最高層--第七層,如下圖:
WAF可以分為前端捕獲,規則設置和監控(大腦),規定動作(監控or阻斷),日志存儲/監控展現四大部分,這四個部分在Azure WAF都有一一對應處理單元如下圖:
前端端口是前端流量入口點,綁定規則的監聽器則負責將流量導向不同的后端服務器池,Azure WAF提供兩種動作,一種是監控,即發現非法流量僅做記錄;第二種是保護,發現非法流量后會攔截該流量,僅允許合法流量通過WAF;每個后端服務器池提供一個Web應用服務;
理解上文的專有名詞,(吐槽一下各種名詞多多,很容易搞暈)
- Back-end server pool/后端服務器池:后台要保護的服務器池IP列表;每個池最大100台服務器,一個WAF最大支持20個后端服務器池;
- Back-end server pool settings/后端服務器池設置:每個服務器池單獨設置端口,協議等,注意配置會應用在該后端池的所有服務器上,針對不同應用建議設置不同的后端池;
- Front-end port/前端端口:設置應用網關上的公共IP,所有流量通過這個IP進入網關,再由網關重定向到后端服務器池;注意一個WAF只有一個公網前端和內網前端;
- Listener/監聽器:監聽器負責監聽前端端口;一個WAF最大20個監聽器;所有流量都必須經過監聽器處理;可以設置多個監聽器監聽不同端口或者不同協議的流量;
- Rule/規則:規則必須綁定到監聽器方可發生作用,所有進來的流量經過規則裁定后,再到后端服務器池,每個監聽器最大10條規則;規則有三個要素:監聽器名,后端服務器池,http協議及端口設置。只有知道這些要素WAF才知道該把HTTP/HTTPS(也許是非缺省端口)流量導向哪一個后端服務器池。
-
Certificates/認證: 使用Https的時候會用到。
4、一步步配置Azure WAF
理論已經講明白了,接下來配置非常簡單,可以按照如下順序配置:
第一步,首先你得先有個WAF,登陸Azure Global Portal在Application Gateway(應用程序網關)創建WAF;創建完成后如下圖,前端IP已經自動生成了;
第二步,配置WAF;
選擇開啟防火牆,防火牆模式就是動作模式,有兩種,選擇Detection監測模式,會記錄流量,不會阻斷非法流量;選擇Prevention會主動阻斷非法流量;
第三步,配置后端服務器池,
后端服務器池就是Web應用服務器的IP或者域名,可以有多個后端池;在規則設置中區分流量導向哪個后端服務器池;
第四步,配置Http協議和端口
我們前面提到過規則的三要素,前端,后端,http配置,這里可以配置端口,如果你后端服務器池用的不是通用的80端口,這里一定要做一下配置;這里也可以設置HTTP or HTTPS。
第五步,配置監聽器;
如上圖,針對不同端口的流量要用不同的監聽器進行監聽,一個WAF可以配置最大20個監聽器;
第六步,配置規則,
如果了解了WAF的工作原理,理解規則就非常容易,如前文所述,規則綁定在監聽器上,根據流量的類型和端口再將流量導向到指定的后端服務器池,如下圖所示,
到此為止,WAF就已經配置完成了,是不是非常簡單,但是可以為您的Web應用加上全方位的保護,這下終於可以安心的睡個覺了。
結尾:Azure WAF功能非常強大,不但支持Web應用的安全防護,還可以支持多站點流量分發(一個WAF最大20個站點),還支持將站點不同內容比如圖片PIC,視頻Video等根據需要導向到不同的后端服務器等等,有這么強大的WAF您還在等什么,微軟雲海外用戶可以趕緊用起來啦。