כשמדובר הזרקת XXE אנו מתכוונים לפגיעות אינטרנט נפוצה מאוד המאפשרת להאקר להשתלט על נתונים בשרתים שלנו או להמשיך במה שנקרא "הסלמה" של המתקפה שעלולה לסכן את השרת המותקף ותשתיות אחרות הקשורות אליו.
קודם כל, בואו נראה מה המשמעות של XXEi הזרקת ישות חיצונית של XML. כדי להסביר איך זה עובד, לעומת זאת, עלינו לדעת מהו XML, ראשי תיבות של שפת סימון eXtensible.
בקיצור, במדעי המחשב, XML היא שפה המשמשת להגדרת אלמנטים ומשמעותם בתוך טקסט. XML ניתן להרחבה, כלומר מאפשר להגדיר תגיות מותאמות אישית, תגיות שמארגנות ומגדירות את מה שנמצא במסמך שלנו.
בתוך מסמך ה-XML ניתן לייצג אובייקט באמצעות "ישות" במקום להשתמש באובייקט עצמו.
בקובץ DTD (הגדרת סוג מסמך) יש את כל המפרטים המגדירים את סוגי הנתונים שמסמך ה-XML שלנו יכול להכיל, הערכים שניתן להקצות לו ועוד.
XML מאפשר יצירת ישויות או אפשרות לייבא חיצוניים, וכאן אנחנו בהגדרה של גופים חיצוניים.
Le גופים חיצוניים הם ישויות שלא מוגדרות על ידי ה-DTD שלנו אלא חיצוניות לו לחלוטין ומצוינות באמצעות כתובת URL שממנה הן נטענות לאפליקציה.
כעת לא קשה להבין את הסיכונים שהליך זה עלול להוות למערכות שלנו.
ההתקפות הנפוצות ביותר המנצלות את הפגיעות הזו מטרתן לגנוב נתונים וסיסמאות מבסיסי הנתונים שלנו, אך התרחיש החמור ביותר מתרחש כאשר הפגיעות הזו משמשת לביצוע זיוף בקשת צד שרת או מתקפת SSRF.
SSRF היא התקפה שבה אפליקציה השייכת לשרת יכולה לשמש את ההאקר כדי ליזום בקשות לכל כתובת אינטרנט ולהוביל לפשרה בתחילה של השרת המותקף ובהמשך של כל תשתית המחוברת אליו ועלולה להיות פגיעה.
ה-XXEi מכוון בעיקר ליישומים שמבצעים את ניתוח (כלומר ניתוח רכיבים) של XML בעלי תצורה חלשה, יישומים המקבלים XML ממקורות לא מהימנים ויישומים שאינם משביתים את השימוש ב- גופים חיצוניים.
כדי להדוף את רוב ההתקפות יש סדרה שלמה של שיטות עבודה מומלצות ביניהם נוכל להזכיר:
- התהליך רישום לבן ברמת השרת, שמטרתה לחסום כל קלט שאינו תואם את תקני האבטחה שלנו;
- לבצע אימות של נתוני ה-XML;
- חסום את האפשרות הברורה אך לעתים קרובות שאינה בשימוש של מנתחי XML כדי לקבל ישויות חיצוניות.
באמצעים פשוטים אלו ניתן למנוע אחוז גדול של התקפות מסוג XXE.
כדי למצוא נקודות תורפה מסוג זה נוכל בכל מקרה להשתמש בכלי שימושי וחזק מאוד, הנקרא סוויטת ברפ, תוכנה המסוגלת למפות את נקודות התורפה של אפליקציית אינטרנט ולנתח את מאפייניה.
בכל מקרה, תמיד כדאי לזכור שרוב ההתקפות נובעות מנוכחות נקודות תורפה בתוכנה, המיוחסות לשגיאות של מתכנתים שלא תמיד ערוכים כראוי לפיתוח מאובטח, וזו הסיבה שאנו שומעים יותר ויותר. על הדרכה עבור DevOps ו-DevSecOps, מושגים הקשורים קשר הדוק לפיתוח תוכנה ואבטחה.
סיטוגרפיה:
https://owasp.org/www-community/vulnerabilities/XML_External_Entity_(XXE)_מעבד
https://portswigger.net/burp/documentation
https://www.redhat.com/it/topics/devops
https://www.pluribus-one.it/it/servizi/formazione/offerta-formativa-2
https://owasp.org/www-project-devsecops-guideline
https://abu-talha.medium.com/xml-external-entity-xxe-attacks-understandi... (האתר ממנו נלקחה התמונה)