GH GambleHub

Prod-շրջակա միջավայրի ամրապնդումը

Prod-ի ամրացում

1) Նպատակը և շրջանակը

Մեծացումը (hardening) prod-շրջակա միջավայրն է, որը նվազեցնում է միգրանցների հավանականությունը և վնասը դրանցից։ Ֆոկուս 'API պարիմետրը, հաճախորդների տվյալները/վճարումները, CI/CD, բեռնարկղային պլատֆորմը, հասանելի, փոփոխությունների վերահսկումը, դիտարկումը և կարգավորող պահանջները։

Հիմնական սկզբունքները

Disby Design & Live-ը 'նվազագույն անհրաժեշտ արտոնություններ, անվտանգ դեֆոլտներ։

Zero Trust: Մի վստահեք ոչ ցանցին, ոչ էլ նույնականություններին առանց ստուգման։

Contence-in-Depth-ը բազմաբնույթ պաշտպանություն է (ցանցը ռուսական ծառայությունն է, որը համապատասխանում է տվյալները)։

Արտեֆակտների իմուտաբելությունը '«build once, run many»։

E2E-հետքեր և աուդիո հետևանքներ. Ո՞ վ, երբ, ինչ-որ բան փոխեց, և ինչու։

2) Սպառնալիքների և կրիտիկական ակտիվների մոդել

Ակտիվները ՝ հաշիվներ և հիբրիդային հոսանքներ, PII/անձնագրային տվյալներ, RNG/խաղային հավասարակշռություններ, կոդավորման բանալիներ, ինտեգրման գաղտնիքներ, Deploy plines, բեռնարկղերի պատկերներ։

Վեկտորները 'կախվածության խոցելիություն, հոսանքների արտահոսք, ամպի/K8s, SSRF/RCE API, suply chain (CI/CD/repozoria), ինսայդերական հասանելիություն, DDoS/bot-2019։

Սցենարներ ՝ ոչ արտառոց սուբյեկտի, գործակիցների/հավասարակշռությունների փոխարինումը, բազայի լուծումը, փայտի գրավումը, ձեռքի ուղղությունները։

3) Ցանցային ճարտարապետությունը և մեկուսացումը

Սեգմենտացիան 'առանձին SDC/VNet-ի համար 2019/stage/dev-ի համար։ Մրցույթի ներսում 'edge (LB/WAF), API, BD, վերլուծաբաններ, admin ծառայություններ։

Քաղաքականությունը «հստակ թույլատրված է» ՝ deny-all ենթատեքստերի միջև, մենք բացում ենք միայն անհրաժեշտ պարամետրերը/ուղղությունները։

MTRC ծառայությունների միջև, ավտոմատացված հավաստագրերի լուծումը։

Օրինակ K8s NetworkPolicy (deny-all + allow-list)։

yaml apiVersion: networking. k8s. io/v1 kind: NetworkPolicy metadata:
name: default-deny namespace: prod spec:
podSelector: {}
policyTypes: ["Ingress","Egress"]
apiVersion: networking. k8s. io/v1 kind: NetworkPolicy metadata:
name: allow-api-to-db namespace: prod spec:
podSelector:
matchLabels: {app: db}
ingress:
- from:
- podSelector: {matchLabels: {app: api}}
ports: [{protocol: TCP, port: 5432}]

4) Ինքնություն և հասանելիություն (PAM/JIT)

SSO + MFA-ը բոլոր հասանելի մարդկանց համար։

RBAC&ABAC 'դերերը ամպերի, ոճերի, անունների և ծրագրերի մակարդակում։

PAM: jump/bastion, JIT հասանելիությունը (սահմանափակ ժամանակ), session recording։

Break-glass-ը 'նկարված սալիկներ ապարատային բանալին, ամսագրեր։

Մոսկովսկանները «ովքեր մուտք ունեն», 30 օրվա ընթացքում։

5) Գաղտնիքներ և բանալիներ

Գաղտնիքների պահեստ (Vox/KFC/Secrets System), բացառում ենք Git-ի գաղտնիքները։

KFC/HSM www.ter-2019 համար; KEK/DEK, ավտոմատ նավարկություն։

TTL-ի քաղաքականությունները 'կարճ հոսանքներ (OIDC/JWT), CI-ի համար ժամանակավոր վերանորոգումներ։

Կոդավորումը 'հանգիստ (AES-256/GCM), թռիչքում (TFC 1։ 2 +/mTSA), PII/քարտային տվյալների սյունակները առանձին բանալին են։

6) Supply chain и CI/CD hardening

Runner 's մեկուսացումը կոդավորման համար (www.f-hosted)։

Արտեֆակտների ստորագրությունը (Sigstore/cosport), ստորագրության ստուգումը։

SBSA (Cyclance DX/SPDX), SCA/VA-ը յուրաքանչյուր կոմիթում և նախքան թողարկումը։

«Windowlatest» քաղաքական գործիչները, միայն իմուտաբային թեգերը։

