התקפות ופריצות לאתרי וורדפרס

התקפות ופריצות לאתרי וורדפרס

[get-breadcrumbs]

ניתן להגן על אתרי וורדפרס אבל לא ב 100%

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

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

אני נוהג לזהות את הבעיה. לתת פתרון כירורגי ולמצוא מענה לפירצה.

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

3 אירועים של פריצה ושתילת קוד זדוני בקובץ 404php.

תהליך זיהוי הפריצה

קל לזהות שעמוד הבית השתנה או כל חלק אחר באתר.

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

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

הדרך המהירה לזיהוי פריצה הינה לזהות קבצים שהשתנו. בפרט הקבצים הראשיים: index.php, wp-config.php, 404.php

אם כן? – יש פריצה. מומלץ לתקן באופן כירורגי כדי ללמוד איך הפריצה התבצעה ולמנוע אותה בעתיד.

לפני שנה קיבלתי אתר שבו נשתל קוד זדוני בכמעט כל קבצי PHP. כ 5000 במספר. לאחר זיהוי הקוד, שינוי גלובאלי לקח כ-5 דקות. לא נורא…

יש פריצות שמטרתן להוסיף קוד זדוני שמתקשר לאתרים אחרים למגוון מטרות.

בחלק מהפריצות נמחקים קבצי מערכת כדי לאפשר את הפריצה (למשל מחיקת htaccess.)
או wp-admin/update-core.php

מטרת הפורצים תהיה להשאיר אתר מתפקד.

כאשר מצליחים לשתול קובץ PHP באתר, זה כבר לא מסובך לכתוב קוד שישנה מידע ב database.
לדוגמא, שינוי קידוד מ utf-8 ל utf-7 יהפוך את כל הטקסט באתר לג'יבריש מבהיל.
או לשתול קוד ג'אוה סקריפט בווידג'ט.

אזורי פריצה נפוצים

השיטה הנפוצה ביותר כי ידוע היכן הקובץ נמצא: http://your-site.com/wp-login.php

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

מרגע זה האתר (כמעט) פתוח בפנינו לכל פעולה.

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

 

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

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

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

שיטות מניעת פריצות באתרי וורדפרס

  • להמנע משמות משתמשים נפוצים כמו admin, test או שם האתר
    חסימה יעילה: לחסום באופן מיידי כל IP שמנסה להכנס בצורה הזו.
  • להשתמש בסיסמא לא פשוטה שתהיה קשה לניחוש על ידי מכונה
  • אפשר להסתיר את wp-login.php. הנה תוסף שעושה זאת
  • לאפשר כניסת מנהל רק מכתובת IP מסוימת (אחת או יותר)

 

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

אם אינכם משתמשים באופציה הזו, אזי הקוד הבא בקובץ htaccess. יעשה את העבודה:

# Block WordPress xmlrpc.php requests

order deny,allow
deny from all
# allow from 123.123.123.123

חלק לא קטן מהפריצות שהצליחו התחילו כאן ושינו את index.php או 404.php או שתלו קובץ PHP חדש שהכיל קוד שעשה ככל העולה על רוחו. השורות האלה חוסמות לחלוטין את הפירצה שרבים לא מודעים לה ולכן התוקפים מצליחים.

הפתרון הפשוט הוא להסיר או להחליף אותם.אני נוהג להחליף.

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

לא דברנו עוד על אהבה ועל מניעת התקפות!

האמת היא שיבוא פוסט המשך בנושא. טיפלתי באתרים שחוו נסיונות חדירה כל שניה! (בממוצע)
והיו כאלה שחוו נסיונות פריצה פעם בשבוע.

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

רשימת הנושאים שיטופלו:

  1. הסוואת וורדפרס. הסרת זיהוי הגרסה
    <meta name="generator" content="WordPress 3.5.2" />
    וקובץ readme.html

אם עדיין זקוקים לעזרה? השאירו פרטים כאן למטה

השאירו פרטים
בואו לקפה!
סגירת תפריט