GH GambleHub

API安全性和查詢過濾

1)為什麼需要它

API是平臺的外部和內部邊界。身份驗證,授權,驗證或請求正常化中的任何錯誤都會轉化為漏洞的利用(BOLA/IDOR,injection,SSRF,大規模過度運行,資源消耗)。目的:通過可測量的SLO和風險控制,創建從外圍到業務規則的多層保護(深度防禦)。

2) API庫存和分類

API目錄:所有服務/最終產品的註冊表,所有者,版本,客戶類型(web,mobile,合作夥伴),模式(公共/合作夥伴/內部),PII/贈與。
關鍵性:高級(財務交易/授權),中級(簡介閱讀),低級(公共手冊)。
攻擊面:REST, GraphQL, gRPC, WebSocket, webhooks。
狀態:prod/staging/experimental, precate policy,令牌/密鑰壽命。
影子/廢棄的API:通過日誌光盤檢測,eBPF/Service Mesh遙測,與目錄比較。

3)威脅模型(簡述)

識別:代幣劫持,會話固定,MitM,重播。
授權:BOLA/IDOR,水平/垂直升級。
輸入:註入(SQL/NoSQL/LDAP),模板/序列化,路徑旅行,標題。
流量:DDoS/L7-fluds,請求緩慢,幻影後退。
集成:不安全的webhooks, SSRF通過URL設置,文件下載/掃描。
邏輯:濫用獎金,種族,不一致性。

4)基本安全標準(最低限度)

1.TLS 1.2+無處不在;HSTS;弱密碼被禁用。
2.身份驗證:客戶OAuth2/OIDC,mTLS/或 HMAC 是服務K服務。
3.授權:集中PDP(RBAC/ABAC),對象級驗證(BOLA)。
4.驗證:嚴格模式(OpenAPI/JSON Schema/Protobuf),多余字段故障。
5.限制:rate/quotas+burst, per 客戶端/per-IP/per令牌。
6.在寫作操作中具有相等性,可防止重播/賽車。
7.WAF/gateway過濾:路徑/標頭規範化,deny-list, payload-anti-Patters塊。
8.保密:KMS/Vault,密鑰輪換/證書,泄漏控制。
9.可觀察性:跟蹤、安全審計邏輯(誰/什麼/何時/結果),異物。
10.程序:事件劇本,測試案例和常規五旬節/DAST。

5)令牌驗證和管理

OAuth2/OIDC:短壽命訪問令牌,嚴格按照OIDC改造;在門戶上檢查audience/issuer/exp。
JWT: RS256/ES256;最低限度的克萊姆集合;「nbf/exp/aud」是強制性的;禁止擁有PII。通過JWKS輪換密鑰。
DPoP/PoP:將令牌綁定到客戶端密鑰,以減少重播/劫持風險。
內部系統和受信任合作夥伴的mTLS(CN/SAN認證,CRL/OCSP)。
HMAC(簽名):確定性規範化(方法+路徑+timestamp+nonce+body-hash);有效時間窗口(± 300s)。
瀏覽器會話:SameSite=strict/lax, HttpOnly, Secure;CSRF防護(double submit/state tokens)。
客戶端存儲:在移動上-安全存儲(Keychain/Keystore),防借記保護,固定證書。

6)授權(BOLA-first)

對象級別:每個操作都會檢查特定資源的權限(資源所有者/scope/屬性)。
RBAC/ABAC:角色+屬性(國家/地區,細分市場,風險限制,KYC級別)。
策略:deny-by-default;明確的對決;政治轉型;測試負面案例。
解決方案Kesh:在角色/細分市場發生變化時,自適應TTL+殘疾。

7)過濾和正常化查詢(在網關/WAF)

正常化:重復大滿貫收縮,禁止「……/」,一次解碼,修剪空格/零字節。
標題:allow-list(「Host」,「Content-Type」,「Accept」,「Authorization」,「Date」,「Idempotency-Key」,需要跟蹤標題)。
方法:「GET/HEAD」不帶身體;「POST/PUT/PATCH」-具有「application/json」類型或嚴格允許。

