დაუცველობისა და პატჩის სკანირება
მოკლე რეზიუმე
დაუცველობის მენეჯმენტი არის უწყვეტი ციკლი: რისკის გამოვლენა და შეფასება აღმოფხვრის (პატჩ/მიგრაცია/კონფისკაცია), შემოწმება და მოხსენება. სკანირების ტექნოლოგიები (SCA/SAST/DAST/IAST/Cloud/Container) იძლევა სიგნალებს, ხოლო კონტექსტი (ექსპოზიცია, პრივილეგიები, მონაცემები, EPSS, ექსპლოატაციები) განსაზღვრავს პრიორიტეტს. მიზანია შეამციროს რეალური რისკი ბიზნესის გაუარესების გარეშე, ავტომატიზაციის, კანარის გამოთვლისა და მკაფიო SLO- ს გამოყენებით.
სკანირების ტაქსონომია
SCA (პროგრამული უზრუნველყოფის კომპოზიციის ანალიზები): დამოკიდებულების/ლიცენზიების ანალიზი; CVE აღმოჩენა ბიბლიოთეკებში, SBOM.
SAST: შეკრებამდე საკუთარი კოდის სტატიკური ანალიზი.
DAST: დინამიური „შავი ყუთი“ სამუშაო მომსახურების წინააღმდეგ.
IAST: სენსორები განაცხადის შიგნით (ტესტების დროს) - ნაკლები FP, უფრო ღრმა, ვიდრე კონტექსტი.
Container/OS Scan: სურათები (ბაზის სურათები, პაკეტები), მასპინძლები (ბირთვი/პაკეტები/კონფისკაცია), CIS ბენეფიციარები.
Cloud/Infra (CSPM/KSPM): ღრუბლის/K8s (IAM, ქსელები, დაშიფვრა, საზოგადოებრივი ბაკეტები).
Secrets Scan: გასაღების/ნიშნების გაჟონვა საცავებში და სურათებში.
Binary/Artifact Scan: შეგროვებული არტეფაქტების შემოწმება (ხელმოწერები, დაუცველები).
რისკის მოდელი და პრიორიტეტიზაცია
შეფასება = CVSS v3. x (ბაზა) × EPSS (ოპერაციის ალბათობა) × კონტექსტი (ექსპოზიცია, მონაცემები, პრივილეგიები, რომლებიც ანაზღაურებენ ზომებს).
კონტექსტური ფაქტორები:- ექსპოზიცია ინტერნეტში/შიგნით, WAF/mTLS/იზოლაციის არსებობა.
- მონაცემები: PII/ფინანსები/საიდუმლოებები.
- პროცესის/კვანძის პრივილეგიები, ლათინური პოტენციალი.
- საზოგადოებრივი ექსპლოატაციის/მასობრივი შეტევების არსებობა, შესაბამისობის მოთხოვნები.
CVSS ვექტორის მაგალითი: 'CVSS: 3. 1/AV: N/AC: L/PR: N/UI: N/S: U/C: H/I: H/A: H 'კრიტიკა; თუ მომსახურება არის საჯარო და კომპენსაციური ზომების გარეშე - P1.
SLO ბარიერები (მაგალითი): P1 (კრიტიკული, ექსპლუატაცია): ფიქსი 48:- P2 (მაღალი): ფიქსი 7 დღე.
- P3 (საშუალო): ფიქსი 30 დღე.
- P4 (დაბალი/ინფორმაცია.) : დაგეგმილი/ბაკლოგისთვის.
დაუცველების სასიცოცხლო ციკლი
1. აქტივების ინვენტარიზაცია: მომსახურება, სურათები, მტევანი, OS, პაკეტები, დამოკიდებულება, ვერსიები.
2. გრაფიკისა და ღონისძიების სკანირება: კომიქსები, შეკრებები, დამაგრება, ყოველდღიური/ყოველკვირეული ფანჯრები.
3. სამჯერ: დედაპლაცია, ნორმალიზაცია (CVE - Ticket), მფლობელის მაპინგი.
4. კონტექსტის პრიორიტეტი: CVSS/EPSS + ექსპონენტურობა/მონაცემები.
5. რემედიაცია: დამოკიდებულების პატჩი/განახლება/კონფისკაცია-მძიმე/ვირტუალური პატჩი (WAF).
6. გადამოწმება: განმეორებითი სკანირება, ტესტები, კანალიზაცია.
7. მოხსენებები: დახურვის მეტრიკა, დაუცველობის ასაკი, SLO შესაბამისობა.
8. გაკვეთილები: ფიქსი შაბლონებში (ბაზის სურათი, ჰელმ გრაფიკი), მომავლის პოლიტიკა.
ინტეგრაცია CI/CD- ში
PR ეტაპზე: SAST + SCA + საიდუმლო სკანი; „break build“ მიხედვით P1/P2 ან approve მოთხოვნა.
Build ეტაპზე: გამოსახულების სკანირება, SBOM (CycloneDX/SPDX) წარმოება, არტეფაქტების ხელმოწერა (კოდირება).
Deploy ეტაპზე: დაშვების პოლიტიკა (Admission) - სურათების აკრძალვა „კრიტიკული/მაღალი“ დაუცველობით და ხელმოწერის გარეშე/SBOM.
Postdeploy: DAST/IAST წინააღმდეგ staging და ნაწილობრივ წარმოება (უსაფრთხო პროფილები).
მაგალითი: Renovate/Dependabot (ფრაგმენტი)
json
{
"extends": ["config:recommended"],
"vulnerabilityAlerts": { "enabled": true },
"packageRules": [
{ "matchUpdateTypes": ["minor","patch"], "automerge": true },
{ "matchManagers": ["dockerfile"], "enabled": true }
]
}
დაშვების პოლიტიკა (Kubernetes, OPA/Gatekeeper - გამარტივებული)
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])
}
პატჩის მენეჯმენტი (OS, კონტეინერები, K8s)
ОС (Linux/Windows)
Patch ფანჯარა: რეგულარული ფანჯრები + გადაუდებელი რიგგარეშე P1- სთვის.
სტრატეგია: ჯერ კანარი 5-10% კვანძი, შემდეგ ტალღები.
ავტოავარია: Ansible/WSUS/Intune/SSM; დამოკიდებულებებისა და დაბრუნების შემოწმება.
Kernel Live Patching (სადაც ეს შესაძლებელია) სისუსტის შესამცირებლად.
Restart სერვისები: კონტროლირებადი drain/cordon K8s nods, graceful shutdown.
კონტეინერები
Immutable მიდგომა: არა „apt upgrade“ rantime- ში; შეცვალეთ სურათი განახლებული ბაზით.
ძირითადი სურათები: რეგულარულად განაახლეთ ოქროს სურათები (Alpine/Debian/Distroless), დაფიქსირდეს ვერსიები.
მრავალსართულიანი შეკრება: ზედაპირის შემცირება (ამოიღეთ build-tools).
გადამოწმების წინ: სურათების ბლოკი კრიტიკული CVE.
Kubernetes/Service Mesh
Control Plane: დროული მცირე გამოშვებები, დახურვა CVE k8s/etcd/Containerd.
Node OS/Container runtime: დაგეგმილი განახლებები, ვერსიების თავსებადობა.
Mesh/Ingress: Envoy/Istio/NGINX ვერსიები კრიტიკულია (ხშირად CVE პარსერებში/NTTR3).
Admission Policies: აკრძალვა ': latest', ხელმოწერის მოთხოვნა, დაუცველობის შეზღუდვები.
ვირტუალური პატჩი და კომპენსაციის ზომები
როდესაც პატჩი სწრაფად შეუძლებელია:- WAF/WAAP: ხელმოწერა/პოზიტიური მოდელი კონკრეტული ენდოინტისთვის.
- ფიჩფლაგები: გამორთეთ დაუცველი ფუნქციონირება.
- ქსელის ACL/MTLS/IP allow-list: შეზღუდეთ დაუცველი სერვისის წვდომა.
- კონფისკაცია: უფლებების დაქვეითება, sandbox, read-only FS, საშიში მოდულების გამორთვა.
- TTL ტოქსინების/გასაღებების აბრევიატურა, საიდუმლოებების როტაცია.
გამონაკლისის მენეჯმენტი (Risk Acceptance)
გამონაკლისი შედგენილია ტიკეტით: დასაბუთება, რომელიც ანაზღაურებს ზომებს, SLA აღმოფხვრის თარიღს, გადასინჯვის თარიღს.
მოხსენებებში აღინიშნა, როგორც „დროებითი რისკის მიღება“ და შედის ყოველთვიურ მიმოხილვაში.
დაკვირვება და მეტრიკა
ტექნიკური:- Mean Time To Patch (MTTP) по P1/P2/P3.
- სკანირებით დაფარული აქტივების წილი (%).
- ღია დაუცველების ასაკი (p50/p90), backlog burn-down.
- სურათების პროცენტი SBOM- ით და ხელმოწერით.
- SLO- ს განხორციელება დახურვის ვადის გასწვრივ (მაგ., 95% P1/48 სთ).
- გავლენა აფთიაქზე (პატჩების ინციდენტების რაოდენობა).
- იგივე CVE- ს განმეორებითი იდენტიფიცირება (შაბლონებში ფაქსის ხარისხი).
ფლეიბუკი (შემოკლებით)
P1: კრიტიკული RCE საჯარო სამსახურში
1. გააქტიურეთ WAF წესი/ვირტუალური პატჩი.
2. დაბლოკეთ მიუწვდომელი წყაროებისთვის წვდომა (დასაშვებია).
3. გამოსახულების გადაუდებელი გადაკეთება/patch OS, კანარი - ტალღები.
4. განმეორებითი DAST/ტელემეტრიის შემოწმება, შეცდომების მონიტორინგი.
5. პოსტ-ინციდენტი: ფიქსის კონსოლიდაცია საბაზო გამოსახულებაში/Helm გრაფიკი, დაამატეთ ტესტი CI- ში.
1. საიდუმლოებების/გასაღებების დაუყოვნებელი როტაცია, ტოქსინების მიმოხილვა.
2. გამოყენების კვალის ძებნა, ენდოინების შეზღუდვა.
3. რეპო/სურათების საიდუმლოებები, სკანერის პრეს-commit- ის დანერგვა.
არტეფაქტების მაგალითები
1) SQL ანგარიში „ცხელი“ დაუცველების შესახებ
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) ადმისიის პოლიტიკა (Kyverno, კრიტიკული დაუცველების ბლოკი)
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) SBOM თაობა და ხელმოწერა (Makefile ფრაგმენტი)
make sbom:
cyclonedx create --output sbom.json sign:
cosign sign --key cosign.key $(IMAGE_DIGEST)
სპეციფიკა iGaming/fintech
გაზრდილი რისკის ზონები: გადახდის კარიბჭეები, გადახდის პაკეტი, ანტიფროზი, PII/PAN დამუშავება - P1/P2- ის პრიორიტეტი.
მომსახურების ფანჯრები: ტურნირების/აქციების კოორდინაცია, პრე-ვარმი ქეში, კანალიზაცია დაბალ დატვირთულ რეგიონებში.
მარეგულირებელი (PCI DSS/GDPR): დაუცველების აღმოფხვრის დრო, მტკიცებულებები (ეკრანის კადრები/მოხსენებები), CHD ზონის სეგმენტი, დაშიფვრა.
პარტნიორობის ინტეგრაცია: მოითხოვოს ვერსირებული SDK/მომხმარებლები, სავალდებულო SCA და HMAC/mTLS ვებჰუკებზე.
ტიპიური შეცდომები
„ჩვენ ყველაფერს ვაკეთებთ - ჩვენ არაფერს ვაკეთებთ“: არ არსებობს მფლობელები და SLO.
ფოკუსი მხოლოდ CVSS- ზე კონტექსტის გარეშე (ექსპოზიცია, EPSS, მონაცემები).
Patch კონტეინერის rantime ნაცვლად გამოსახულების გადაკეთების ნაცვლად.
კანარის არარსებობა/rollback გეგმები.
ღრუბლის Misconfigs- ის უგულებელყოფა/K8s (ხშირად უფრო კრიტიკულად, ვიდრე CVE).
არ არსებობს SBOM/ხელმოწერები - supply chain.
გზის განხორციელების რუკა
1. აქტივებისა და მფლობელების ინვენტარიზაცია; სერვისების/სურათების ერთიანი რეესტრი.
2. სკანერების დასტის: SCA/SAST/DAST/Container/Cloud + secret-scan; ინტეგრაცია CI/CD- ში.
3. SLO პოლიტიკოსები და პრიორიტეტები: CVSS + EPSS + კონტექსტი; ტიკეტის შაბლონები.
4. Admission/Policy-as-Code: კრიტიკული დაუცველების აკრძალვა, SBOM/ხელმოწერების მოთხოვნა.
5. Patch პროცესები: ფანჯრები, კანალიზაცია, გამოტოვება; მცირე/პატჩის ვერსიების ავტოპილოტები.
6. ანგარიშები და მეტრიკა: MTTP, საფარი, ასაკი; ყოველკვირეული რისკის მიმოხილვა.
7. რეგულარული წვრთნები: კრიტიკული CVE სიმულაცია, პლეიბუკების შემოწმება და როლბაკი.
შედეგი
დაუცველების სექსუალურ კონტროლს წარმოადგენს პროცესი, და არა ერთჯერადი „გაწმენდა“: ავტომატური გამოვლენა, კონტექსტური პრიორიტეტი, კანაფის/rollback, პოლიცია-as-code პროდ შესასვლელში და გამჭვირვალე მეტრიკა. ფიქსირდება ძირითადი სურათებითა და შაბლონებით, თქვენ ამცირებთ განმეორების რისკს და შეინარჩუნებთ შეტევის ზედაპირს სტაბილური კონტროლის ქვეშ.