如題,怎么用Azure Web 應(yīng)用防火墻攔截黑客攻擊?
Azure Web應(yīng)用程序防火墻(WAF)是原生的托管服務(wù),可為Web應(yīng)用程序提供保護(hù),使其免受常見漏洞和漏洞的影響。Web應(yīng)用程序越來越成為各種類型的攻擊的目標(biāo),例如惡意機(jī)器人、SQL注入攻擊和跨站腳本攻擊,這些攻擊可能導(dǎo)致網(wǎng)站站點(diǎn)破壞,敏感數(shù)據(jù)泄露和應(yīng)用程序宕機(jī)。下面是使用 Azure Web 應(yīng)用防火墻攔截黑客攻擊的具體步驟。
01創(chuàng)建Azure WAF
在Azure Portal里點(diǎn)擊Create a resource,搜索"WAF",選擇"Web Application Firewall",點(diǎn)擊Create。
Azure WAF可以整合到Front Door,Application Gateway及Azure CDN中。其中的Front Door我曾經(jīng)寫過幾篇文章介紹(見文末),最為熟悉,所以以此為例,Policy for里選擇"Front Door"。Policy name可以任意指定。
Mode設(shè)置為Prevention,即攔截模式,可以阻止被識(shí)別的攻擊。而Detection模式只會(huì)記錄日志,并放行攻擊行為,假裝沒看見。
Block response body的內(nèi)容可以留空,也可以設(shè)置為給黑客的問候語,當(dāng)攻擊行為被攔截的時(shí)候就會(huì)顯示在黑客的屏幕上。
Managed rules中列出了微軟提供的幾款常用防火墻規(guī)則,可以勾選你需要的。其中涵蓋了常見的SQL注入、XSS、Windows,Linux遠(yuǎn)程命令執(zhí)行、PHP注入、惡意機(jī)器人等等非常全面的攻擊行為規(guī)則。試想一下,如果沒有WAF,就需要程序員花費(fèi)一定時(shí)間手寫代碼,而用了Azure,只要輕松點(diǎn)點(diǎn)鼠標(biāo)就完成配置了。
Custom rules允許我們設(shè)置微軟不提供的自定義防火墻規(guī)則。我們在稍后會(huì)介紹,此處先跳過。這些規(guī)則以及Managed rules都可以在創(chuàng)建完WAF后更改。
由于這個(gè)WAF策略在第一步里設(shè)置為了Front Door,因此我們需要關(guān)聯(lián)Front Door中的域名。至于Front Door是什么,怎么操作,可以參考我之前的文章。
最后點(diǎn)擊Review+Create,完成WAF創(chuàng)建。如果成功關(guān)聯(lián)了Front Door,那么等待5分鐘左右,WAF即生效。
02使用自定義規(guī)則
Azure WAF允許用戶非常靈活地自定義防火墻規(guī)則。例如,我的博客并不是PHP寫的,所以請求.php的往往是黑客掃描工具。我想屏蔽.php的請求。那么我可以添加一個(gè)自定義規(guī)則,查找URL為.php結(jié)尾的請求,并阻止掉。
至于所謂黑客的掃描工具,并不是我瞎編的,可以給大家看個(gè)實(shí)際案例。我的博客運(yùn)營11年間,經(jīng)常被黑客工具掃描,而用了Azure以后,Application Insight就能監(jiān)測到這種短時(shí)間大量404請求的情況:
可以發(fā)現(xiàn)這段時(shí)間的failure幾乎都是404。實(shí)際上網(wǎng)站在這段時(shí)間內(nèi)可以正常訪問。
Drill in進(jìn)去就能發(fā)現(xiàn)這些404請求都是黑客工具在嘗試常見的PHP系統(tǒng)漏洞。
還嘗試SQL注入,在URL最后加個(gè)單引號。
實(shí)際上Azure WAF的managed rules里已經(jīng)能夠防御大部分這樣的掃描,但如果想通過自定義規(guī)則來實(shí)現(xiàn),也可以,比如屏蔽所有.php的請求。進(jìn)入Azure WAF,Custom rules,添加一個(gè)自定義規(guī)則。
指定一個(gè)名稱,例如BlockPHPExtension,將Rule type設(shè)置為Match
Condition為規(guī)則觸發(fā)條件。為了匹配所有以.php結(jié)尾的請求,我們可以:
Match type: String
Match variable: RequestUri
Operation: is
Operator: Ends with
Transformation: Lowercase
Match values: .php
最后拒絕請求:Deny traffic
保存規(guī)則后等5分鐘左右,嘗試訪問.php結(jié)尾的URL,就是這個(gè)效果:
Response Headers里也能看到本次攔截是Azure WAF的功勞。
這個(gè)Custom rules還支持多種條件組合。例如屏蔽或僅允許某些國家及地區(qū)的請求、屏蔽短時(shí)間大量請求(Rate limit)、屏蔽大數(shù)據(jù)量的請求(Size)等等。可以輕松滿足各自的需要。