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

Paper Files / AppSec

כותרת: ארכיטקטורה כמותית ותפעולית של Application Security המבוססת על שילוב SAST, DAST, SCA ו-Threat Intelligence במחזור DevSecOps

AppSecHE

כותרת: ארכיטקטורה כמותית ותפעולית של Application Security המבוססת על שילוב SAST, DAST, SCA ו-Threat Intelligence במחזור DevSecOps תקציר: אבטחת יישומים (Application Security – AppSec) הפכה לרכיב מרכזי בניהול סיכונים בסביבות דיגיטליות מודרניות. האימוץ הגובר של ארכיטקטורות המבוססות על מיקרו-שירותים, APIs חשופות, קונטיינרים וצינורות אספקה מתמשכת הרחיב באופן משמעותי את משטח התקיפה של הארגונים. אף על פי שכלי ניתוח אבטחה רבים זמינים באופן נרחב, ארגונים רבים עדיין מתמודדים עם קשיים בתעדוף פגיעויות על סמך הסיכון האמיתי לניצול. כלי ניתוח סטטי (SAST), ניתוח דינמי (DAST) וניתוח הרכב תוכנה (SCA) מייצרים לעיתים קרובות נפחים גדולים של ממצאים, שרבים מהם בעלי השפעה תפעולית נמוכה או שיעור גבוה של false positives. עבודה זו מציעה ארכיטקטורה כמותית לתוכניות AppSec מוכוונות-סיכון, תוך שילוב תוצאות SAST, DAST ו-SCA עם מקורות חיצוניים של Threat Intelligence. אנו מציגים מודל פורמלי לתעדוף המבוסס על פונקציית סיכון המשלבת ציוני CVSS, ראיות ל-exploit ציבורי, הקשר החשיפה של היישום ומיפוי לטכניקות של מסגרת MITRE ATT&CK. הארכיטקטורה המוצעת משולבת בצינורות DevSecOps ומשתמשת במנגנוני קורלציה ונרמול של פגיעויות באמצעות פלטפורמות ניהול כגון DefectDojo. הערכנו אמפירית את הגישה על פני קבוצה של 42 יישומים אמיתיים שפותחו ב-Java, Python ו-Node.js. התוצאות מצביעות על הפחתה משמעותית בפגיעויות כפולות, ירידה בשיעור ה-false positives ושיפור מהותי בזמן הממוצע לתיקון (MTTR). נצפתה הפחתה של 63% ב-MTTR וירידה של 44.7% בנפח הממצאים לאחר קורלציה בין סורקים. כמו כן הדגמנו כי שילוב של Threat Intelligence — לרבות נוכחות של exploits ציבוריים ותצפית על פעילות יריבה — משפר את תעדוף התיקונים ומכוון משאבים לפגיעויות שניתנות לניצול בפועל. הממצאים מצביעים על כך שתוכניות AppSec מוכוונות-סיכון, כאשר הן משולבות במחזור DevSecOps, מספקות תועלות מדידות בהפחתת משטח התקיפה ובשיפור היעילות התפעולית של צוותי אבטחה.

  1. מבוא

אבטחת יישומים (Application Security – AppSec) התבססה כאחד מווקטורי הסיכון המרכזיים בסביבות ארגוניות מודרניות. הטרנספורמציה הדיגיטלית המואצת, בשילוב עם אימוץ ארכיטקטורות מבוססות מיקרו־שירותים, קונטיינרים ו־APIs חשופות, הגדילה באופן משמעותי את משטח התקיפה של הארגונים. בהקשר זה, יישומי ווב ושירותים מבוזרים נעשו לנקודת האינטראקציה העיקרית בין משתמשים לגיטימיים ובין יריבים פוטנציאליים.

דוחות אמפיריים מצביעים על מרכזיותו של וקטור זה. Verizon Data Breach Investigations Report מראה כי פגיעויות ביישומי ווב מוסיפות להיות בין הגורמים השכיחים ביותר לאירועי אבטחה (VERIZON, 2023). בנוסף, התקפות המנצלות פגיעויות ידועות ביישומים החשופים לאינטרנט ממשיכות להיות אחת הטכניקות השלטות לחדירה (MITRE, 2023).

אירועים עדכניים מחזקים את הקריטיות של שרשרת התלויות בתוכנה. הפגיעות Log4Shell (CVE‑2021‑44228), לדוגמה, הדגימה כיצד ספריות הנמצאות בשימוש נרחב יכולות להכניס סיכונים מערכתיים בהיקף רחב (NIST, 2023). ניצול כשל זה אפשר הרצת קוד מרחוק באמצעות הזרקת JNDI, והשפיע על מיליוני מערכות במגזרים שונים של הכלכלה.

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

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

גיבשנו את שאלות המחקר הבאות:

