מוחקים את התוסף והוא חוזר בטעינת העמוד הבאה: הנוזקה ששומרת שמונה עותקים של עצמה באתר וורדפרס
מוחקים את התוסף החשוד, טוענים את העמוד, והוא שם. מוחקים את הקובץ שהחזיר אותו, וערכת העיצוב מחזירה אותו שוב. מנקים את כל הקבצים מהדיסק, ובבקשה הבאה הוא נבנה מחדש ממסד הנתונים או מתוך זיכרון השרת.
מה קרה
החוקר גבריאל ברבוסה מחברת Sucuri פרסם ב-30 בספטמבר ניתוח של נוזקה שהחברה מכנה SC, לפי הסימון SC_ שמופיע בקוד שהושתל באתרים. במקום קובץ אחד שאפשר למחוק מדובר במערכת: לפי הניתוח הקוד יושב בשמונה מקומות לפחות בבת אחת, מפוזר בין קבצים, מסד הנתונים וקטע זיכרון משותף של המערכת, וכל אחד מהמקומות האלה יודע לבנות מחדש את האחרים.
החוליה הראשונה היא קובץ הגדרות קטן שמורה ל-PHP להריץ קובץ מסוים לפני כל בקשה בתיקייה ובכל מה שמתחתיה. משם ממשיכים טוען שמוסתר בשם שמתחיל בנקודה, עותק שלם של הנוזקה שדחוס ומקודד בתוך הקובץ db.php וגם בתוך functions.php של ערכת העיצוב, ותוסף מזויף בשם hyper-engine-kit ששמור פעמיים, גם בתיקיית התוספים הרגילה וגם בתיקיית mu-plugins שוורדפרס טוען אוטומטית לפני כל השאר. לקוד אין שמות פונקציות קריאים, ומפענח פנימי מפרסר אותו בעזרת צופן החלפה פשוט.
הנוזקה מסתירה את עצמה ממסך התוספים ומבדיקות העדכונים, פותחת חשבון מנהל נסתר, ושומרת את כתובת שרת השליטה והבקרה (C2) שלה על הבלוקצ'יין של אתריום, ושולפת אותה משם בזמן ההרצה. מה שהיא נותנת למפעיל: להריץ קוד PHP באתר, לכבות תוספים, ולהזריק לדפי האתר קוד JavaScript משלו. בחנות אונליין זה אומר גניבה של פרטי כרטיס האשראי ישר ממסך התשלום. איך נפרץ האתר מלכתחילה, Sucuri לא יודעת לומר.
למה זה חשוב לכם
אם יש לכם אתר וורדפרס, לעסק או לעמותה, זו בדיוק ההדבקה שבה "ניקיתי את האתר" לא אומר כלום. סריקה שמוצאת קובץ אחד ומוחקת אותו משאירה שבעה אחרים שיחזירו אותו, והעותק שיושב בזיכרון המשותף שורד גם מחיקת קבצים וגם ניקוי של מסד הנתונים. באחסון שיתופי, מציינת Sucuri, הקטע הזה יכול אפילו להיות בבעלות חשבון אחר על אותו שרת.
ואם אתם רק קונים באתרים כאלה? ה-JavaScript שהנוזקה מזריקה הוא בדיוק מה שגונב פרטי כרטיס בזמן התשלום, והאתר ממשיך להיראות תקין לגמרי מבחינתכם.
מה עושים?
בעלי אתרים: נטרלו קודם את ההוראה שמריצה קוד לפני כל בקשה, ורק אחר כך מחקו את מה שהיא טוענת. Sucuri ממליצה לרוקן את הקובץ הזה לגרסה לא מזיקה ואז להסיר את ההוראה מההגדרות, כי הסדר ההפוך שובר כל בקשה באתר.
נקו את העותקים שלא יושבים על הדיסק: השורות שהנוזקה שמרה בטבלת ההגדרות של וורדפרס, קטע הזיכרון המשותף, והמשימות המתוזמנות שמחזירות אותה לפי שעון המערכת ולא לפי גלישה של מבקרים.
מחקו את חשבון המנהל הנסתר, ואז נקו את כל הקבצים במעבר אחד: הטוענים, התוסף המזויף בשתי התיקיות, חבילות ה-ZIP והקוד שהושתל בערכת העיצוב. אחרי זה סרקו שוב, ועקבו אחרי הנתיבים האלה כמה ימים.
בפועל, שחזור מגיבוי שקדם להדבקה הוא לרוב מהיר ובטוח יותר מניתוח כזה. אחרי השחזור עדכנו את וורדפרס, התוספים וערכות העיצוב, והחליפו את סיסמאות המנהל ואת פרטי האימות לאחסון.
קונים: עברו על החיובים בכרטיס אחרי קנייה באתר קטן, ודווחו לחברת האשראי על כל חיוב שלא ביצעתם.
נוזקה שיודעת לבנות את עצמה מחדש הופכת כל ניקוי חלקי לאשליה. לכן גיבוי נקי הוא לא רק דרך להחזיר אתר לאוויר, הוא הדרך הזולה ביותר לצאת מהסיפור הזה.
תגובות