קוד זדוני באתר וורדפרס הוא לא רק הזרקה חד פעמית של שורה אחת. ברוב המקרים מדובר בהדבקה שמתפזרת על פני עשרות קבצים, יושבת גם במסד הנתונים, ומשאירה אחריה דלת אחורית שמחזירה אותה גם אחרי שניקיתם. ניקוי שמתעלם מאחד משלושת אלה נכשל תוך ימים. המדריך הזה עובר על התהליך הנכון: זיהוי, ניקוי, סגירת הפרצה ומניעת הדבקה חוזרת.

איך מזהים שיש קוד זדוני באתר

לפני שמנקים, צריך לדעת מה בדיוק להסיר ואיפה. סימנים נפוצים להזרקת malware:

  • האתר מפנה מבקרים לאתר אחר, בעיקר ממכשירים ניידים או מתוצאות גוגל.
  • גוגל מציג אזהרת "This site may be hacked" או חוסם את האתר ב-Safe Browsing.
  • נוצרו עמודים או פוסטים שלא יצרתם, לרוב באנגלית או ביפנית, עם קישורי ספאם.
  • משתמשי אדמין חדשים שלא הוספתם.
  • חברת האחסון השביתה את האתר או שלחה התראה על קבצים נגועים.
  • האתר נטען לאט בצורה חריגה או שולח דואר זבל מהשרת.

הזרקה לא תמיד גלויה בעין. הרבה פעמים הקוד מוסתר (obfuscated), נטען רק לבוטים של מנועי חיפוש, או מופעל בתנאי מסוים. לכן זיהוי ידני לבדו לא מספיק.

איפה הקוד הזדוני מסתתר

ברוב הפריצות הקוד יושב בכמה מקומות במקביל:

  1. קבצי הליבה והתוספים - שורות PHP זרות בתחילת קבצים, פונקציות מקודדות בבסיס64 (base64_decode, eval, gzinflate, str_rot13), וקבצי PHP שתולים בתיקיות העלאות (wp-content/uploads/) שבהן בכלל לא אמור לרוץ קוד.
  2. מסד הנתונים - הזרקות בטבלאות wp_posts (סקריפטים בתוכן), wp_options (בעיקר בשדות שמורצים אוטומטית), וב-wp_users (משתמשי אדמין מזויפים).
  3. קבצי תצורה - הוספות ל-.htaccess שמבצעות הפניות, ול-wp-config.php.
  4. משימות מתוזמנות - WP-Cron או cron בשרת שמריצות מחדש את ההדבקה.

ניקוי בטוח, שלב אחר שלב

1. גיבוי לפני שנוגעים

לפני כל שינוי, גבו את כל הקבצים ואת מסד הנתונים גם אם הם נגועים. הגיבוי הזה הוא רשת ביטחון לזיהוי forensics ולשחזור תוכן לגיטימי, לא משהו שתשחזרו ממנו את האתר כמו שהוא.

2. השוואה לליבה נקייה

הדרך האמינה ביותר לנקות את ליבת וורדפרס היא להחליף אותה במקור. מורידים מ-wordpress.org את אותה גרסה בדיוק, ומחליפים את wp-admin ו-wp-includes בשלמותם. את קובצי הליבה בשורש (כמו index.php, wp-load.php) משווים אחד לאחד. כך כל שורה זרה שהוזרקה לליבה נמחקת בלי לנחש.

3. תוספות, תבניות וקבצים זרים

תוספים ותבניות מנקים בעיקרון דומה: מתקינים מחדש ממקור נקי במקום לערוך ידנית. תבניות nulled או תוספים שהורדו מחוץ למאגר הרשמי הם מקור הדבקה תדיר, ואותם עדיף להסיר לגמרי. בנוסף, מחפשים קבצי PHP שתולים בתיקיות שאסור שיהיה בהן קוד, בעיקר תחת uploads/.

4. ניקוי מסד הנתונים

