הגנה מפני התקפות brute-force ב-WordPress: שלוש שכבות חיוניות

ללא הגנת brute-force, אתר WordPress פתוח לאלפי נסיונות התחברות בדקה. מדריך לבניית הגנה רב-שכבתית.

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

למה זה משנה

נתח נכבד מהפריצות לאתרי WordPress מתחיל בהתקפת brute-force מוצלחת על משתמש בעל הרשאות. בוטים מודרניים משתמשים ברשימות 'credential stuffing' - שילובי שם משתמש וסיסמה שנגנבו במאגרים אחרים. אם משתמש באתר שלך השתמש באותה סיסמה גם ב-LinkedIn, ב-Adobe או ב-Dropbox שדלפו - הסיסמה כבר ברשימה, ובוט שמכיר את שם המשתמש שלו יכול להיכנס בנסיון אחד. נוסף לסיכון האבטחתי, brute-force לא מטופל גורם לעומס שרת ניכר. אתר על shared hosting עם 200,000 נסיונות התחברות בחודש יחווה האטות, חיובים על משאבים, ולעיתים השעיה זמנית של החשבון על ידי הספק.

איך לזהות

הבדיקה מחפשת חתימות של תוספי הגנה ידועים: Wordfence, Solid Security, Limit Login Attempts Reloaded, Loginizer, ITSec. היא בודקת את רשימת התוספים הפעילים ואת קיום ההוקים שהם מוסיפים. ידנית: גש ללוג ההתחברויות הכושלות (לרוב /wp-admin/admin.php?page=wordfence-login-security) או למאגר wp_login_failed - אם יש שם מאות שורות מ-IPs שונים תוך כמה שעות, אתה תחת התקפה.

איך לתקן

  1. שכבה 1 - הגבלת קצב. התקן Wordfence (חינמי) או Limit Login Attempts Reloaded. הגדר חסימת IP אחרי 5 נסיונות כושלים ל-15 דקות, ו-24 שעות אחרי מספר חסימות חוזרות.
  2. שכבה 2 - אימות דו-שלבי (2FA). הפעל 2FA לכל המנהלים והעורכים. Wordfence Login Security (חינמי) או Two Factor Authentication מספקים TOTP (Google Authenticator). זוהי ההגנה הקריטית ביותר - גם אם הסיסמה דלפה, התוקף לא יכנס בלי הקוד.
  3. שכבה 3 - הסתרת כתובת ההתחברות. שנה את /wp-login.php ל-slug אקראי דרך RankPlus או WPS Hide Login. זה לא תחליף לשתי השכבות הקודמות, אבל מסיר 99% מהרעש בלוגים.
  4. הוסף reCAPTCHA לטופס ההתחברות - חוסם בוטים אוטומטיים שלא יודעים לפתור את האתגר.
  5. שקול חסימת מדינות שמהן אתה לא צופה תנועה - אם הקהל שלך ישראלי או אמריקאי, חסימת תנועה מסין/רוסיה/וייטנאם מבוצעת ברמת ה-firewall (Cloudflare, Sucuri).
  6. חסום גם את /xmlrpc.php - הוא וקטור brute-force חלופי שעוקף הגבלות על /wp-login.php.

טעויות נפוצות

אל תסתפק בהגבלת קצב לבד - 2FA חיוני. תוקף עם רשימת credential stuffing יכול להצליח בנסיון אחד מ-IP נקי, ושום rate limit לא יעצור אותו. אל תפעיל reCAPTCHA על דף ההתחברות בלי לבדוק תאימות לתבנית - לפעמים ה-CAPTCHA לא נטען נכון ומונע מאדמין להיכנס. אל תיפול ב-honeypot גרידא - הוא עוצר את הבוטים הפשוטים בלבד. אל תחסום את ה-IP של עצמך בטעות; ודא שיש לך שיטת חירום (FTP, ל-mu-plugin שמנטרל את התוסף).

בדיקה לאחר תיקון

נסה להתחבר 6 פעמים עם סיסמה שגויה ממכשיר אחר - אמור להיחסם. בדוק שהפעלת 2FA פועלת: התנתק והיכנס שוב, ואמור להופיע מסך קוד. בדוק את הלוגים אחרי שבוע - אמור לראות חסימות עובדות (Wordfence > Login Security > Activity).

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

שיקולים נוספים

אם האתר על Cloudflare או דומה, אפשר להוסיף שכבת הגנה בקצה הרשת - לפני שהתעבורה מגיעה לשרת. Cloudflare מציע 'Bot Fight Mode' (חינמי) שחוסם בוטים מוכרים, ו-'Super Bot Fight Mode' (פלאן Pro) שחוסם גם בוטים מתקדמים יותר. לאתרי WooCommerce או אתרים עם הרבה משתמשים רשומים, ההגנה חיונית במיוחד - ההפסד הכלכלי מתקיפה מוצלחת על checkout עולה לעיתים על עלות תוסף פרימיום למשך שנים.

קישורים לבדיקות קשורות

  • הסתרת כתובת התחברות - מסירה את ה-URL הסטנדרטי שבוטים מכוונים אליו.
  • מדיניות סיסמאות - מבטיחה שגם אם בוט מצליח להגיע, סיסמאות חלשות לא יתנו פתח.
  • חסימת xmlrpc - סוגר וקטור חלופי שבוטים משתמשים בו לעקוף הגבלות login.