隨着越來越多的應用程式開發團隊將安全性集成到工作流中,他們正在從應用程式流水線,工作流和性能的角度審視安全性對其應用程式的影響。
由於合規性要求, Web應用程式和API保護(WAAP) 通常部署在應用程式堆棧中。 但隨着企業將工作負載移至雲端,並開始將安全性嵌入應用程式的結構中,WAAP的角色也在不斷髮展。 組織需要能夠擴展和適應不斷變化的雲架構和不斷增長的安全威脅的WAAP平臺。
在本文中,我們將回顧WAAP引擎(更具體地說,是專門爲與該引擎配合使用而構建的規則集)如何適應雲工作流,並在保持強大的線上威脅防護的同時提高Web應用程式的性能。
考慮WAAP引擎及其ruleset
WAAP應該是應用程式堆棧和網路安全程序的重要組成部分。 傳統上,WAAP與應用程式開發斷開連接,被視爲應用程式外部的安全層。 但現代WAAP架構和工具幫助SecOps在CI/CD過程中與DevOps協作,包括在開發應用程式時創建規則和測試。 當正確使用來分析流經應用程式基礎架構的流量時,WAAP引擎及其規則集在分析完成的速度以及所產生的審計和阻止決策在整個應用程式體系結構中的表現方面發揮着重要作用。
就像汽車的發動機,計算機和傳動系,WAAP發動機,規則集 它所保護的應用程式應經過設計和優化,以便協同工作。 汽車製造商並未在氣泡中設計發動機。 它必須針對汽車的其餘車架和部件進行優化,以全面達到最佳性能和效率。 WAAP引擎及其規則集也應如此。 不考慮這些變量的WAAP可能會過度工作和超載,最終降低Web應用程式的性能和用戶體驗。
effectiveness WAAP工作負載以提高速度和速度
Edgio WAAP使用開放原始碼,行業和專有簽名的組合來通知其規則集。 我們仔細評估每個簽名對整體規則集性能的影響。
在我們設計和優化 WAAP引擎時,我們發現,通過收集和使用開放原始碼和行業規則集而無需任何修改,(幾乎)每條規則都需要在流量越過線時進行分析。 此模型在WAAP中相當常見,因此可以”輕鬆”地查看流量發生的情況。 但它還強制WAAP執行每條規則,以評估與通信相關的風險。 這會給WAAP帶來不必要的繁重工作量,隨着規則集的增長,這種工作量會進一步加劇。
當然,它並不總是關於速度。 WAAP中的一個關鍵要素是它能夠確定與流量相關的風險(危害)與獎勵(成功的交易),並決定是否將流量標記爲惡意,可疑或良性。 WAAP會向組發送警報(審覈/警報模式),如果流量被認爲風險太大,無法通過(生產/阻止模式),則會阻止或重新路由流量。
這種分析在檢查攝取的開放原始碼和行業規則集時成爲一個更大的挑戰。 它不太可能是爲市場上的每個可能的WAAP發動機設計的,都考慮到了速度和效率。 這並不意味着它們是壞的,只是意味着他們首先關注風險,而將性能留在事後考慮。 換句話說,還有改進的餘地。
由於首先爲了完整性和準確性而創建了規則集,許多WAAP發現它們無法在兩種模式(審覈和阻止)下處理正在分析的流量,迫使InfoSec團隊選擇一個模式: 從審覈模式開始,並將其移至生產模式或直接進入生產模式,而無需進行實際測試,從而使其面臨錯過的威脅和誤報。
Edgio如何增強其WAAP rulesets
規則集的開放原始碼OWASP ModSecurity模型提供了一種標準,一致的方式,通過它可以開發和實施WAAP規則集。 爲了補充這一點,OWASP提供了一個行業通用規則集,它可以由遵循此模型的WAAP攝取。
然而,當我們的團隊正在實施規則集時,他們意識到正在攝取的規則集——雖然完整而準確——確實阻礙了WAAP引擎。 因此,小組決定研究規則集的結構和處理方式。 我們發現,許多規則會一遍又一遍地通過相同的數據來循環檢查,以確定通過WAAP的流量的風險,這一點並不奇怪。
某些協議實施規則相當簡單,無需在規則集生態系統中“生存”。 爲了解決這一問題,我們首先開發了規則集,通過將OWASP規則集以非ModSecurity格式直接實施到WAAP引擎中,從而有效地縮小了OWASP規則集。 這將導致早期執行和更快的檢測。
接下來,我們針對分析請求實體的規則。 我們構建了一個暫存層,可降低在規則中重新計算相同表達式時的性能開銷。 以XML格式主體爲例,我們搜尋了OWASP CRS規則集中出現的表達式”XML:/*”的次數,以查看在處理單個請求時,如果沒有暫存層,XPath可以重新計算多少次。
最後,在大量的宏擴展/字元串替換和顯式搜尋發生的地方, 我們在規則集中識別並刪除了這些規則,並在引擎中實現了更好的查找和搜尋算法,如HashMap查找和短語匹配(PM)運算符,而不是在可能的情況下使用正則表達式(Rx)運算符。
通過對規則集的結構進行不同的操作,我們的WAAP引擎使用更快的數據結構和開放標準格式(如JSON),這些格式更易於配置和執行。 這不僅在速度方面,而且在準確性方面都能帶來更好的性能:
- 低誤報:Edgio以確保準確性的方式排列和控制規則集
- 增強的引擎性能:Edgio WAAP引擎執行規則集的方式可以避免引擎負擔過重
例如,對於OWASP IP阻止列表策略規則,ModSecurity引擎使用其自己的”msc_tree”算法來查看錯誤的IP列表。 另外,Edgio WAAP引擎使用的算法速度更快一點。 以下測試結果顯示Edgio WAAP對ModSecurity的執行方式。 ModSecurity在大IP列表上執行百萬個查詢時增加了大約200ms到500ms的延遲。 Edgio WAAP每天在其網路中處理大約10B個請求。 這些小數字在如此大的規模上很重要。
避免警報與阻礙權衡
更好的WAAP引擎和規則集組合也意味着組織可以獲得更快的性能,並且可以在雙模式下(在塊模式和審計模式下)執行WAAP。 這樣,安全操作小組就可以在審覈/警報模式下試驗針對生產流量的新規則,並在將規則集提升爲WAAP上的阻止模式之前對規則進行微調。
高度自定義的Edgio規則集允許管理員在任何地方進行切片和切片,並以雙模式執行規則集。 使用適用於不同設定的相同規則,管理員可以執行兩次,同時不會影響性能—部分原因是智能引擎和規則集實施。
這裏的價值超出了WAAP管理團隊的範圍。 許多Edgio客戶將此選項集成到DevOps生命週期中,使企業,工程團隊和IT安全團隊能夠在審覈模式下協作和測試規則,然後再將其應用到生產阻止模式。
這兩步流程使IT安全團隊能夠在防火牆配置更改啟動之前對其進行審覈,爲團隊提供數據以測試實際生產流量的更改,從而在規則集投入生產後減少誤報。 規則集驗證後,將在數秒內部署更新的配置。 如有必要,可在幾分鐘內完成回滾。 這使得有意義的規則集測試更加現實,動態,有影響力,有效和支援業務目標。
Edgio Dual WAF模式 方法還進一步提高了性能。 智能規則集可確保已知惡意流量被快速阻止,從而爲WAF提供一定的喘息空間,以便它能夠處理不斷呈現的其餘流量。 這反過來又使管理員有更多時間專注於獲得預測性可見性;換句話說,他們可以在部署到生產站點之前通過審計模式查看應用程式中的內容。
如果您的企業需要能夠適應不可預測的工作負載並仍然提供高度安全的體系結構的應用程式堆棧,請考慮WAAP引擎和規則集設計。 經過優化後,這些因素可以增強Web應用程式的性能。
有關Edgio WAAP智能引擎和規則集如何快速準確地保護您的Web應用程式的詳細資訊,請立即聯繫我們。