סורקים את ה-DB אחר תבניות חשודות (<script, eval(, דומיינים זרים, iframes). את ההזרקות מסירים בזהירות, רצוי דרך גיבוי ושאילתות ממוקדות ולא במחיקה גורפת. בודקים את טבלת המשתמשים ומוחקים כל אדמין שלא מוכר.

5. אימות שהאתר נקי

אחרי הניקוי, סורקים מחדש, בודקים את האתר במצב מחובר ולא מחובר, ומריצים בדיקה חיצונית מול גוגל Safe Browsing. אם האתר היה מסומן, מגישים בקשה לבדיקה מחדש דרך Google Search Console.

ניקוי malware ידני דורש זהירות. מחיקה של קובץ ליבה לגיטימי או שאילתת DB גורפת יכולה לשבור את האתר לחלוטין. אם אתם לא בטוחים בכל שלב, עדיף למסור את העבודה. ראו ניקוי וירוסים ו-malware מאתר וורדפרס למדריך מפורט יותר ולמתי כדאי למסור.

סגירת הפרצה - בלי זה הניקוי לא שווה

ניקוי בלי סגירת נקודת הכניסה מבטיח הדבקה חוזרת. הפרצות הנפוצות:

  • תוספים ותבניות לא מעודכנים - מקור מספר אחת לפריצות וורדפרס. עדכנו הכל לגרסה האחרונה, והסירו כל מה שלא בשימוש.
  • סיסמאות חלשות וניסיונות brute force - החליפו את כל סיסמאות האדמין, המשתמשים וה-FTP/SSH, והפעילו אימות דו שלבי.
  • מפתחות אבטחה (Salts) - אחרי פריצה כדאי להחליף את ה-Authentication Keys ב-wp-config.php כדי לנתק תוקפים שמחזיקים session פעיל.
  • דלתות אחוריות - חפשו backdoors שהושארו: קבצי PHP זרים, משתמשי אדמין נסתרים, ומשימות cron חשודות. אם נשארת דלת אחורית אחת, התוקף חוזר.

לרקע מלא על הסיבות שאתרים נפרצים מלכתחילה, ראו למה אתרי וורדפרס נפרצים - 8 הפרצות הנפוצות.

מניעת הדבקה חוזרת

ניקוי הוא אירוע חד פעמי. כדי שלא תחזרו לאותה נקודה, צריך שכבת הגנה שוטפת:

  1. עדכונים שוטפים של ליבה, תוספים ותבניות. גרסה ישנה אחת מספיקה כדי להיפרץ שוב.
  2. גיבוי אוטומטי שמאוחסן מחוץ לשרת, כך שבמקרה הבא יש לאן לחזור תוך דקות. ראו גיבוי אוטומטי לוורדפרס.
  3. חומת הגנה ותוסף אבטחה שחוסמים brute force וסורקים שינויים בקבצים.
  4. ניטור שוטף שמתריע על שינוי חשוד לפני שגוגל או חברת האחסון עושים זאת.

איפה OCW נכנסת

ב-OCW אנחנו מחלצים אתרי וורדפרס נגועים: זיהוי מלא של ההדבקה בקבצים וב-DB, ניקוי, סגירת הפרצה והסרת אזהרות גוגל. עלות טיפול חד פעמי נקבעת לפי היקף הנזק ומורכבות האתר; דברו איתנו לקבלת הצעה.

כדי שזה לא יחזור, חבילת אחריות 360 מחזיקה את האתר מוגן לאורך זמן בארבעה פילרים: אבטחה, נגישות, פרטיות ותחזוקה טכנית. כולל עדכונים שוטפים, גיבוי אוטומטי מחוץ לשרת, וניטור שמתריע לפני שמשהו מתפוצץ. אפשר לבדוק את מצב האתר או לפתוח טיפול דרך עמוד יצירת הקשר.

שאלות נפוצות

אפשר לנקות malware בלי לאבד את התוכן של האתר?

כן. הניקוי הנכון מחליף קבצי ליבה, תוספים ותבניות במקור נקי, ומסיר הזרקות ממוקדות מה-DB. הפוסטים, העמודים והמדיה הלגיטימיים נשארים. בגלל זה חשוב לגבות לפני, כדי לשחזר תוכן אם נמחק בטעות.

תוסף אבטחה לבדו מספיק כדי לנקות אתר נגוע?

לא תמיד. תוספי סריקה מזהים חלק מההדבקות, אבל קוד מוסתר ודלתות אחוריות לעיתים חומקים מהם. אחרי פריצה פעילה נדרשת בדיקה ידנית של קבצים, DB ומשתמשים, לצד הסריקה האוטומטית.

למה האתר נדבק שוב יומיים אחרי הניקוי?

כמעט תמיד בגלל דלת אחורית שלא הוסרה או פרצה שלא נסגרה: תוסף פגיע, סיסמה שלא הוחלפה או קובץ PHP זר שנשאר. ניקוי בלי סגירת נקודת הכניסה מוביל להדבקה חוזרת.

צריך להחליף סיסמאות אחרי פריצה?

כן, את כולן: אדמין וורדפרס, משתמשי FTP/SSH, מסד נתונים ולוח הבקרה של האחסון. כדאי גם להחליף את מפתחות האבטחה ב-wp-config.php כדי לנתק sessions פעילים של התוקף.