סריקת פגיעות ותיקונים
סיכום קצר
ניהול פגיעות (באנגלית: Dulferability management) הוא מחזור רציף: איתור = הערכת סיכונים. טכנולוגיות סריקה (SCA/SAST/DAST/IAST/Cloud/Container) נותנות אותות, והקשר (חשיפה, הרשאות, נתונים, ניצולים) קובע את העדיפות. המטרה היא להפחית את הסיכון האמיתי ללא השבתה עסקית באמצעות אוטומציה, חישובים קנריים ו-SLOs ברור.
סורק טקסונומיה
SCA (Software Composition Analysis): תלות/ניתוח רישיון; תגלית CVE בספריות, SBOM.
ניתוח SAST-Static של קוד ילידי לפני הרכבה.
קופסה שחורה דינמית נגד שירות הפעלה.
חיישני אפליקציה (במהלך בדיקות) פחות FP, הקשר עמוק יותר.
סריקת קונטיינר/מערכת ההפעלה: תמונות (תמונת בסיס, חבילות), מארחים (ליבה/חבילות/תצורה), ציוני CIS.
ענן/אינפרה (CSPM/KSPM): cloud/K8s פיגים מוטעים (IAM, רשתות, הצפנה, דליים ציבוריים).
סודות סריקה: דליפות מפתח/אסימון במאגרים ותמונות.
סריקה בינארית/חפץ: אימות של חפצים שנאספו (חתימות, נקודות תורפה).
מודל סיכון ותעדוף
ציון = 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 (קריטי, מופעל): תקן את 48h.
- P2 (גבוה): לתקן את השימור 7 ימים.
- P3 (ממוצע): לתקן את השימור 30 יום.
- p4 (low/inform): מתוכנן/על ידי backlog.
אופן חיים לניהול פגיעות
1. מלאי נכסים: שירותים, תמונות, אשכולות, מערכת הפעלה, חבילות, תלות, גרסאות.
2. סריקה מתוכננת ואירועים: מתחייבים, בונים, זורקים, חלונות יומיים/שבועיים.
3. מיון: dauplication, נורמליזציה (CVE accet), מיפוי לבעלים.
4. עדיפות על פי ההקשר: CVSS/EPSS + חשיפה/נתונים.
5. תיקון: עדכון תיקון/תלות/הגדרה קשיחה/תיקון וירטואלי (WAF).
6. אימות: חילוץ, בדיקות, כנרית.
7. דיווח: מדדי סגירה, גיל נקודות תורפה, ציות ל-SLO.
8. שיעורים: תיקון בתבניות (תמונת בסיס, תרשים הלם), מדיניות לעתיד.
אינטגרציה לתוך CI/CD
בשלב PR: SAST + SCA + סריקה סודית; ”לשבור לבנות” על ידי P1/P2 או דרישת יישום.
בשלב הבניה: סריקת תמונות, דור SBOM (CyclonDX/SPDX), חתימת חפץ (cosign).
בפריסה: שלב מדיניות ההרשמה - איסור על תמונות בעלות פגיעות קריטית/גבוהה ו/SBOM לא חתום.
פוסט-שלב: DAST/IAST נגד היערכות וייצור חלקי (פרופילים בטוחים).
דוגמה: שיפוץ/תלוי (מקטע)
json
{
"extends": ["config:recommended"],
"vulnerabilityAlerts": { "enabled": true },
"packageRules": [
{ "matchUpdateTypes": ["minor","patch"], "automerge": true },
{ "matchManagers": ["dockerfile"], "enabled": true }
]
}
מדיניות הכניסה (קוברנטס, אופ "א/שומר הסף - מפושט)
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])
}
ניהול טלאי (נכסים קבועים, מכולות, K8s)
MemberComment (לינוקס/חלונות)
חלון תיקון: חלונות רגילים + חלונות חירום יוצאי דופן עבור P1.
אסטרטגיה: צומת קנרית 5-10% קודם, ואז גלים.
פריסה אוטומטית: Anble/WSUS/Intune/SSM; בדיקה מגובשת וגלגולים.
Kernel Live Patching (היכן שאפשר) כדי לצמצם את זמן ההשבתה.
שירותי הפעלה מחדש: ניקוז מנוהל/קורדון לצמתים K8s, כיבוי חינני.
מיכלים
גישה בלתי ניתנת לשינוי: לא ”שדרוג מתאים” בזמן ריצה; לבנות מחדש את התמונה עם הבסיס המעודכן.
תמונות בסיס: עדכון קבוע של תמונות זהב (Alpine/Debian/Distroless), תיקון גרסאות (Digest).
הרכבים רבי-שלבים: למזער את פני השטח (הסרת כלים מובנים).
סריקה מראש - בלוק של תמונות עם CVES קריטי.
Kubernetes/Service Mesh
מטוס בקרה: שחרור קל בזמן, סגירת k8s CVE/etcd/centainerd.
זמן הריצה של מערכת ההפעלה: עדכונים מתוכננים, תאימות גרסאות.
Mesh/Ingress: Envoy/Istio/NGINX הם גרסאות קריטיות (לרוב CVE בפרסרים/NTR3).
מדיניות הכניסה: איסור ”עדכני”, דרישת חתימה, מגבלות פגיעות.
טלאים וירטואליים ואמצעי פיצוי
כאשר תיקון אינו אפשרי במהירות:- WAF/WAAP: חתימה/מודל חיובי לנקודת סיום מסוימת.
- דגלים מאפיינים: בטל פונקציונליות פגיעה.
- רשת ACL/mTLS/IP מאפשרת: להגביל את הגישה לשירות הפגיע.
- הגדרה מתקשה: הורדת זכויות, ארגז חול, קריאה בלבד FS, ביטול מודולים מסוכנים.
- הפחתת אסימוני TTL/מפתחות, סיבוב סודות.
קבלה בסיכון
חריג מונפק בכרטיס עם: הצדקה, אמצעים לפיצוי, SLA לביטול, עדכון תאריך.
דיווח כ ”קבלת סיכון זמני” וכולל בסקירה חודשית.
יכולת תצפית ומדדים
טכני:- זמן מכוון לתיקון (MTTP) P1/P2/P3.
- נתח של נכסים מכוסים על ידי סריקה (%).
- גיל של נקודות תורפה פתוחות (p50/p90), צריבה.
- אחוז התמונות עם SBOM וחתימה.
- השלמת SLOs על ידי סגירת תאריכים (למשל 95% P1 בתוך 48 שעות)
- השפעה על הזמן (מספר תקריות תיקון).
- זיהוי חוזר של אותו CVE (תיקון איכות בתבנית).
ספרי שעשועים (מקוצר)
P1: RCE ביקורתי בשירות הציבורי
1. הפעל את כלל WAF/wirth.
2. חסום גישה למקורות לא מורשים (אם ניתן).
3. תמונה דחופה בבנייה מחדש של מערכת ההפעלה.
4. בדיקת DAST/טלמטריה חוזרת ונשנית, ניטור שגיאות.
5. לאחר תקרית: לתקן את התיקון בתרשים תמונת הבסיס/הלם, להוסיף את הבדיקה למודיע.
1. סיבוב מיידי של סודות/מפתחות, שלילת אסימונים.
2. מציאת עקבות של שימוש, הגבלת נקודות סוף.
3. סריקות של ריפו/תמונות לסודות, יישום של סורק מראש.
דוגמאות של חפצים
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) מדיניות כניסה (קיוורנו, חסימת פגיעות קריטית)
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, נתונים).
תיקון בזמן ריצת המכולה במקום לבנות מחדש את התמונה.
מחסור בקנריות/תוכניות החזרה.
התעלמות מפיגים מוטעים cloud/K8s (לרוב ביקורתיים יותר מ-CVE).
אין SBOM/חתימה - שרשרת אספקה.
מימוש מפת דרכים
1. מלאי של נכסים ובעלים; רשימה מאוחדת של שירותים/תמונות.
2. ערימת סורק: SCA/SAST/DAST/Container/Cloud + סריקה סודית; אינטגרציה לתוך CI/CD.
3. מדיניות SLO ותעדוף: CVSS + EPSS + הקשר; תבניות כרטיס.
4. כניסה/מדיניות: איסור על פגיעות קריטית, דרישת SBOM/חתימות.
5. תהליכי תיקון: חלונות, קנריות, גלגיליות; טייס אוטומטי לגרסאות קטנות/טלאים.
6. דיווח ומדדים: MTTP, כיסוי, גיל; סקירת סיכונים שבועית.
7. תרגילים רגילים: סימולציה של CVE קריטי, אימות של ספרי משחק וגלגול חוזר.
תוצאות
ניהול פגיעות בוגר הוא תהליך, לא ”ניקוי” חד-פעמי: גילוי אוטומטי, עדיפויות הקשר, טלאים חלקים דרך קנריות/רולבק, מדיניות-כקוד בכניסה לפרוד, ומדדי ביצוע שקופים. על ידי אבטחת המנעולים בתצלומי הבסיס ותבניות, אתה מפחית את הסיכון של חזרה ולשמור את משטח ההתקפה תחת שליטה יציבה.