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

來源: 微軟中國MSDN
作者:汪宇杰
時間:2020-08-17
2888
Azure Web應(yīng)用程序防火墻(WAF)是原生的托管服務(wù),可為Web應(yīng)用程序提供保護,使其免受常見漏洞和漏洞的影響。

ia_4100000651.jpg

汪宇杰

10年網(wǎng)站開發(fā)和運維經(jīng)驗,Azure和.NET方向開發(fā)者、Azure全球訓練營講師、3年連任微軟最有價值專家(MVP)?,F(xiàn)任美國領(lǐng)先金融科技企業(yè)高級工程師。作為積極的微軟技術(shù)布道者,曾在Windows 10平臺發(fā)布“描圖”、“Character Map UWP”等總計數(shù)十款開源無廣告版本應(yīng)用,累積百萬全球裝機量,被Windows Central、IT之家等知名科技媒體多次推薦。長期運營個人博客https://edi.wang、微信公眾號“汪宇杰博客”,參與GitHub多個開源項目,擁有開源、無廣告、非營利傳播技術(shù)的技術(shù)信仰。

開發(fā)或運維過網(wǎng)站的朋友總免不了遇到不懷好意的訪客?;ヂ?lián)網(wǎng)上有許多全自動黑客工具及腳本,可以掃描你的網(wǎng)站是否有已知安全漏洞,并全自動發(fā)起攻擊,企圖奪取服務(wù)器控制權(quán)。盡管我們可以在編寫網(wǎng)站程序的時候盡量做到符合安全標準,但難免會有疏忽的時候。因此企業(yè)常常采購網(wǎng)站應(yīng)用防火墻(WAF),部署在網(wǎng)站入口,來攔截常見的攻擊行為。微軟Azure上也有成熟的WAF服務(wù),可以讓我們僅需點幾下鼠標便可完成防火墻配置。

Azure WAF簡介

Azure Web應(yīng)用程序防火墻(WAF)是原生的托管服務(wù),可為您的Web應(yīng)用程序提供保護,使其免受常見漏洞和漏洞的影響。Web應(yīng)用程序越來越成為各種類型的攻擊的目標,例如惡意機器人、SQL注入攻擊和跨站腳本攻擊,這些攻擊可能導致網(wǎng)站站點破壞,敏感數(shù)據(jù)泄露和應(yīng)用程序宕機。防止應(yīng)用程序代碼中的此類攻擊具有難度,并且可能需要在應(yīng)用程序拓撲的多層進行嚴格的維護,修補和監(jiān)視。集中式Web應(yīng)用程序防火墻有助于簡化安全管理,并更好地確保應(yīng)用程序管理員免受威脅或入侵。此外,WAF解決方案可以通過在中心位置修補已知漏洞而不是保護每個單獨的Web應(yīng)用程序來更快地響應(yīng)安全威脅。

01

創(chuàng)建Azure WAF

在Azure Portal里點擊Create a resource,搜索"WAF",選擇"Web Application Firewall",點擊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,即攔截模式,可以阻止被識別的攻擊。而Detection模式只會記錄日志,并放行攻擊行為,假裝沒看見。

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

ia_4100000656.jpg

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

ia_4100000655.jpg

Custom rules允許我們設(shè)置微軟不提供的自定義防火墻規(guī)則。我們在稍后會介紹,此處先跳過。這些規(guī)則以及Managed rules都可以在創(chuàng)建完WAF后更改。

由于這個WAF策略在第一步里設(shè)置為了Front Door,因此我們需要關(guān)聯(lián)Front Door中的域名。至于Front Door是什么,怎么操作,可以參考我之前的文章。

最后點擊Review+Create,完成WAF創(chuàng)建。如果成功關(guān)聯(lián)了Front Door,那么等待5分鐘左右,WAF即生效。

ia_4100000657.jpg

02

使用自定義規(guī)則

Azure WAF允許用戶非常靈活地自定義防火墻規(guī)則。例如,我的博客并不是PHP寫的,所以請求.php的往往是黑客掃描工具。我想屏蔽.php的請求。那么我可以添加一個自定義規(guī)則,查找URL為.php結(jié)尾的請求,并阻止掉。

至于所謂黑客的掃描工具,并不是我瞎編的,可以給大家看個實際案例。我的博客運營11年間,經(jīng)常被黑客工具掃描,而用了Azure以后,Application Insight就能監(jiān)測到這種短時間大量404請求的情況:

ia_4100000659.jpg

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

ia_4100000660.jpg

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

ia_4100000661.jpg

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

ia_4100000662.jpg

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

ia_4100000663.jpg

指定一個名稱,例如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,就是這個效果:

ia_4100000666.jpg

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

ia_4100000667.jpg

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

ia_4100000668.jpg

ia_4100000669.jpg

微軟最有價值專家是微軟公司授予第三方技術(shù)專業(yè)人士的一個全球獎項。27年來,世界各地的技術(shù)社區(qū)領(lǐng)導者,因其在線上和線下的技術(shù)社區(qū)中分享專業(yè)知識和經(jīng)驗而獲得此獎項。

MVP是經(jīng)過嚴格挑選的專家團隊,他們代表著技術(shù)最精湛且最具智慧的人,是對社區(qū)投入極大的熱情并樂于助人的專家。MVP致力于通過演講、論壇問答、創(chuàng)建網(wǎng)站、撰寫博客、分享視頻、開源項目、組織會議等方式來幫助他人,并最大程度地幫助微軟技術(shù)社區(qū)用戶使用Microsoft技術(shù)。

更多詳情請登錄官方網(wǎng)站:

https://mvp.microsoft.com/zh-cn

原文鏈接:點擊前往 >
文章來源: 微軟中國MSDN
版權(quán)說明:本文內(nèi)容來自于 微軟中國MSDN,本站不擁有所有權(quán),不承擔相關(guān)法律責任。文章內(nèi)容系作者個人觀點,不代表快出海對觀點贊同或支持。如有侵權(quán),請聯(lián)系管理員(zzx@kchuhai.com)刪除!
個人VIP
小程序
快出海小程序
公眾號
快出海公眾號
商務(wù)合作
商務(wù)合作
投稿采訪
投稿采訪
出海管家
出海管家