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

Paper Files / AppSec

כותרת: ארכיטקטורה פורמלית ותפעולית ל-AppSec מונחה איומים: אינטגרציה של SAST, DAST, SCA, טלמטריית Runtime ומודיעין ATT&CK לתעדוף מבוסס-סיכון בר-ניצול

AppSecHE

כותרת: ארכיטקטורה פורמלית ותפעולית ל-AppSec מונחה איומים: אינטגרציה של SAST, DAST, SCA, טלמטריית Runtime ומודיעין ATT&CK לתעדוף מבוסס-סיכון בר-ניצול תקציר: משטח התקיפה של יישומים מודרניים התרחב באופן משמעותי עם אימוץ ארכיטקטורות המבוססות על microservices, APIs, containers ו-pipelines של אינטגרציה ואספקה רציפה. אף שכלי אבטחת יישומים כגון Static Application Security Testing (SAST), Dynamic Application Security Testing (DAST) ו-Software Composition Analysis (SCA) נמצאים בשימוש נרחב, מנגנונים אלה פועלים לעיתים קרובות באופן מבודד, ומייצרים נפחי התראות גדולים החסרים הקשר תפעולי. כתוצאה מכך, צוותי אבטחה נתקלים בקשיים בתעדוף חולשות על סמך ההסתברות הממשית לניצול. בעבודה זו אנו מציגים ארכיטקטורה פורמלית ותפעולית לאבטחת יישומים מונחית איומים, המשלבת תוצאות של SAST, DAST ו-SCA עם טלמטריית ביצוע שנאספת בזמן ריצה באמצעות חיישני רשת וניטור מבוסס eBPF. הארכיטקטורה המוצעת עושה שימוש בקורלציה הסתברותית בהשראת מודלים בייסיאניים כדי לאמוד את הסיכון בר-הניצול של חולשות שזוהו, תוך שילוב ראיות אמפיריות מאירועים שנצפו ב-runtime והתאמת ראיות אלו ל-framework של MITRE ATT&CK. אנו מבצעים פורמליזציה מתמטית של המושג סיכון בר-ניצול ומדגימים כיצד ניתן לשלב מקורות ראיה מרובים כדי להפחית false positives ולשפר את התעדוף של פעולות תיקון. המימוש הניסויי בוצע בסביבת Kubernetes עם אינטגרציה ב-pipeline של CI/CD, תוך שימוש בכלים הנפוצים בתעשייה, כולל Semgrep, OWASP ZAP, OWASP Dependency-Check, Falco ו-Suricata. הערכנו את הגישה על פני מערך של יישומים פגיעים וצפינו בשיפורים משמעותיים בדיוק הזיהוי של חולשות ברות-ניצול. התוצאות הניסיוניות מצביעות על עלייה ב-F1-score מ-0.67–0.63 בגישות מבודדות ל-0.85 במודל המשולב, לצד הפחתה של 37.4% ב-false positives וירידה בזמן הממוצע ל-triage של חולשות. אנו דנים במגבלות המודל ההסתברותי, בהשלכות התפעוליות על שיטות DevSecOps ובסיומות אפשריות, כולל אינטגרציה עם מדדי ניצול כגון EPSS וניתוח מסייע-למידת מכונה לתעדוף אדפטיבי. הארכיטקטורה המוצעת מדגימה כי קורלציה בין ניתוח סטטי, בדיקות דינמיות, ניתוח תלויות וטלמטריה תפעולית מהווה מסלול מבטיח לצמצום הפער בין זיהוי חולשות לבין זיהוי ניצול בפועל.

  1. מבוא

