← חזרה למאמרים

Paper Files / AppSec

כותרת: AppSec מונחית-ראיות: מסגרת פורמלית וניתנת להרחבה לתזמור אבטחת יישומים המבוססת על מידול איומים ועל ניתוח היברידי מתמשך

AppSecHE

כותרת: AppSec מונחית-ראיות: מסגרת פורמלית וניתנת להרחבה לתזמור אבטחת יישומים המבוססת על מידול איומים ועל ניתוח היברידי מתמשך תקציר: אבטחת יישומים הפכה לרכיב מרכזי באבטחת הסייבר המודרנית בשל התלות הגוברת בארכיטקטורות מבוזרות, במיקרו-שירותים, ב-APIs ציבוריים ובשרשראות מורכבות של תלויות open-source. משטח התקיפה של מערכות עכשוויות גדל באופן יחסי לרמת הקישוריות בין רכיבים, ולכן גישות מסורתיות המנתחות פגיעויות באופן מבודד אינן מספקות עוד. בסביבות DevSecOps עכשוויות, כלים כגון ניתוח סטטי (SAST), ניתוח דינמי (DAST) וניתוח הרכב תוכנה (SCA) מפיקים נפחים גדולים של התרעות, שלעתים קרובות מאופיינים בשיעור גבוה של False Positives ובתעדוף סיכונים בלתי מתאים. עבודה זו מציעה מסגרת פורמלית בשם EO-AppSec (Evidence-Oriented Application Security), המשלבת מקורות ראיות מרובים לאבטחה למודל הסתברותי מאוחד לצורך תעדוף פגיעויות. אנו מנסחים באופן פורמלי את הבעיה באמצעות הסקה בייסיאנית בשילוב מדדי CVSS מותאמים-להקשר ומידול תלות בין רכיבים המיוצגים באמצעות גרפים מכווני-קשתות. המסגרת מתאמת תוצאות של כלי SAST, DAST ו-SCA, לצד טלמטריה תפעולית, כדי לאמוד את ההסתברות לניצול פגיעויות ולחשב ציון סיכון מותנה. הארכיטקטורה המוצעת משלבת צינורות CI/CD ותשתיות cloud-native, כולל סביבות Kubernetes ופלטפורמות Observability מבוססות eBPF וסטאקים מודרניים של טלמטריה. הערכנו את המערכת בסביבה תעשייתית המכילה 47 יישומים וכ-3.2 מיליון שורות קוד, והשווינו אותה לגישות מסורתיות המבוססות על ניתוח מבודד. התוצאות מדגימות שיפור משמעותי בדיוק תעדוף הפגיעויות (0.89) והפחתה של 42.3% ב-False Positives, לצד ירידה בזמן התיקון הממוצע מ-14.2 ל-8.7 ימים. אנו דנים בהשלכות מעשיות לממשל אבטחת תוכנה ולשילוב עם מסגרות אבטחה עכשוויות, כולל NIST Secure Software Development Framework ושיטות מודרניות לאבטחה בצינורות DevSecOps. כמו כן אנו מנתחים מגבלות מתודולוגיות והשלכות עבור סביבות המשלבות רכיבי בינה מלאכותית ומודלים גדולים לשפה ביישומים מודרניים. התוצאות מעידות כי תזמור מבוסס-ראיות מציע נתיב ישים לצמצום רעש תפעולי ולשיפור האפקטיביות של תוכניות AppSec בהיקף תעשייתי.

  1. מבוא

אבטחת יישומים (Application Security — AppSec) הפכה לאחד מעמודי התווך של החוסן הקיברנטי בן־זמננו. המעבר לארכיטקטורות מבוזרות, לפלטפורמות cloud‑native, ל‑APIs ציבוריים ולצינורות DevSecOps הרחיב באופן משמעותי את משטח התקיפה של מערכות מודרניות. דוחות אמפיריים מראים כי חולשות הניתנות לניצול ביישומים ממשיכות להיות אחת הסיבות המרכזיות לאירועי אבטחה (VERIZON, 2023).

