WordPress.org מספק checksums (חתימות SHA1 ו-MD5) לכל קובץ ליבה בכל גרסה. הבדיקה משווה את ה-hash של הקבצים באתר לחתימה הרשמית. אם משהו לא תואם - הקוד שונה. ב-95% מהמקרים זה backdoor שהושתל לאחר פריצה.
למה זה משנה
תוקפים שמצליחים להיכנס לאתר רוצים שתי דברים: לחזור גם אחרי שתחליף סיסמאות, ולהסתיר את הנוכחות. הדרך הקלה היא להזריק קוד לקבצי ליבה - שורת eval שמקבלת פקודות דרך פרמטר HTTP, או שינוי ב-wp-login.php שמתעד כל סיסמה שנכתבת. קובצי ליבה הם המטרה האידיאלית כי אדמין רגיל לא נוגע בהם, ועדכון WordPress עתידי שמחליף את הקובץ לא קורה כל יום. אם הליבה שלך אינה אותנטית, אתה לא מנהל את האתר שלך - מישהו אחר מנהל. הסיכון: דליפת נתוני לקוחות, שליחת ספאם בשם הדומיין שלך (מה שמכניס אותך לרשימה שחורה של ספקי מייל), הזרקת קישורים מוסתרים שמורידים את הדירוג ב-Google, ושימוש בשרת שלך כצומת ב-botnet.
איך לזהות
הבדיקה מורידה את ה-checksums הרשמיים מ-api.wordpress.org/core/checksums/1.0/?version=X.Y.Z, מבצעת md5_file על כל קובץ באתר, ומשווה. קבצים שלא תואמים מופיעים ברשימה. ידנית: התקן את התוסף 'Wordfence' (חינמי) > Scan > Run scan. הוא יציג רשימה זהה. תוסף 'WP Activity Log' מתעד שינויים בזמן אמת. בעת חירום: השווה את גודל הקבצים בין האתר לקובץ ZIP רשמי מ-wordpress.org/download/release-archive/.
איך לתקן
- גבה את כל האתר במלואו (קבצים + DB) לפני שאתה נוגע בכלום. יש סיכוי שזה ינקה גם דברים שהיית רוצה לשמור לפורנזיקה.
- הורד עותק של הקובץ החשוד (FTP/SFTP) ובחן אותו בעורך טקסט. חפש: שורות eval(), base64_decode, gzinflate, str_rot13. שורות בסוף הקובץ אחרי הסגירה ?> הן אופייניות.
- הדרך הקלה לתקן: לוח הבקרה > כלים > Site Health > Reinstall WordPress. WordPress יוריד את הגרסה הנוכחית מחדש ויחליף את כל קבצי הליבה.
- ידני: הורד את ZIP של אותה גרסה מ-wordpress.org > חלץ > העלה דרך SFTP מחליף את הקבצים. אל תמחק את wp-content - זה התוכן והתוספים שלך.
- אחרי השחזור: הרץ סריקת מאלוור מלאה (Wordfence Premium או MalCare) - הם יזהו backdoors בתוספים ובתבנית, לא רק בליבה.
- שנה את כל הסיסמאות: DB (ב-wp-config.php וב-cPanel), FTP, כל המנהלים, חשבון האחסון.
- החלף את ה-salts ב-wp-config.php - יוציא את כל ה-sessions החיים, כולל של התוקף.
- בדוק את wp_users ב-DB - חפש משתמשים שלא מזהה.
- בדוק את התוספים: השווה את גרסאות התוספים מול wordpress.org. אם הליבה הותקפה, תוספים יכולים להיות מותקפים גם.
טעויות נפוצות
אל תתקן רק את הקובץ הספציפי שמופיע בבדיקה - תוקף ששתל backdoor אחד שתל גם backup-backdoor במקום אחר. תקן הכל ולא תאמין שעלית על כל ההזרקות. אל תניח שאם השינוי הוא שורה אחת קצרה, זה לא רציני - שורה אחת של eval מספיקה לשליטה מלאה. אל תתעלם מאזהרות שאומרות 'שינויים תקינים מסיבה לשונית' - מתרגמים שמשנים קבצי ליבה במקום להשתמש בקובצי .po עושים טעות, אבל לא תקיפה.
בדיקה לאחר תיקון
הרץ שוב את האודיט - הבדיקה אמורה להפוך לירוקה. הרץ Wordfence Scan שוב - 'No issues found'. בדוק את לוג השרת לפעילות חשודה (POST ל-wp-login.php מ-IPs רבים, גישה לקבצי .php בתיקיית uploads). שמור על מודעות בשבועות הראשונים - לפעמים backdoors חוזרים אחרי שחזור לא מלא.