העדכון שאתם לא יכולים להרשות לעצמכם לדלג עליו: סוף התמיכה ב-Office 2016 ו-Office 2019

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

גילוי ותיקון פגיעות בספריית Dompdf באמצעות OPSWAT MetaDefender Core 

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

העלייה המהירה של הטכנולוגיה יצרה ביקוש גבוה למפתחים מיומנים. תוכנה בקוד פתוח (OSS) הפכה לכלי חיוני עבור כוח עבודה הולך וגדל זה. מאות אלפי חבילות OSS מבוססות קיימות כיום בשפות תכנות שונות. למעלה מ-90% מהמפתחים ממנפים רכיבי קוד פתוח אלה בתוך היישומים הקנייניים שלהם, דבר המדגיש את היעילות והצעת הערך של OSS. תוך הדגשת חשיבותו של שוק התוכנה בקוד פתוח העולמי צפוי להגיע ל-80.7 מיליארד דולר עד 2030, המשקף קצב צמיחה צפוי של 16.7% בשנה. 

Software הוא חלק בלתי נפרד מפעילות עסקית ברחבי העולם ולכן הוא מטרה תכופה על ידי גורמי איום. בשנת 2023, ההוצאות על אבטחת יישומים הסתכמו בכ-5.76 מיליארד דולר, כאשר התחזיות יגיעו ל-6.67 מיליארד דולר בשנת 2024. בתוך AppSec, אבטחת שרשרת האספקה ​​של תוכנה צברה חשיבות בשלוש השנים האחרונות, ומייצגת את קטגוריית ההתקפות הצומחת ביותר, כאשר פרצות וניצול לרעה גדולים עולים לכותרות באופן קבוע. 

ארגונים מניחים לעתים קרובות שרוב הסיכונים נובעים מיישומי אינטרנט הפונים לציבור. עם זאת, נקודת מבט זו השתנתה בשנים האחרונות. עם עשרות רכיבים קטנים בכל יישום, סיכונים יכולים כעת לצוץ מכל מקום בתוך בסיס הקוד. חשוב מתמיד שארגונים יכירו את פגמי האבטחה הקיימים והמתפתחים במחזור חיי פיתוח התוכנה. בפוסט בבלוג זה, עמיתינו הבוגרים מספקים מבט מקרוב על CVE-2023-23924, פגם אבטחה קריטי שהתגלה בספריית dompdf הנפוצה - כלי PHP רב עוצמה המאפשר יצירה דינמית של מסמכי PDF מ-HTML ו-CSS. 

באמצעות ניתוח מקיף, נחקור את המורכבויות הטכניות של פגיעות זו, את הטכנולוגיות הקשורות שממלאות תפקיד מכריע, וסימולציה של תהליך הניצול. נבחן גם כיצד ניתן למנף OPSWAT MetaDefender Core , ובמיוחד את מנוע Software Bill of Materials (SBOM) שלו, כדי לזהות ולמתן פגיעות זו, ובכך להעצים מפתחי תוכנה וצוותי אבטחה להישאר צעד אחד לפני איומים פוטנציאליים. 

רקע על CVE-2023-23924 

פגיעות אבטחה התגלתה בגרסה 2.0.1 של dompdf ופורסמה בתחילת 2023:

  • ניתן לעקוף את אימות ה-URI ב-dompdf 2.0.1 בניתוח SVG על ידי העברת <image> תגיות עם אותיות גדולות. זה מאפשר לתוקף לקרוא לכתובות URL שרירותיות עם פרוטוקולים שרירותיים, מה שמוביל לביטול סידור שרירותי של אובייקטים בגרסאות PHP לפני 8.0.0. דרך עטיפת ה-URL של PHAR, פגיעות זו עלולה לגרום למחיקת קבצים שרירותית ואף לביצוע קוד מרחוק, בהתאם למחלקות הזמינות. 
  • אנליסטים של NVD העניקו ציון CVSS של 9.8 CRITICAL ל-CVE-2023-23924. 