משטח התקיפה של יישומים מודרניים התרחב באופן משמעותי עם התפשטותן של ארכיטקטורות מבוזרות המבוססות על מיקרו-שירותים, APIs REST, קונטיינרים וצינורות אוטומטיים של אינטגרציה ומשלוח רציף (CI/CD). בהקשר זה, יישומים הופכים למערכות דינמיות מאוד המורכבות ממספר רכיבים תלויי-גומלין, המופעלים לעיתים קרובות בסביבות ענן ומנוהלים באמצעות פלטפורמות כגון Kubernetes. שינוי ארכיטקטוני זה הרחיב את מורכבות ניהול אבטחת היישומים והציג וקטורי ניצול חדשים (BEHL; BEHL, 2017).

דוחות עדכניים מצביעים על כך שיישומי ווב ממשיכים להימנות עם הווקטורים המרכזיים לפגיעה באירועי אבטחה. Verizon Data Breach Investigations Report מצביע על כך שניצול פגיעויות ביישומים ציבוריים נותר טכניקה חוזרת בקמפיינים תקיפתיים (VERIZON, 2023). נוסף על כך, אירועים שזכו לפרסום נרחב — כגון Log4Shell (CVE-2021-44228) — הראו שפגיעויות בספריות בשימוש נרחב עלולות ליצור השפעות מערכתיות בהיקף עולמי (CHEN et al., 2022).

בהקשר של מסגרת MITRE ATT&CK, מספר טכניקות קשורות ישירות לניצול יישומים. בין אלה בולטות T1190 (Exploit Public-Facing Application), T1059 (Command and Scripting Interpreter) ו-T1195 (Supply Chain Compromise), הנצפות לעיתים קרובות בשלבים המוקדמים של שרשראות תקיפה (MITRE, 2024). למרות זאת, כלי אבטחת יישומים מסורתיים פועלים ברובם באופן מבודד.

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

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

מתוך פער זה, ניסחנו את שאלות המחקר הבאות:

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

RQ2: האם ניתן להפחית false positives ולתעדף פגיעויות בעלות פוטנציאל ניצול באמצעות קורלציה עם טלמטריה הנצפית ב-runtime?

RQ3: מהו ההשפעה התפעולית של שילוב זה על יעילות המיון הראשוני וההתמודדות עם פגיעויות?

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

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

2.1 Static Application Security Testing

ניתוח סטטי של אבטחה מבוסס על בדיקת קוד ללא הרצת התוכנית. באופן פורמלי, אנו מייצגים את זרימת הביצוע באמצעות גרף מכוון $G = (V, E)$, שבו $V$ מייצג הוראות או בלוקים בסיסיים ו-$E$ מייצג מעברי בקרה.

ניתן למודל פגיעויות הזרקה כנתיבי זרימת נתונים בין מקורות לא-מהימנים $S$ לבין sinks רגישים $K$:

$$ \exists ; path(S_i \rightarrow K_j) \land \neg sanitized(S_i) $$

כלים מודרניים כגון Semgrep ו-SonarQube משתמשים בניתוח המבוסס על תבניות סמנטיות וכללים הצהרתיים כדי לזהות נתיבים כאלה (OWASP, 2023).

2.2 Dynamic Application Security Testing

DAST מבצע בדיקות פעילות נגד יישומים פועלים, במטרה לזהות התנהגויות פגיעות בזמן ריצה. כלים כגון OWASP ZAP ו-Burp Suite מבצעים fuzzing של פרמטרים ב-HTTP, מניפולציה של payloads וניתוח תגובות השרת.

מחקרים מצביעים על כך ש-DAST יעיל במיוחד בזיהוי פגיעויות הקשורות לקונפיגורציה, אימות ואימות קלט (SCANDARIATO et al., 2013).

2.3 Software Composition Analysis

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

הפקת Software Bill of Materials (SBOM) הפכה לפרקטיקה מומלצת בעקבות יוזמות ממשלתיות לשיפור אבטחת שרשרת האספקה (NIST, 2021). כלי SCA מנתחים תלויות ומצליבים גרסאות מול מסדי נתונים של פגיעויות כגון NVD.

2.4 Telemetria Runtime e eBPF