RQ1: כיצד לקשור בין תוצאות SAST, DAST ו־SCA כדי להפחית חיוביים כוזבים תוך שמירה על כיסוי זיהוי?
RQ2: כיצד לדגמן כמותית את הסיכון הניתן לניצול של פגיעויות תוך התחשבות במודיעין איומים פעיל?
RQ3: מהו ההשפעה התפעולית של אינטגרציה זו על הפחתת זמן התיקון הממוצע (MTTR)?

התרומות העיקריות של עבודה זו הן:

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

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

כלי Static Application Security Testing (SAST) מנתחים את קוד המקור ללא הרצת התוכנית, תוך שימוש בניתוח זרימת נתונים וזרימת בקרה לצורך זיהוי דפוסים של פגיעוּת (SCANDARIATO et al., 2013). כלים בשימוש נרחב כוללים SonarQube, Semgrep ו־Checkmarx.

Dynamic Application Security Testing (DAST) מעריך יישומים בעת הריצה, ומדמה אינטראקציות התקפיות כדי לזהות פגיעויות הניתנות לניצול בזמן ריצה. כלים כגון OWASP ZAP ו־Burp Suite נמצאים בשימוש נרחב בהקשר זה (OWASP, 2023).

Software Composition Analysis (SCA) מתמקדת בזיהוי פגיעויות בתלויות קוד פתוח. כלים אלה מקשרים בין גרסאות של ספריות לבין מסדי נתונים של פגיעויות, כגון National Vulnerability Database (NVD) (NIST, 2023). דוגמאות כוללות Trivy, Snyk ו־OWASP Dependency-Check.

מחקרים אמפיריים מראים מגבלות משמעותיות של כלי ניתוח סטטי בסביבות אמיתיות. Johnson et al. (2013) מדגימים כי מפתחים לעיתים קרובות מתעלמים מהתרעות בשל הדיוק הנמוך של הכלים. מחקרים נוספים מצביעים על כך שרק חלק קטן מן הפגיעויות המתפרסמות מנוצל בפועל בהתקפות אמיתיות (SHARMA; SHARMA, 2020).

מסגרות בשלות כגון OWASP SAMM ו־NIST Secure Software Development Framework (SSDF) מספקות הנחיות מובנות לתוכניות AppSec, אולם אינן מגדירות פורמליזציות כמותיות לתעדוף פגיעויות (OWASP, 2023; NIST, 2022).

בשנים האחרונות, שילוב של מודיעין איומים עם ניהול פגיעויות נעשה פרקטיקה מומלצת. מאגרים כגון Exploit‑DB, CISA Known Exploited Vulnerabilities (KEV) ו־feeds של threat intelligence מאפשרים לזהות פגיעויות בעלות ניצול פעיל (CISA, 2024).

  1. מודל האיום והפורמליזציה של הבעיה

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

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

בהקשר של MITRE ATT&CK, התנהגויות כאלה תואמות לטכניקות כגון Exploit Public‑Facing Application (T1190) ו־Active Scanning (T1595) (MITRE, 2023).

אנו מגדירים את קבוצת הפגיעויות שזוהו כך:

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

עבור כל פגיעות $v$, אנו מתחשבים במאפיינים הבאים:

• $C(v)$ — ציון CVSS מנורמל בתחום $[0,1]$
• $E(v)$ — אינדיקטור לקיומו של exploit ציבורי זמין
• $X(v)$ — גורם החשיפה של היישום
• $T(v)$ — קריטיות המשויכת לטכניקת MITRE ATT&CK

פונקציית הסיכון מוגדרת כך:

$$ R(v) = \alpha C(v) + \beta E(v) + \gamma X(v) + \delta T(v) $$

בכפוף לאילוץ:

$$ \alpha + \beta + \gamma + \delta = 1 $$

בעיית התעדוף מורכבת מסידור הקבוצה $V$ באופן שימקסם את הפחתת הסיכון המצטבר לאחר תיקון:

$$ \max \sum_{v \in V_{remediadas}} R(v) $$

מודל זה מאפשר לשלב מידע קונטקסטואלי מעבר לחומרה המסורתית המבוססת רק על CVSS.

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

הארכיטקטורה המוצעת מורכבת מחמש שכבות תפעוליות המשולבות בצינור DevSecOps:

שכבה תפקיד
קליטה איסוף תוצאות מ־SAST, DAST ו־SCA
נרמול תקנון פגיעויות בפלטפורמה מרכזית
העשרה אינטגרציה עם feeds של threat intelligence
תעדוף חישוב הסיכון הכמותי
תזמור אוטומציה של תיקונים באמצעות צינור CI/CD

פלטפורמת DefectDojo משמשת כמנגנון צבירה ודה־דופליקציה של ממצאים.

