דלת אחורית משפיעה על לינוקס
לאחרונה החדשות פרצו זאת דלת אחורית זוהתה בחבילת XZ Utils שמאפשר לתוקפים ליירט ולשנות נתונים מעובדים על ידי יישומים הקשורים לספריית liblzma. הפגיעות העיקרית (כבר מקוטלגת תחת CVE-2024-3094) הוא ממוקם בשרת OpenSSH, אשר בהפצות מסוימות משתמש בספריית libsystemd, אשר בתורה תלויה ב-liblzma. על ידי קישור sshd עם גרסה פגיעה של liblzma, תוקפים יכולים לגשת לשרת SSH ללא אימות.
התגלית מהדלת האחורית בפרויקט XZ Utils התרחש לאחר זיהוי של בעיות כגון צריכת מעבד מוגזמת ושגיאות שנוצרו על ידי valgrind בעת התחברות למערכות מבוססות Debian sid באמצעות SSH. סוגיות אלו הובילו לחקירה מעמיקה יותר שחשפה את נוכחותה של הדלת האחורית.
לכאורה מחברת הדלת האחורית ג'יה טאן הייתה מפתחת פעילה ומוערכת בפרויקט xz, עם מעמד "משתתף" למספר שנים ותרומה משמעותית לפיתוח של מספר גרסאות. בנוסף לפרויקט xz, הוא תרם גם לחבילות קשורות אחרות כגון xz-java ו-xz-embedded. זה אפילו נכלל לאחרונה בין המתחזקים של פרויקט XZ Embedded בשימוש בליבת לינוקס.
השינוי הזדוני התגלה לאחר תלונות על בעיות בגרסת xz 5.6.0, שכללה את הדלת האחורית, כגון האטות וקריסות sshd. הגרסה הבאה, xz 5.6.1, כללה שינויים שהוכנו על ידי Jia Tan בתגובה לתלונות אלו, מה שאולי היה דרך לכסות את נוכחות הדלת האחורית.
יתר על כן, מוזכר כי ג'יה טאן ביצע שינויים לא תואמים עם מצב הבדיקה "-fsanitize=כתובת" בשנה שעברה, אשר lהובילה לביטול בדיקות ה-fuzz באותה תקופה. פרטים אלו מצביעים על כך שהכנסת הדלת האחורית הייתה פעולה מתוכננת ונסתרת בפיתוח הפרויקט, שעלולה הייתה לסכן מספר לא ידוע של משתמשים ופרויקטים באמצעות XZ Utils.
למרות זאת פגיעות משפיעה על מערכות x86_64 המבוססות על ליבת לינוקס וספריית Glibc C הכולל sshd עם libsystemd כדי לתמוך במנגנון sd_notify, מספר גורמים הפחיתו את ההשפעה. לדוגמה, הגרסה של liblzma עם הדלת האחורית לא נכללה במהדורות היציבות של הפצות גדולות, והפצות מסוימות כגון Arch Linux ו-Gentoo השתמשו בגרסה פגיעה של xz אך אינן רגישות להתקפה עקב תצורות מסוימות.
מוזכר שהפעלת הדלת האחורית הוסתרה בפקודות מאקרו m4 בקובץ build-to-host.m4 בשימוש במהלך ההידור, המאפשר להכניס קוד זדוני לספריית liblzma. קוד זדוני זה שינה את לוגיקה ההפעלה של חלק מהפונקציות בספריה, והקל על גישה לא מורשית לשרת SSH במערכות מושפעות.
תהליך הטמעת הדלת האחורית בחבילת XZ Utils זה כלל כמה שלבים וטכניקות כדי להסתיר את נוכחותו והפעלתו. נעשה שימוש בפקודות מאקרו m4 בקובץ build-to-host.m4 במהלך ההידור כדי להכניס את הקוד הזדוני לספריית liblzma. פקודות מאקרו אלו היו קיימות בקבצי tar שחרור, אך לא במאגר Git, ונוספו ל-.gitignore. בנוסף, קבצי בדיקה זדוניים נכללו במאגר, מה שמצביע על גישה מועדפת לתהליך יצירת ההפצה.
הדלת האחורית הופעלה על ידי ביצוע הפקודה /usr/sbin/sshd והוסתר בסביבות לא באגים או בסביבות ייצור, תוך הימנעות מזיהוי במסופים רגילים. הפונקציה RSA_public_decrypt זויפה כדי לעקוף את תהליך האימות sshd, מה שמאפשר לתוקפים לקבל גישה לא מורשית לשרת SSH.
כדי להסתיר עוד יותר את נוכחות הדלת האחורית, נכללו מנגנוני הגנה מפני זיהוי והביצוע אומת בסביבות ניפוי באגים. כל זה מוכיח רמה מתקדמת של תכנון וידע טכני של האחראים על הדלת האחורית כדי להתחמק מזיהוי ולבצע התקפות מוצלחות על מערכות מושפעות.
אם אתה מעוניין לדעת יותר על כך, אתה יכול לעיין בפרטים בקישור הבא.