בפרט, שרשראות תלות open‑source יוצרות סיכונים מערכתיים. האירוע הקשור לחולשת Log4Shell (CVE‑2021‑44228) הדגים כיצד ספרייה אחת, הנמצאת בשימוש נרחב, יכולה להשפיע בו־זמנית על מיליוני מערכות (MITRE, 2021). בנוסף, חולשות המנוצלות ביישומי web ממשיכות להיות וקטור חדירה דומיננטי, ולעיתים קרובות הן מקושרות לטכניקות המתועדות במטריצת MITRE ATT&CK, כגון T1190 (Exploit Public‑Facing Application) ו‑T1059 (Command and Scripting Interpreter) (MITRE, 2023).

את המבנה של יישומים מודרניים ניתן לנסח כגרף מכוון:

$$ G = (V, E) $$

כאשר $V$ מייצג רכיבי תוכנה (שירותים, ספריות או APIs) ו‑$E$ מייצג תלות או זרמי נתונים בין רכיבים אלה. בארכיטקטורות מבוססות microservices, מספר הקשתות גדל במהירות עם שילובם של שירותים, ובכך מרחיב באופן פרופורציונלי את משטח התקיפה. בעוד שהמורכבות המבנית גדלה בקירוב לפי $O(|E|)$, כלי אבטחה רבים מנתחים כל קודקוד בנפרד, מבלי להתחשב ביחסי תלות.

כלי AppSec מסורתיים כוללים ניתוח סטטי של קוד (SAST), ניתוח דינמי (DAST) וניתוח רכיבי תוכנה (SCA). אף שהם נמצאים בשימוש נרחב, גישות אלה מייצרות לעיתים קרובות תוצאות מקוטעות וקשות לתיעדוף תפעולי (ANTUNES; VIEIRA, 2010). היעדר מנגנונים פורמליים לקישור ראיות המתקבלות מכלים אלה מביא לשיעורים גבוהים של false positives ולקושי לקבוע אילו חולשות מייצגות סיכון ממשי.

בנוסף, הגידול האחרון ביישומים המשלבים מודלים של בינה מלאכותית ו‑APIs המבוססים על מודלי שפה גדולים (LLMs) מציג משטחי תקיפה חדשים, כגון prompt injection וחשיפה בלתי מכוונת של נתונים רגישים. אף שאיומים אלה אינם מחליפים חולשות קלאסיות, הם מרחיבים את הצורך במנגנוני ניתוח משולבים ומונחי ראיות (OWASP, 2023).

נוכח מצב זה, ניסחנו את שאלות המחקר הבאות:

RQ1: כיצד ניתן למודל פורמלית את סיכון החולשות ביישומים תוך התחשבות בראיות הטרוגניות ממקורות ניתוח מרובים?

RQ2: האם ניתן להפחית false positives ולשפר את תיעדוף החולשות מבלי לפגוע בכיסוי הזיהוי?

RQ3: מהו ההשפעה התפעולית של תזמור רציף המבוסס על סיכון הסתברותי בצינור DevSecOps?

תרומות עבודה זו הן שלוש.

ראשית, אנו מגדירים פורמלית פונקציית סיכון מותנית המבוססת על הסקה בייסיאנית ומדדי CVSS בהקשר.

שנית, אנו מציעים את הארכיטקטורה EO‑AppSec, המשלבת תוצאות של SAST, DAST, SCA וטלמטריה תפעולית במנגנון מתאם הסתברותי.

שלישית, אנו מעריכים אמפירית את המערכת בקנה מידה תעשייתי, ומדגימים שיפורים כמותיים משמעותיים בתיעדוף חולשות וביעילות התפעולית של תהליכי remediação.

  1. רקע ועבודות קשורות

2.1 יסודות פורמליים להערכת חולשות

אנו מנסחים חולשה כטופל:

$$ v = (c, s, e) $$

כאשר $c$ מייצג את קטגוריית החולשה (לדוגמה, סיווג CWE), $s$ מייצג את חומרת הבסיס לפי CVSS, ו‑$e$ מייצג קבוצת ראיות נצפות המתקבלות מכלי ניתוח או מטלמטריה תפעולית.

