נוזקה לוורדפרס שבונה את עצמה מחדש אחרי מחיקה, ומקבלת פקודות מהבלוקצ׳יין
Sucuri חשפה ב-30 בספטמבר את SC, דלת אחורית לאתרי WordPress שמתפזרת על פני קבצים, מסד הנתונים והזיכרון. מוחקים רכיב אחד, והאחרים משחזרים אותו. כך מנקים אותה בסדר הנכון.
TL;DR בקצרה
- SC מסתתרת בלפחות שמונה נקודות באתר, כולל .user.ini, קובצי drop-in, קובץ functions.php של התבנית ושורה במסד הנתונים.
- כל רכיב יודע לשחזר את האחרים, ולכן מחיקת התוסף הגלוי מפעילה שחזור במקום ניקוי.
- הנוזקה יוצרת מנהל מוסתר, משביתה תוספי אבטחה, ובחנויות מקוונות יכולה להזריק קוד לגניבת פרטי תשלום.
- הפקודות מגיעות מחוזה חכם ברשת Ethereum דרך כעשרים שערים ציבוריים, כך שאין שרת אחד לחסום.
אם ניקיתם פעם אתר WordPress פרוץ, והקוד הזדוני חזר למחרת, אולי פגשתם את SC. חברת האבטחה Sucuri פרסמה ב-30 בספטמבר ניתוח של דלת אחורית לאתרי WordPress.
הדלת האחורית בנויה כרשת של רכיבים שמשחזרים זה את זה. לכן מחיקה של כל רכיב בנפרד רק מפעילה את השחזור. השם SC מגיע מהסימונים SC_ שמופיעים בקוד המוזרק.
שמונה מקומות מחבוא ב-WordPress, ואף אחד מהם לא עובד לבד
ההדבקה מתחילה בדרך כלל בקובץ .user.ini. הקובץ הזה מגדיר את PHP, ובעלי אתרים רבים לא יודעים שהוא קיים. התוקפים מוסיפים לו הגדרה בשם auto_prepend_file. ההגדרה מריצה לפני כל בקשה לאתר את הקובץ שהם בחרו.
הקובץ הזה יושב בתיקיית wp-content ונראה תמים. הוא טוען את הקובץ החבוי ששמו מתחיל בנקודה. משם הנוזקה בונה מחדש תוסף מזויף.
מעבר לזה, Sucuri מצאה עותקים ומנגנוני שחזור בקובצי ה-drop-in של WordPress. הקבצים הם db.php ו-advanced-cache.php. המערכת טוענת אותם בראשית כל טעינת עמוד.
בנוסף יש בלוק קוד בסוף הקובץ functions.php של התבנית הפעילה. יש שני עותקים של התוסף המזויף: אחד בתיקיית mu-plugins ואחד בתיקיית התוספים הרגילה. יש גם ארכיון ZIP עם שם אקראי, ושורה גדולה בטבלת wp_options במסד הנתונים.
בשרתים שתומכים בכך, הנוזקה מאחסנת את הקוד גם בזיכרון משותף של מערכת ההפעלה. זה קורה מחוץ לקבצים לגמרי. גרסאות קרובות משתמשות גם במשימות cron ובטריגרים במסד הנתונים, שיוצרים מחדש חשבון מנהל.
advanced-cache.php, למשל, מחפש את המטען בכמה מקורות לפי הסדר. המקורות הם התוסף ב-mu-plugins, העותק הרגיל, הזיכרון המשותף, ארכיון ה-ZIP ומסד הנתונים. אם התוסף נמחק או נקטע, db.php יוצר עותק חדש כבר בטעינה הבאה של האתר.
מנהל בלתי נראה, תוספי אבטחה שנמחקים ופקודות מהבלוקצ׳יין
היכולות של SC מגוונות. היא אוספת מידע על האתר, על הגרסה, על התוספים ועל סשנים של מנהלים. את המידע היא מעבירה בהצפנה.
היא יוצרת חשבון מנהל או משתלטת על חשבון קיים. את החשבון היא מסתירה מרשימת המשתמשים, ומזייפת עוגיות התחברות. כך המפעיל נכנס בלי סיסמה.
היא מוחקת את עצמה מרשימת התוספים ומבדיקות העדכון, ויכולה להשבית ולמחוק תוספי אבטחה. בחנויות מקוונות, הקוד שהיא מזריקה לדפדפן יכול לשמש לגניבת פרטי תשלום בעמוד הקופה.
החידוש הטכני הוא ערוץ השליטה. במקום שרת עם כתובת קבועה, SC קוראת הוראות מחוזה חכם ברשת Ethereum. היא עושה זאת דרך כעשרים שערי RPC ציבוריים ולגיטימיים.
חסימה של השער שנצפה בתעבורה לא עוזרת. הנוזקה פשוט פונה לשער הבא. לכן Sucuri ממליצה לחסום את כולם יחד.
Sucuri לא מסרה כמה אתרים נדבקו ולא קבעה איך התוקפים נכנסים מלכתחילה. היא כן ציינה שרוב הפריצות שהיא מטפלת בהן מנצלות חולשות ידועות. לחולשות האלה כבר יש תיקון. הפריצות מתרחשות ברכיבים שלא עודכנו.
מה זה אומר עבורכם
- בדקו את .user.ini ואת .htaccess. הגדרת auto_prepend_file שמצביעה על קבצים חבויים היא סימן אזהרה מובהק. בדקו גם את db.php ו-advanced-cache.php בתיקיית wp-content, ואת סוף הקובץ functions.php של התבנית.
- נקו בסדר הנכון. נטרלו תחילה את הקובץ שאליו מצביע auto_prepend_file. הסיבה היא ש-PHP מחזיק את ההגדרה במטמון עד חמש דקות. רק לאחר מכן הסירו את ההגדרה עצמה. אחר כך נקו את העותקים שמחוץ לקבצים: מסד הנתונים, הזיכרון המשותף, משימות cron וטריגרים. בסוף מחקו את כל הקבצים הנגועים במעבר אחד.
- חפשו מנהלים שלא רואים. מנהל חבוי לא יופיע בלוח הבקרה. בקשו מחברת האחסון או מהמפתח לבדוק ישירות בטבלאות המשתמשים במסד הנתונים.
- אחרי הניקוי, החליפו הכול. החליפו סיסמאות מנהלים וסיסמת מסד הנתונים. כך גם מפתחות ה-salt של WordPress, גישת FTP וחשבון האחסון.
- מניעה. עדכנו את WordPress, התבניות והתוספים באופן קבוע. מחקו תוספים שלא בשימוש, והפעילו אימות דו-שלבי לכל המנהלים.
מה הלאה לאתרי WordPress
הבחירה בבלוקצ׳יין כערוץ שליטה מקשה על פירוק התשתית של התוקפים. אי אפשר להוריד חוזה חכם מהרשת כמו שמשביתים דומיין או שרת. לבעלי אתרים המשמעות היא שחסימת כתובות לבדה לא תספיק.
שאלה טובה לשאול את חברת האחסון היא אם השרת שלכם צריך בכלל לפנות לשערי Ethereum. אם התשובה שלילית, אפשר לחסום תעבורה יוצאת כזו מראש. לפי Sucuri, אם קבצים נגועים חוזרים אחרי ניקוי, אחד ממקומות המחבוא מחוץ לקבצים שרד.
מקורות והרחבה
- SC WordPress Malware: A Self-Healing Mesh of Loaders, Drop-Ins, and a Blockchain-Controlled BackdoorSucuri
- SC WordPress malware rebuilds itself after removalGBHackers
הכתבה נכתבה במקור בעברית על ידי מערכת GEEKLIK, על בסיס המקורות שלמעלה ובדיקת העובדות מולם.
מצאתם טעות? דווחו לנו