RESTful Api 規範在 WAF 中很重要

APIGit

2023-08-04

api-waf

什麼是WAF?

WAF 代表Web Application Firewall。它是一種安全解決方案,旨在保護 Web 應用程序免受各種在線威脅、漏洞和攻擊。 WAF 充當 Web 應用程序與外部世界之間的屏障,過濾和監控傳入和傳出流量以檢測和防止惡意活動。

WAF 的主要目的是保護 Web 應用程序免受常見攻擊,例如:

  • SQL注入: 攻擊者試圖將惡意 SQL 查詢插入輸入字段以操縱或獲得對數據庫的未經授權的訪問。

  • 跨站腳本(XSS): 惡意腳本被注入網頁,這可能導致用戶數據被盜或會話劫持。

  • 跨站請求偽造 (CSRF): 攻擊者誘騙用戶執行他們不希望的操作,通常會導致在 Web 應用程序上執行未經授權的操作。

  • 應用層DDoS攻擊: 攻擊者向 Web 應用程序發送大量請求,導致其資源不堪重負並導致其不可用。

  • 暴力攻擊: 反复嘗試猜測密碼或憑據以獲得對應用程序的未經授權的訪問。

  • 文件包含攻擊: 未經授權包含文件,通常用於獲取敏感文件的訪問權限或執行惡意代碼。

WAF 的運行方式是分析傳入的 HTTP 和 HTTPS 請求、檢查其內容是否存在可疑模式,並根據一組預定義的安全規則阻止或允許它們。一些 WAF 使用基於簽名的檢測,而另一些則採用行為分析和機器學習來識別和減輕威脅。

WAF 可以作為硬件設備、軟件解決方案或基於雲的服務來實施,它們在維護Web 應用程序的安全性和完整性方面發揮著至關重要的作用,特別是在當今在線威脅不斷演變的數字環境中。

WAF 如何工作?

Web 應用程序防火牆 (WAF) 的工作原理是監視、過濾和控制 Web 應用程序與其用戶之間的流量。它旨在識別和防止針對 Web 應用程序的各種類型的網絡攻擊和漏洞。 WAF 通常的工作原理如下:

  • 交通檢查: 當用戶通過發送 HTTP 請求與 Web 應用程序交互時(例如,訪問網頁、提交表單),WAF 會在傳入流量到達 Web 服務器之前攔截並檢查傳入流量。

  • HTTP解析: WAF 解析 HTTP 請求以了解其組成部分,例如請求方法、標頭、URL、查詢參數和請求正文。

  • 基於規則的過濾: WAF 將一組預定義的安全規則應用於解析的請求。這些規則定義了已知攻擊或漏洞的模式,例如 SQL 注入、跨站點腳本 (XSS) 等。如果 WAF 檢測到請求內容與這些規則之間存在任何匹配,它將採取措施減輕威脅。

  • 阻止或允許流量: 根據規則評估,WAF 決定是允許請求繼續發送到 Web 應用程序還是阻止它。如果請求被視為惡意或可疑,WAF 可以阻止它並阻止其到達 Web 服務器。

  • 響應分析: WAF 還檢查 Web 應用程序對傳出請求的響應。它可以檢測並防止應用程序響應中的敏感信息洩漏或數據洩露。

  • 學習與適應: 一些現代 WAF 採用機器學習和行為分析技術來識別新的和不斷變化的威脅。這些系統可以隨著時間的推移了解應用程序的正常行為,並檢測可能表明攻擊的異常情況。

  • 自定義規則: 管理員通常可以配置自定義規則來滿足其 Web 應用程序的特定安全需求。這使他們能夠解決特定於應用程序的漏洞和潛在威脅。

  • 記錄和報告: WAF 生成有關檢測到的威脅、可疑活動和阻止的請求的日誌和報告。此信息可幫助管理員分析其 Web 應用程序的安全狀況,並在必要時微調 WAF 的規則。

  • 持續監控: WAF 通過持續監控和過濾流量、適應新出現的威脅以及維護 Web 應用程序的安全來提供持續的保護。

值得注意的是,雖然 WAF 是一個有價值的安全層,但它本身並不是一個全面的解決方案。安全措施的組合(包括安全編碼實踐、定期安全評估和補丁管理)對於確保 Web 應用程序的整體安全至關重要。

RESTful Api 規範對於 WAF 自定義規則非常重要。

如何在WAF中配置自定義規則?主要有兩種方式:

  • #1 RESTful API 規範 Web 服務可能具有 OpenAPI 規範,該規範描述了所有端點、參數、響應、身份驗證方案等。此類規範通常由開發人員提供。
  • #2 手動輸入 您可以通過添加 url、參數名稱、最大長度和值的結構來手動輸入規則。

#1 看起來比 #2 好得多。在完美的世界中,每個 Web 服務都有一個始終可用且最新的 OpenAPI 規範。但在現實世界中,這種情況似乎並不經常發生。開發人員可能會更改 API,但忘記更新規範,或者由於某種原因他們沒有公開提供規範。在大多數情況下,公開可用的 REST API 具有人類可讀的文檔,這很好,但通常很難以自動化方式使用。

  • 但是,APIGIT 可以讓這一切變得更容易。

APIGIT 是一個協作平台,以其原生 Git 支持而脫穎而出,它簡化了 API 開發流程和版本控制,使用戶能夠輕鬆設計、記錄、模擬、測試和共享 API。該平台的可視化 OpenAPI 編輯器與其原生 Git 支持相結合,使團隊可以輕鬆、無縫、高效地協作和共享工作。

RESTful Api 規範是什麼樣的?

這是 RESTful Api 規範的一部分。

"components": {
    "schemas": {
      "OpenAI-Request": {
        "type": "object",
        "properties": {
          "prompt": {
            "type": "string",
            "description": "Your question"
          },
          "model": {
            "type": "string",
            "description": "OpenAI model",
            "default": "1",
            "minLength": 1,
            "maxLength": 20,
            "pattern": "\\w+"
          },

在 RESTful API 規範中定義架構時,您可以指定參數的各個方面,包括其類型、最小和最大長度,甚至是正則表達式模式。然後可以將該規範加載到 Web 應用程序防火牆 (WAF) 中,從而允許您生成與定義的架構相對應的自定義規則。