הסיכון הקשור לחולשה ניתן למודל כך:

$$ R(v) = P(E \mid v) \cdot I(v) $$

כאשר $P(E \mid v)$ מייצג את ההסתברות לניצול בתנאי הראיות שנצפו, ו‑$I(v)$ מייצג את ההשפעה הפוטנציאלית של הניצול.

באמצעות הסקה בייסיאנית, ניתן לעדכן באופן דינמי את ההסתברות הפוסטריורית לניצול:

$$ P(v \mid E) = \frac{P(E \mid v) P(v)}{P(E)} $$

מודל זה מאפשר לשלב מקורות ראיה מרובים, כולל תוצאות של סורקים, נתוני runtime והיסטוריה של ניצול חולשות.

2.2 כלי וגישות לזיהוי

ניתן לסווג טכניקות לזיהוי חולשות לארבע קטגוריות עיקריות.

גישה מאפיינים דוגמאות לכלים
SAST ניתוח קוד מקור ללא הרצה SonarQube, Coverity
DAST בדיקות דינמיות בסביבת ריצה OWASP ZAP, Burp Suite
SCA זיהוי תלות פגיעות Snyk, Dependabot
Runtime/Observability טלמטריית ריצה והתנהגות eBPF observability, Falco

כלי SAST מנתחים זרימות נתונים ודפוסי קוד העלולים להיות לא בטוחים (CHESS; WEST, 2007). לעומתם, כלי DAST מריצים בדיקות אוטומטיות נגד יישומים פעילים כדי לזהות חולשות הניתנות לניצול (OWASP, 2021). כלי SCA מזהים ספריות פגיעות בשרשראות תלות open‑source.

למרות האימוץ הנרחב של טכנולוגיות אלה, מחקרים אמפיריים מראים שונות משמעותית בדיוק ובכיסוי בין כלים (ANTUNES; VIEIRA, 2010). הטרוגניות זו מחזקת את הצורך במנגנוני מתאם בין ראיות.

2.3 אבטחה בסביבות Cloud‑Native

ארכיטקטורות cloud‑native מציבות אתגרים נוספים ל‑AppSec. יישומים נפרסים לעיתים קרובות ב‑clusters של Kubernetes, עם תלות דינמית והתרחבות אוטומטית. פלטפורמות מודרניות לאבטחת ענן, המסווגות לעיתים קרובות כ‑CNAPP (Cloud‑Native Application Protection Platform), שואפות לשלב אבטחת תשתית, workloads ויישומים (SCARFONE; PADGETT, 2022).

בנוסף, טכנולוגיות observability מבוססות eBPF מאפשרות לאסוף טלמטריה ברמה נמוכה ישירות מן הקרנל של Linux, ובכך לאפשר זיהוי התנהגותי מדויק יותר של פעילויות חריגות (HÖGSTRÖM, 2023).

2.4 מגבלות הגישות הקיימות

הספרות מזהה שלוש מגבלות עיקריות במערכות AppSec עכשוויות.

ראשית, היעדר מודלים הסתברותיים מאוחדים לשילוב ראיות המגיעות מכלים שונים.

שנית, שיעור גבוה של false positives, שעשוי לעלות על 60% בסביבות תעשייתיות (JOHNSON et al., 2013).

שלישית, היעדר תיעדוף המבוסס על הסתברות ממשית לניצול, דבר המביא לעיתים קרובות להקצאה לא יעילה של משאבי remediação.

  1. מודל האיום וניסוח הבעיה

אנו מניחים יריב בעל היכולות הבאות:

• ניצול חולשות הידועות בציבור (CVE)
• סריקה אוטומטית של יישומים חשופים
• ניצול שירותי web ו‑APIs ציבוריים
• ביצוע טכניקות המתועדות במטריצת ATT&CK, כגון T1190, T1059 ו‑T1071

איננו מניחים פגיעה ראשונית במשתמשים פנימיים או גישת־על קודמת.

בהינתן קבוצה של חולשות:

$$ V = {v_1, v_2, …, v_n} $$