尺寸: max-body,max-headers,max-path;early-reject 413/431.

文件:MIME驗證器,防病毒/防沙盒,禁用活動內容,重新設計/消毒圖像。
URL轉發/網關:SSRF單元(deny private ranges/metadata IP,只有「https」, allow-list域)。
SQL/NoSQL模式:通過WAF規則集+服務器查詢參數化註入簽名。

標頭策略示例(偽格式)


deny_headers: ["X-Forwarded-Proto","X-Original-URL","Proxy-Connection","Destination"]
require_headers: ["Authorization" (для protected), "Content-Type" (для write)]
strip_duplicates: true max_header_count: 32 max_header_size: 16KB

8)限制,配額和反機器人保護

Rate limiting: token-bucket/ leaky-bucket;級別-per IP、per API key、per user、per org。
Quotas:每日/每月,用於寫作/專有方法。
適應性:異常時的動態收緊(sudden爆發/信用)。
Slow-loris/slow-POST:讀取/保持活力,限制並行連接。
Antibot:設備指紋,行為特征,proof-of-work/kapcha風險增加,tor/代理網絡列表。
IP控制:地理/ASN過濾器,「骯臟」子網的deny表,合作夥伴/管理面板的allow表。

9)輸入和電路驗證

失敗關閉:任何未通過方案的都是400。多余的字段是偏轉。
類型/範圍:數字,日期(UTC/ISO-8601),enum值,行長度,regexp。
JSON質量:最大測試,大陣列/密鑰禁令,canonical order(可選)。
商業驗證:「Idempotency-Key」的冪等;反限制規則(操作頻率限制,amount caps)。
GraphQL:深度/復雜性限制,allow-listed queries,per字段授權。
gRPC:嚴格的Protobuf方案,強制字段,消息大小限制。

10)Webhooks和外部呼叫

標題:HMAC具有timestamp/nonce;在處理前進行驗證;窗口+/-5分鐘。
交付:帶有指數暫停和抖動的轉發;最大嘗試;事件ID重復數據消除。
供應商的IP allow-list;單獨的子域/路徑;最小托管堆棧。
答案:僅在成功進行內部錄制後才進行2xx;否則4xx/5xx具有清晰的代碼。
傳出SSRF控制:在呼叫後,URL為allow-list,禁止私有地址。

11)加密和秘密管理

在頻道:TLS 1。2+/1.3、固定,嚴格的密碼政策。
靜止:DB/對象存儲加密,PII/findans的單獨密鑰。
KMS/Vault:中央機密存儲、短TTL、自動旋轉。
密鑰和證書:隨行人員;簽發審計;禁止推斷到日誌中。
令牌輸入:離線召回列表(revocation),簡稱「exp」。

12)可觀察性、審計和響應

安全性日誌:身份驗證嘗試/成功,授權失敗,rate-limit事件,角色/限制更改。
跟蹤:correlation-ID端到端;跟蹤外部呼叫。
度量標準:RPS,P95/P99 latency,代碼錯誤率,401/403/429比例,限額命中率,異常。
Alerts:401/403/429激增,5xx生長,頻繁的idempotency沖突,圖QL復雜性的急劇偏差。
Playbooks:鎖定密鑰/令牌,快速回滾規則,加熱deny清單,通知服務所有者。
Forenzika:保留有爭議的薪水(安全編輯PII),在孤立的看臺上重新播放。

13)錯誤和客戶響應

單一錯誤格式(代碼、消息、trace-id、類別)。
無泄漏:不披露SQL、表名、內部aidi;403而不是「為什麼不是」。
代碼:400(驗證)、401(無認證)、403(無權)、404(偽裝存在)、405/406、413/429、500/503。
Retry-Hints: для 429 — `Retry-After`;相似性-重復使用相同鍵的建議。

14)建築模式