בשנים האחרונות, חיישנים מבוססי eBPF נעשו נפוצים מאוד לצורכי תצפית ואבטחה בסביבות Linux. כלים כגון Falco משתמשים ב-eBPF כדי לנטר קריאות מערכת ולזהות התנהגויות חריגות (FALCO, 2024).

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

2.5 מגבלות הגישות הנוכחיות

מחקרים שונים מצביעים על מגבלות בתעדוף פגיעויות המבוסס בלעדית על חומרת CVSS (BOHANNON; HOLMES, 2022). מדדים הסתברותיים כגון EPSS הוצעו כדי להעריך הסתברות לניצול, אך עדיין אינם משלבים ראיות תצפיתיות מ-runtime.

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

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

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

אנו מגדירים את הסיכון בר-הניצול $R_e$ כך:

$$ R_e = P(E \mid V, T, C) \cdot I $$

כאשר:

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

$$ P(E|V,T) = \frac{P(T|E,V)P(E|V)}{P(T|V)} $$

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

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

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

שכבה פונקציה דוגמאות לכלים
איסוף הרצת סורקים ואיסוף אירועים Semgrep, ZAP, Dependency-Check, Falco
נרמול תקנון נתונים JSON Schema, SBOM CycloneDX
קורלציה היסק הסתברותי מנוע בייסיאני
תעדוף יצירת דירוג סיכון שילוב SIEM

אלגוריתם קורלציה:

Input: resultados SAST, DAST, SCA e eventos runtime
Output: lista priorizada de vulnerabilidades

for cada vulnerabilidade v:
    s1 = score_sast(v)
    s2 = score_dast(v)
    s3 = score_sca(v)
    t  = evidencias_runtime(v)

    p_exploit = modelo_bayesiano(s1, s2, s3, t)
    risco = impacto(v)  p_exploit

    adicionar(v, risco)

ordenar_lista_por_risco()
retornar_lista()

המורכבות הדומיננטית היא שלב המיון, ומתקבל $O(n \log n)$.

  1. מימוש

הארכיטקטורה יושמה בסביבת Kubernetes עם אינטגרציה ישירה בצינור CI/CD.

הצינור שנעשה בו שימוש:

דוגמה לכלל Falco:

- rule: Reverse Shell Detection
  desc: Detecta execução de shell com conexão externa
  condition: spawned_process and proc.name=bash and outbound
  output: Possible reverse shell detected
  priority: CRITICAL

אירועים נשלחים ל-Elastic Stack לצורך קורלציה ואינדוקס.

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

ההערכה הניסויית בוצעה בתשתית המורכבת משלושה שרתי Dell PowerEdge R740 המריצים Kubernetes 1.27.

פרמטר ערך
זיכרון לכל Node 128 GB
CPU כולל 96 vCPUs
יישומים שנבדקו 32
פגיעויות ידועות 187

המדדים שנעשה בהם שימוש היו Precision, Recall ו-F1-score.

שיטה Precision Recall F1-score
SAST מבודד 0.61 0.74 0.67
DAST מבודד 0.68 0.59 0.63
הארכיטקטורה המוצעת 0.84 0.86 0.85

זיהינו הפחתה של 37.4% ב-false positives וירידה בזמן המיון הממוצע מ-4.2 שעות ל-3.0 שעות.

  1. מחקר מקרה

השתמשנו ביישום הפגיע OWASP Juice Shop כדי לאמת את המודל.

הזרימה שנצפתה:

  1. SAST זיהה זרימת נתונים שלא עברה סניטציה.
  2. DAST אישר ניצול באמצעות payload של SQL Injection.
  3. Suricata זיהתה חתימת תקיפה של SQLi.
  4. Falco זיהה ביצוע חריג לאחר ניצול מדומה.

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

  1. דיון

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

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

תקורת הניטור המבוסס על eBPF נשארה מתחת ל-6% שימוש נוסף ב-CPU בניסויים שבוצעו.

  1. מסקנה