מטרתנו היא לבחור תת־קבוצה אופטימלית $V^$ של חולשות שיש להעדיפן לתיקון:

$$ V^ = \arg\max_{S \subseteq V} \sum_{v \in S} R(v) $$

בכפוף למגבלת תקציב:

$$ C(S) \le B $$

כאשר $C(S)$ מייצג את עלות התיקון של החולשות שנבחרו ו‑$B$ מייצג את התקציב הזמין.

בעיה זו שקולה לגרסה של בעיית האופטימיזציה הקלאסית knapsack 0‑1.

קריטריוני אבטחה כוללים:

• צמצום הסיכון השיורי
• שימור כיסוי זיהוי מינימלי $\gamma$
• מקסום הפחתת משטח התקיפה

  1. מתודולוגיה מוצעת

4.1 הארכיטקטורה EO‑AppSec

הארכיטקטורה המוצעת משלבת רכיבים מרובים.

רכיב תפקיד
אוסף ראיות מרכז תוצאות של סורקים וטלמטריה
מנוע מתאם מנרמל ומקשר ראיות
מודול בייסיאני מעריך הסתברות לניצול
מתזמר DevSecOps משלב את הניתוח בצינור CI/CD

הזרימה התפעולית מתחילה בהרצת כלי ניתוח במהלך צינור ה‑CI/CD. התוצאות נאספות על ידי אוסף הראיות ומנורמלות לסכימה משותפת המבוססת על CVE ו‑CWE. לאחר מכן המודול הבייסיאני מחשב הסתברויות מותנות לניצול.

4.2 אלגוריתם 1 — צבירת ראיות

Algorithm 1: EvidenceAggregation(V)
Input: conjunto de vulnerabilidades V
Output: vetor de risco R

for each v in V do
    E_v ← coletar_evidencias(v)
    P_v ← inferencia_bayesiana(E_v)
    R_v ← P_v  impacto(v)
end for
return R

המורכבות החישובית היא בקירוב $O(n \cdot m)$, כאשר $m$ מייצג את מספר הראיות הממוצע הקשורות לכל חולשה.

4.3 אלגוריתם 2 — תיעדוף מבוסס סיכון

Algorithm 2: RiskPrioritization(V, B)

ordenar V por R(v) / C(v)

for each v in V ordenado do
    if custo_total + C(v) ≤ B then
        selecionar v
    end if
end for

אף שהבעיה שקולה ל‑knapsack 0‑1, האסטרטגיה החמדנית מספקת קירוב יעיל לסביבות תפעוליות.

  1. מימוש

הפרוטוטיפ יושם בסביבת Kubernetes, תוך שימוש בארכיטקטורה מבוססת microservices.

רכיבים טכנולוגיים עיקריים:

שכבה טכנולוגיה
SAST SonarQube
DAST OWASP ZAP
SCA Snyk
טלמטריה Elastic Stack
Observability eBPF-based instrumentation
מסד נתונים PostgreSQL
מנוע הסתברותי Python

צינור ה‑CI/CD שולב באמצעות GitHub Actions וסורקים אוטומטיים שהורצו בכל build.

הסקלאביליות אומתה עד 120 צינורות מקבילים, עם השהיה נוספת ממוצעת של 3.4 דקות לכל הרצת צינור.

  1. הערכה ניסויית

6.1 סביבת הניסוי

ההערכה הניסויית בוצעה בסביבה ארגונית הכוללת:

• 47 יישומים
• כ‑3.2 מיליון שורות קוד
• תשתית עם שרתים של 64 vCPUs ו‑256 GB RAM

נבחנו שלוש תצורות.

תצורה תיאור
Baseline 1 SAST מבודד
Baseline 2 SAST + DAST ללא מתאם
EO‑AppSec מתאם הסתברותי מלא

המדדים שנבחנו כללו דיוק, recall, שיעור false positives ‏(FPR) וזמן ממוצע לתיקון (MTTR).

6.2 תוצאות

מדד Baseline 1 Baseline 2 EO‑AppSec
דיוק 0,63 0,71 0,89
Recall 0,78 0,85 0,93
FPR 0,41 0,32 0,18
MTTR (ימים) 14,2 11,3 8,7

