基礎架構中的安全層
(部分: 技術和基礎設施)
簡短的摘要
安全性是層系統:如果前者失敗,則每個層都會阻止並檢測攻擊。對於iGaming來說,這尤其關鍵:支付流、PII、合作夥伴集成和峰值負載。下方是將網絡,身份,應用程序,數據和操作過程連接到單個托管程序的深度防禦框架。
1)威脅模式和基本原則
Threat Modeling: STRIDE/kill chain for key stream(登錄、存款、出價、出價、出價、出價)。
Zero Trust:「默認情況下不信任」,最低限度,檢查每個跳。
Least Privilege&Segregation of Duties:角色是原子的,敏感的操作是分開的。
Secure by Default:封閉端口,deny-all策略,安全默認。
Auditability:所有可用性/更改-在集中式審核中。
2)網絡和外圍
目的:防止橫向移動,隔離管理風險。
分段/區域:邊緣(CDN/WAF)→ API →服務→數據(DB/KMS)→ admin/bacofis。
VPC/VNet隔離+用於公共/私人服務的子網;NAT/egress控制(包括PSP/遊戲提供商的 egress-allowlist)。
mTLS無處不在(mesh/Ingress),TLS 1。2 +/HSTS/清晰的密碼配置。
外圍的WAF/機器人管理/DDoS;反積分。
DNS安全:split-horizon、DNSSEC、容錯、關鍵域快取。
Пример: Kubernetes NetworkPolicy (deny-all + allow-list):
yaml apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: { name: api-deny-all, namespace: prod }
spec:
podSelector: { matchLabels: { app: api } }
policyTypes: [Ingress, Egress]
ingress: [] # deny-all egress:
- to:
- namespaceSelector: { matchLabels: { name: prod } }
podSelector: { matchLabels: { app: payments } }
ports: [{ protocol: TCP, port: 8080 }]
3)身份和訪問(IAM/PAM)
目標:每次訪問都是合理、有限和透明的。
用於人員和機器的SSO+MFA;特權帳戶的硬件密鑰。
用於雲/K8s/bacofis的RBAC/ABAC;SCIM-自動打開/關閉。
JIT訪問(臨時),帶有增強審計功能的斷面玻璃。
具有短壽命令牌(OIDC/JWT)的服務帳戶,客戶機機密審核。
基站/命令鏡像:僅通過基站和記錄會話訪問數據庫/節點。
4)秘密和鑰匙
目的:消除泄漏,確保密鑰生命周期可管理。
KMS/HSM(向導鍵),定期輪換;按區域/目標劃分密鑰。
保密存儲(Vault/Cloud KMS Secrets)具有動態積分和保釋金。
- 在rest(DB/buckets/snapshots)與envelope encryption。
- In transit (TLS/mTLS).
- Tokenization用於支付數據;PAN-safe線程和3域安全(PCI DSS)。
hcl path "kv/prod/payments/" {
capabilities = ["read","list"]
}
path "database/creds/readonly" {
capabilities = ["read"]
}
5)集裝箱和Kubernetes安全
目的:將攻擊表面降至最少。
Runtime-политики: Seccomp/AppArmor, `readOnlyRootFilesystem`, `drop ALL` capabilities + allow-list.
PodSecurity (или Pod Security Admission): enforce restricted.
圖像:最低基本,沒有編譯器/殼牌;簽名(cosign)和SBOM。
管理控制(OPA/Gatekeeper/Kyverno):禁令「:最新」,「特權」,「hostPath」,「root」。
Secrets是來自Secret Manager的volume/env;沒有冒充的圖像。
寄存器:私有,帶有漏洞檢查(SAST/DAST/CSA)。
yaml apiVersion: constraints.gatekeeper.sh/v1beta1 kind: K8sAllowedRepos metadata: { name: only-internal-registry }
spec:
repos: ["registry.internal.local/"]
6) Supply-chain и CI/CD
目的:相信從商品到產品的人工制品。
分支政策:修訂代碼,受保護的分支,強制檢查。
工件簽名和前瞻性(SLSA/COSIGN),不變標簽(不變圖像)。
SBOM(CycloneDX/SPDX),Dependabot/Renovate和按下依賴關系。
CI隔離:短暫的跑步者,僅在受保護的jobs中的秘密,無plaintext。
CD門:質量/SAST/許可證/供應商政策;僅通過GitOps進行促銷。
7)應用程序安全(API/web/mobile)
目的:防止邏輯和技術攻擊。
AuthN/AuthZ: OAuth2/OIDC/JWT;簡短的TTL,按鍵旋轉,聽力/審閱檢查。
輸入安全性:驗證/正常化、註射保護、帶有參數的模板。
CSP/HSTS/XFO/XSS- Protection,嚴格的CORS,限制可下載的MIME/尺寸。
利率限制/quotas,用於付款/付款的idempotency-keys。
Ficheflagi:用於危險功能的快速殺手開關。
nginx add_header Strict-Transport-Security "max-age=63072000; includeSubDomains" always;
add_header Content-Security-Policy "default-src 'self'; img-src 'self' data: https:;" always;
add_header X-Content-Type-Options nosniff;
add_header X-Frame-Options DENY;
8)數據,PII和合規性(包括PCI)
目標:最低限度的收集,最低限度的訪問,最大程度的透明度。
Data-zones/классы: `public/internal/confidential/pii/pci`.存儲庫和日誌中的標簽。
PII最小化:別名「player_id」,代號化支付詳細信息。
存儲策略:熱/冷,WORM用於審核;通過TTL自動刪除。
訪問:僅通過一致的角色和屬性(區域/目標)。
PCI分段:隔離段、訪問日誌、常規掃描/ASV。
9)邊緣層: CDN/WAF/DDoS/機器人保護
目的:清除「垃圾」到平臺核心。
CDN:地理塊,kesh策略,layer-7保護。
WAF:API下的基本簽名+定制規則(JSON電路,禁止非標準方法)。
機器人: 行為分析,設備指紋,rate-limit/kapchi異常.
TLS/ALPN:關閉舊密碼,啟用OCSP stapling。
10)監視,遙測和SecOps
目的:在事件發生前看到攻擊並作出反應。
可觀察性:帶有「trace_id」和audit 字段的度量/logi/traces。
SIEM/SOAR:事件相關性(身份驗證,IAM更改,觸發WAF,秘密訪問)。
檢測規則:401/403, role-escalation,質量支付,地質異常。
掃描:SAST/DAST/IAST,CSPM/KSPM,定期筆測試和錯誤賞金。
反犯罪:交易/行為評分,velocity過濾器,制裁名單。
11)可靠性、儲備和業務連續性
目的:在不丟失數據和SLA的情況下生存失敗。
復制和PITR for DB,頻繁的狙擊與測試恢復.
DR計劃:RTO/RPO, region failover腳本,開關測試。
DR中的秘密:KMS的獨立密鑰/復制件,緊急旋轉過程。
正式gaids:恢復支票和遊戲日練習。
12)操作流程和文化
目的:使安全性「默認」。
公關安全:敏感更改的強制性安全審查。
發布策略:夜間/高峰窗口關閉;飛行前支票單。
Secure Runbooks:安全設置說明,操作審核。
培訓:網絡釣魚模擬,事件培訓,「實時」tabletop課程。
13)管制清單(簡短)
網絡和周邊
- WAF/CDN背後的所有入口;DDoS啟用
- 服務之間的mTLS;deny-all網絡策略
- Egress-allowlist到外部提供商
身份認同
[] SSO+MFA;JIT和破玻璃與審計
- RBAC/ABAC, SCIM停用裁員
- 具有短令牌的服務帳戶
K8s/容器
- 映像簽名+SBOM;禁令「:最新」
[] Seccomp/AppArmor, read-only FS, drop caps
- Gatekeeper/Kyverno政策和deny列表
秘密/鑰匙
- Vault/KMS、旋轉、密鑰共享
- 加密at rest/in transit
- Tokenization用於付款
CI/CD и supply-chain
- 短暫的跑步者;只有受保護的喬巴人的秘密
- SAST/DAST/許可證;工件簽名
- GitOps促銷,質量門
數據/PII/PCI
- 存儲中的數據和標簽分類
- Retention/WORM政策;按角色訪問
- PCI段隔離,ASV掃描
SecOps
- SIEM/SOAR規則,升級差異
- Anti-frod和velocity過濾器
- DR計劃,RTO/RPO測試
14)「硬」政策的例子
Kyverno: 禁止特權容器
yaml apiVersion: kyverno.io/v1 kind: ClusterPolicy metadata: { name: disallow-privileged }
spec:
rules:
- name: no-priv match: { resources: { kinds: ["Pod"] } }
validate:
message: "Privileged containers are not allowed"
pattern:
spec:
containers:
- securityContext:
privileged: "false"
OPA(Rego): 禁止「hostNetwork」
rego package kubernetes.admission
violation[msg] {
input.request.kind.kind == "Pod"
input.request.object.spec.hostNetwork == true msg:= "hostNetwork is not allowed"
}
15)反模式
「我們保護周邊」沒有內部mTLS/segmentation →橫向移動。
env變量CI中的秘密,上載到日誌中。
圖像「:最新」,缺少簽名和SBOM。
集群中的全局策略;一般的內務空間。
「紙上」加密,沒有真正的密鑰旋轉和恢復測試。
依靠WAF而不是糾正邏輯和驗證數據。
沒有DR/表格場景演習-計劃「灰塵」。
16)如何開始(90天計劃)
1.第1周至第2周:asset/數據清單,分類,流圖。
2.第3至第4周:啟用mTLS/deny-all網絡策略,WAF/DDoS/機器人過濾器。
3.第5-6周:保管/KMS,鑰匙輪換,付款令牌化。
4.第7-8周:Gatekeeper/Kyverno,Seccomp/AppArmor,禁令「特權」/「hostPath」。
5.第9-10周:圖像簽名,SBOM,CI/CD門,GitOps促銷。
6.第11-12周:SIEM/SOAR規則,升級變量,反欺詐。
7.第13周:DR教學,runabook更新和合規狀態(PII/PCI)。
三.成果
安全層是解決方案體系結構,而不是「復選框」集。連接網絡分割和零信任、嚴格的IAM 、安全容器/K8s、可控秘密和加密、受保護的管道、邊緣防禦和SecOps可觀察性。然後,即使發生攻擊和故障,該平臺也將在任何高峰時段保持數據完整性、PII/PCI隱私以及關鍵線程(存款、利率和收款)的可用性。