הצגנו ארכיטקטורה פורמלית ותפעולית לאבטחת יישומים מוכוונת-איומים, המשלבת טכניקות ניתוח מרובות עם טלמטריית runtime ואינטליגנציה המבוססת על MITRE ATT&CK.

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

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

References

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

BOHANNON, Aaron; HOLMES, Joshua. Prioritizing vulnerability remediation using exploit prediction models. IEEE Security & Privacy, 2022. Available at: https://doi.org/10.1109/MSP.2022.3155925. Accessed on: 12 mar. 2024.

CHEN, Zhaofeng et al. Understanding the impact of Log4Shell vulnerability. IEEE Security & Privacy, 2022. Available at: https://doi.org/10.1109/MSP.2022.3221271. Accessed on: 10 mar. 2024.

FIRST. Exploit Prediction Scoring System (EPSS). 2023. Available at: https://www.first.org/epss. Accessed on: 12 mar. 2024.

FALCO. Falco Runtime Security. 2024. Available at: https://falco.org. Accessed on: 12 mar. 2024.

KIM, Gene; HUMBLE, Jez; DEBOIS, Patrick. The DevOps Handbook. Portland: IT Revolution Press, 2021. Available at: https://itrevolution.com. Accessed on: 11 mar. 2024.

LI, Zhen et al. Learning-based vulnerability prioritization. USENIX Security Symposium, 2022. Available at: https://www.usenix.org/conference/usenixsecurity22. Accessed on: 12 mar. 2024.

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

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

NIST. Software Bill of Materials (SBOM) Guidance. 2021. Available at: https://www.nist.gov. Accessed on: 10 mar. 2024.

OISF. Suricata Intrusion Detection System. 2023. Available at: https://suricata.io. Accessed on: 12 mar. 2024.

OWASP FOUNDATION. OWASP Top 10 – 2021. Available at: https://owasp.org/Top10/. Accessed on: 10 mar. 2024.

OWASP FOUNDATION. OWASP ZAP Documentation. 2023. Available at: https://www.zaproxy.org. Accessed on: 10 mar. 2024.

OWASP FOUNDATION. Dependency-Check Project. 2023. Available at: https://owasp.org/www-project-dependency-check. Accessed on: 10 mar. 2024.

SCANDARIATO, Riccardo et al. Static and Dynamic Analysis for Security Testing. IEEE Security & Privacy, v.11, n.4, 2013. Available at: https://doi.org/10.1109/MSP.2013.41. Accessed on: 10 mar. 2024.

SHAR, Lwin Khin; TAN, Hee Beng Kuan. Defeating SQL Injection. ACM Computing Surveys, v.45, n.4, 2013. Available at: https://doi.org/10.1145/2501654. Accessed on: 10 mar. 2024.

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

ALLEN, Julia et al. Building a Secure DevOps Pipeline. Carnegie Mellon SEI, 2020. Available at: https://resources.sei.cmu.edu. Accessed on: 10 mar. 2024.

BASSETT, Michael et al. eBPF-based security monitoring for Linux systems. ACM Queue, 2022. Available at: https://queue.acm.org. Accessed on: 12 mar. 2024.

CYCLONEDX. CycloneDX SBOM Standard. 2023. Available at: https://cyclonedx.org. Accessed on: 12 mar. 2024.

KREBS, Brian. Supply Chain Attacks in Modern Software Ecosystems. 2021. Available at: https://krebsonsecurity.com. Accessed on: 12 mar. 2024.

SONARSource. SonarQube Documentation. 2023. Available at: https://docs.sonarsource.com. Accessed on: 10 mar. 2024.

SEMGREP. Semgrep Documentation. 2024. Available at: https://semgrep.dev. Accessed on: 12 mar. 2024.

CNCF. Kubernetes Security Best Practices. 2023. Available at: https://kubernetes.io/docs/concepts/security. Accessed on: 11 mar. 2024.

ENISA. Threat Landscape for Supply Chain Attacks. 2023. Available at: https://www.enisa.europa.eu. Accessed on: 11 mar. 2024.