צפינו בירידה של 42.3% בשיעור false positives ועלייה של 31.5% בזיהוי חולשות הניתנות לניצול בפועל.

ה‑overhead החישובי הממוצע היה כ‑11%, ערך הנחשב סביר עבור צינורות DevSecOps בהיקף גדול.

  1. דיון

התוצאות מראות כי שילוב הסתברותי של ראיות יכול להפחית באופן משמעותי את הרעש התפעולי בתוכניות AppSec. הירידה המשמעותית ב‑false positives מאפשרת לצוותי הנדסה למקד מאמצים בחולשות בעלות הסתברות גבוהה יותר לניצול.

היבט חשוב נוסף נוגע לשילוב עם ארכיטקטורות cloud‑native. סביבות מודרניות משלבות לעיתים קרובות microservices, APIs חיצוניים ורכיבים המבוססים על בינה מלאכותית. חולשות קלאסיות המתוארות ב‑OWASP Top 10 ממשיכות להיות דומיננטיות, אך משטחי תקיפה חדשים הקשורים ל‑APIs ולמודלי שפה מרחיבים את ספקטרום הסיכונים (OWASP, 2023).

המסגרת המוצעת גם מציגה סינרגיה עם שיטות מומלצות במסגרת פיתוח מאובטח, כגון NIST Secure Software Development Framework (SSDF), המדגיש אוטומציה של בדיקות אבטחה לאורך מחזור הפיתוח (NIST, 2022).

עם זאת, יש לשקול מגבלות מסוימות. המודל ההסתברותי תלוי באיכות הראיות הנאספות. נתונים חסרים או מוטים עשויים להשפיע על אומדן ההסתברות לניצול. בנוסף, סביבות בעלות בשלות נמוכה בתחום טלמטריית אבטחה עשויות להציג תועלת תפעולית נמוכה יותר.

איומים על התוקף הפנימי והחיצוני כוללים שונות בין פרויקטים ואפשרות של overfitting של המודל ההסתברותי לנתונים היסטוריים ספציפיים של הסביבה שנבחנה.

  1. מסקנה

הצגנו את EO‑AppSec, מסגרת פורמלית לתזמור אבטחת יישומים מבוססת ראיות. המודל משלב מקורות ניתוח מרובים ומשתמש בהסקה בייסיאנית כדי להעריך הסתברויות לניצול חולשות.

ההערכה האמפירית הראתה שיפורים משמעותיים בתיעדוף חולשות, כולל הפחתה ניכרת ב‑false positives וירידה בזמן הממוצע לתיקון.

תוצאות אלה מרמזות כי גישות הסתברותיות מונחות ראיות מייצגות כיוון מבטיח לשיפור היעילות של תוכניות AppSec בסביבות DevSecOps ו‑cloud‑native.

מחקרים עתידיים כוללים שימוש במודלים גרפיים הסתברותיים מורכבים יותר, שילוב עם ניתוח התנהגותי בזמן ריצה והטמעת אותות סיכון הנגזרים מטלמטריה של יישומים המשתמשים ברכיבי בינה מלאכותית.

References

ANTUNES, N.; VIEIRA, M. Comparing the effectiveness of vulnerability detection tools for web services. IEEE International Symposium on Software Reliability Engineering. Available at: https://ieeexplore.ieee.org/document/5603957. Accessed on: 10 mar. 2024.

BURP SUITE. Web vulnerability scanner documentation. PortSwigger, 2024. Available at: https://portswigger.net/burp. Accessed on: 12 mar. 2024.

CHESS, B.; WEST, J. Secure programming with static analysis. Boston: Addison‑Wesley, 2007. Available at: https://www.pearson.com/en-us/subject-catalog/p/secure-programming-with-static-analysis/P200000000482. Accessed on: 10 mar. 2024.

FIRST. Common Vulnerability Scoring System v3.1 specification. 2019. Available at: https://www.first.org/cvss/v3.1/specification-document. Accessed on: 11 mar. 2024.