דיאגרמה אינפורמטיבית המציגה מדדים עבור CVSS גרסה 3.x כולל חומרה ומחרוזות וקטוריות עבור פגיעויות אבטחה

הבנת הפגיעות של Dompdf 

כדי להבין באופן מלא את הפגיעות CVE-2023-23924 בקובץ dompdf, חיוני להכיר שתי טכנולוגיות קשורות זו לזו: גרפיקה וקטורית ניתנת להרחבה (SVG) וקבצי PHAR. 

SVG (גרפיקה וקטורית ניתנת להרחבה) 

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

קטע קוד המציג SVG עם מספר פוליגונים בצבעים שונים, הממחיש תכנות בפורמט XML
קובץ PHAR 

PHAR (ארכיון PHP) דומה לקונספט של קובץ JAR אך עבור PHP. הוא מאפשר פריסה קלה על ידי איחוד כל קוד ה-PHP וקובצי המשאבים לקובץ ארכיון יחיד.  

קובץ PHAR מורכב מ-4 חלקים:  

  • Stubs: מכיל את הקוד לאתחול הארכיון. 
  • מניפסט: מכיל את המטא-דאטה של ​​הארכיון. המטא-דאטה מאוחסנים בפורמט סידורי, אשר יכול לשמש להפעלת מתקפה נטולת סידורי של PHP בקובץ PHAR זדוני. 
  • תוכן הקובץ: מכיל את תוכן הארכיון, כולל קוד PHP וקבצי משאבים. 
  • חתימה (אופציונלי): מכילה נתונים לאימות שלמות הקובץ. 

עקב אחסון המטא-דאטה בפורמט סידורי, השילוב של עטיפת PHAR והמטא-דאטה של ​​קובץ PHAR עלול לגרום להתקפת ביטול סידור כאשר משתמשים בה כקלט בפונקציות PHP כגון file_get_contents(), fopen(), file(), file_exists(), md5_file(), filemtime(), אוֹ גודל קובץ ()פיקוח אבטחתי זה עלול לאפשר לתוקפים לבצע קוד מרחוק באמצעות קובץ PHAR. 

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

כיצד Dompdf יוצר קובץ PDF

תרשים זרימה הממחיש את תהליך המרת קובץ HTML לפורמט PDF, תוך הדגשת שלבי ביניים ופורמטים של קבצים

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

פגיעות אבטחה ב-Dompdf

כדי לשפר את האבטחה, dompdf מיישם אימות כדי להבטיח את בטיחות קלט ה-URI לפני המשך לשלב הבא. תהליך אימות זה ניכר במהלך עיבוד קובץ SVG בתוך הערך של קישור:href תְכוּנָה. 

דוגמה לקוד PHP לטיפול בקבצי SVG, הצגת פונקציות לניתוח ואימות תוכן SVG

אם קובץ הקלט SVG מכיל את <image> תגית מתחת ל- <svg> תג, תנאי מיושם כדי לאפשר רק פרוטוקולים מסוימים, כגון http://, https:// ו file://, עבור ה- קישור:href שָׂדֶה.

ממשק אינטרנט עבור שירות המרת PDF המאפשר למשתמשים להעלות קבצי HTML או SVG להמרה ל-PDF

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

סקריפט PHP המציג כיצד לטפל ב-URI של נתונים, הממחיש טיפול בשגיאות ואימות פרוטוקול ביישומי אינטרנט

אם ה-URI עובר את האימות, הוא יועבר אל ציורImage() פונקציה, אשר משתמשת ב- קובץ_get_contents() פונקציה לטיפול בערך ה-URI בתוך קישור:href תכונה. פגיעות האבטחה מתעוררת בנקודה זו: התקפת ביטול סידור PHAR עלולה להיות מופעלת אם תוקף יוכל לעקוף את האימות ולהעביר מעטפת PHAR לתוך ה-URI. 

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

דוגמה ב-PHP למניפולציה של תמונות, פירוט פונקציות לציור תמונות מכתובות URL של נתונים וטיפול בתוכן קבצים

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

