GH GambleHub

Web Application Firewall和攻擊保護

簡短摘要

WAF/WAAP在應用程序級別過濾和監視HTTP(S )/WebSocket流量:阻止漏洞利用(OWASP Top 10),遍歷身份驗證嘗試,掃描,自動機器人流量和L7 DDoS。現代堆棧由反機器人引擎,API保護,限制等級,虛擬補丁程序以及與CI/CD的緊密集成來補充,以使規則像代碼一樣安全地推出。

體系結構中的角色和位置

Edge/CDN WAF(雲):低潛伏度,全球聲譽/管理規則,L7 DDoS。
自主主機WAF (on-prem/K8s):深入集成內部網絡,微調。
WAAP方法:WAF+API-網關功能(計劃驗證,authZ),反機器人,L7 DoS,mTLS。

啟用方案: 在應用程序之前反向擴展;K8s中的Ingress控制器;Service Mesh過濾器;sidecar.

保護模型

Negative security (簽名/CRS):快速覆蓋已知技術(SQLi/XSS/SSRF/RCE)。
正面安全(allow-list):我們只允許「有效」請求(方法/路徑/模式/內容類型)。
Virtual Patching:在線鎖定代碼虛擬化。
上下文:靜態內容、API、adminok、下載、webhook的不同策略。

典型威脅和措施

OWASP Top 10:SQLi,XSS,IDOR/BOLA,SSRF,模板化劑註射,脫序列化,misconphigs。
L7 DDoS:緩慢的查詢/標題,熱點終端爆發→保護:限制限制,挑戰,自動單元。
機器人/scrapers:行為,頻率,「非人類」模式,設備fingerprinting,動態令牌。
Credential Stuffing/ATO:攔截/過度登錄→ IP/ASN異常,velocity規則,附加因素。
下載:防病毒類型/大小/多掃描,媒體領域中的「僅圖像」。
API/GraphQL:計劃驗證,「maxDepth」/「maxCost」,禁止不可轉換的通配符,控制方法和標題。

策略和規則構造函數

任何應用程序的基本的「骨架」:

1.運輸:TLS 1.2+/1.3、HSTS、mTLS在敏感後端。

2.方法:allow-list(「GET、POST、PUT、DELETE、PATCH、OPTIONS」)是唯一的資源。

3.路徑:嚴格的口罩/口罩;adminka/billing-單獨的前綴/域。

4.標題:白名單,禁止危險(「X-Original-URL」,非標準),無需。

5.屍體:沿途僅為JSON-only/Multipart;"Content-Length"限制,"登錄"/搜索"上的二進制塊。

6.費率限制:per-IP/ASN/密鑰/組織;單獨限制「昂貴」查詢。

7.反機器人:行為得分,「不刺激」挑戰賽,身份滑落(cookie令牌,JA3/TLS FP)。

8.CRS/托管規則:啟用,調制為FP。

9.靜止補丁:快速鎖定已知攻擊參數/模式。

10.邏輯/度量標準:單一格式,與「trace_id」相關,FP/TP報告。

調整實踐: 如何降低誤報

在僅偵測/計數模式(陰影)中運行具有流量樣本的新規則。
根據上下文創建例外(「path =/search」,「param=q」允許特殊字符)。
劃分區域:「公共頁面」與「敏感操作」(攻擊性閾值不同)。
流水線:規則→站立→金絲雀(1-5%)→散布;根據FP度量進行回滾。
維護回歸測試的「虛假」付費目錄。

集成到DevSecOps中

CI:Git中的靜態規則;測試:從攻擊目錄中提取真實查詢+合成。
CD:金絲雀布局,仙女旗;「政治」監視(更改規則=更改)。
RASP和SAST/DAST:WAF補充但不替代代碼修復。

可觀察性和SLO

度量標準:
  • p95/99通過WAF潛伏期;被阻止/遺漏的比例;share Managed Rules vs custom;«attack rate».
  • 反機器人:挑戰/投降份額,FP/TP。
  • L7 DDoS: burst-rate, auto-mitigation events.
SLO示例:
  • "不超過0。5%的FP用於授權操作/日。"
  • «p95 overhead WAF ≤ 10 мс».
  • 「虛擬補丁的TTR ≤ 30分鐘。」
  • 警報:規則發布後的4xx/5xx激增;FP的增長;通過帽子的下降;JWKS/mTLS驗證的降解。

配置示例

ModSecurity + OWASP CRS (Nginx)

nginx
Enabling ModSecurity modsecurity on;
modsecurity_rules_file /etc/nginx/modsec/main. conf;

`/etc/nginx/modsec/main.conf`:

apache
SecRuleEngine On
Include /usr/local/owasp-modsecurity-crs/crs-setup. conf
Include /usr/local/owasp-modsecurity-crs/rules/.conf

Example of an exception for a search parameter
SecRule REQUEST_URI "@beginsWith /search" "id:900100,phase:1,pass,nolog,ctl:ruleRemoveByTag=attack-xss"
SecRule REQUEST_URI "@beginsWith /search" "id:900101,phase:2,pass,ctl:ruleRemoveTargetById=942100; ARGS:q"

AWS WAF (JSON, rate limit+國家列表塊)

