אבטחת אתר וורדפרס

נכתב על ידי יונתן אנגל

השימוש בוורדפרס – רקע

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

 שלב 1 – צ'ק ליסט אבטחת אתר

להלן רשימת צעדים חד פעמיים שיגבירו את אבטחת אתר הוורדפרס שלך:

  1. התקן את wordpress דרך אשף ההתקנה הדיפולטיבי (Famous 5 minute install) ולא דרך אשף התקנה מהיר כגון fantastico או softacalous. האשפים האלה משמיטים אלמנטים של אבטחה.
  2. העבר את קובץ הקונפיגורציה של האתר wp-config.php רמה אחת מעל ל- root domain של האתר (התיקייה בה האתר מתחיל – למתקשים מעט: לרוב רמה אחת מעל איפה שיושב דף הבית של האתר). שים לב: ישנם שרתי אחסון שמגבילים אותך ומונעים ממך לבצע פעולה זו.
  3. התקן פלאגינים של אבטחת אתר. פלאגינים מומלצים הם:
  • א. Limit Login attempts plugin by Johan Eenfeldt – מאפשר לחסום קונפיגורטיבית (כלומר על ידי מתן מספר חוסם – לפי רצון שרירותי) את מספר ניסיונות הכניסה לחשבון. היתרון: מניעת פריצות באמצעות סקריפט רקע שעובד בשיטות brute force.
  • ב. Hide WordPress Version – מחביא את גרסת ה- wp הרשומה בכל מיני מקומות (גלויים למשתמש הפשוט והטיפה מתוחכם יותר). זכה לדירוג מקסימלי ע"י המשתמשים. כמו כן, יש להימנע מ- plugins ו- themes שכוללים בכותרת האתר את גרסת ה- wp שלך.

שלב 2 – פרקטיקות מועילות

להלן רשימה של "פרקטיקות טובות" אותן יש להנהיג כחלק ממדיניות אבטחת אתר רציפה באתרי האינטרנט שלך:

  1. הישאר מעודכן – שמור על גרסת wp המעודכנת ביותר שקיימת. מפתחי wordpress שוקדים מדי יום ביומו על נושאי האבטחה. סטטיסטית ומסיבות ברורות, האתרים הלא מעודכנים הם אלה שהאקרים מעדיפים לפרוץ. לכן תמיד כשקופצת אופציה לעדכן – בחר בה. בהמשך לכך, דאג לפלאגינים מעודכנים.
  2. שמות משתמש וססמאות: יש להקפיד על שמות משתמש וססמאות קשים לפיצוח באלמנטים הבאים:
  • א. בסיס הנתונים.
  • ב. ממשק הניהול של wordpress – ניתן לעשות זאת בזמן ההתקנה (לאדמיניסטרטור) או בתוך ממשק ניהול האתר של wordpress תחת users בתפריט הימני.
  • ג. ממשק הניהול של השרת (לדוגמא: cpanel).

אל תשתמש בשמות משתמשים כמו: Admin, admin (כל הוריאציות), או שם חלש כמו Bob. עדיף להשתמש בשם קשה יותר לפיצוח כמו: theallmightyadministratorthatcreateswebsites.

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

באתרים קיימים יש לעדכן את הקובץ wp-config.php כדי שיכיל את השמות החדשים של המשתמש, הסיסמא ושם בסיס הנתונים של בסיס הנתונים.

  1. אל תגדיר משתמשים שלא לצורך – המשמעות של יותר משתמשים היא יותר "דלתות" דרכן ניתן לפרוץ לאתר. עם זאת, אם אתה לא חושב שבדרך כלל לא תשתמש בכל הפריבילגיות שיש למנהל צור משתמש נוסף שלו הרשאות מוגבלות (לדוגמא editor) וכנס כמעט תמיד ממנו. יש כאן בעצם טרייד-אוף: מצד אחד, עדיף לא להגדיר משתמשים ומצד שני כניסות דרך administrator עשויות להוביל לחשיפת פרטי הכניסה של בעל ההרשאות הגבוהות ביותר (administrator). החלט האם להקים משתמשים בעלי הרשאות מוגבלות או לא לפי שיקוליך כמנהל. ככלל אצבע: יש לספק את מינימום ההרשאות הדרושות עבור מקסימום שימושיות (usability).
  2. התקן משתמש ייחודי לכל אתר wp.
  3. הקפד לשים תחיליות קשות לפיצוח. ערוך את הקובץ wp-config כך שמעבר להתאמות הרגילות (שם בסיס הנתונים, שם המשתמש, ססמת המשתמש) יכיל גם תחילית לא דפולטיבית וקשה לפיצוח כמו למשל:

thisismydatabaseprefixwhichiadore_

התחילית הדיפולטיבית היא _wp ונמצאת בפקודה:

$table_prefix  = ‘wp_’

בקיצור שנה את הפקודה להיות למשל:

$table_prefix  = ‘thisismydatabaseprefixwhichiadore_’

על שינוי התחיליות לאתר קיים ניתן לקרוא כאן.

  1. שמור את הססמאות במקום בטוח. קיימים מאמרים רבים בנושא למשל זה.
  2. הצפן מחדש את מפתחות הכניסה. אופן הביצוע:
  • ב. העתק את תוכן הדף (Ctrl+a => Ctrl+c).
  • ג. כנס לקובץ wp-config.php. גש לאזור שורות 45-50. החלף את מפתחות הכניסה במה שהעתקת.
  1. כלל אצבע להרשאות – מעמד 644 לקבצים ו-755 לתיקיות.
  2. השתמש בחבילת אחסון של שרת פרטי שמוקדש לך ולא של שרת משותף שמוקדש לכמה משתמשים. מבחינת אבטחה, הדבר יעיל מכמה בחינות:
  • א. יוצר אי-תלות מוחלטת במנגנוני האבטחה של היוזרים האחרים בשרת משותף ולכן מקשה על פריצה לשרת.
  • ב. מאפשר לך לבצע צעדי אבטחה שלא ניתן לבצע אותם בשרת משותף. כאלה הם שינוי הגדרות בשרת לנוקשות יותר או כפי שצוין העברת קובץ wp-config.php רמה אחת למעלה.

העלות הנוספת שווה את היכולות שאחת מהן וחשובה מאוד היא אבטחת אתר משופרת.

  1. דאג לקיומו של nickname לכל user. באופן דיפולטיבי בהיעדר הכנסה יזומה של nickname, ה- nickname מוגדר להיות ה- username מה שכמובן מגלה לכל דורש (לכל גולש באתר) את ה- username דבר שבתורו מחליש את הקושי לפרוץ לאתר. ניתן לשנות את ה- nickname לשם Admin למשל (כמובן כל עוד זהו לא שם המשתמש כפי שהומלץ לעיל!). הכנסת nickname ניתנת דרך כניסה ל- users בתפריט הימני של ממשק הניהול של wordpress => כניסה למשתמש הרצוי => מילוי טקסט בשדה nickname => עדכן פרופיל.