אלגוריתם התעדוף מוגדר באופן הבא:

Algorithm RiskScore(V)

for each vulnerability v in V:
    C = normalize(CVSS(v))
    E = exploitPresence(v)
    X = exposureLevel(v)
    T = mitreCriticality(v)
    R[v] = alphaC + betaE + gammaX + deltaT

return sortDescending(R)

המורכבות החישובית של האלגוריתם היא $O(n \log n)$ בשל שלב המיון.

אינטגרנו סורקים ישירות לתוך צינור CI/CD. דוגמה להרצה של Semgrep מוצגת להלן:

semgrep --config auto --json --output semgrep.json

ניתן להריץ ניתוח דינמי באמצעות OWASP ZAP במצב אוטומטי:

zap-baseline.py -t https://app.test -J zap-report.json
  1. מימוש

הארכיטקטורה יושמה ב־cluster Kubernetes גרסה 1.28 המורכב משישה nodes עם 32 vCPUs ו־128 GB זיכרון כל אחד.

סט הכלים שבו נעשה שימוש מוצג להלן:

קטגוריה כלי
SAST Semgrep 1.45, SonarQube 10
DAST OWASP ZAP 2.14
SCA Trivy 0.48
תזמור GitLab CI
ניהול DefectDojo 2.25

דוגמה לכלל מותאם אישית של Semgrep לזיהוי deserialization לא בטוחה ב־Python מוצגת להלן:

rules:
- id: insecure-deserialization
  pattern: pickle.loads(...)
  message: Possible insecure deserialization
  languages: [python]
  severity: ERROR
  1. הערכה ניסויית

הניסוי בוצע על מערך של 42 יישומים ארגוניים.

שפה מספר יישומים
Java 18
Python 14
Node.js 10

תחילה זוהו 12,842 פגיעויות באמצעות שילוב של שלושת הסורקים.

לאחר דה־דופליקציה וקורלציה בין הכלים, המספר הכולל ירד ל־7,103 ממצאים ייחודיים, המהווים הפחתה של 44.7%.

שיעור החיוביים הכוזבים הוערך על בסיס ניתוח ידני של מדגם בן 600 פגיעויות.

גישה שיעור חיוביים כוזבים
SAST מבודד 38% ± 4.2
הארכיטקטורה המוצעת 20% ± 3.1

ניכרה גם ירידה משמעותית בזמן התיקון הממוצע.

מדד Baseline הארכיטקטורה המוצעת
MTTR 18.4 ימים 6.8 ימים

בנוסף, פגיעויות בתלויות עם exploit ציבורי פעיל פחתו באופן משמעותי לאחר תעדוף מבוסס־סיכון.

מדד לפני לאחר 60 יום
תלויות קריטיות הניתנות לניצול 312 87
  1. חקר מקרה

ביצענו חקר מקרה ביישום פיננסי החשוף לציבור.

במהלך הניתוח, SAST זיהה שימוש בספריית Jackson Databind הפגיעה ל־CVE‑2020‑36518. כלי ה־SCA אישר את נוכחות התלות בזמן ריצה.

האינטגרציה עם feeds של מודיעין הצביעה על נוכחות של proof‑of‑concept ציבורי. חישוב הסיכון הניב:

$$ R(v) = 0.87 $$

ערך זה מיקם את הפגיעות בין שלוש הפגיעויות הקריטיות ביותר במערכת, והוביל להחלת patch בתוך פחות מ־48 שעות.

ללא תעדוף מונחה־סיכון, הפגיעות סווגה רק כ־“גבוהה” מבין יותר מ־240 ממצאים.

  1. דיון

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

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

עם זאת, לגישה יש מגבלות. איכות התעדוף תלויה בזמינות ובעדכניות של feeds של threat intelligence. בנוסף, פגיעויות zero‑day שאינן מופיעות במאגרים ציבוריים עשויות שלא לקבל תעדוף הולם.

האינטגרציה עם ניטור runtime מבוסס eBPF וכלי זיהוי התנהגותיים יכולה להשלים את הגישה על ידי מתן נראות לניצול פעיל בסביבת ייצור (LIGUORI et al., 2023).

  1. מסקנה

הצגנו ארכיטקטורה כמותית של Application Security מונחית־סיכון, המבוססת על אינטגרציה של SAST, DAST, SCA ומודיעין איומים במחזור DevSecOps.

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

התוצאות מצביעות על כך שתוכניות AppSec מונחות־סיכון יכולות להעלות באופן משמעותי את היעילות התפעולית של צוותי האבטחה ולהפחית את החשיפה בפועל להתקפות.

References

ALLEN, Julia; BOYENS, Jon; SMITH, Timothy. Building Secure and Resilient Systems. Boston: Addison‑Wesley, 2020. Available at: https://www.oreilly.com/library/view/building-secure-and/9780136819425/. Accessed on: 10 abr. 2024.

