如何用Azure Web 應(yīng)用防火墻攔截黑客攻擊?
我來答

如何用Azure Web 應(yīng)用防火墻攔截黑客攻擊?

李莉平 2020-08-18 提問
277

如題,怎么用Azure Web 應(yīng)用防火墻攔截黑客攻擊?

關(guān)閉
提交回答
1 個(gè)回答
我來答
胡志敏

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。

ia_4100000654.jpg

Azure WAF可以整合到Front Door,Application Gateway及Azure CDN中。其中的Front Door我曾經(jīng)寫過幾篇文章介紹(見文末),最為熟悉,所以以此為例,Policy for里選擇"Front Door"。Policy name可以任意指定。

ia_4100000655.jpg

Mode設(shè)置為Prevention,即攔截模式,可以阻止被識(shí)別的攻擊。而Detection模式只會(huì)記錄日志,并放行攻擊行為,假裝沒看見。

Block response body的內(nèi)容可以留空,也可以設(shè)置為給黑客的問候語,當(dāng)攻擊行為被攔截的時(shí)候就會(huì)顯示在黑客的屏幕上。

ia_4100000656.jpg

Managed rules中列出了微軟提供的幾款常用防火墻規(guī)則,可以勾選你需要的。其中涵蓋了常見的SQL注入、XSS、Windows,Linux遠(yuǎn)程命令執(zhí)行、PHP注入、惡意機(jī)器人等等非常全面的攻擊行為規(guī)則。試想一下,如果沒有WAF,就需要程序員花費(fèi)一定時(shí)間手寫代碼,而用了Azure,只要輕松點(diǎn)點(diǎn)鼠標(biāo)就完成配置了。

ia_4100000655.jpg

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即生效。

ia_4100000657.jpg

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請求的情況:

ia_4100000659.jpg

可以發(fā)現(xiàn)這段時(shí)間的failure幾乎都是404。實(shí)際上網(wǎng)站在這段時(shí)間內(nèi)可以正常訪問。

ia_4100000660.jpg

Drill in進(jìn)去就能發(fā)現(xiàn)這些404請求都是黑客工具在嘗試常見的PHP系統(tǒng)漏洞。

ia_4100000661.jpg

還嘗試SQL注入,在URL最后加個(gè)單引號。

ia_4100000662.jpg

實(shí)際上Azure WAF的managed rules里已經(jīng)能夠防御大部分這樣的掃描,但如果想通過自定義規(guī)則來實(shí)現(xiàn),也可以,比如屏蔽所有.php的請求。進(jìn)入Azure WAF,Custom rules,添加一個(gè)自定義規(guī)則。

ia_4100000663.jpg

指定一個(gè)名稱,例如BlockPHPExtension,將Rule type設(shè)置為Match

ia_4100000664.jpg

Condition為規(guī)則觸發(fā)條件。為了匹配所有以.php結(jié)尾的請求,我們可以:

  • Match type: String

  • Match variable: RequestUri

  • Operation: is

  • Operator: Ends with

  • Transformation: Lowercase

  • Match values: .php

  • 最后拒絕請求:Deny traffic

ia_4100000665.jpg

保存規(guī)則后等5分鐘左右,嘗試訪問.php結(jié)尾的URL,就是這個(gè)效果:

ia_4100000666.jpg

Response Headers里也能看到本次攔截是Azure WAF的功勞。

ia_4100000667.jpg

這個(gè)Custom rules還支持多種條件組合。例如屏蔽或僅允許某些國家及地區(qū)的請求、屏蔽短時(shí)間大量請求(Rate limit)、屏蔽大數(shù)據(jù)量的請求(Size)等等。可以輕松滿足各自的需要。

ia_4100000668.jpg

ia_4100000669.jpg


回答于 2020-08-18
贊同
評論
掃碼關(guān)注
獲取更多出海問答的相關(guān)信息
小程序
快出海小程序
公眾號
快出海公眾號
商務(wù)合作
商務(wù)合作
投稿采訪
投稿采訪
出海管家
出海管家