אז כמו שכתבתי: אתר של לקוח שלי נפרץ השבוע. על זה ביום הבחירות כשכולם בחופש ומי שעלתה על זה היתה דווקא סוכנת ה־AI שלי, אינסטינקט, כשביקשתי ממנה לבדוק משהו אחר באתר – בלי שיש לה משתמש אפילו.
היא מצאה בקוד של עמוד הבית קישורים מוסתרים לעמודי ספאם מוזרים שנבנו בתוך האתר. חשבתי שאולי זאת שארית רשלנית מהטמפלייט שאיתו בנו את האתר (כבר קרה לי משהו כזה). אבל כשנכנסתי לעריכת האתר ולרשימת העמודים, לא ראיתי אותם. גם מפת האתר הראתה עשרות עמודי ספאם כאלה.
אז התחלנו לחקור.
לי היתה גישה לניהול וורדפרס, אבל לא לאחסון. פתחתי לאינסטינקט יוזר. אינסטינקט התחילה בתוסף ״יומן פעילות״, שמציג מי עשה מה ומתי באתר. היא מצאה משתמש לא מוכר ששינה את דף הבית, ומשתמש אחר שנתן לו גישה. איך הראשון נכנס? עדיין לא היה ברור.
משם עברנו לתוספים. מצאנו תוספים זדוניים עם שמות תמימים כמו WordPress Fix ו־WordPress Security Default. נמצא גם קובץ Must Use שהחזיר אחד מהתוספים לפעילות אם הוא נמחק או כובה. כלומר, למחוק משתמש חשוד לא היה פותר את כל הסיפור.
אז עכשיו ידענו מה יש לנו: משתמשים שהוסיפו עמודים ותוספים.
כדי לפתור את הבלגן חסר היה להבין מתי זה התחיל, וחסר מאיפה הם באו.
כדי להבין מתי זה באמת התחיל, ויותר חשוב – מה הגרסה הנקייה האחרונה של האתר – הייתי צריכה לגשת לגיבוי. בתוך האתר היה רק גיבוי של מסד הנתונים. בשביל גיבוי שכולל גם את קובצי האתר הייתי צריכה גישה לאחסון. אז שלחתי מייל.
אחרי יומיים(!) של המתנה במייל לחברת ניהול האתר, התקשרתי.
אשת הקשר שלי הפנתה אותי לאדם אחר, שהפנה אותי לעוד אדם, שאמר שיפנה לחברת האחסון דזבין אבא בתרי זוזי. לפחות תוך שעה מהטלפון הראשון קיבלתי גישה.
בדקתי את הגיבוי של יום לפני ש"יומן הפעילות" הראה על תחילת הפעילות. ואכן באותו תאריך בשבוע שעבר התוספים הזדוניים, המשתמשים ועמודי הספאם שזיהינו לא היו בו, והגרסה שוחזרה. נשאר משתמש חשוד אחד, שהורדתי מאדמין לסבסקרייבר.
תעלומה 1: מה התאריך הנקי האחרון? נפתרה. והגיבוי שוחזר.
במקביל, אינסטינקט גילתה שבאחד התוספים מותקן בגרסה עם פרצת אבטחה ידועה. כנראה שמשם התחילה הפריצה.
תעלומה 2: מאיפה הגיעה הזליגה? כנראה מתוסף.
אממה: זה תוסף בתשלום. לא יכולתי לעדכן אותו בלי רישיון, שלא היה לי. עדכנתי את שאר התוספים ופניתי לחברה שתתקין רישיון ותעדכן גם אותו. הם גם אישרו למחוק את המשתמש החשוד.
ואז, כמו בספר טוב של צמרמורת, מחיקת המשתמש הורידה גם עמוד חשוב. מזל שידעתי לבקש מאינסטינקט לבדוק אם משהו השתנה באתר. העמוד שוחזר והבעלות עליו הועברה אליי.
סוכן AI אחר שלי, שבניתי עם צ'אט GPT לטובת הפרויקט של הלקוח הזה ומחובר לתיקייה עם כל המסמכים של הלקוח, השלים את הפערים שהיו ואת הקבצים שאבדו עם המחיקה.
כרגע נראה שהתקרית נגמרה.
מה אפשר ללמוד מהסיפור הזה?
1. פחות תוספים, יותר עדכונים
בעלי אתרי וורדפרס? תוספים באתר הם דבר שצריך לתחזק. בערך כל תוסף צריך עדכון אחת לכמה שבועות. בעיות אבטחה זאת רק בעיה אחת שיכולה להיגרם מתוספים לא מעודכנים.
תבדקו איזה תוספים באמת בשימוש, גבו את האתר והסירו תוספים מיותרים: כבויים או שלא בשימוש. השאירו את גרסת הוורדפרס, התבנית והתוספים מעודכנים, ובדקו עם מי שמנהל את האחסון גם את גרסת ה-PHP של האתר. וכמובן: אל תתקינו תוספים ממקור לא מוכר.
אם אתם לא בטוחים אם התוספים שלכם מעודכנים או מפחדים/לא יודעים לגעת – דברו איתי.
2. מי אחראי לעדכונים ולרישיונות?
אם האתר נבנה עם תוספים בתשלום, צריך שיהיה ברור אצל מי הרישיון ומי דואג לעדכונים ולחידוש שלו. אפשר לגבות על תחזוקה בנפרד, אבל האחריות צריכה להיות ברורה. ״האתר נבנה ונמסר״ לא אומר שמישהי מתחזקת אותו עכשיו.
3. איפה הגיבוי, ולמי יש גישה אליו?
מכאן זה נכון גם לאתרים שאינם וורדפרס.
בררו מראש מה הגיבוי כולל, איפה הוא נשמר ומי יכול לשחזר ממנו. בשרת אמור להיות גיבוי בתדירות כלשהי ולהרבה אתרי וורדפרס יש גיבוי יזום של updraft plus. גיבוי מסד הנתונים וגיבוי קובצי האתר הם שני דברים שונים. זה לא בירור שכדאי להתחיל כשכבר יש אירוע.
4. אם לא עונים, מתקשרים
להרים טלפונים זאת כבר פחות נורמה, ויש אנשים שחווים את זה כחוצפה או אגרסיביות. אבל להמתין יומיים עם אתר פרוץ זה לא סביר. אם מייל דחוף נתקע וחבל על הזמן עם ווצאפ, מרימים טלפון. יש שלב ש"זאת אחריותי" גובר על "לא נעים", ובטח על "אולי אני אעשה לא נעים לצד השני".
5. AI עוזר לבדוק. הניסיון עוזר לדעת מה לבדוק
אינסטינקט הנחתה אותי בהרבה שלבים, אבל אני ידעתי מה לשאול ולאן ללכת. זה התלבש על תשתית ידע קיימת שלי בעקבות שנים במקצוע. AI הוא לא תחליף למוח ולניסיון, הוא גלגלי עזר.
אפשר לשלוח כבר היום למי שמתחזק לכם את האתר שלוש שאלות: איפה הגיבוי, מי אחראי לעדכונים ולרישיונות, ומי מטפל באירוע דחוף. עדיף לקבל את התשובות כשאין אירוע.
ואם אתם רוצים שאני אבנה לכם סוכן AI שיחזיק לכם את כל המידע על פרויקט ויוכל להיות זוג ידיים ולפנות לכם זמן יקר – גם: דברו איתי.