לדלג לתוכן

וורדפרס - איך פורצים ואיך מגנים, ווקטור מול ווקטור

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

תוספים ותבניות פגיעים

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

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

זיהוי משתמשים - user enumeration

וורדפרס חושפת בקלות רבה מדי מי המשתמשים הרשומים באתר. דרך אחת נפוצה היא ארכיון המחבר - author archive - שבו כתובת כמו /?author=1 מפנה לעמוד של המשתמש עם המזהה הזה, וחושפת את שם המשתמש שלו. דרך שנייה היא ה-REST API המובנה של וורדפרס, שבברירת מחדל חושף רשימת משתמשים דרך נתיב כמו /wp-json/wp/v2/users. תוקף שאוסף רשימת שמות משתמש אמיתיים, קיבל בעצם חצי מהעבודה - עכשיו הוא צריך רק לנחש סיסמה, במקום לנחש גם שם משתמש וגם סיסמה.

ההגנה: להגביל את הגישה לנתיבי ה-REST API שחושפים משתמשים, ולהימנע משמות משתמש שהם גם שם תצוגה ציבורי. הרבה תוספי אבטחה מאפשרים לחסום את ארכיון המחבר או להסתיר את שם המשתמש האמיתי מתוך הכתובת.

התעללות ב-XML-RPC

וורדפרס כוללת ממשק ישן בשם XML-RPC, שנועד במקור לאפשר פרסום פוסטים מאפליקציות חיצוניות. הבעיה היא שהממשק הזה מאפשר גם לבצע ניסיונות התחברות מרובים בקריאה בודדת - מה שהופך אותו לכלי מצוין להאצת מתקפות ניחוש סיסמה - brute force. בנוסף, פונקציית ה-pingback של XML-RPC יכולה לשמש תוקפים כדי לגרום לאתר שלכם "לתקוף" אתרים אחרים בשמכם, כחלק ממתקפת מניעת שירות מבוזרת.

ההגנה: אם אתם לא משתמשים בפועל בפרסום מרחוק דרך XML-RPC, פשוט לחסום את הגישה לקובץ xmlrpc.php לגמרי, ברמת השרת או דרך תוסף אבטחה.

פרטי גישה חלשים למשתמש הניהול

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

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

קבצי wp-config וגיבויים חשופים

הקובץ wp-config.php מכיל את פרטי ההתחברות למסד הנתונים ומפתחות סודיים קריטיים לאתר. אם עותק שלו, גיבוי, או קובץ עם סיומת כמו .bak נשארים נגישים דרך הדפדפן, תוקף שמוצא אותם מקבל בעצם את המפתחות לכל האתר. אותו דבר נכון לקובצי גיבוי מלאים - zip או sql - שנשארים בתיקייה ציבורית מתוך שכחה או הרגל עבודה רשלני.

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

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

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

הצטרפו לקהילה בדיסקורד

לסיכום

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