
העלייה המהירה של הטכנולוגיה יצרה ביקוש גבוה למפתחים מיומנים. תוכנה בקוד פתוח (OSS) הפכה לכלי חיוני עבור כוח עבודה הולך וגדל זה. מאות אלפי חבילות OSS מבוססות קיימות כיום בשפות תכנות שונות. למעלה מ-90% מהמפתחים ממנפים רכיבי קוד פתוח אלה בתוך היישומים הקנייניים שלהם, דבר המדגיש את היעילות והצעת הערך של OSS. תוך הדגשת חשיבותו של שוק ה-OSS העולמי צפוי להגיע ל-80.7 מיליארד דולר עד 2030, המשקף קצב צמיחה צפוי של 16.7% בשנה.
עם זאת, האימוץ הנרחב של OSS מציג גם שכבה חדשה של מורכבות: פגיעויות אבטחה . המספר העצום של רכיבי OSS המחוברים זה לזה יוצר משטח תקיפה רחב יותר עבור גורמים זדוניים לניצול. ניהול תלויות בין חבילות OSS שונות יכול להיות מורכב, מה שמקשה על זיהוי ותיקון פגיעויות במהירות. בנוסף, אבטחת OSS מסתמכת לעתים קרובות על ערנות ותרומתה של קהילת המפתחים. דבר זה יכול להוביל לעיכובים בתיקון פגיעויות, במיוחד עבור פרויקטים פחות פופולריים.
במאמר זה, OPSWAT עמיתים לתואר שני בוחנים את CVE-2023-33733 , פרצת אבטחה שהתגלתה בספריית הקוד הפתוח הפופולרית ReportLab. הניתוח שלהם משולב עם מתקפה מדומה הממנפת את MetaDefender Core עם יכולות Software Bill of Materials (SBOM) שלה כדי לזהות פגיעויות בתלויות של יישום, כולל ספריית ReportLab הפגיעה.
מבוא לספריית Reportlab

ReportLab, ספריית Python עוצמתית בקוד פתוח, מאפשרת למשתמשים ליצור קבצי PDF עשירים בתכונות מקוד Python. היא מציעה למפתחים שילוב מנצח: גמישות, קלות שימוש ואפשרויות התאמה אישית נרחבות ליצירת מסמכים דינמיים. הספרייה מעניקה למפתחים שליטה משופרת על קבצי ה-PDF שלהם, ומאפשרת שילוב מדויק של טקסט, תמונות, טבלאות ותרשימים בדיוק רב. רמת התאמה אישית זו הופכת את ReportLab לכלי רב ערך ליצירת מסמכים דינמיים כגון חשבוניות ודוחות מבוססי נתונים.
רקע CVE-2023-33733
CVE-2023-33733 מדגיש פגיעות אבטחה בספריית ReportLab, המשפיעה על גרסאות מרובות של ספריית ReportLab.
- גרסאות ReportLab קודמות לגרסה 3.6.13 נמצאו פגיעות להתחמקות מארגז חול, במיוחד בתוך
הערכה_בטוחה_rl'פונקציה. ניצול הושג באמצעות תכונת הצבע של תגי HTML, אשר הוערכה ישירות כביטוי Python באמצעותהערכה ()פונקציה, מה שמוביל בסופו של דבר לביצוע קוד מרחוק. - אנליסטים של NVD העניקו ציון CVSS של 7.8 HIGH ל-CVE-2023-33733.

ניתוח פגיעות האבטחה של ReportLab
OPSWAT עמיתים לתואר שני ביצעו ניתוח מעמיק של זרימת העבודה של ReportLab, וזיהו את שורש פגיעות האבטחה CVE-2023-33733.
ReportLab מאפשר למפתחים ליצור קבצי PDF ביעילות. הספרייה מאפשרת אינטגרציה קלה: ייבוא הספרייה, הגדרת תוכן ה-HTML ויצירת קובץ ה-PDF בשורת קוד אחת באמצעות פונקציית result.

עמיתינו הבוגרים חשפו תהליך בן 5 שלבים ליצירת קבצי PDF מ-HTML באמצעות ReportLab.

בתוך תהליך בן 5 השלבים ליצירת קבצי PDF מ-HTML עם ReportLab, בולטים שלושה תהליכים עיקריים: עיבוד פסקאות, עיבוד פאראפרסר ותהליך טיפול ב-HTML.

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