בשלב הבא, ה- ציורImage() הפונקציה מופעלת, ומעבירה את ה-URI מקובץ ה-SVG אל קובץ_get_contents() פונקציה. לכן, השילוב של עקיפת האימות והתקפת ביטול סידור על קובץ PHAR מאפשר לתוקף לבצע ביצוע קוד מרחוק. פגיעות זו פותחת את הדלת לתוקף זדוני לפגוע בשרת היישומים באמצעות קובץ SVG אם הוא מטופל על ידי גרסה פגיעה של dompdf. 

סימולציית ניצול של Dompdf

יישום פגיע

כדי לדמות ניצול זה כתרחיש אמיתי, OPSWAT עמיתים מתקדמים פיתחו יישום אינטרנט הכולל המרה מ-HTML ל-PDF באמצעות ספריית dompdf גרסה 2.0.1. יישום זה מאפשר למשתמשים להעלות סוגי קבצים כגון HTML, XML או SVG, ולאחר מכן להמיר אותם לקבצי PDF. 

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

תוקף יבצע את השלבים הבאים כדי לנצל פגיעות זו ביישום המשתמש בגרסת dompdf פגיעה (גרסה 2.0.1): 

קטע קוד PHP המציג את השימוש בספריית Dompdf להמרת HTML לקובץ PDF בפורמט אופקי
קטע קובץ Composer.json המפרט את הדרישה לספריית Dompdf גרסה 2.0.1 עבור פרויקט PHP
זרימת ניצול
תרשים גרפי המסבר את התהליך בן ארבעת השלבים לניצול קבצי SVG באמצעות פגיעות Dompdf כדי לבצע מעטפת הפוכה

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

דוגמה לקוד PHP הממחישה פגיעות של ביטול סריאליזציה של אובייקטים ב-PHP המובילה לביצוע קוד מרחוק באמצעות מעטפת הפוכה

שנית, התוקף יוצר קובץ PHAR המכיל את אובייקט המטא-דאטה הזדוני. כאשר קובץ ה-PHAR מופעל על ידי עטיפת ה-PHAR ב... קובץ_קבל_תוכן() בפונקציה, המטא-דאטה מבוטלת בסידור והאובייקט שצוין עובר עיבוד. במהלך תהליך ביטול הסידור הזה, הוא מפעיל את ההורסקטורים ומבצע את המעטפת הפוכה. 

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

בסופו של דבר, התוקף מטמיע את קישור ה-URI המכיל את עטיפת ה-PHAR לתוך הערך של קישור:href התכונה בתג Image כדי לעקוף את האימות, להפעיל קוד זדוני ולהעלות את הקובץ הזדוני הזה ליישום. 

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

במהלך עיבוד קובץ ה-SVG הזדוני שהועלה, האפליקציה יוצרת חיבור הפוך לתוקף, מה שמאפשר לו לפרוץ לשרת האפליקציות. 

ממשק אינטרנט של ממיר PDF המציג אפשרויות להעלאה והמרה של קבצי HTML/SVG ל-PDF, הכולל מודל אנושי דיגיטלי
צילום מסך של קונסולת Metasploit המציגה חיבור TCP הפוך מוצלח ופרטי תצורת רשת
צילום מסך של הטרמינל המציג תצורת רשת ואישורים שנאספו ממערכת יוניקס

אבטחת רכיבי קוד פתוח עם OPSWAT MetaDefender Core 

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

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

בְּנוֹסַף, OPSWAT SBOM יכול לזהות טכנולוגיות קשורות, כגון קבצי SVG ו-PHAR, החיוניות להבנה ולמיתון הפגיעות CVE-2023-23924. מבט הוליסטי זה של רכיבי התוכנה של האפליקציה מאפשר לצוותי אבטחה לקבל החלטות מושכלות ולנקוט בפעולות מתאימות כדי לטפל בסיכונים שזוהו. 

ממשק ניתוח אבטחה המציג קובץ JavaScript חסום עקב פגיעויות עם תוצאות הערכה מפורטות

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

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

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

מחשבות סיכום 

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

תגיות:

הישאר מעודכן עם OPSWAT !

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