Scanarea vulnerabilității și patch-uri
Scurt rezumat
Managementul vulnerabilității este un ciclu continuu: detectarea → evaluarea riscurilor → eliminarea (patch/migration/config) → verificarea → raportarea. Tehnologiile de scanare (SCA/SAST/DAST/IAST/Cloud/Container) dau semnale, iar contextul (expunere, privilegii, date, EPSS, exploatări) determină prioritatea. Scopul este de a reduce riscul real fără întreruperea activității folosind automatizări, calcule canare și SLO-uri clare.
Taxonomie de scanare
SCA (Analiza compoziției software): analiza dependenței/licenței; Descoperire CVE în biblioteci, SBOM.
Analiza SAST-Static a codului nativ înainte de asamblare.
DAST: cutie neagră dinamică vs. serviciu de funcționare.
IAST: senzori în aplicație (în timpul testelor) - mai puțin FP, context mai profund.
Scanare container/OS: imagini (imagine de bază, pachete), gazde (kernel/pachete/configurații), repere CSI.
Cloud/Infra (CSPM/KSPM): cloud/K8s neconfigs (IAM, rețele, criptare, găleți publice).
Secretele Scan: scurgeri de chei/token în depozite și imagini.
Scanare binară/artefact: verificarea artefactelor colectate (semnături, vulnerabilități).
Modelul de risc și prioritizarea
Scor = CVSS v3. x (bază) × EPSS (probabilitatea exploatării) × context (expunere, date, privilegii, măsuri compensatorii).
Factori de context:- Expunerea pe Internet/interior, prezența WAF/mTLS/izolare.
- Date: PII/finante/secrete.
- Privilegii de proces/nod, potențial de mișcare laterală.
- Disponibilitatea atacurilor publice de exploatare/masă, cerințele de conformitate.
Exemplu vector CVSS: 'CVSS: 3. 1/AV: N/AC: L/PR: N/UI: N/S: U/C: H/I: H/A: H '→ criticat; dacă serviciul este public și fără măsuri compensatorii - P1.
Praguri SLO (exemplu):- P1 (critic, operat): fixați ≤ 48 h.
- P2 (ridicat): fixați ≤ 7 zile.
- P3 (medie): fixați ≤ 30 de zile.
- P4 (low/inform): planificat/prin restanțe.
Ciclul de viață de gestionare a vulnerabilității
1. Inventarul activelor: servicii, imagini, clustere, sistem de operare, pachete, dependențe, versiuni.
2. Scanare programată și eveniment: comite, construiește, halde, ferestre zilnice/săptămânale.
3. Triaj: deduplicare, normalizare (CVE→Ticket), cartografiere la proprietar.
4. Prioritizarea în funcție de context: CVSS/EPSS + expunere/date.
5. Remediere: actualizare patch/dependență/config hardnening/patch virtual (WAF).
6. Verificare: rescanare, teste, canar.
7. Raportare: valori de închidere, vârsta vulnerabilităților, respectarea SLO.
8. Lecții: fixați în șabloane (imaginea de bază, diagrama Helm), politica pentru viitor.
Integrarea în CI/CD
În etapa PR: SAST + SCA + scanare secretă; "break build' prin P1/P2 sau cerința de aplicare.
La etapa de construire: scanare imagine, generare SBOM (CycloneDX/SPDX), semnătură artefact (cosign).
La implementare: Etapa de politică de admitere - interzice imaginile cu vulnerabilități 'critice/ridicate' și nesemnate/SBOM.
Post-etapă: DAST/IAST împotriva punerii în scenă și a producției parțiale (profile sigure).
Exemplu: Renovare/Dependabot (fragment)
json
{
"extends": ["config:recommended"],
"vulnerabilityAlerts": { "enabled": true },
"packageRules": [
{ "matchUpdateTypes": ["minor","patch"], "automerge": true },
{ "matchManagers": ["dockerfile"], "enabled": true }
]
}
Politica de admitere (Kubernetes, OPA/Gatekeeper - simplificată)
rego package policy.vuln
deny[msg] {
input.image.vuln.critical > 0 msg:= sprintf("Image %s has critical vulns", [input.image.name])
}
deny[msg] {
input.image.sbom == false msg:= sprintf("Image %s without SBOM", [input.image.name])
}
Administrarea patch-urilor (active fixe, containere, K8s)
ОС (Linux/Windows)
Fereastră patch: ferestre obișnuite + ferestre extraordinare de urgență pentru P1.
Strategie: Canare 5-10% noduri mai întâi, apoi valuri.
Auto-implementare: Ansible/WSUS/Intune/SSM; verificarea constrângerilor și a rollback-urilor.
Kernel Live Patching (acolo unde este posibil) pentru a minimiza timpul de inactivitate.
Servicii de repornire: scurgere/cordon gestionat pentru noduri K8s, închidere grațioasă.
Containere
Abordare imuabilă: nu "upgrade apt' în timpul rulării; reconstrui imaginea cu baza actualizată.
Imagini de bază: actualizați în mod regulat imaginile de aur (Alpine/Debian/Distroless), remediați versiunile (digest).
Ansambluri în mai multe etape: minimizați suprafața (eliminați uneltele de construcție).
Scanare pre-implementare - Blocarea imaginilor cu CVE-uri critice.
Kubernetes/Service Mesh
Planul de control: versiuni minore în timp util, închiderea CVE k8s/etcd/containerd.
Node OS/Container runtime: actualizări programate, compatibilitate versiune.
Mesh/Ingress: Versiunile Envoy/Istio/NGINX sunt critice (adesea CVE în parsere/NTTR3).
Politici de admitere: interdicție „: cele mai recente”, cerință de semnare, limite de vulnerabilitate.
Plasturi virtuali și măsuri compensatorii
Când un plasture nu este posibil rapid:- WAF/WAAP: semnătură/model pozitiv pentru un anumit punct final.
- Feature Flags: Dezactivați funcționalitatea vulnerabilă.
- Lista permisă de rețea ACL/mTLS/IP: restricționați accesul la serviciul vulnerabil.
- Config hardnening: scăderea drepturilor, sandbox, read-only FS, dezactivarea modulelor periculoase.
- Reducerea jetoanelor/cheilor TTL, rotirea secretelor.
Acceptarea riscurilor
Se emite o excepție cu un bilet cu: justificare, măsuri compensatorii, SLA pentru eliminare, data revizuirii.
Raportați ca „acceptare temporară a riscurilor” și includeți în revizuirea lunară.
Observabilitate și valori
Tehnic:- Timpul mediu până la plasture (MTTP) по P1/P2/P3.
- Ponderea activelor acoperite de scanare (%).
- Vârsta vulnerabilităților deschise (p50/p90), restanțe arde-jos.
- Procentul de imagini cu SBOM și semnătură.
- Finalizarea SLO-urilor prin date de închidere (de ex. 95% P1 ≥ ≤ 48 ore)
- Impact asupra timpului de funcționare (numărul de incidente patch-uri).
- Detectarea repetată a aceluiași CVE (fix calitate în șabloane).
Playbooks (abreviat)
P1: Critic RCE în serviciul public
1. Activați regula WAF/patch-ul wirth.
2. Blochează accesul la surse neautorizate (dacă este cazul).
3. Urgent imagine reconstrui/OS patch-uri, → canar val.
4. Verificare DAST/telemetrie repetată, monitorizarea erorilor.
5. Post-incident: fixați fixarea în imaginea de bază/diagrama Helm, adăugați testul la CI.
1. Rotirea imediată a secretelor/cheilor, revocarea jetoanelor.
2. Găsirea urmelor de utilizare, limitarea obiectivelor finale.
3. Scanări de repo/imagini pentru secrete, punerea în aplicare a unui scaner pre-comite.
Exemple de artefacte
1) Raportul SQL privind vulnerabilitățile la cald
sql
SELECT service, cve, cvss, epss, exposed, has_exploit, created_at,
PRIORITY(exposed, has_exploit, cvss, epss) AS prio
FROM vuln_findings
WHERE status = 'open' AND (cvss >= 8.0 OR has_exploit = true)
ORDER BY prio DESC, created_at ASC;
2) Politica de admitere (Kyverno, bloc de vulnerabilitate critică)
yaml apiVersion: kyverno.io/v1 kind: ClusterPolicy metadata:
name: block-critical-vulns spec:
validationFailureAction: Enforce rules:
- name: image-must-have-no-critical match: { resources: { kinds: ["Pod"] } }
validate:
message: "Image contains critical vulnerabilities"
pattern:
metadata:
annotations:
vuln.scanner/critical: "0"
3) Generarea și semnătura SBOM (fragment Makefile)
make sbom:
cyclonedx create --output sbom.json sign:
cosign sign --key cosign.key $(IMAGE_DIGEST)
Specificitate pentru iGaming/fintech
Zone cu risc ridicat: gateway-uri de plată, backfix de plată, anti-fraudă, procesare PII/PAN - P1/P2 patch-uri prioritare.
Ferestre de service: coordonare cu turnee/promoții, cache-uri pre-calde, canari în regiuni cu încărcătură redusă.
Reglementare (PCI DSS/GDPR): cronologie pentru fixarea vulnerabilităților, dovezi (capturi de ecran/rapoarte), segmentarea zonei CHD, criptare.
Integrarea partenerilor: necesită SDK/clienți versionați, SCA obligatoriu și HMAC/mTLS pe webhook-uri.
Greșeli comune
„Scanează totul - nu repara nimic”: fără proprietari și SLO.
Concentrați-vă numai pe CVSS fără context (expunere, EPSS, date).
Patch în runtime container în loc de reconstruirea imaginii.
Lipsa planurilor canare/rollback.
Ignorarea greșelilor cloud/K8s (adesea mai critică decât CVE).
Fără SBOM/semnătură - lanț de aprovizionare.
Foaie de parcurs privind punerea în aplicare
1. Inventarul activelor și proprietarilor; registru unificat de servicii/imagini.
2. Scanner stack: SCA/SAST/DAST/Container/Cloud + scanare secretă; integrarea în CI/CD.
3. SLO și politici de prioritizare: contextul CVSS + EPSS +; șabloane de bilete.
4. Admitere/Policy-as-Code: interzicerea vulnerabilităților critice, cerința SBOM/semnături.
5. Procese patch: ferestre, canari, rollback-uri; piloţi automaţi pentru versiuni minore/patch.
6. Raportare și măsurători: MTTP, acoperire, vârstă; revizuirea săptămânală a riscurilor.
7. Exerciții regulate: simularea CVE critic, verificarea cărților de redare și rollback.
Rezultat
Managementul vulnerabilității mature este un proces, nu o singură dată „curățare”: detectarea automată, prioritizarea contextului, patch-uri netede prin canari/rollback, policy-as-code la intrarea în prod și măsurători transparente de execuție. Prin securizarea încuietorilor din imaginile și modelele de bază, reduceți riscul de repetare și mențineți suprafața de atac sub control constant.