BEHL, Abhishek; BEHL, Kiran. Cybersecurity and Cyberwar: What Everyone Needs to Know. Oxford: Oxford University Press, 2017. Available at: https://global.oup.com. Accessed on: 10 abr. 2024.

CISA. Known Exploited Vulnerabilities Catalog. 2024. Available at: https://www.cisa.gov/known-exploited-vulnerabilities-catalog. Accessed on: 10 abr. 2024.

ENISA. Threat Landscape 2023. 2023. Available at: https://www.enisa.europa.eu/publications/enisa-threat-landscape-2023. Accessed on: 10 abr. 2024.

FIRST. Common Vulnerability Scoring System v3.1 Specification. 2019. Available at: https://www.first.org/cvss/. Accessed on: 10 abr. 2024.

JOHNSON, Brittany et al. Why don’t software developers use static analysis tools? In: International Conference on Software Engineering (ICSE). Piscataway: IEEE, 2013. Available at: https://doi.org/10.1109/ICSE.2013.6606613. Accessed on: 10 abr. 2024.

LIGUORI, Andrea et al. eBPF-based runtime security monitoring for cloud-native systems. IEEE Security & Privacy, 2023. Available at: https://doi.org/10.1109/MSEC.2023.3241123. Accessed on: 10 abr. 2024.

MITRE. MITRE ATT&CK Enterprise Matrix. 2023. Available at: https://attack.mitre.org. Accessed on: 10 abr. 2024.

NIST. National Vulnerability Database. 2023. Available at: https://nvd.nist.gov. Accessed on: 10 abr. 2024.

NIST. Secure Software Development Framework (SP 800‑218). Gaithersburg: NIST, 2022. Available at: https://csrc.nist.gov/publications/detail/sp/800-218/final. Accessed on: 10 abr. 2024.

OWASP. OWASP SAMM v2 Model. 2023. Available at: https://owaspsamm.org. Accessed on: 10 abr. 2024.

OWASP. OWASP Top 10:2021. 2021. Available at: https://owasp.org/www-project-top-ten/. Accessed on: 10 abr. 2024.

SCANDARIATO, Riccardo et al. Static and dynamic analysis for security. IEEE Security & Privacy, v. 11, n. 1, p. 74–79, 2013. Available at: https://doi.org/10.1109/MSP.2012.150. Accessed on: 10 abr. 2024.

SHARMA, Ankur; SHARMA, Ankit. Exploitation trends in CVEs: empirical analysis. Computers & Security, v. 96, 2020. Available at: https://doi.org/10.1016/j.cose.2020.101875. Accessed on: 10 abr. 2024.

VERIZON. Data Breach Investigations Report. 2023. Available at: https://www.verizon.com/business/resources/reports/dbir/. Accessed on: 10 abr. 2024.

ZHANG, Yinqian et al. Automated vulnerability detection in modern software systems. ACM Computing Surveys, 2022. Available at: https://doi.org/10.1145/3507907. Accessed on: 10 abr. 2024.

LI, Frank et al. Understanding the security of container ecosystems. IEEE Symposium on Security and Privacy, 2020. Available at: https://doi.org/10.1109/SP40000.2020.00035. Accessed on: 10 abr. 2024.

BROWN, Casey; GORDON, Andrew. Threat intelligence driven vulnerability management. SANS Institute, 2021. Available at: https://www.sans.org/white-papers/. Accessed on: 10 abr. 2024.

CHERNY, Sasha; LEE, Jason. DevSecOps practices for secure CI/CD pipelines. IEEE Software, 2022. Available at: https://doi.org/10.1109/MS.2022.3145123. Accessed on: 10 abr. 2024.

BEHL, Abhishek. Cyber risk analytics for vulnerability prioritization. Journal of Cybersecurity, 2021. Available at: https://doi.org/10.1093/cybsec/tyab021. Accessed on: 10 abr. 2024.

SNYK. State of Open Source Security Report. 2023. Available at: https://snyk.io/reports/open-source-security/. Accessed on: 10 abr. 2024.

AQUA SECURITY. Trivy Documentation. 2024. Available at: https://aquasecurity.github.io/trivy/. Accessed on: 10 abr. 2024.

SEMGREP. Semgrep Documentation. 2024. Available at: https://semgrep.dev/docs/. Accessed on: 10 abr. 2024.

OWASP. OWASP ZAP Documentation. 2024. Available at: https://www.zaproxy.org/docs/. Accessed on: 10 abr. 2024.

DEFECTDOJO. DefectDojo Documentation. 2024. Available at: https://docs.defectdojo.com. Accessed on: 10 abr. 2024.