4-աչքի սկզբունք 'պարտադիր code review և change approval։

Infrastructure as Code: Terraform/Helm с policy-as-code (OPA/Conftest).

OPA-ռեգլի օրինակը (public S3/Storage)

rego package iac. guardrails

deny[msg] {
input. resource. type == "storage_bucket"
input. resource. acl == "public-read"
msg:= sprintf("Public bucket forbidden: %s", [input. resource. name])
}

7) Բեռնարկղերը և Kubernetes-ը

Պատկերի նվազագույն հիմքը (distroless), rootless, read-only FS, drop CAPs.

Admission-վերահսկումը 'privileged, hostPath, hostNetwork արգելքը։

Pod Security Standards: baseline/restricted для prod ns.

Imault PolicyWebhook-ը միայն ստորագրված պատկերներ է։

Runtime քաղաքականությունը (Falco/eBPF) 'ալտերտեր աննորմալ scalls։

Delta/LimitRange: պաշտպանություն հանգույցներից «աղմկոտ հարևաններից»։

8) API պարիմետրը ՝ WAF, Rate Limits, Bot/DDoS։

API Gateway: վավերացում (OAuth2/JWT/HMAC), նորմալացում, mTSA, schema validation։

WAF 'հիմնական կանոնները + քասթի տակ բիզնես մետրիկայի համար։

Rate limits: գլոբալ/IP/հաճախորդի բանալին; «tokens» և burst.

NGINX-rate-limit-ի օրինակ

nginx limit_req_zone $binary_remote_addr zone=api:20m rate=10r/s;

server {
location /api/ {
limit_req zone=api burst=30 nodelay;
proxy_pass http://api_backend;
}
}

Bot 2019 'վարքագծային ազդանշաններ, device fingerprint, challenge։

DDoS: CDN/edge-scrubing, autoscaling, «dark-launch» տաք ավարտների համար։

9) Միգրացիայի քաղաքականությունը և անվտանգ դեֆոլտները

Feature flags/kill-switches-ը արագ ռիսկի գործառույթների համար։

Windows-as-Code-ը սխեմաների վալիդացիայի, canary/blue-green-ի համար։

Time-to-Revoke-ը որպես KPI-ը, երբ հետ կանչեց եզրերը/2019։

10) Տվյալները և գաղտնիությունը

Դասակարգումը 'PII/ֆինանսներ/վիրահատական լոգներ/թելեմետրիա։

Նվազեցում 'պահել միայն անհրաժեշտ, անանուն/կեղծանունացում։

Backups: առանձին հաշիվ/նախագիծ, կոդավորումը, DR-փորձարկումները։

Ելույթի կանոնները 'same-method, velocity-limits, risk-coring, 4 աչքեր։

Legal Hold/retenshn 'պահեստավորման գրաֆիկներ, որոնք կառավարվում են հեռացման միջոցով։

11) Դիտողություններ, ալտերտեր և արձագանք

Տրիադա 'լոգներ (որոնք չեն պարունակում գաղտնիքները), մետրիկները (SLO/SLA), թրեյսները (W3C)։

Անվտանգության ազդանշաններ ՝ հաջողություններ/մուտքերի ձախողում, արտոնությունների սրացում, գաղտնիքների փոփոխություն, շեղումներ։

SIEM + SOAR 'հարաբերակցություն և կիսա-ավտոմատիկ պլեյբուսներ։

Պլեյբուսները բացատրվում են ՝ DDoS, գաղտնիքների արտահոսք, runner 'a, rollback, վճարումների «սառեցում»։

MTTD/MTTR-ը որպես սնանկության հիմնական մետրեր։

12) Փոփոխությունների կառավարումը և արտադրությունը

Change Advisory Board (թեթև) high-risk փոփոխության համար։

Pre-24gates: թեստեր, անվտանգություն, փերֆ, BD։

Canary/Blue-Green/Shadow deploi, ավտոմատ rollback SLO-ով։

Ուղղակի ուղղությունների արգելքը երկարության մեջ է 'փոփոխությունը միայն փայտի միջոցով։

13) Խոցելիություն և փամփուշտներ

Patch policy: Քննադատական ASAP; high - N օրվա ընթացքում։

Կրկնվող սկանավորում ֆիքսից հետո։ CVE-կշռումը էքսպոզիայի վրա։

Chaos-2019 '«table-top» պարբերական վարժությունները և «կարմիր թիմի» հարձակումները ընտրված պատուհաններում։

14) Համապատասխանություն և աուդիտ

Վերահսկիչ շրջանակները ՝ PCI DSS (վճարումներ), SOC 2, CS27001։

Արտեֆակտները ՝ վերահսկման մատրիցա, փոփոխությունների ամսագրեր, սկանների հաշվետվություններ, DR թեստերի արդյունքները, նախկին ակնարկները։

Շարունակական պատրաստակամություն. «Evidence as code» - արտեֆակտները ինքնաբերաբար հավաքվում են դաշտերից և համակարգերից։

