מאמר זה מבוסס בחלקו על ההרצאה שהעברתי בכנס Press4Word בהמשך להרצאה על איך מרימים קאלי על אמזון. במאמר הזה אני מסביר על wpscan, אחד מהכלים הבסיסיים לבדיקת אבטחה ומדגים (איך לא) על אתר pepper, אתר בנקאי שמבוסס על וורדפרס והיה מלא בחולשות אבטחה. במאמר אני מראה כמה קל לכל אחד לראות את חולשות האבטחה האלו וכמה קל לתקן אותן. אלא אם כן אתם בנק, ואז זה לא קל.
במאמר הקודם הראיתי איך כל אדם יכול להתקין קאלי על EC2 בלי להתאמץ. אפשר גם להתקין את קאלי כמובן גם על דוקר ווכמובן על USB או על לינוקס עצמו. בכל מקרה קל לעשות את זה ואכן הכלים שעל קאלי מאוד מאוד פופולריים בקרב אנשים שפורצים לאתרים (שזה לא אנחנו) ובקרב המון אנשים שבונים אתרים ורוצים לבנות אתרים מאובטחים יותר (שזה אנחנו).
הבדיקה הראשונה שכל בונה אתרים צריך לעשות היא להשתמש ב-wpscan. כשאני אומר כל בונה אתרים אני לא מתכוון לאנשים שבנו עבור בנק לאומי את 'פפר' כי הם לא השקיעו באבטחה כלל.
האם צריך להשקיע באבטחה של אתרי תדמית/אתרים קטנים
מה שהדוברת של בנק לאומי אומרת שוב ושוב זה שאתר תדמיתי של בנק לא ממש צריך אבטחה כי אין נגישות לפרטים אישיים של אתרים. זו כמובן טעות כי אפשר לעשות ה-מ-ו-ן עם "רק אתר תדמית". אתר תדמית של בנק הוא אתר תדמית שמופיע בפרסומות של הבנק,הוא ניזון מהתדמית של הבנק ומרכז תנועה של לקוחות פוטנציאלים שיש להם כבר אמון כלפי האתר כי הם נכנסו אליו בעקבות פרסומת, קישור שקיבלו מהבנקאי/פרסום אחר. הם כבר מוכנים לתת אמון ולהשתלט על אתר כזה זו מתנה. לתת דוגמאות? למשל להחליף את הקישור של ההורדה לאפליקציה של 'פפר' לאתר אחר שמבקש כרטיס אשראי (למשל), להקפיץ פופאפ שמבקש מהגולשים להתקין תוכנה זדונית מסוימת בתמורה לכסף שהבנק יתן להם, להעביר אותם לאתר פישינג של הבנק שבו הם ינסו לעשות לוגאין וכו'. לא חסרות דרכים להתקפה. כאמור זה לא אתר תדמית של קוסמטיקאית אלא אתר תדמית של בנק שמפורסם שוב ושוב בערוצי המדיה וגם בקמפיינים אחרים. להיפך, אתר כזה הוא מטרה אפילו יותר מפתה כי בגלל שמי שאחראי על הייצור שלו הוא מחלקת השיווק הלא טכנולוגית שמעבירה את זה לקבלני משנה ואף אחד לא שם על האבטחה. האקרים פוטנציאליים יתמקדו ראשית באתרים כאלו.
גם אם האתר שלכם הוא אתר של חברה קטנה, עדיין שווה להשקיע באבטחה. גם מנהלי חברות קטנות לא רוצים לככב בעיתון אחרי שאיזה האקר אינדונזי השחית את האתר. במיוחד שקל למזער את חולשות האתר.
לעבודה ולאבטחה
אז אחרי שפירקנו את הטענה של רק 'אתר תדמית'. בואו ונראה איך פישלו באבטחה של אתר פפר. בפרק הקודם ראינו שהם לא טרחו ליישם פרוטוקול HTTPS. בפרק הזה נראה איך הם לא יישמו הגנה בסיסית של סריקת האתר.
נכנס לקאלי (דרך אמזון, דרך דוקר או בכל דרך אחרת) ונכתוב:
wpscan -u https://MYSITE.com -r
מה זה אומר? מה שמגיע אחרי הפלאג u- זה ה-URL שאנחנו רוצים לבדוק. חשוב לציין שמדובר בבדיקה סטטית של מקומות ש'מותר' להסתכל בהם. אין כאן חדירה אקטיבית. זה לא SQLmap או כל דבר אחר שמהווה חדירה. מדובר בסריקה שאינה שונה מסריקה ידנית. רק אוטומטית.
הפלאג r- הוא על מנת לשנות את ה-user agent. כלומר לתת אינדיקציה של 'דפדפן אמיתי' לשרת. מומלץ להוסיף את זה.
מייד אחרי ההרצה, תקבלו רשימת חולשות אבטחה שיש לתקן אותן. זה הכל! המטרה בסופו של דבר היא להביא את רשימת החולשות ל-0. כשאתם בונים אתר, מומלץ ורצוי בסיום העבודה להריץ את זה על הקאלי שלכם ולראות את החולשות ולסדר אותן. אפשר לצרף את הדו"ח של wpscan ללקוח וגם לגבות פרמיה מתאימה. אתר שיש לו 0 דיווחים של wpscan הוא חדיר הרבה פחות מאשר אתר עם רשימת ליקויים ארוכה. כשאני סורק אתר ורואה 0 ליקויים, אני מבין שמקצוען עבד על האתר הזה.
אז כמובן שעשיתי סריקה על אתר pepper. רשימת החולשות היתה ארוכה, אפילו ארוכה מאוד.
אם תבדקו – ברגע שאנחנו סורקים את האתר שלנו עם wpscan, אנחנו רואים מייד דיווח של מה שהוא רואה. אפשר לראות שחלק מהתקלות קלות מאוד לתיקון.
למשל:
[!] The WordPress 'http://pepper.co.il/readme.html' file exists exposing a version number
איך מתקנים? לא צריך תוסף אבטחה – פשוט מוחקים את הקובץ הארור. למה זו נחשבת פרצת אבטחה? כי כמה שפחות מידע לסקריפטים יותר טוב.
או למשל:
Full Path Disclosure (FPD) in 'http://pepper.co.il/wp-includes/rss-functions.php':
שזה אומר כשכשנכנסים לנתיב הזה אנחנו רואים שגיאת PHP, דבר שעדיף לא לראות. איך מתקנים? עם htaccess :
php_flag display_errors off
או בכמה דרכים אחרות.
רואים תקלה שאתם לא יודעים איך לתקן? תשתמשו בגוגל. זה מה שיפה בכלים מאוד פופולריים. התקלות שהם מדפיסים מופיעות בכל מקום עם הסברים וסיוע על התקלות. סיימתם לתקן את הכל? הדפיסו את דו"ח השגיאות לפני ואחרי ושלחו ללקוח. אל תשכחו לגבות על כך פרמיה. זה משהו שחאפרים לא יודעים לעשות ולא יכולים להציע.
עדכונים אוטומטיים
מה ש-wpscan עושה בנוסף זה בדיקה של הגרסאות של וורדפרס והתוספים. במידה ויש בלוגים הסבר על הפרצות אז אפילו לא שולחים אתכם לחפש – יש קישורים לתיעוד המדויק של הפרצות שבדרך כלל כולל הסבר איך לנצל אותן.
גרסת הוורדפרס של אתר פפר היתה מאוד לא מעודכנת וכפי שניתן לראות בתמונה לעיל, יש הסברים על כל חולשה וחולשה שנוצרה מאי עדכון גרסה. וכמו הליבה של וורדפרס, יש לנו גם את התוספים של וורדפרס. אתר פפר הכיל גם תוספים לא מעודכנים. תיעוד מדויק של כל החולשות של התוספים כולל קישורים כבר מופיע בסריקה.
עכשיו אנחנו רואים כמה זה חשוב. כי אפשר לקלוט את זה בשניה. וזה לא רק האקר שמפעיל את זה – זה סקריפט שיש לו פלט. יש סקריפטים שכבר נכתבו ומנצלים אוטומטית את הפירצה הזו.
מה זאת אומרת? יושב לו האקר, הפעם אמיתי, על הלוגים של העדכונים – מגלה שתוסף מסוים עודכן ממש הרגע עם patch לבעית אבטחה. הוא יבדוק מה בעית האבטחה ויכתוב סקריפט קטן שמנצל אותה וימכור אותה לנוכלים. מתישהו הכלי ידלוף לחברים אינודנזיים חברים שיתחילו להפעיל אותו על אתרים ישראלים. כשהם יצליחו אנחנו נראה עוד כותרת בעיתון. עכשיו אתם רואים כמה זה קל. איך מונעים את זה? עדכון אוטומטי ומיידי של התוספים באמצעות שתי שורות ב-wp-config.php:
add_filter( 'auto_update_plugin', '__return_true' );
ולוודא כמובן שהאתר מתעדכן באופן סדיר, זה אמור להיות אוטומטי. אבל חשוב לוודא את זה.
עכשיו, עדכונים אוטומטיים יכולים לשבור אתר. הפתרון הוא, ללקוחות שמפחדים שזה יקרה, הוא להרים גרסה נוספת – גרסת פיתוח של האתר שמתעדכנת בעדכונים העתידיים של הפיתוח ולקבל התראה על כל שינוי. אני לא נכנס לזה אבל זה מיועד לאתרים גדולים וחשובים. מכירים כזה?
הליקויים נמסרו לדוברת של בנק לאומי לפני כשבוע באמצעות עיתון הארץ ורובם תוקנו. אבל אין לי כוח לרדוף אחריהם כדי שיתקנו את הכל. אולי פשוט אל תקראו לי מומחה לאבטחת מידע.
11 תגובות
מאמר מצויין, כמו ההרצאה
כמה דברים:
1 חבל שלא ציינת גם את התוספים בהם אתה משתמש לאבטחה, כפי שציינת בהרצאה.
2. לפחות לי לקח כמה דקות לעלות על זה, אבל דרך השרתים של אמאזון, לפני הפקודה של wpscan מומלץ לשים sudo, במידה וזה לא רץ כמו שצריך
תודה רבה! במאמר הבא אני אספר על התוספים. מבטיח 🙂 פיצלתי את המאמרים כי אנשים נוטים לא לקרוא מאמרים של 2,000 מילה.
רן, אני לא עובד עם WordPress, אבל אני מוצא ע"י גוגל הרבה פעמים קבצי Backup של אתרי WordPress שלמים (בקובץ יש את כל הצד שרת). האם זה נחשב חור אבטחה?
התוספים של הוורספרס זה הווירוס
מאמר מעולה.
תודה על העדכון
עשיתי סריקה לאתר שלי,
והוא רשם לי רק דברים עם [+] ירוק, ככה זה אמור להיות?
תודה על המאמר. גרמתי לי לעדכן גרסאות ותוספים, וכן למחוק חלק מהבעיות.
טיפ לעצלנים שלא רוצים להתקין קאלי: אפשר להשתמש בשירות של wpscans דוט קום ולהריץ דרכם.
הרצת עדכונים אוטומטיים עלולה לשבור את האתר בסבירות די גבוהה. מספיק שמפתח של תוסף לא ערך מספיק בדיקות לעדכון שלו.
עדיף לעדכן ידנית לעתים תכופות. מומלץ להשתמש בשביל זה ב־wpcli שמפשט מאוד את התהליך.
רלוונטי פחות אם יש לך רשת של אתרים ו/או אתה לא יכול לשלם לבונה אתרים שיעשה את זה בשבילך. וגם תלוי בתוספים.
בנוסף לא כדאי למחוק את קובץ readme.html כי הוא חלק מוורדפרס והוא גם יחזור בעדכון הבא. עדיף לחסום אותו בשרת עם htaccess אם זה אפאצ׳י או בקוד הבא במקרה (העדיף) שזה nginx.
location ~ ^/readme.html {
deny all;
}
צודק 🙂