וורדפרס מפעיל חלק עצום מהאתרים בעולם, וזו בדיוק הסיבה שהוא היעד הפופולרי ביותר לתוקפים אוטומטיים. ברוב המוחלט של המקרים פריצה אינה "האקר שבחר דווקא בך", אלא בוט שסורק מיליוני אתרים ומחפש את אותן חולשות מוכרות. החדשות הטובות: כמעט כל וקטור תקיפה נפוץ ניתן לסגירה בפעולה פשוטה וקבועה. הנה שמונה הפרצות שאנחנו רואים שוב ושוב, ומה עושים נגד כל אחת.
1. תוספים ותבניות מיושנים
זהו הגורם מספר אחת לפריצות וורדפרס, בפער גדול. כל תוסף הוא קוד של צד שלישי, וכשמתגלה בו חולשת אבטחה היא מתפרסמת בפומבי יחד עם התיקון. מהרגע שהתיקון יוצא, בוטים מתחילים לסרוק את הרשת אחרי אתרים שעדיין מריצים את הגרסה הפגיעה. אתר שלא עודכן שבועיים יכול להיות חשוף לחולשה שכבר תועדה ומנוצלת.
מניעה: עדכון שוטף של ליבה, תוספים ותבניות. חשוב לא פחות: למחוק תוספים ותבניות שאינם בשימוש (גם כשהם כבויים הם עדיין קוד שניתן לנצל), ולהימנע מתוספים "נאלד" (גרסאות פרימיום פרוצות) שלרוב מגיעות עם דלת אחורית מובנית.
2. סיסמאות חלשות והתקפות brute force
תוקפים מריצים אלפי ניסיונות התחברות בשנייה מול עמוד ההתחברות, ומנסים שילובים נפוצים של שם משתמש וסיסמה. שם המשתמש admin עם סיסמה קצרה הוא הזמנה פתוחה. די בחשבון מנהל אחד עם סיסמה חלשה כדי לתת לתוקף שליטה מלאה.
מניעה: סיסמאות ארוכות וייחודיות (מנהל סיסמאות), ביטול שם המשתמש admin, אימות דו-שלבי (2FA) לכל חשבון בעל הרשאות, והגבלת מספר ניסיונות ההתחברות. הרחבנו על כך במדריך חסימת ניסיונות התחברות (brute force).
3. הרשאות משתמשים רשלניות
לא כל מי שעובד על האתר צריך הרשאת Administrator. כותב תוכן צריך תפקיד Author, ולא יותר. כשמחלקים הרשאות מנהל בנדיבות, כל חשבון כזה הופך לנקודת כניסה אפשרית, וגם טעות אנוש פשוטה (לחיצה על קישור דיוג, סיסמה שדלפה) עלולה להסלים לשליטה מלאה.
מניעה: עיקרון ההרשאה המינימלית. הקצו לכל משתמש את התפקיד הנמוך ביותר שמספיק לו, ובדקו מדי פעם את רשימת המשתמשים כדי לאתר חשבונות ישנים או לא מזוהים.
4. אחסון משותף וזיהום צולב
באחסון שיתופי זול, אתרים רבים יושבים על אותו שרת ולעיתים תחת אותו חשבון. אם אתר שכן נפרץ, או אם יש לכם כמה אתרים תחת חשבון אחד ואחד מהם נפרץ, הזיהום עלול להתפשט בין הספריות. הרבה "פריצות חוזרות" הן בעצם קובץ נגוע ששרד באתר אחר באותו חשבון.
מניעה: הפרדה בין אתרים (חשבונות נפרדים או בידוד ברמת השרת), והקפדה לנקות את כל האתרים שמושפעים, לא רק את זה שבו התגלתה הבעיה.
5. גרסאות PHP ותוכנת שרת מיושנות
אבטחה לא מסתיימת בוורדפרס עצמו. גרסת PHP שהגיעה לסוף החיים אינה מקבלת עוד עדכוני אבטחה, וכך גם תוכנות שרת ישנות. אתר שרץ על גרסת PHP בת שנים נושא איתו חולשות שכבר לא יתוקנו לעולם.
מניעה: להריץ גרסת PHP נתמכת ועדכנית, ולוודא שסביבת השרת מתוחזקת. אצל ספק אחסון רציני זה קורה אוטומטית; באחסון מוזנח זו אחריות שנופלת עליכם.
6. טפסים ושדות קלט לא מסוננים
טופס יצירת קשר, חיפוש, או אזור הערות שלא מטפל נכון בקלט המשתמש עלול לפתוח פתח להזרקות (SQL injection, XSS) ולהעלאת קבצים זדוניים. תוקף שמצליח להעלות קובץ PHP דרך טופס פגיע יכול להשתלט על האתר כולו.
מניעה: להשתמש בתוספים מתוחזקים וכתובים היטב, לאמת ולסנן כל קלט, ולהגביל סוגי קבצים שמותר להעלות. חומת אש לאפליקציה (WAF) חוסמת חלק ניכר מניסיונות ההזרקה עוד לפני שהם מגיעים לאתר.
7. היעדר חומת אש וניטור
אתר ללא שכבת הגנה הוא אתר שכל ניסיון תקיפה מגיע אליו ישירות. בלי ניטור, פריצה יכולה להתרחש ולהישאר חבויה שבועות: דפי ספאם שנוצרים ברקע, הפניות לאתרים זרים, או שליחת דואר זבל מהשרת שלכם, עד שגוגל או חברת האחסון מסמנים את האתר.
מניעה: חומת אש (WAF), תוסף אבטחה שמנטר שינויים בקבצים, וסריקות תקופתיות. השוואה בין הפתרונות הנפוצים יש במדריך תוסף אבטחה לוורדפרס - Wordfence מול Sucuri.
8. היעדר גיבוי תקין
גיבוי אינו מונע פריצה, אבל הוא ההבדל בין תקלה בת שעה לבין אסון של ימים. אתרים רבים מגלים בדיוק ברגע הקריטי שהגיבוי "האוטומטי" שלהם לא רץ חודשים, נשמר על אותו שרת שנפרץ, או מעולם לא נבדק בשחזור.
מניעה: גיבוי אוטומטי, מתוזמן, מחוץ לשרת, שנבדק מדי פעם בשחזור אמיתי. כיסינו את ההגדרה הנכונה במדריך גיבוי אוטומטי לוורדפרס.
הקו המחבר: אבטחה היא תהליך, לא מוצר
שימו לב שכמעט כל סעיף ברשימה חוזר לאותו עיקרון: לא חסר רכיב קסם אחד, אלא תחזוקה שוטפת. אתר נפרץ כי משהו לא עודכן, לא נוקה, לא הוגבל או לא נוטר במשך זמן רב מספיק. תוסף אבטחה הוא כלי חשוב, אבל הוא לא מחליף יד שמסתכלת על האתר באופן קבוע.
זו בדיוק הסיבה שבנינו את חבילת אחריות 360 של OCW: ארבעה פילרים (אבטחה, נגישות, פרטיות ותחזוקה טכנית) תחת מעקב חודשי קבוע, כך ששמונה הפרצות שבמאמר הזה פשוט נסגרות ונשארות סגורות. אם האתר שלכם כבר נפרץ, אפשר להתחיל בטיפול חד-פעמי ולנקות אותו לפני שמתחילים לתחזק. ראו גם פרצו לי לאתר וורדפרס - הצעדים המיידיים.
לבדיקת מצב האבטחה של האתר או לטיפול נקודתי, דברו איתנו.
שאלות נפוצות
למה דווקא וורדפרס נפרץ כל כך הרבה?
לא בגלל שהוא לא בטוח, אלא בגלל שהוא הנפוץ ביותר. תוקפים אוטומטיים מתמקדים במערכת הפופולרית כי כך הם פוגעים בכמה שיותר אתרים במכה. ליבת וורדפרס עצמה מתוחזקת היטב; רוב הפריצות מגיעות דרך תוספים, סיסמאות והזנחה.
האם תוסף אבטחה לבדו מספיק כדי להגן על האתר?
לא. תוסף אבטחה הוא שכבה חשובה, אבל הוא לא מעדכן תוספים בשבילכם, לא מחזק סיסמאות ולא בודק גיבויים. הוא חלק ממערך הגנה, לא תחליף לתחזוקה.
כל כמה זמן צריך לעדכן את האתר?
עדכוני אבטחה רצוי להחיל בתוך ימים ספורים מרגע פרסומם, ולא להמתין. עדכונים גדולים יש לבצע אחרי גיבוי ועדיף בסביבת בדיקה, כדי להימנע משבירה בעקבות עדכון.
נפרצתי פעם וניקיתי, למה זה חזר?
ברוב המקרים נשאר קובץ נגוע אחד שלא זוהה, או שהפרצה המקורית (תוסף ישן, סיסמה שדלפה) לא נסגרה. ניקוי בלי לסגור את שורש הבעיה כמעט תמיד מסתיים בהדבקה חוזרת.