Firewall-ը և ֆիլտրը
(Բաժին ՝ Տեխնոլոգիաներ և ենթակառուցվածքներ)
Ռուսական ռեզյումե
Ֆաերվոլը պարագծի վրա ոչ թե մեկ տուփ է, այլ փխրուն ֆիլտրի մոդել L3-L4-ից մինչև L7: Ամպային Windups/NACL, ցանցային քաղաքականություն Kubernetes, egress վերահսկողություն (ելքը), WAF և բոտային կառավարում edge ճշմարիտ ծառայության համար։ IGaming-ի համար հիմնականը երկրորդական հոսքերի և խաղային պրովայդերների պաշտպանությունն է, գեո քաղաքականությունը, RF-ի վերահսկումը և դիտարկումը (ով, երբ և ինչու)։
1) Նպատակներն ու սկզբունքները
Systedeny: Լռելյայն արգելված է, թույլ ենք տալիս նվազագույն անհրաժեշտ։
Delense-in-depth: Նույն քաղաքականությունները պարագծի վրա, ամպում, կլաստերում և գյուղում։
Egress-first-ը 'արձակուրդային ֆորումը նույն ռիսկն է, ինչ մուտքային (PSA, խաղերի պրովայդերներ, փոստ, վերլուծություն)։
Ինքնություն> հասցեն 'այնտեղ, որտեղ հնարավոր է ինքնության (mTSA/Spiffe) փոխարեն մերկ IP-ի փոխարեն։
Դիտարկումը և աուդիտը 'որոշումների լույսերը (allow/deny), հետքերը, միջադեպերի հետ հարաբերությունը։
2) Ֆիլտրի շերտերի քարտեզը
1. Edge: CDN/WAF/DDoS/bot-պաշտպանություն, L7 կանոնները, TMS տերմինալը։
2. Ամպը ՝ Windowps/NACL/Firewall Rules մակարդակում MSC/հաշվարկների/VM մակարդակում։
3. Կլաստեր ՝ Kubernetes NetworkPolicy, (Envoy/Istio) mTSA և L7 ֆիլտրերով։
4. Մոսկվա: iptables/nftables/ufw, eBPF ֆիլտրեր։
5. Հավելված ՝ rate-limit/idempotency/WAF in-app, egress ցուցակները։
6. IV: split-horizon, allowlist resolvers, ռիսկի ռիսկի բլոկ/տեսակի։
3) Պարիմետրը ՝ WAF, DDoS և բոտ կառավարման
WAF: հիմնական ազդանշանները + կաստոմային կանոնները API-ի տակ (JSON-սխեմաներ, մեթոդներ/բովանդակություն)։
Բոտա 'վարքագծային կորուստ, device fingerprint, դինամիկ գլխարկ անոմալիաների ժամանակ։
DDoS: L3/4 (լոլիկ/սինապս) և L7 (HTTP floods) - ավտոմատ հեռացում edge։
Geo/ASN: Մենք սահմանափակում ենք տարածաշրջանները/ինքնավար համակարգերը ռիսկային ուղղությունների համար (օրինակ, admin վահանակ)։
Օրինակ (NGINX + ModJ, գաղափարը JSON-API-ի համար)
nginx
Разрешаем только JSON POST/GET на /api/
location /api/ {
limit_req zone=rl_api burst=50 nodelay;
if ($request_method!~ ^(GET POST)$) { return 405; }
if ($http_content_type!~ "application/json") { return 415; }
proxy_pass http://api_upstream;
}
ModSecurity CRS + собственные правила modsecurity on;
modsecurity_rules_file /etc/nginx/modsec/crs.conf;
4) Ամպակո ՝ Lenta.Drups և NACL
Express Group (stateful) - ֆիլտրեր պորտերի/արձանագրությունների/հատվածների վրա։
NACL (stateless) կոպիտ ցանցաթաղանթ է։
Օրինակ (պայմանական-YAML) SG-ի համար
yaml security_group:
name: api-sg ingress:
- proto: tcp; port: 443; cidr: 0.0.0.0/0 # через CDN/WAF egress:
- proto: tcp; port: 443; cidr: 203.0.113.0/24 # PSP-X
- proto: tcp; port: 443; cidr: 198.51.100.0/24 # ProviderA
- proto: udp; port: 53; cidr: 10.10.0.10/32 # только наш DNS
Պրակտիկա 'վճարելու համար պահել առանձին SG և egress-allowlist հատուկ PSA/պրովայդերներ։ Նորարարությունները IaC-ի և խանդի միջոցով են։
5) Kubernetes: NetworkPolicy-ը և ծառայության-մեշը
NetworkPolicy-ը սահմանափակում է L3/4 ներսում։ լռելյայն «բոլորը խոսում են բոլորի հետ», փակեք։
Deny-all + թույլատրությունը միայն անհրաժեշտ է
yaml apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: { name: deny-all, namespace: prod }
spec:
podSelector: {}
policyTypes: [Ingress, Egress]
ingress: []
egress: []
---
Разрешаем API разговаривать с платежным сервисом и DNS apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: { name: api-allow-specific, namespace: prod }
spec:
podSelector: { matchLabels: { app: api } }
policyTypes: [Ingress, Egress]
egress:
- to:
- namespaceSelector: { matchLabels: { name: prod } }
podSelector: { matchLabels: { app: payments } }
ports: [{ protocol: TCP, port: 8080 }]
- to:
- ipBlock: { cidr: 10.10.0.10/32 }
ports: [{ protocol: UDP, port: 53 }]
@-@ մեշ (Istio/Linkerd/Consul) ավելացնում է
MTIM ամենուր (ինքնության ծառայությունների վավերացում, ոչ թե IP)։
L7 ֆիլտրացիան (մեթոդներ/հոստներ/վերնագրեր), circuit-breaker, www.ier-ej.ru։
Ծառայության մուտքի քաղաքականությունը/Spiffe ID։
Օրինակ (Istio Authorizae Policy)
yaml apiVersion: security.istio.io/v1 kind: AuthorizationPolicy metadata: { name: api-to-payments, namespace: prod }
spec:
selector: { matchLabels: { app: payments } }
action: ALLOW rules:
- from:
- source:
principals: ["spiffe://prod/ns/prod/sa/api-sa"]
to:
- operation:
methods: ["POST"]
paths: ["/deposit","/withdraw"]
6) Հանրահաշվական ֆաերվոլներ ՝ iptables/nftables/eBPF
Nftables (steitful, deny-all)։
nft table inet filter {
sets {
psp { type ipv4_addr; elements = { 203.0.113.10, 203.0.113.11 } }
}
chains {
input { type filter hook input priority 0; policy drop;
ct state established,related accept iifname "lo" accept tcp dport {22,443} accept
}
output { type filter hook output priority 0; policy drop;
ct state established,related accept udp dport 53 ip daddr 10.10.0.10 accept # только наш DNS tcp dport 443 ip daddr @psp accept # egress к PSP
}
forward { type filter hook forward priority 0; policy drop; }
}
}
EBPF-71 (Cil.ru և այլն) տալիս են բարակ L3-L7 քաղաքականություն և տեսանելիություն (flows, RF, HTTP-մետատվյալներ)։
7) Egress-վերահսկումը և նշանակումը և նշանակումը
Allowlist of/IP արտաքին զանգերի համար (PMS, փոստ, KYC, խաղերի պրովայդերներ)։
RF-pinning/RTI-քաղաքական գործիչները 'կտրել միայն վստահված ռեզոլերի միջոցով։ արգելել IP-egress հում։
Առանձին SDC/VNet egress-ը ստեղնաշարային, խաղային և ընդհանուր կոնտուրների համար։
Lentas TIM-ստուգում ոչ-PII-ի համար։ էքսպորտային հոսքերը 'առանց MITM, միայն ուղիղ mTSA/PII-safe։
8) TFC/mTSA և կրիպտոպոլիտիկա
TLS 1. 2 +, ժամանակակից ծածկագրեր, OCMS stapling, HSTS։
MTIM-ը ներսում կապված է Spife ID-ի հետ/սերտիֆիկացում-հաշիվներ։
Հավաստագրերի վերջնական լուծումը և վստահության շղթաների ստուգումը։
MSS/CSP-ը L7-2019-ում, որպեսզի ռետինե հարձակվող աղբյուրները առաջնագծում։
9) Rate-limit և L7-քվոտաներ
Edge-limits IP/ASN/prefics; պլանշետային լիմիտները ինքնաբերաբար (հաշիվ/տենանտ/բանալին)։
Idempotency-keys-ի համար POST-ի վճարումների վիրահատությունների համար, որպեսզի ռելսերը չստեղծեն դուբլներ։
Leaky/Token bucket հետ jitter; քայքայման դեպքում '«մոխրագույն պատասխաններ «/գլխարկ/դանդաղեցում։
10) ՌՖի անվտանգությունը
Թույլատրված են միայն կորպորատիվ ռեզոլվերները (MSC resolver/բարձրացված MFC)։
Split-horizon: Ներքին անունները չեն կտրվում դրսում։
Վնասակար TLD/կատեգորիաների բլոկը, DoH/DoT արգելքը բացակայում է։
Հարցումների տրամաբանությունը և alerting-ը անոմալիաների վրա (նոր օրինագծեր, որոնք հաճախակի են NXDOMAIN)։
11) Լոգան, դիտարկումը և փորձարկումը
Ֆաերվոլների լոգները (allow/deny, կանոնները, բայթերը), WAF-աուդիտը, SNEM/SOAR-ը։
Exemplars: Բլոկի չափումները «trace _ id» -ից արագ ցատկում են խնդրահարույց ուղու վրա։
Սինթետիկա 'PFC/խաղի պրովայդերներ ճիշտ տարածաշրջաններից։
Ցանցի քաոս թեստերը ՝ packet loss, RTT, RTT սխալները, ստուգում ենք կանոնների և ռեմիդիայի արձագանքը։
12) Ավտոմատիզացիա և IaC
Բոլոր կանոնները որպես կոդ (Terraform/Ansible/Helm/Kyverno/Gatekeeper)։
Pox-request-revew անվտանգության քաղաքականության հետ (OPA)։
Տարբերակումը և ծանոթագրությունը 'կանոնների ցանկացած փոփոխություն տեղադրված է գրաֆիկների վրա։
Կանարյան փոփոխությունները 'ցանցային քաղաքականությունները աստիճանաբար (namespace/label, 5-10 տոկոսը)։
13) iGaming հատկությունները
Հիբրիդային երթուղիները (PSA) 'առանձին egress խմբեր, խիստ allowlist, www.ru/timaut։
Խաղերի պրովայդերներ 'CDN ֆորումների whitelisting, պաշտպանություն հանկարծակի ռեդիրետներից։
Գեո կանոնները 'տեղական սահմանափակումների համապատասխանությունը, տարածաշրջանների բլոկները edge-ում։
Backoffice/KYC: հասանելիությունը միայն վստահված ցանցերից/bastion + MFA-ի միջոցով։
Ֆրոդը 'velocity-limits L7-ում և API-ի հետ անոմալ աղբյուրների «ծանր» հարցումները։
14) Արագ կանոնների օրինակներ
UFW (1934)
bash ufw default deny incoming ufw default deny outgoing ufw allow 22/tcp ufw allow 443/tcp ufw allow out to 10.10.0.10 port 53 proto udp ufw allow out to 203.0.113.0/24 port 443 proto tcp
Istio EnvoyProter (արգելքը ոչ ստանդարտ մեթոդներ, գաղափարը)
yaml typed_config:
"@type": type.googleapis.com/envoy.extensions.filters.http.router.v3.Router до роутера — Lua/Match для блокировки методов not in [GET,POST,OPTIONS]
NGINX rate-limit
nginx limit_req_zone $binary_remote_addr zone=rl_api:10m rate=10r/s;
server {
location /api/ { limit_req zone=rl_api burst=50 nodelay; proxy_pass http://api; }
}
15) Ներդրման չեկի ցուցակ
1. Windeny-ը ամպերի մակարդակում (SG/NACL), ռուսական (NetworkPolicy) և հոմանիշներ։
2. Egress-allowlist-ը PMS/պրովայդերների համար, ռեզոլվենք միայն վստահված RF-ի միջոցով։
3. WAF/bot-կառավարում/DDoS edge, L7 կանոնները REST/JSON և բեռնման տակ։
4. MTRC ծառայությունների միջև, ինքնության հեղինակային իրավունքը (Spiffe/SA)։
5. Rate-limit/www.tas edge-ում և 2019-ին, idempotency-keys վճարելու համար։
6. RF քաղաքականությունները 'DoH/DoT, split-horizon, լոգոն։
7. Լոգի և SIEM 'allow/deny/WAF/IV կենտրոնացված հավաքումը, անոմալիաների ալտերտերը։
8. IaC գործընթացները 'կանոնների կոդը, PR-revew, kanareced-ներ, ծանոթագրություններ։
9. Թեստեր/քաոս: RTT/loss/MS-ձախողումներ, fallback երթուղիների ստուգում և Auto-ջութակներ։
10. Ստանիսլավ 'չօգտագործված կանոնների աուդիտ, PFC/CDN հասցեների լուծումը։
16) Anti-patterna
«Բացել ամեն ինչ և հույս WAF-ի վրա», պարիմետրը չի փրկի ներքին լուծումը։
Egress-վերահսկման բացակայությունը լամպի թունելն է արտահոսքի/C2 համար։
Allow-all NetworkPolicy-ը Kubernetes-ում երաշխավորված է։
Ֆիլտրը միայն IP-ն է դինամիկ CDN/PSA-ի աշխարհում առանց տիրույթի/RF վերահսկման։
TIM տերմինալիզացիայի միակ կետը առանց mTSA-ի ներսում ծառայությունների փոխարինումն է։
Առանց IaC/2019-ի, ձեռքերի կանոնները առանց IaC/210-ի, անվստահություն և պարտքեր են։
Ֆաերվոլի լոգները «ոչ մի տեղ», առանց դիտարկման դա պարզապես «սև արկղն» է։
Արդյունքները
Արդյունավետ ֆիլտրը պլատֆորմի ճարտարապետական հյուսվածքն է 'edge-WAF-ից և ամպային SG-ից մինչև NetworkPolicy և mTRK-ի ներսում, կոշտ egress-վերահսկմամբ PMS/պրովայդերների և IaC-ի միջոցով։ Այս համակարգը նվազեցնում է արտահոսքի և հարձակումների ռիսկը, պահպանում վճարումները և խաղերը SLO-ի շրջանակներում և օգնում է արագ հետաքննել միջադեպերը ամբողջական արտահոսքի և դիտարկման շնորհիվ։