פרצת אבטחה מסוג Remote Code Execution המאפשרת העלאת קובץ זדוני מרחוק ע"י עקיפת מערכת ההרשאות של מודול ה-Akeeba.
לא מדובר בפרצה חדשה, הפרצה פורסמה לראשונה ב-24.9.14 אך לאחרונה אנו מבחינים בעליה ניכרת בכמות נסיונות הפריצה הנחסמים במערכת ה-SWAF שלנו.
קצת על Akeeba
Akeeba Backup for Joomla היא מערכת גיבוי מתקדמת המתממשקת באופן מלא למערכת Joomla ויודעת לבצע גיבוי (מלא או חלקי של האתר) במספר רב של פורמטים, למספר רב של מערכות (לדוגמא, ניתן לבקש מה-Akeeba להעביר את הגיבוי לשירות ענן ה-S3 של אמזון לאחר סיום הגיבוי).
המערכת נמצאת בשימוש מורחב אצל בוני אתרים (מעל ל-8 מליון הורדות משנת 2006).
מהות הפריצה
הפרצה קיימת במודול com_joomlaupdate של ג'ומלה הממוקם בנתיב administrator/components/com_joomlaupdate/restore.php.
קובץ זה מאפשר גישה לא מורשית (ללא צורך בהזדהות או login) מרחוק וללא בדיקה כלשהי של מערכות האבטחה של ג'ומלה.
הגישה הלא מאובטחת נעשית במודע ע"י המפתחים, וזאת על מנת לבצע עדכונים למערכת הג'ומלה דרך קובץ ZIP שהועלה מקומית לשרת. על מנת לבצע את הפעולה בפועל, מערכת ה-Akeeba בודקת לקיומו של הקובץ restoration.php, במידה והוא לא קיים הפעולה מתבטלת.
במידה והקובץ קיים ובמקביל מועברי פרמטרי הריצה הנכונים עבור הקובץ, הקובץ יפרס – וכאן מתחילה הבעיה.
על מנת ש"לא יעבדו עליה", Akeeba אומנם מקבלת את הפרמטרים ממקור חיצוני, אך אלו מוצפנים באמצעות AES-128.
יחד עם זאת, מפתחי Akeeba לא דאגו לבצע איפוס של כלל המשתנים הגלובלים המתקבלים לסקריפט (משתני ה-$_GET וה-$_POST אומנם מתאפסים, אבל המפתחים שכחו לאפס את המשתנה הכולל – $_REQUEST), ולכן, ניתן לבצע הזרקה לתוך המשתנה בשם JSON לתוך המשתנה $_REQUEST).
מכאן הדרך היא פשוטה, וע"י משחק קצר עם הפרמטרים שהתוקף שולח לשרת, הוא יכול לעשות פחות או יותר הכול – החל מהעלאת קובץ, ייבוא קובץ משרת מרוחק, פריסת קבצים – נקודה שמכאן, הרחבת הפריצה היא פשוטה.
הפרצה נבדקה ואושרה ב-Akeeba backup for joomla בגרסאות 3.0.0 עד 4.0.2 כולל.
איך מתגוננים?
עדכון לגרסה האחרונה של Akeeba backup יעשה את העבודה, נא וודאו שהנכם מבצעים זאת בהקדם.
כמו כן, כלל לקוחות SPD המשתמשים בשירות ה-SWAF מוגנים באופן אוטומטי מהפרצה.