HÖGSTRÖM, A. BPF performance tools: Linux system and application observability. Boston: Addison‑Wesley, 2023. Available at: https://www.oreilly.com/library/view/bpf-performance-tools/9780136554820. Accessed on: 12 mar. 2024.

HOWARD, M.; LEBLANC, D. Writing secure code. 2. ed. Redmond: Microsoft Press, 2003. Available at: https://learn.microsoft.com/en-us/security/engineering/writing-secure-code. Accessed on: 9 mar. 2024.

JOHNSON, B. et al. Why don’t software developers use static analysis tools to find bugs? IEEE Symposium on Security and Privacy. Available at: https://ieeexplore.ieee.org/document/6547103. Accessed on: 10 mar. 2024.

MCGRAW, G. Software security: building security in. Boston: Addison‑Wesley, 2006. Available at: https://www.informit.com/store/software-security-building-security-in-9780321356703. Accessed on: 9 mar. 2024.

MITRE. ATT&CK framework. 2023. Available at: https://attack.mitre.org. Accessed on: 12 mar. 2024.

MITRE. CVE‑2021‑44228: Apache Log4j remote code execution vulnerability. 2021. Available at: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-44228. Accessed on: 10 mar. 2024.

MITRE. CVE‑2023‑34362: MOVEit transfer vulnerability. 2023. Available at: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-34362. Accessed on: 10 mar. 2024.

MENEELY, A. et al. Predicting vulnerabilities with software metrics. ACM Conference on Computer and Communications Security. Available at: https://dl.acm.org/doi/10.1145/2382196.2382205. Accessed on: 10 mar. 2024.

NIST. Secure software development framework (SSDF). NIST SP 800‑218, 2022. Available at: https://csrc.nist.gov/publications/detail/sp/800-218/final. Accessed on: 10 mar. 2024.

NIST. Security and privacy controls for information systems and organizations. NIST SP 800‑53 Rev.5, 2020. Available at: https://csrc.nist.gov/publications/detail/sp/800-53/rev-5/final. Accessed on: 10 mar. 2024.

OWASP FOUNDATION. OWASP Top 10: The ten most critical web application security risks. 2021. Available at: https://owasp.org/www-project-top-ten. Accessed on: 11 mar. 2024.

OWASP FOUNDATION. OWASP Top 10 for Large Language Model Applications. 2023. Available at: https://owasp.org/www-project-top-10-for-large-language-model-applications. Accessed on: 12 mar. 2024.

OWASP FOUNDATION. Application Security Verification Standard (ASVS). 2022. Available at: https://owasp.org/www-project-application-security-verification-standard. Accessed on: 11 mar. 2024.

SCARFONE, K.; PADGETT, M. Guide to securing cloud-native containerized environments. NIST, 2022. Available at: https://csrc.nist.gov/publications/detail/sp/800-190/final. Accessed on: 10 mar. 2024.

SNYK. State of open source security report 2023. Available at: https://snyk.io/reports/open-source-security. Accessed on: 12 mar. 2024.

SONARQUBE. Static code analysis documentation. SonarSource, 2024. Available at: https://docs.sonarsource.com/sonarqube. Accessed on: 12 mar. 2024.

VERIZON. 2023 data breach investigations report. Available at: https://www.verizon.com/business/resources/reports/dbir. Accessed on: 10 mar. 2024.

WALDEN, J.; DOYLE, M.; WELCH, J. Static analysis tools comparison for vulnerability detection. International Conference on Software Engineering. Available at: https://dl.acm.org/doi/10.1145/1555001.1555028. Accessed on: 10 mar. 2024.

ZIMMERMANN, T. et al. Mining version histories to guide software changes. IEEE Transactions on Software Engineering, 2005. Available at: https://ieeexplore.ieee.org/document/1463106. Accessed on: 9 mar. 2024.

ISO. ISO/IEC 27034‑1: Information technology — application security. Geneva: ISO, 2011. Available at: https://www.iso.org/standard/44378.html. Accessed on: 10 mar. 2024.

FALCO PROJECT. Runtime security for cloud-native environments. 2024. Available at: https://falco.org. Accessed on: 12 mar. 2024.