15) Տնտեսագիտություն և կայունություն

Guardrails արժեքով 'քվոտաներ, բյուջեներ, ալերտներ, չօգտագործված ռեսուրսների ավտոմատ անջատումը։

Կոնտեքստ 'SLO կողմնորոշված պլանավորումը, բեռի թեստերը, «քաոսի օրերը»։

Վերականգնման առաջնահերթությունները ՝ RTO/RPO ծառայությունների, կախվածության քարտեզը։

16) Anti-patterna

W.env-ի գաղտնիքները Git-ում, ընդհանուր «admin» բոլորի համար, «ուղիղ SSH prod», ձեռքի ֆիքսներ բեռնարկղերում, «latest» թեգեր, մեկ ընդհանուր կլաստեր բոլորի համար, հանրային տանկեր, CI-runner, wwww.bound ինտերնետով, PII-ի լոգիները բացակայում են-switch «տաք» ավարտների համար։

17) Արագ մեկնարկի թուղթը (90 օր)

0-30 օր

Ներառել MFA/SSO-ն, հասանելիության խավին։ deny-all ցանցային քաղաքականությունները; Secrets Manager/KMS; արգելքը K8s-ում; Միացրեք WAF/Rate-limit; մուտքի/էսկալացիայի հիմնական ալտերտերը։

31-60 օր

Պատկերների ստորագրությունը + Imert Policy; SBOM + SCA в CI; canary/rollback; SIEM հարաբերակցություն; IR պլեյբուսներ; JIT/PAM; կրկնօրինակումը DR թեստի հետ։

61-90 օր

OPA-guardrails IaC-ի համար; eBPF/Falco; Բոտ-կառավարում; periodic access-review; chaos-ռուսական վարժություն; գենդերային աուդիտ և cost-guardrails։

18) Հասունության մետրերը

Հասանելի են 'MFA-ից վճարումների տոկոսը, հոսանքների միջին տարիքը, հետ կանչման ժամանակը։

Propline: Պատկերների տոկոսը ստորագրությամբ/SBSA, SFC/DLS ծածկույթը։

Պլատֆորմը 'pod' s մասնաբաժինը read-only FS, PMS-restricted, NetworkPolicy ծածկույթը։

Պարիմետրը 'API% rate-limit/WAF կանոններով, միջին պատասխանը DDoS-ի վրա։

IR: MTTD/MTTR, «table-top» հաճախականությունը, հաջողակ DR փորձարկումների տոկոսը։

Համապատասխանություն 'վերահսկման մասնաբաժինը ավտոմատ ապացույցների հետ։

19) Հավելված ՝ քաղաքական ձևանմուշներ

AWS SCP (հանրային բաքերի արգելք)

json
{
"Version": "2012-10-17",
"Statement": [{
"Sid": "DenyPublicS3",
"Effect": "Deny",
"Action": ["s3:PutBucketAcl","s3:PutBucketPolicy"],
"Resource": "",
"Condition": {"StringEquals": {"s3:x-amz-acl": "public-read"}}
}]
}

Kubernetes PodSecurity (namespace-label)

yaml apiVersion: v1 kind: Namespace metadata:
name: prod labels:
pod-security. kubernetes. io/enforce: restricted pod-security. kubernetes. io/audit: restricted

OPA բեռնարկղերի համար (արգելք privileged)

rego package k8s. admission deny[msg] {
input. request. object. spec. containers[_].securityContext. privileged == true msg:= "Privileged containers are not allowed in prod"
}

20) Եզրակացություն

Prod-միջավայրի ամրապնդումը շարունակական գործընթաց է։ Առաջնահերթություն վերցրեք ռիսկի առավելագույն նվազեցում ունեցող միջոցները 'հասանելի և գաղտնիքներ, ցանցային մեկուսացում, արտեֆակտների ստորագրություն և վերահսկողություն։ Մնացած մասը ավելացրեք iterational-ով 'գրանցելով հասունության չափումները և վերահսկման տնտեսությունը։

Contact

Կապ հաստատեք մեզ հետ

Կապ հաստատեք մեզ հետ ցանկացած հարցի կամ աջակցության համար։Մենք միշտ պատրաստ ենք օգնել։

Telegram
@Gamble_GC
Սկսել ինտեգրացիան

Email-ը՝ պարտադիր է։ Telegram կամ WhatsApp — ըստ ցանկության։

Ձեր անունը ըստ ցանկության
Email ըստ ցանկության
Թեմա ըստ ցանկության
Նամակի բովանդակություն ըստ ցանկության
Telegram ըստ ցանկության
@
Եթե նշեք Telegram — մենք կպատասխանենք նաև այնտեղ՝ Email-ի дополнение-ով։
WhatsApp ըստ ցանկության
Ձևաչափ՝ երկրի կոդ և համար (օրինակ՝ +374XXXXXXXXX)։

Սեղմելով կոճակը՝ դուք համաձայնում եք տվյալների մշակման հետ։