אחד האתגרים העיקריים בניהול פגיעות הוא מספר עצום של פגיעות בשילוב עם משאבים מוגבלים.לא כל הפגיעות הן מסוכנות באותה מידה, ולא כל אחת דורשת תיקון דחוף.לדוגמה, פגיעה עם ציון CVSS גבוה עשויה להוות סיכון קטן בעולם האמיתי אם הסיכוי לניצול הוא נמוך מאוד. במאמר הקודם, הציגתי את במאמר זה, אראה כיצד מימשתי את תמיכת EPSS והשתלבתי במדידה זו בתהליכי הפילטרציה והניתוח שלי כדי לשפר את מאמצי התיקון. פתרון ללא קוד לעיקרון פגיעות באמצעות Budibase על ידי אימוץ יישום עדיפויות מבוסס EPSS, אתה יכול לשפר באופן משמעותי את האפקטיביות של אסטרטגיית התיקון שלך על ידי התמקדות בפגיעות שחשוב באמת. החדשות הטובות הן שאתה לא צריך פלטפורמות יקרות ליישם EPSS מבוסס עדיפויות. מה זה EPSS ולמה זה שימושי? מערכת ההפעלה של מערכת ההפעלה ( ) מייצג את האפשרות כי פגיעה ספציפית תהיה מנוצלת בתוך 30 הימים הקרובים, המוצג בתור אחוז. EPSS הגרסה הנוכחית של המודל היא גרסה 4, שפורסמה ב -17 במרץ 2025. הנתונים מתעדכנים מדי יום והם זמינים להורדה בפורמט .csv. FIRST.org פגיעה עם סיכוי נמוך מאוד לניצול מהווה איום מיידי קטן יותר. פגיעה עם סיכוי נמוך מאוד לניצול מהווה איום מיידי קטן יותר. גישה זו משפרת את היעילות על ידי כיוון משאבים - כגון זמן ומאמץ - לפגיעות המייצגות סיכון משמעותי יותר, ומאפשרת לטפל בפגיעות פחות קריטיות מאוחר יותר, בין אם כאשר הן הופכות לסיכון או כאשר משאבים נוספים זמינים. לדוגמה, יש לשקול שתי פגיעות: אחת עם ציון CVSS של 7.0 ו- EPSS של 0.01 (אשר מצביע על סיכוי של 1% של ניצול), והשנייה עם ציון CVSS של 6.5 ו- EPSS של 0.91 (אשר מצביע על סיכוי של 91% של ניצול). בעוד ש-CVSS מצביע על רצינות תיאורטית, EPSS מציע תובנה על סבירות הפגיעה המופעלת, ומספקת רקע יקר לגבי איומים אמיתיים פוטנציאליים. כפי שמוצג בתמונה לעיל, בעת יישום שיטת EPSS עם סף של מעל 10%: המאמץ מופחת רק ל- 2.7%, נמוך באופן משמעותי מאשר המאמץ הנדרש עם סף CVSS של 7 או יותר. הכיסוי מגיע ל-63.2%, מעט נמוך יותר מאשר הגישה CVSS, אשר מועיל במניעת עדיפות יתר על המידה של פגיעויות פחות רלוונטיות. היעילות עומדת על 65.2%, אשר גבוה באופן משמעותי ממה שניתן להשיג עם שיטת CVSS 7+. בנוסף לסיכום EPSS, יש גם מטריקה פנטסילית המעידה על אחוז (או אחוז) של פגיעות עם סיכוי זהה או נמוך יותר של ניצול. לדוגמה, אם לפגיעה יש ציון EPSS של 0.10 (10%) ומקסימום של 88, זה אומר כי 88% מכל הפגיעות האחרות יש ציון EPSS נמוך יותר. שימוש בסקירה EPSS לצד הפנטסיל שלה מאפשר יישום עדיפויות מדויק יותר, במיוחד כשמדובר במערכות נתונים גדולות. https://www.first.org/epss/articles/prob_percentile_bins?embedable=true חשוב לזכור כי ציון EPSS הוא תחזית ולא אחריות על ניצול.למידע נוסף על איך המודל עובד, אנא בקר בדף הרשמי: https://www.first.org/epss/model. כיצד מימשתי EPSS במערכת שלי באמצעות Budibase כדי ליישם מסנן המבוסס על הערך EPSS, קודם כל הורדתי את הארכיון מהמשרד הרשמי. אתר אינטרנט, המכיל את ציוני הסיכוי האחרונים של ניצול עבור פגיעות. הנה דוגמה לתוכן מהקובץ CSV בארכיון: first.org #model_version:v2025.03.14,score_date:2025-08-02T12:55:00Z cve,epss,percentile CVE-1999-0001,0.0142,0.79836 CVE-1999-0002,0.14818,0.94265 CVE-1999-0003,0.90339,0.99584 ... לאחר מכן, עדכתי את הסקריפט של Python שאני משתמש בו כדי לייצא פגיעות מהפתרון VM. Parsing the EPSS and percentile values Converting these values into percentages by multiplying by 100 Rounding them to whole numbers לא כל CVEs נוכחים בקובץ הנתונים של EPSS; עבור אלה שאינם כלולים, אני מקצה את הערך של 99. לא כל CVEs נוכחים בקובץ הנתונים של EPSS; עבור אלה שאינם כלולים, אני מקצה את הערך של 99. לאחר ייבוא הנתונים למסד הנתונים, השתמשתי בתכונות הבאות ב- Budibase: טופס מסנן עבור סף EPSS, כגון >10% מנגנון חידוש אוטומטי של לוח התקנים בהתבסס על סף שנבחר Two control buttons: One for viewing the list of vulnerabilities in a pop-up window Another for exporting the results to a .csv file for further analysis or reporting. לאחר מכן, עדכתי את שאילתות SQL ב- Budibase על-ידי הוספת תנאים לסנן לפי ערך EPSS ומקסימום. דוגמה לבלוק תנאי: ... ( CASE WHEN {{epssthr}}::text IS NULL THEN TRUE ELSE epssScore >= {{epssthr}} END ) AND ( CASE WHEN {{epssrating}}::text IS NULL THEN TRUE ELSE epsspercentile >= {{epssrating}} END ) ... הנה דוגמה לשאילתת SQL עבור לוח התקן המציג את השירותים הפגיעים ביותר: SELECT COUNT(hostname) AS total, VulnerableEntity || ' ' || VulnerableEntityVersion AS VulnerableObject FROM mat_allassets WHERE osname ILIKE '%windows 20%' AND VulnerableEntity IS NOT NULL AND status = 'new' AND VulnerabilityIssueTime < CURRENT_DATE - {{days}}::interval AND ( CASE WHEN {{ sev }}::text IS NULL THEN TRUE ELSE severity = {{ sev }}::text END ) AND ( CASE WHEN {{expltbl}}::bool IS NULL THEN TRUE ELSE metrics ILIKE 'Exploitable: {{expltbl}}%'::text END ) AND ( CASE WHEN {{expltbl}}::bool IS NULL THEN TRUE ELSE metrics ILIKE 'Exploitable: {{expltbl}}%'::text END ) AND ( CASE WHEN {{netvector}}::bool IS NULL THEN TRUE ELSE metrics ILIKE '%HasNetworkAttackVector: {{netvector}}%'::text END ) AND ( CASE WHEN {{remedy}}::bool IS NULL THEN TRUE ELSE metrics ILIKE '%HasFix: {{remedy}}%'::text END ) AND ( CASE WHEN {{vulntrend}}::bool IS NULL THEN TRUE ELSE VulnerIsTrend = '{{vulntrend}}'::text END ) AND ( CASE WHEN {{hostimport}}::text IS NULL THEN TRUE ELSE HostImportance = '{{hostimport}}'::text END ) AND ( CASE WHEN {{epssthr}}::text IS NULL THEN TRUE ELSE epssScore >= {{epssthr}} END ) AND ( CASE WHEN {{epssrating}}::text IS NULL THEN TRUE ELSE epsspercentile >= {{epssrating}} END ) GROUP BY VulnerableObject ORDER BY total DESC LIMIT 10; לאחר מכן, הוספתי חיבורים משתנים מ- UI לשאילתה SQL. . מאמרים בנושא פגיעות עדיפות לבסוף, פיתחתי יישום פשוט וידידותי למשתמש המאפשר לי להגדיר מסנני עדיפויות, כולל סף עבור מערכת ציון תחזית ניצול (EPSS). בתמונה למטה, הגדרתי את סף EPSS ל 10 או יותר, בחרתי פגיעות מגמה ישנות יותר מ -14 ימים, ודרש נוכחות של ניצול. על ידי שימוש בסף EPSS (Exploit Predictive Scoring System) של 10%, אנו יכולים לכסות 63.2% מהסכנות שהושמדו, ולהשיג יעילות תיקון של 65.2%, ובכל זאת להשתמש במשאבים פחותים. כדי להשבית את מסנן EPSS, אני פשוט להגדיר את ערך הסף ל- 0; אז המסנן כבר לא יוחלף. יתר על כן, אם אני מגדיר מסנן רצינות מעל הממוצע, התוצאות בדרך כלל להדגיש פגיעות כגון Remote Code Executions (RCEs), Command Executions, או SQL Injections. להתמקד היכן שחשוב EPSS הוא כלי רב עוצמה אשר משפר באופן משמעותי את היעילות של יישום עדיפויות פגיעות במקום "להדביק את השריפות באופן עיוור", ועכשיו אנו עובדים בכוונה, תוך התמקדות בתחילה בנושאים החשובים ביותר. כל תשתית היא ייחודית, וכל מערכת עדיפויות חייבת להיות מותאמת לסביבה הספציפית.חשוב גם לזכור כי כל תהליך ניהול פגיעות מתחיל עם גילוי ומלאי נכסים.ללא הבנה ברורה של מה אנו מגנים, כל צעד אחר מאבד את חשיבותו.בנוסף, לעולם אל תשאירו תצורות מותאמות כברירת מחדל בתשתית שלכם, שכן הן נשארות אחת החוברות הנפוצות ביותר לתקיפה. אשמח לשמוע את מחשבותיך בהערות: Do you use EPSS in your work?