כשאתר וורדפרס נפרץ, הסדר הנכון הוא: לתעד מה רואים, לעצור את הנזק לגולשים, לשמור עותק של הקבצים ומסד הנתונים, להחליף את כל הסיסמאות ממחשב נקי, לנקות או לשחזר מגיבוי שנעשה לפני הפריצה, לסגור את הפרצה שדרכה נכנסו, ורק אז לבקש מגוגל להסיר את האזהרה. מי שמדלג על שלב, בדרך כלל חוזר אליו כשהאתר נפרץ שוב.
בוקר רגיל. לקוח שולח לכם צילום מסך: הוא נכנס לאתר שלכם וקיבל מסך אדום של הדפדפן שאומר שהאתר מסוכן. אתם נכנסים בעצמכם ורואים את דף הבית כרגיל, ובכל זאת בגוגל מופיעים תחת שם הדומיין שלכם עמודים בשפה שאתם לא מכירים. היד כבר על כפתור "מחק" או "שחזר", וזה בדיוק הרגע לעצור. הנה מה שעושים, לפי הסדר.
איך יודעים שהאתר באמת נפרץ?
פריצה מזהים לפי סימנים, לא לפי תחושה. התיעוד הרשמי של WordPress.org מונה כמה סימנים ברורים: אזהרה של גוגל או של הדפדפן, חברת אחסון שהשביתה את האתר, אנטי-וירוס של גולשים שמסמן אותו, משתמשים חדשים שאף אחד לא יצר, ושינויים שרואים בעין כשפותחים את האתר.
לפעמים הפריצה מוסתרת מכם. אם מופיעים בגוגל עמודים שלא כתבתם, אם הגולשים מועברים לאתר אחר רק כשהם מגיעים מתוצאות החיפוש, אם המיילים שהאתר שולח מתחילים ליפול לספאם, כדאי להניח שמשהו לא בסדר גם כשדף הבית נראה רגיל. יש פריצות שמציגות תוכן ספאם רק לגוגל, כדי שבעל האתר לא ישים לב.
הטיפ: חפשו בגוגל site:הדומיין-שלכם.co.il ועברו על התוצאות, ואז היכנסו ל-Google Search Console (הכלי החינמי של גוגל לבעלי אתרים) לדוח "בעיות אבטחה". כך תדעו תוך כמה דקות אם גוגל כבר זיהה בעיה, ומה בדיוק הוא רואה.
מה עושים בשעה הראשונה?
מתעדים ועוצרים את הנזק, ולא מוחקים כלום. כתבו מה ראיתם, מתי, ומה השתנה באתר בימים האחרונים: תוסף חדש, עדכון, משתמש שנוסף. המסמך הזה יחסוך זמן לכל מי שיטפל באתר, גם אם זה תהיו אתם.
אם האתר מפנה גולשים לאתר זדוני או מפיץ קוד מזיק, בקשו מחברת האחסון להוריד אותו זמנית מהאוויר או לחסום גישה ציבורית. מצב התחזוקה של וורדפרס לא מספיק, כי הקוד הזדוני יכול לשבת בקבצים שממשיכים לרוץ גם כשהאתר "סגור". באותה שיחה שאלו את חברת האחסון אם אתרים נוספים על אותו חשבון נפגעו, ובקשו את יומני הגישה לשרת (logs).
הטיפ: לפני כל ניקוי, הורידו עותק מלא של הקבצים ושל מסד הנתונים למקום מחוץ לשרת, וסמנו אותו כ"נגוע". הוא לא נועד לשחזור. הוא נועד כדי שמי שיחקור את הפריצה יוכל לראות מה קרה, גם אחרי שהאתר נוקה.
אילו סיסמאות מחליפים, ומאיזה מחשב?
את כולן, ממחשב שנסרק ונמצא נקי. לפי WordPress.org, במקרים רבים הפריצה מתחילה דווקא במחשב של בעל האתר: נוזקה שגונבת פרטי התחברות ל-FTP או לממשק הניהול. אם תחליפו סיסמה ממחשב נגוע, היא תגיע לפורץ מהר.
הרשימה המלאה: כל המשתמשים עם הרשאת מנהל בוורדפרס, החשבון בחברת האחסון, גישת SFTP או FTP (העברת קבצים לשרת), מסד הנתונים, והמייל שאליו מגיעים איפוסי הסיסמה. עברו גם על רשימת המשתמשים בוורדפרס ומחקו כל מנהל שאתם לא מזהים. אחרי זה החליפו את מפתחות האבטחה (salts) בקובץ wp-config.php, וכל מי שמחובר לאתר ינותק מיד, כולל הפורץ.
הטיפ: הפעילו אימות דו-שלבי לממשק הניהול ולחשבון האחסון באותו יום. סיסמה שנגנבה שוב לא תספיק לבד כדי להיכנס.
איך מנקים אתר וורדפרס מקוד זדוני?
מחליפים את מה שאפשר להחליף ובודקים את מה שאי אפשר. את קבצי הליבה של וורדפרס מחליפים בהעלאה מחדש של אותה גרסה מהאתר הרשמי. תבניות ותוספים מתקינים מחדש מהמקור הרשמי שלהם, ומה שלא בשימוש מוחקים. קבצי PHP בתיקיית ההעלאות (uploads), שינויים ב-.htaccess ובקובץ wp-config.php, וקוד זר בקובץ functions.php של התבנית הם המקומות שבהם קוד זדוני מסתתר לעתים קרובות.
גם מסד הנתונים צריך בדיקה: סקריפטים שהוזרקו לתוכן העמודים, הגדרות שמפנות לכתובת זרה, ומשתמשים שנוספו. WordPress.org ממליצים לסרוק בשתי דרכים, כי כל אחת רואה דברים אחרים: תוסף סריקה שרץ בתוך האתר, וסורק חיצוני שבודק את האתר כמו שגולש או גוגל רואים אותו.
הטיפ: אם האתר כולל קוד שנכתב במיוחד עבורכם, השוו אותו לעותק המקורי מהמפתח או ממאגר הקוד, ולא רק לסריקה. סורק אוטומטי מכיר קוד זדוני נפוץ. הוא לא תמיד יודע מה אמור להיות בקוד שנכתב רק בשבילכם.
לנקות או לשחזר מגיבוי?
שחזור מגיבוי הוא הדרך המהירה ביותר, אבל רק אם הגיבוי נעשה לפני הפריצה. פורצים משאירים לעתים קרובות "דלת אחורית" (backdoor, קוד שמאפשר להם לחזור) שבועות לפני שמשהו נראה לעין. גיבוי מאתמול עלול להחזיר בדיוק את מה שניסיתם להעיף.
לכן בוחרים גיבוי לפי תאריך, לא לפי נוחות: מוצאים מתי התחילו הסימנים, בודקים ביומני השרת מתי הופיעו קבצים חשודים, ומשחזרים לנקודה שלפני כן. גם אחרי שחזור מחליפים סיסמאות וסוגרים את הפרצה, אחרת הגיבוי הנקי יחזיר אתר עם אותה חולשה.
הטיפ: אם יש לכם חנות או אתר שמקבל פניות, רשמו לפני השחזור אילו הזמנות, נרשמים או פניות נכנסו מאז תאריך הגיבוי. שחזור מוחק אותם, ובלי רשימה תגלו את זה רק כשלקוח ישאל איפה ההזמנה שלו.
איך סוגרים את הפרצה כדי שזה לא יחזור?
מוצאים איך הפורץ נכנס, ומתקנים את זה. ברוב המקרים הפתח הוא תוסף או תבנית שלא עודכנו ויש בהם פרצה ידועה, סיסמה חלשה או משותפת, או חשבון של מישהו שכבר לא עובד איתכם. יומני השרת וממצאי הסריקה בדרך כלל מצביעים על הכיוון.
אחרי שמצאתם, עדכנו את הליבה, התבנית וכל התוספים, מחקו תוספים מושבתים (גם תוסף כבוי יושב על השרת ויכול להיות פתח), והחליפו את כל הסיסמאות פעם נוספת. ההחלפה השנייה סוגרת את האפשרות שהפורץ ראה את הסיסמאות החדשות בזמן הניקוי.
הטיפ: בשבועות שאחרי הניקוי בדקו את רשימת המשתמשים ואת הדוח ב-Search Console פעם בשבוע. פריצה שחוזרת מתגלה כך בשלב מוקדם, לפני שגוגל מסמן את האתר שוב.
מה עושים מול גוגל כשמופיעה אזהרה?
מבקשים בדיקה חוזרת רק אחרי שהאתר נקי. ב-Search Console, בדוח "בעיות אבטחה", יש כפתור לבקשת בדיקה. לפי גוגל, בדיקה כזו נמשכת מכמה ימים ועד כמה שבועות, ואם היא נכשלת כי נשאר קוד באתר, הבקשה הבאה מתחילה מחדש.
עמודי ספאם שהפורץ יצר צריכים להחזיר שגיאה (404 או 410) ולא להפנות לדף הבית, כדי שגוגל יבין שהם נמחקו. אם האתר שלח ספאם במייל, בדקו גם אם כתובת השרת נכנסה לרשימות חסימה של ספקי דואר, ודברו על זה עם חברת האחסון.
הטיפ: בבקשת הבדיקה כתבו בקצרה מה מצאתם ומה תיקנתם: איזה תוסף היה הפתח, אילו קבצים הוחלפו, אילו סיסמאות שונו. בקשה שמסבירה מה נעשה עוזרת לבודק להבין שהבעיה טופלה מהשורש.
צריך לדווח למישהו על הפריצה?
ייתכן שכן, וזה תלוי במה שנשמר באתר. אם יש לכם חנות, עדכנו את חברת הסליקה, גם אם פרטי האשראי לא נשמרים אצלכם. אם האתר שומר מידע אישי על לקוחות, כמו שמות, טלפונים, כתובות או חשבונות משתמש, ייתכן שחלה עליכם חובת דיווח לרשות להגנת הפרטיות לפי תקנות אבטחת מידע, ושם הדרישה היא לדווח סמוך ככל האפשר לגילוי.
איננו עורכי דין, והמאמר הזה לא מחליף ייעוץ משפטי. מה שכן אפשר לעשות כבר עכשיו: לשמור את התיעוד מהשעה הראשונה, את העותק הנגוע ואת יומני השרת, ולהתייעץ עם עורך דין שמכיר את תחום הפרטיות.
הטיפ: אם מישהו דורש מכם כסף כדי "להחזיר" את האתר או כדי לא לפרסם מידע, אל תשלמו ואל תנהלו איתו משא ומתן לבד. תעדו את הפנייה והעבירו אותה לעורך הדין ולמי שמטפל באתר.
מתי להעביר את הטיפול לאנשי מקצוע?
יש ארבעה מצבים שבהם עדיף לא לטפל לבד: אין לכם גיבוי נקי, הפריצה חזרה אחרי ניקוי, האתר הוא חנות או מקור עיקרי לפניות, או שאתם לא בטוחים מה מותר למחוק. במצבים האלה כל ניסיון "לנקות מהר" עלול למחוק בדיוק את הראיות שמראות איך הפורץ נכנס.
בתוכניות תחזוקת אתרי וורדפרס של Websight נכללים סריקות אבטחה, הסרת קוד זדוני והקשחה של האתר, גיבויים יומיים שנשמרים בשרת נפרד, וניטור זמינות עם תמיכת חירום כשהאתר נופל. אם האתר שלכם עדיין לא מעודכן, המאמר למה חשוב לעדכן את האתר והתוספים מסביר מה העדכונים סוגרים.
ולסיום, צעד אחד שכדאי לעשות כבר היום, גם אם האתר שלכם תקין: בדקו מתי נעשה הגיבוי הישן ביותר שיש לכם, ואיפה הוא שמור. אם התשובה היא "רק מאתמול" או "על אותו שרת", זה הדבר הראשון לתקן. ואם האתר כבר נפרץ ואתם רוצים שמישהו יעבור עליו איתכם, ספרו לנו מה קרה.
שאלות נפוצות
כמה זמן לוקח לנקות אתר וורדפרס שנפרץ?
זה תלוי בהיקף הפריצה ובשאלה אם יש גיבוי נקי. שחזור מגיבוי שנעשה לפני הפריצה מהיר יותר מניקוי ידני של כל הקבצים ומסד הנתונים. אם גוגל סימן את האתר, צריך להוסיף את זמן הבדיקה החוזרת שלו, שלפי גוגל נמשכת מכמה ימים ועד כמה שבועות.
אפשר לנקות אתר וורדפרס שנפרץ לבד עם תוסף אבטחה?
לפעמים, אם הפריצה פשוטה ואתם יודעים להחליף קבצים ולעבוד עם מסד הנתונים. תוסף סריקה מזהה קוד זדוני נפוץ, אבל הוא לא מוצא תמיד דלתות אחוריות ולא סוגר את הפרצה שדרכה נכנסו. בלי לסגור אותה, האתר עלול להיפרץ שוב באותה דרך.
חברת האחסון לא תנקה את האתר בשבילי?
לא תמיד. חלק מחברות האחסון רק משביתות אתר נגוע כדי להגן על שאר השרת, ואחרות מציעות ניקוי כשירות נפרד. שאלו אותן מה בדיוק כלול, ובקשו בכל מקרה את יומני הגישה לשרת.
למה האתר נפרץ שוב אחרי שניקינו אותו?
בדרך כלל כי נשארה דלת אחורית, כי הפרצה המקורית לא נסגרה, או כי הסיסמאות הוחלפו ממחשב נגוע. בדקו את שלושתם: סרקו את המחשב, חפשו את נקודת הכניסה ביומני השרת, והחליפו את כל הסיסמאות פעם נוספת אחרי הניקוי.
האתר נעלם מגוגל אחרי הפריצה. הוא יחזור?
האזהרה של גוגל מוסרת אחרי שהאתר נקי ובקשת הבדיקה ב-Search Console אושרה. אף אחד לא יכול להבטיח מתי ובאיזה מיקום האתר יחזור לתוצאות, אבל כדי לא לעכב את התהליך ודאו שעמודי הספאם שהפורץ יצר מחזירים שגיאה 404 או 410, והסבירו בבקשה מה תיקנתם.