json
{
"Name": "prod-web-acl",
"Scope": "CLOUDFRONT",
"DefaultAction": { "Allow": {} },
"Rules": [
{
"Name": "BurstLogin",
"Priority": 1,
"Statement": {
"RateBasedStatement": {
"Limit": 100,
"AggregateKeyType": "IP",
"ScopeDownStatement": { "ByteMatchStatement": {
"SearchString": "/login",
"FieldToMatch": { "UriPath": {} },
"TextTransformations": [{ "Priority": 0, "Type": "NONE" }],
"PositionalConstraint": "CONTAINS"
}}
}
},
"Action": { "Block": {} },
"VisibilityConfig": { "MetricName": "BurstLogin", "SampledRequestsEnabled": true, "CloudWatchMetricsEnabled": true }
}
]
}

Cloudflare (Expression Rules)


(http. request. uri. path contains "/admin" and ip. geoip. country ne "UA")
or (http. request. uri. path eq "/login" and cf. threat_score > 10)
or (http. request. uri. path contains "/api" and not http. request. headers["authorization"][0] contains "Bearer ")

NGINX: 方法/物體的簡單規則

nginx location /api/withdraw {
limit_except POST { deny all; }
if ($request_method = POST) {
set $cl $http_content_length;
if ($ cl = "") {return 411;} # length is required if ($ cl> 1048576) {return 413;} # ≤ 1MB add_header X-Idempotency-Required "true";
}
}

GraphQL: 限制器

'maxDepth=6','maxCost=1000',禁止銷售'__ schema',allow-list操作,標題驗證('Content-Type:application/json')。

反機器人與人友檢查

隱形挑戰賽(JS挑戰賽沒有kapchi),「昂貴」途徑上的工作證明,行為分析(運動/計時)。
TLS/JA3-fingerprinting, IP/ASN聲譽,代理列表/VPN(合理範圍內)。
形狀上的陷阱(honeypot字段),動態形狀/會話令牌。
隱私保護:盡量減少跟蹤、透明策略、選擇退出。

API焦點

Schema-first:用於驗證的OpenAPI/JSON Schema;禁止多余的領域。

Auth: 必然Bearer JWT或mTLS;reject без `Authorization`.

Rate/Quota: per-key/per-org;超出-「軟塊「/慢速。
Webhooks:HMAC簽名,「timestamp+nonce」,短接收窗口。
GraphQL:請參閱上面的限制器;編寫操作名稱/標簽。

下載和媒體

大小限制,whitelists MIME/擴展名,文件重命名;

AV掃描(多引擎),ImageMagick策略(無危險解碼器);

一個單獨的域上的Thumb服務,僅服務-圖像。

海軍上將和關鍵地區的安全

單獨的域/路徑,mTLS/禁止共享的 ASN/國家/地區,嚴格的限制,JIT訪問,IP allow-list。
其他信號(device posture, risk score) →需要第二次檢查。

操作、事件和虛擬補丁

運行手冊:快速發布塊規則,TTL限制,命令通知。
回滾標準:身高4 x/5x>閾值,FP>閾值,p95 latency↑。
後遺癥:將測試添加到回歸規則集中,將SIGMA同位素固定在SIEM中。

合規性和隱私

編譯最小值:路徑/方法/代碼/塊原因/標識符;不要保存PII/身體的秘密。
保留策略日誌的時間表;按角色訪問;磁盤加密。

iGaming/fintech的功能

付款/付款/錢包:per org配額,mTLS到PSP,嚴格的路徑allow單,HMAC到PSP webhooks。
ATO/獎金缺口:對登錄規則/註冊/促銷代碼,行為限制和反機器人。
內容提供商/工作室:單獨的域/策略,IP/ASN allow-list,時間到錢包/轉換監視對WAF的影響。
區域要求:地理政策(國家/地區),GDPR處理的透明度。

實施路線圖

1.區域清單(公共,API,管理,下載)。
2.基本配置文件:TLS,allow-list方法/路徑,管理規則/CRS。
3.Rate limits+在敏感路徑上的反機器人。
4.虛擬補丁和緊急規則過程(SLA ≤ 30分鐘)。
5.CI/CD用於規則,站立/金絲雀/影子模式。
6.遙測,SLO,回歸規則測試。
7.定期審查異常和「清除」旁路。

典型的錯誤

「將所有CRS納入最大值」→ FP雪崩和團隊倦怠。
沒有金絲雀和陰影模式的規則。
缺乏細分:一個政策適合一切。
忽略API/GraphQL特征(schema/limits)。
沒有相關性(「trace_id」)且沒有質量指標的邏輯。

FAQ

WAF是否取代安全代碼?

沒有。這是緩解層和「虛擬補丁」,但是代碼中的技術債務必須消除。

如何理解是時候打開硬塊了?
當陰影模式報告顯示低FP並且存在回歸規則測試時。

API需要單獨的WAF嗎?

更好的WAAP/與 API網關的集成:電路,限制,身份驗證,webhook簽名。

底線

有效的WAF/WAAP是基礎CRS/托管規則,正模型,反機器人,限制和虛擬補丁的組合,並得到DevSecOps過程,遙測和清晰SLO的支持。這種方法可以快速應對漏洞、抵禦自動攻擊以及可預測的UX和性能影響。

Contact

與我們聯繫

如有任何問題或支援需求,歡迎隨時聯絡我們。我們隨時樂意提供協助!

開始整合

Email 為 必填。Telegram 或 WhatsApp 為 選填

您的姓名 選填
Email 選填
主旨 選填
訊息內容 選填
Telegram 選填
@
若您填寫 Telegram,我們將在 Email 之外,同步於 Telegram 回覆您。
WhatsApp 選填
格式:國碼 + 電話號碼(例如:+886XXXXXXXXX)。

按下此按鈕即表示您同意我們處理您的資料。