ReportLab יישמה ארגז חול בשם __rl_safe_eval__ארגז חול זה אינו כולל את כל הפונקציות המובנות של Python וכולל מספר פונקציות מובנות עקיפות. הגבלה זו מאפשרת ביצוע קוד בטוח בתוך הספרייה תוך מניעת גישה לפונקציות וספריות מסוכנות שעלולות לשמש למטרות זדוניות (למשל גישה למערכת קבצים, תקשורת רשת).
ה rl_safe_eval פונקציית ארגז החול מיישמת תנאים שונים כדי להבטיח שהתכונה המופעלת בטוחה לפני השימוש בתכונה המובנה של Python. getattr() פונקציה כדי לאחזר אותה ולהחזיר את התוצאה.

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

המטען מוכן באופן הבא:

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

סימולציית ניצול ReportLab
חוקרים פרסמו הוכחת היתכנות (POC) עבור CVE-2023-33733, המדגימה כי יישומים שנבנו עם גרסאות פגיעות של ReportLab עלולים להיות פגיעים להתקפות סייבר. כדי להעריך את האיום הפוטנציאלי הזה, בוגרי OSPWAT ביצעו מתקפה מדומה על אפליקציית אינטרנט. הם ניצלו... MetaDefender Core עם יכולות SBOM לזיהוי פגיעויות אבטחה בתוך תלויות תוכנת היישום, כולל נוכחות ספריית ReportLab המושפעת.
כדי לדמות ניצול זה כתרחיש אמיתי, OPSWAT עמיתים מתקדמים פיתחו יישום אינטרנט באמצעות Python והגרסה הפגיעה של ספריית ReportLab. יישום זה מחקה מקרה שימוש טיפוסי: משתמשים יכולים להעלות קובץ HTML ולהמיר אותו לקובץ PDF.

תוקף עלול ליצור קובץ HTML זדוני המכיל קוד שנועד לנצל CVE-2023-33733קוד זה עלול לעקוף את ארגז החול ולסכן את שרת האינטרנט על ידי הפעלת מעטפת הפוכה דרך ה- הערכה () פוּנקצִיָה.

העלאה מוצלחת של קובץ זדוני תאפשר לתוקף להשתלט על שרת היישומים עקב הפגיעות בספריית ReportLab המיושנת.
חשיבות SBOM ואבטחה פרואקטיבית
ה OPSWAT מחקרם של עמיתים לתואר שני בנושא CVE-2023-33733 מדגיש את סיכוני האבטחה הפוטנציאליים הכרוכים ב-OSS. בעוד ש-OSS מציע יתרונות שאין להכחישה מבחינת יעילות פיתוח וחסכון בעלות, פגיעויות כמו זו שנמצאה ב-ReportLab עלולות לחשוף ארגונים להתקפות סייבר.
OPSWAT SBOM מאבטחת את שרשרת אספקת התוכנה על ידי אספקת מלאי רכיבים מקיף עבור קוד מקור ומכולות. היא תומכת ביותר מ-10 שפות, כולל Java, JavaScript, Go, PHP ו-Python, ביותר מ-5 מיליון רכיבי תוכנה בקוד פתוח של צד שלישי, ומשתמשת במסד נתונים של יותר מ-17,000 פגיעויות שמקורן במסד הנתונים הלאומי של פגיעויות (NVD) ומ-GitHub (GHSA).

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

מחשבות סיכום
ה OPSWAT מחקרם של עמיתים לתואר שני על פגיעות ReportLab (CVE-2023-33733) משמש כתזכורת חשובה לחשיבותם של אמצעי אבטחה פרואקטיביים במחזור חיי פיתוח התוכנה. על ידי מינוף כלים כמו OPSWAT MetaDefender Core , ארגונים יכולים לקבל תובנות מכריעות לגבי תלויות התוכנה שלהם ולזהות פגיעויות פוטנציאליות לפני שהן מנוצלות על ידי תוקפים.
יֶתֶר עַל כֵּן, OPSWAT מציעה חבילה מקיפה של פתרונות אבטחת סייבר, מעבר לסריקת פגיעויות. פתרונות אלה מספקים זיהוי איומים בזמן אמת, אבטחת נתונים והגנה על נקודות קצה, ומגנים על ארגונים מפני מגוון רחב של איומי סייבר. על ידי אימוץ גישת אבטחה שכבתית הכוללת כלים כמו MetaDefender Core , ארגונים יכולים למנף את היתרונות של OSS תוך מזעור סיכוני האבטחה הנלווים.


