Proto-mühitin möhkəmləndirilməsi
Prod mühitinin möhkəmləndirilməsi
1) Məqsəd və çərçivə
Prod-mühitin möhkəmləndirilməsi (hardening) hadisələrin baş vermə ehtimalını və onlara dəyən ziyanı azaldan sistemli bir təcrübədir. Focus: API perimetri, müştəri/ödəniş məlumatları, CI/CD, konteyner platforması, giriş, dəyişiklik nəzarəti, müşahidə və tənzimləmə tələblərinə uyğunluq.
Əsas prinsiplər:- Security by Design & Default: minimum lazımi imtiyazlar, təhlükəsiz defoltlar.
- Zero Trust: yoxlama olmadan şəbəkəyə və ya şəxsiyyətə etibar etməyin.
- Defence-in-Depth: çox səviyyəli müdafiə (şəbəkə → xidmət → tətbiq → məlumat).
- Artefaktların immutabilliyi: «build once, run many».
- E2E izləri və auditoriya: kim, nə vaxt, nə dəyişdi - və niyə.
2) Təhlükə modeli və kritik aktivlər
Aktivlər: hesablar və ödəniş tokenləri, PII/pasport məlumatları, RNG/oyun balansları, şifrələmə açarları, inteqrasiya sirləri, deploy paylaynları, konteyner şəkilləri.
Vektorlar: asılılıq zəiflikləri, tokenlərin sızması, buludun/K8s, API-də SSRF/RCE səhv konfiqurasiyası, supply chain (CI/CD/reposition kompromasiyası), insayder girişi, DDoS/bot trafiki.
Ssenarilər: icazəsiz subyekt tərəfindən vəsaitlərin çıxarılması, əmsalların/balansların dəyişdirilməsi, bazanın boşaldılması, payplaynın tutulması, prodda əl ilə düzəlişlər.
3) Şəbəkə arxitekturası və izolyasiya
Seqmentasiya: prod/stage/dev üçün ayrı-ayrı VPC/VNet. Prod daxilində - edge (LB/WAF), API, DB, analitiklər, inzibati xidmətlər üçün alt şəbəkələr.
«Açıq şəkildə icazə verilir» siyasəti: alt şəbəkələr arasında yalnız lazımi limanları/istiqamətləri açırıq.
mTLS xidmətlər arasında, sertifikatların rotasiyası avtomatlaşdırılmışdır.
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) Kimlik və Access (PAM/JIT)
Bütün insan girişləri üçün SSO + MFA.
RBAC&ABAC: bulud səviyyəsində rollar, klaster, ad məkanları və tətbiqlər.
PAM: jump/bastion, JIT-access (məhdud vaxt), session recording.
Break-glass: aparat açarı ilə möhürlənmiş qeydlər, jurnallaşdırılan çıxış.
«Kim nəyə çıxış əldə edə bilər» müntəzəm skan, hər 30 gündə bir dəfə.
5) Sirləri və açarları
Gizli saxlama (Vault/KMS/Secrets Manager), Git-dən sirləri istisna edirik.
Master-açarlar üçün KMS/HSM; KEK/DEK, avtomatik rotasiya.
TTL siyasətləri: qısa ömürlü tokenlər (OIDC/JWT), CI üçün müvəqqəti qeydlər.
Şifrələmə: dinc (AES-256/GCM), uçuşda (TLS 1. 2 +/mTLS), PII/kart məlumatları - ayrıca açar.
6) Supply chain и CI/CD hardening
prod üçün runner izolyasiyası (xüsusi şəbəkədə self-hosted).
Artefaktların imzası (Sigstore/cosign), deployun imzasının yoxlanılması.
SBOM (CycloneDX/SPDX), SCA/VƏ hər bir kommit və buraxılışdan əvvəl.
Siyasətlər «no tag latest», yalnız immutable tags.
4-göz prinsipi: məcburi code review və change approval.
Infrastructure as Code: Terraform/Helm с policy-as-code (OPA/Conftest).
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) Konteynerlər və Kubernetes
Minimum görüntü bazası (distroless), rootless, read-only FS, drop CAPs.
Admission-control: qadağan privileged, hostPath, hostNetwork.
Pod Security Standards: baseline/restricted для prod ns.
ImagePolicyWebhook: Yalnız imzalanmış şəkilləri atlayın.
Runtime-policies (Falco/eBPF): anormal syscalls üçün alert.
Quota/LimitRange: «səs-küylü qonşulardan» düyünlərin qorunması.
8) API perimetri: WAF, Rate Limits, Bot/DDoS
API Gateway: autentifikasiya (OAuth2/JWT/HMAC), normallaşdırma, mTLS, schema validation.
WAF: biznes metriklər üçün əsas qaydalar + kasta.
Rate limits: qlobal/IP/müştəri açarı; «tokenlər» və burst.
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 management: davranış siqnalları, device fingerprint, challenge.
DDoS: CDN/edge-scrubbing, autoscaling, isti fich üçün «dark-launch».
9) Konfiqurasiya siyasəti və təhlükəsiz defolt
Feature flags/kill-switches riskli funksiyaları tez dayandırmaq üçün.
Config-as-Code validasiya sxemləri, konfiqurasiya üçün canary/blue-green.
Konfiqurasiya/açarları geri çağırarkən KPI kimi Time-to-Revoke.
10) Məlumatlar və məxfilik
Təsnifat: PII/maliyyə/əməliyyat log/telemetriya.
Minimallaşdırma: yalnız lazım olanı saxlayın, anonimləşdirmə/təxəllüsləşdirmə.
Backups: ayrıca hesab/layihə, şifrələmə, müntəzəm DR məşqləri.
Çıxış qaydaları: same-method, velocity-limitlər, risk-skor, 4-göz.
Legal Hold/retenshn: saxlama qrafikləri, idarə olunan utilizasiya.
11) Müşahidə, həyəcan və reaksiya
Triada: loqlar (sirləri olmayan), metriklər (SLO/SLA), treyslər (W3C).
Təhlükəsizlik siqnalları: giriş müvəffəqiyyəti/uğursuzluğu, imtiyazların artması, sirlərin dəyişdirilməsi, trafik sapmaları.
SIEM + SOAR: korrelyasiya və yarı avtomatik pleybuklar.
Hadisələrin pleybukları: DDoS, sirlərin sızması, runner 'a güzəşti, reliz rollback, ödənişlərin «dondurulması».
MTTD/MTTR əsas performans metrik kimi.
12) Dəyişikliklər və buraxılışın idarə edilməsi
Change Advisory Board (yüngül) yüksək riskli dəyişikliklər üçün.
Pre-prod gates: testlər, təhlükəsizlik, perf, DB miqrasiyası.
Canary/Blue-Green/Shadow deploi, SLO avtomatik rollback.
Prodda birbaşa düzəlişlərin qadağan edilməsi: dəyişikliklər yalnız paypline vasitəsilə.
13) Boşluqlar və yamalar
Patch policy: kritik - ASAP; high - N gün ərzində.
Fiksdən sonra təkrar tarama; ekspozisiya CVE-tartı.
Chaos-security: «table-top» periodik məşqlər və xüsusi pəncərələrdə «qırmızı komanda» hücumları.
14) Uyğunluq və audit
Nəzarət çərçivələri: PCI DSS (ödənişlər), SOC 2, ISO 27001.
Artefaktlar: nəzarət matrisi, dəyişiklik jurnalları, skan hesabatları, DR test nəticələri, access-review.
Davamlı hazırlıq: «evidence as code» - artefaktlar avtomatik olaraq payplaynlardan və sistemlərdən toplanır.
15) İqtisadiyyat və etibarlılıq
Guardrails dəyərinə görə: kvotalar, büdcələr, risklər, istifadə olunmayan resursların avtomatik söndürülməsi.
Tutum: SLO yönümlü planlaşdırma, yük testləri, «xaos günləri».
Bərpa prioritetləri: xidmətlər üzrə RTO/RPO, asılılıq xəritəsi.
16) Anti-nümunələr
Git-də v.env sirləri, hamı üçün ümumi «admin», «prod-da birbaşa SSH», konteynerlərdə əl fiksləri, «latest» etiketləri, hər şey üçün bir ümumi klaster, ictimai baketlər, prod-şəbəkədə outbound interneti olan CI-runner, PII-lər, «isti» üçün kill-switch yoxdur Fich.
17) Sürətli başlanğıc çek siyahısı (90 gün)
0-30 gün
MFA/SSO, giriş review daxil edin; deny-all şəbəkə siyasətçiləri; Secrets Manager/KMS; K8s privileged qadağası; WAF/Rate-limit daxil edin; giriş/eskalasiyanın əsas alertləri.
31-60 gün
Şəkil imzası + ImagePolicy; SBOM + SCA в CI; canary/rollback; SIEM korrelyasiya; IR pleybukları; JIT/PAM; DR testi ilə ehtiyat.
61-90 gün
IaC üçün OPA-guardrails; eBPF/Falco; bot-menecment; periodic access-review; chaos-security məşq; konfiqurasiya audit və cost-guardrails.
18) Yetkinlik metrikası
Accessories:% MFA ilə hesablar, tokenlərin orta yaşı, geri çağırma vaxtı.
Paypline: %/SBOM imzalı şəkillər, SAST/DAST örtüyü.
Platforma: read-only FS, PSS-restricted, NetworkPolicy əhatə ilə pod 'ların payı.
Perimetri:% rate-limit/WAF qaydaları ilə API, DDoS-ə orta cavab.
IR: MTTD/MTTR, «table-top» tezliyi, uğurlu DR məşqlərinin faizi.
Uyğunluq: avtomatik dəlillərlə nəzarət payı.
19) Əlavə: siyasət şablonları
AWS SCP (ictimai baxetlərin qadağan edilməsi)
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
Konteynerlər üçün OPA (privileged qadağası)
rego package k8s. admission deny[msg] {
input. request. object. spec. containers[_].securityContext. privileged == true msg:= "Privileged containers are not allowed in prod"
}
20) Nəticə
Proto-mühitin möhkəmləndirilməsi davamlı bir prosesdir. Maksimum risk azaldılması tədbirlərinə üstünlük verin: giriş və sirlər, şəbəkə izolyasiyası, artefaktların imzası və paylayıcı nəzarət, API perimetrinin qorunması, müşahidə və intizam dəyişiklikləri. Qalanları yetkinlik göstəricilərini və nəzarət iqtisadiyyatını qeyd edərək iterativ şəkildə artırın.