TechSummary 2025-07-10
· 閱讀時間約 5 分鐘
模型化 CORS 框架以找出安全漏洞 (Modeling CORS frameworks with CodeQL to find security vulnerabilities) 🛡️
內容要點:
- CORS設定不當會導致安全漏洞,如允許任意網站存取危險端點,甚至可造成身份驗證被繞過。
- 使用CodeQL可以模型化Web框架中的header設置,監測潛在的配置錯誤,像是示範範例中
w.Header().Set("Access-Control-Allow-Origin", "*")
,會允許任何來源存取。 - 對於反射來源(
r.Header.Get("Origin")
)搭配Access-Control-Allow-Credentials
為true的設置則更加危險,可能被攻擊網站利用。 - Model中會定義類別如
AllowCredentialsHeaderWrite
來匹配特定header write行為,並建立規則查詢包 含非安全的Allow-Origin
和Allow-Credentials
設置。 - 建模Web框架(例如Gin、Django等)的CORS middleware,模擬其設置結構和方法,以便在CodeQL中自動偵測潛在風險。
- 建立針對兩類CORS漏洞的專屬查詢(無認證跨域與有認證跨域),利用模型追蹤Header設定和配置變數的變更狀況,協助辨識錯誤配置。
- 案例中說明,簡單將headers設在HTTP回應中,容易被偵測,但若並未檢查Origin或Credentials的設定,則可能存在嚴重漏洞。
我的看法:
- 模型化Web框架header設置是一個強大且彈性高的安全分析方法,可用於自訂多種框架。
- 使用CodeQL能有效識別錯誤配置,降低CORS安全問題,值得開發者在安全審查中加入此技術。
Tags: [CORS, StaticAnalysis, CodeQL, WebSecurity, WebFrameworks]