零信任:mTLS,所有服務之間的明確授權,最低特權。
API網關+WAF+服務-mesh:職責分工-周邊,L7策略,內部身份驗證。
Canary/Blue-Green:分階段推出新的過濾規則,並進行監控。
失效:對於關鍵寫作,拒絕比允許不正確的操作更好。
Backpressure:隊列/緩沖區,電路斷路器,timeouts/budgets。

15)實用規則的示例(偽偽)

15.1限制路徑和方法


/api/v1/payments:
allow_methods: [POST, GET]
auth: oauth2_required body:
content_type: application/json max_size: 256KB

15.2相似性


require_header: Idempotency-Key (UUIDv4)
store: redis:ttl=24h on_duplicate: return_previous_result

15.3請求簽名(HMAC)


signature:
scheme: "HMAC-SHA256"
required_headers: ["X-Signature","X-Timestamp","X-Nonce"]
allowed_drift: 300s string_to_sign: METHOD + "\n" + PATH + "\n" + SHA256(body) + "\n" + X-Timestamp + "\n" + X-Nonce

15.4個SSRF保護


outbound_http:
allowlist_domains: ["kyc. partner. com","psp. example. net"]
block_private_ip: true require_https: true

15.5 GraphQL限制


graphql:
max_depth: 8 max_complexity: 500 allowlisted_operations_only: true

16) iGaming/財務細節

細分限制:取決於CUS/國家/風險概況。
時間窗口:存款/收款頻率規則,交易之間「冷卻」。
反抽獎:對帳戶/設備/IP/支付工具的一致性鎖定。
審核監管機構的要求:存儲操作和決策邏輯(KYC/AML)、恢復期、不變日誌。

17)prod就緒清單

  • 完整的API目錄和數據流映射(PII/財務已標記)。
  • OpenAPI/Protobuf電路,驗證測試和CI中的合同。
  • mTLS/HMAC/OAuth2定制;短的TTL令牌;按鍵旋轉。
  • BOLA測試和負面授權案例;集中式PDP。
  • 限額/配額/防波特,防禦慢速下滑;IP過濾器。
  • WAF/正常化門戶規則,反註射簽名。
  • 寫作操作的冪等性;復制保護。
  • Webhook 簽名和allow-list;孤立的endpoints。
  • KMS/Vault中的秘密;加密的storajs;異常。
  • Dashbords,Alerta,審核日誌;工作劇本事件。
  • 定期五旬節/DAST/SAST,漏洞跟蹤和丟棄補丁。

18)反模式(不可能)

信任「X-Forwarded-」,而周邊沒有TLS硬端。
采用任意的「內容類型」和「軟」JSON方案。
長壽的JWT,沒有召回/旋轉。
在代碼中混合角色和業務規則,而無需集中化策略。
帶秘密/PII的邏輯;向外詳細的500條消息。
「臨時」開放的終點,沒有限制和授權。

19)翻新和拆除

路徑/標題中的版本;支持政策(如N-2)。
公告:清除時間表,監視舊版本的使用,管理禁用。
兼容性:客戶/合作夥伴合同和測試矩陣。

20)安全測試

合同模式測試/策略,fuzzing輸入,negative auth。
具有限制/配額的穿孔配置文件,保護測試(混沌流量)。
Red-team/bug-bounty: BOLA腳本、SSRF、簽名/中繼、GraphQL復雜性。

TL;DR

1.API目錄+嚴格的架構。
2.客戶OAuth2/OIDC,內部的mTLS/HMAC。
3.每個資源的BOLA周邊(ABAC/RBAC)。
4.過濾:路徑/標頭標準化,限制,WAF規則。
5.等效性,簽名,復制/SSRF保護。
6.KMS/Vault和秘密輪換。
7.可觀察性,異同,劇本。

Contact

與我們聯繫

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

Telegram
@Gamble_GC
開始整合

Email 為 必填。Telegram 或 WhatsApp 為 選填

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

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