Home Blogs WAF調諧變得輕鬆
Applications

About The Author

Outline

中小企業和新企業面臨着重大的安全挑戰。 他們需要一個複雜的安全解決方案來保證Web應用程式的安全,同時最大限度地降低僱用專門安全專家或第三方託管服務的成本。 隨着新的攻擊媒介不斷湧現,Web應用程式安全變得越來越重要,而且比以往任何時候都更具挑戰性。

Edgecast,現在是Edgio,WAF就是解決方案。 它提供了一個強大而複雜的解決方案,簡化了管理。 實時儀表板和日誌交付可提供最新的可見性,因此管理員可以快速識別威脅並採取行動。

在本部落格中,我們將重點介紹企業如何識別和消除誤報,以及如何爲其Web應用程式構建自定義解決方案,而不會產生任何額外的支援成本。

如果您對此空間不熟悉,但尚未使用Edgio WAF,請觀看此簡短教程,瞭解用戶界面及其工作原理。

如果您已經有帳戶,請隨時與我進行此練習。

1.首先,讓我們轉到實時儀表板並按時間過濾WAF事件。 這是您要分析Web流量的時間段。 (注意:如果您之前已經執行過一些規則調整,請確保在最近一次調整之後選擇一個時間範圍)。

圖1:過去6小時內發生的WAF事件。

2.查看此流量觸發的前10個規則ID。 規則ID是進一步篩選流量和觀察各種WAF事件的有效負載的絕佳方式。 也就是說,開始逐個篩選這些規則ID的流量,以便進一步分析。

圖2:WAF事件觸發的前10個規則。

3.接下來,查看匹配值欄位,查看觸發此規則的有效負載值。

圖3:匹配值列下的有效負載值。

4.分析有效負載值以識別它們是否惡意。 不確定他們看起來怎麼樣? 以下是您可能在有效負載中發現的幾個潛在惡意值。

  • 路徑遍歷: http://some_site.com.br/../../../../some dir/some file¹ http://testsite.com/get.asp?f=/etc/passwd²‍
  • LFI漏洞: 攻擊者試圖訪問伺服器上的敏感文件,如.ini。 Edgecast WAF預設會封鎖這項功能以及其他許多重要的檔案系統延伸。³‍
  • 跨站點腳本: http://testsite.test/<腳本>alert(“測試”);</script>⁴ <img src=” http://url.to.file.which/not.exist”onerror=alert(document.cookie);>⁵‍
  • SQL注入: 從‘a’=’a’的項目中選擇*;⁶選擇1;⁷‍
  • 遠程執行代碼: Eval(“\\$USER =‘$regdate’);⁸‍
  • 基於時間的攻擊: 選擇1和睡眠(2);⁹選擇Benchmark (2000000,MD5(‘a’));¹⁰

5.如果您仍不確定有效負載是否惡意,最好的方法是查看使用相應有效負載啓動請求的客戶端IP列表。 如果客戶端IP分佈(也就是說,不同),則有效負載很可能是假陽性。 但是,如果所有客戶端IP都具有相同的值,則表明可能存在容量攻擊,從而將其歸類爲惡意負載。 爲了說明這一點,讓我們參考步驟3,選擇此匹配的值–{“IATA”:[“TGZ”,”MEX”]},並將其用作示例。 要查找發送此有效負載的客戶端IP列表,請將匹配值添加爲過濾器,如下所示:

圖5:發送有效負載值的客戶端IP:{“IATA”:[“TGZ”,”MEX”]}。

在這種情況下,鑑於發出此請求的IP地址多種多樣,這些請求很可能來自真實用戶,因此這是僞造正面消息的好選擇。

6.識別出誤報後,您可以在”託管規則”部分爲其創建異常,但在執行此操作之前,您需要了解此有效負載的位置;查詢字元串,請求標題,URL或其他位置。 通過查看步驟5中同一頁面上的”匹配項”列即可輕鬆完成此操作。 在這種使用情況下,有效負載在”數據”查詢參數中找到,如下所示:

圖6:有效載荷值的位置:{“IATA”:[“TGZ”,”MEX”]}。

7.一個好的經驗法則是,篩選包含假陽性有效負載的欄位上的這些特定匹配項,然後驗證是否沒有任何其他請求與此匹配的參數(帶有實際惡意有效負載)匹配。 換句話說,特定匹配場中的有效載荷從不惡意。 這是通過在相關欄位上添加匹配的過濾器來實現的。 查看我們的使用案例,我們可以確認在此查詢參數中沒有發現任何惡意有效負載:

圖7:查詢參數中發送的所有有效負載值:數據。

8.創建異常之前的最後一步是查找由”匹配對象”欄位觸發的規則ID。 我們嘗試記錄由此假陽性觸發的所有規則(規則ID)。 根據我們的使用案例,此資訊可在步驟5的同一頁面上找到。

圖8:由有效載荷值觸發的規則列表:{“IATA”:[“TGZ”,”MEX”]}。

9.現在是創建例外的時候了。 轉到”託管規則”部分,然後單擊要向其中添加這些例外的託管規則。

圖9:爲WAF配置創建的現有託管規則。

10.轉到”例外”選項卡並單擊”添加新條件”。 在欄位中選擇匹配的類型,如args,request_cookie或找到有效負載的URL。 然後輸入參數的名稱,如查詢或cookie。 最後,輸入負載觸發的所有規則ID的列表。

圖10:”受管規則”配置下的”例外”選項卡。

11.繼續,創造這種條件。 在保存受管規則後的30秒內,您將能夠看到這種假陽性消息正在通過WAF

12.既然您已經知道這是如何運作的,請回到步驟3 ,用另一個規則ID過濾流量,然後重複此過程,儘可能多地消除誤報。

你做到了。 您剛剛爲您的流量自定義WAF解決方案。

最後幾個祕訣

如果您是第一次使用Edgio WAF,建議您在開啓封鎖模式之前,先執行2-3回合的練習。 根據您的流量,您可以每2-7天重複此練習。 對於現有Edgio WAF客戶,我們建議每3-4周執行一次微調練習。 另一件應該考慮的事情是將託管規則的閾值降低到小於10,逐漸將您的方法設定爲5的最佳值。 這可確保您穩定地制定更精確,更清晰的規則集。 請記住,Edgio WAF提供了雙WAF,這是一個用於實時流量的實際暫存環境(審覈模式)。 您可以使用稽覈模式來進行所有重複更新,並微調規則集,而不必擔心會丟棄合法流量。

請立即與我們聯繫,瞭解更多有關我們所有可確保您的Web應用程式安全的安全技術的資訊。

資源:

¹⁻² OWASP,”Path Traversal“,owasp.org, owasp.org/www-community/attacks/Path_Traversal

³ Offensive Security,“File Inclusion Vulnerabilities”,offensive-security.com, offensive-security.com/metasploit-unleashed/file-inclusion-vulnerabilities/

⁴⁻⁵ OWASP,”跨站點腳本“,owasp.org, owasp.org/www-community/attacks/xss/

⁶⁻⁷OWASP,“SQL注入”,owasp.org, owasp.org/www-community/attacks/SQL_Injection

⁸ Netsparker,”遠程代碼評估(執行)漏洞“,netsparker.com, netsparker.com/blog/web-security/remote-code-evaluation-execution/

⁹⁻¹⁰ Ashraff,Ahmad,”基於時間的Web應用程式攻擊“,owasp.org, owasp.org/www-pdf-archive/2018-02-05-AhmadAshraff.pdf