אינטרנט ישראל
  • ראשי
  • אודות רן בר-זיק ואינטרנט ישראל
  • ערוץ טלגרם
  • מסטודון
  • התחברו אלי בטוויטר
  • התחברו אלי בלינקדאין
  • ספר ג'אווהסקריפט
  • ראשי
  • אודות רן בר-זיק ואינטרנט ישראל
  • ערוץ טלגרם
  • מסטודון
  • התחברו אלי בטוויטר
  • התחברו אלי בלינקדאין
  • ספר ג'אווהסקריפט
ראשי » רשת האינטרנט » בניית אתרי אינטרנט » האם וורדפרס מאובטחת מספיק?

האם וורדפרס מאובטחת מספיק?

רן בר-זיק מרץ 20, 2016 7:36 am 14 תגובות

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

כדאי תמיד להשאר מעודכנים! אם יש לכם טלגרם, בדקו את ערוץ הטלגרם של האתר שבו אני מעדכן על פוסטים חדשים 🙂 אם אתם רוצים ללמוד תכנות באופן מקיף ומסודר, הצטרפו לאלפי הלומדים בפרויקט "ללמוד ג'אווהסקריפט בעברית" שמלמד לתכנת בג'אווהסקריפט, ב-Node.js ובריאקט וגם מלמד על תרומה לקוד פתוח. גם ספרים דיגיטליים וגם ספרים מודפסים. בשיתוף הקריה האקדמית אונו ובתמיכת חברות מובילות כגון Wix, Outbrain, Elementor, Iron Source, Chegg, Really Good ועוד.

אבטחה והגנה מפני גניבת מידע, השחתת האתר וצרות נוספות הם דברים שמטרידים את כל אלו שמשתמשים באינטרנט, אבל במיוחד את אלו שבונים את האתר שלהם באמצעות מתכנת ותוהים מה יותר מאובטח – וורדפרס? דרופל? אתר שנבנה ב-JAVA? אולי בדוט.נט?
התשובה לשאלה הזו היא קצרה ופשוטה: למעט מקרי קיצון – אין שום קשר בין השפה שבה האתר נבנה לבין האבטחה שלו ואין שום הבדל בין פלטפורמות שונות מבחינת אבטחת הנתונים והגנה מפני השחתת האתר.
ההסבר הוא כמובן יותר ארוך. ראשית, חשוב לי להבהיר שאני לא כותב 'מהפוזיציה'. אני לא בונה אתרים או מפתח אתרים עבור לקוחות וכן אני עובד על מגוון שפות ופלטפורמות כאשר אני מתמקד בעבודה השוטפת שלי בטכנולוגיות שהן לא וורדפרס או בכלל קשורות ל-PHP (שזו השפה שבה וורדפרס כתובה). המאמר מיועד לאנשים ששוכרים מתכנת/בונה אתר על מנת לבנות להם אתר ומוטרדים מנושא האבטחה.

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

האם יש שפת תכנות בטוחה יותר?

כל שפת תכנות מודרנית כלשהי – מ-PHP ועד JAVA, מרובי ועד Node.js יודעת להתמודד עם סיכוני האבטחה האלו. כך למשל, אם אנו רוצים להגן על עצמנו מהתקפת XSS, שבה התוקף שותל סקריפט קטן בתוך האתר, לכל שפה יש פונקציות/מודולים שיכולים למנוע את השתלת הסקריפט. כלומר, זה לא באמת משנה אם אני כותב ב-PHP או ב-Node.js או בכל שפה אחרת – כל עוד אני יודע לכתוב קוד מאובטח אני יכול לעשות את זה. וזה לא משנה באמת אם אני עושה סניטציה באמצעות sanitize HTML ב-Node.js או שאני משתמש ב-Sanitize filter שיש ב-PHP או ב-StringEscapeUtils ב-JAVA. מה שחשוב הוא שאני יודע היכן לעשות את הסניטציה ולמה חשוב לעשות את זה. בשפה פשוטה יותר – כל שפה מכילה את המנגנונים לאבטחה – השאלה היא אם המתכנת שכותב בשפה הזו יודע איך להשתמש בהם כמו שצריך. לפיכך אל תשאלו אם PHP יותר בטוחה מ-JAVA אלא תשאלו מה הידע של המתכנת בנושא אבטחה.

האם יש פלטפורמה בטוחה יותר?

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

אז אם הכל מעולה, למה יש פריצות? ממה צריך לפחד?

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

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

אז מה עושים?

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

אבטחה מוגברת

אם אנו רוצים לקחת את האבטחה שלנו לשלב הבא, צריך להשתמש בכלים מתוחכמים יותר על מנת לאכוף את האבטחה. למשל:

1. Static code analysis – בדיקת קוד סטטית שנעשית ממש בשלבי הפיתוח כחלק ממעגל ה-CI. כך למשל, כשאני מפתח את התוספים שלי לוורדפרס, אני משתמש ב-Grunt שיריץ לי את phpcs והוא מתריע על בעיות אבטחה מסוימות. בפוסט הזה יש הסבר ממשי איך אני עושה את זה. אם קצת איבדתם את ההכרה כשקראתם את זה – זה בסדר, אבל חשוב לשכור מתכנת שמכיר את זה מספיק טוב.
2. Vulnerability Assessment שנעשה על ידי כלי יעודי – יש לא מעט כלים שמבצעים בדיקה יותר מעמיקה (ושאורכת יותר זמן). בדרך כלל משלבים אותם ב-nightly build. מדובר בכלים מקצועיים שעולים כסף ומספקים מידע משמעותי על החולשות שיש בקוד.
3. Black box\ White Box Penetration testing – מדובר בהדמיית תקיפה שנעשית על ידי מתכנתים חיצוניים שמפעילים כלים שדומים לכלים של האקרים/בוטים. גם כאן מדובר בכלים מקצועיים שעולים כסף.

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

אבטחת השרת

עד כה דיברתי על אבטחת הקוד בלבד. אך כמובן שגם לשרת יש תפקיד. גם האתר המאובטח ביותר בעולם יהיה פריץ לחלוטין אם הוא יהיה בשרת שמערכת ההפעלה שלו לא מעודכנת. אם אתם משתמשים בשרת ייעודי (PS או VPS) חשוב שמנהל השרת יגדיר ויעדכן אותו כמו שצריך. אם אתם משתמשים ב-Shared, חשוב לבחור ב-shared איכותי.

לסיכום, אבטחה היא דבר מורכב שדורש ידע והתמחות. אם אתם בונים אתר ומחפשים מתכנת ואכפת לכם מהאבטחה, צריך לזכור שהשאלה החשובה היא לא 'האם הפלטפורמה מאובטחת?' אלא 'עד כמה המתכנת/בונה האתר מוכשר ומבין באבטחה?'. צריך גם לזכור שהגברת רמת האבטחה וההקשחה כרוכה גם בתשלום. מתכנת שיודע מה זו הקשחה, יודע להריץ Static analysis tools וכלי אבטחה שונים כחלק מתהליך ה-Build הוא מתכנת לא זול. לפעמים כדאי יותר להשקיע בגיבויים, אחסון איכותי ועדכונים תכופים מאשר בכלים מתקדמים יותר. הכל תלוי בכם ובצרכים שלכם בסופו של דבר.

כדאי תמיד להשאר מעודכנים! אם יש לכם טלגרם, בדקו את ערוץ הטלגרם של האתר שבו אני מעדכן על פוסטים חדשים 🙂 אם אתם רוצים ללמוד תכנות באופן מקיף ומסודר, הצטרפו לאלפי הלומדים בפרויקט "ללמוד ג'אווהסקריפט בעברית" שמלמד לתכנת בג'אווהסקריפט, ב-Node.js ובריאקט וגם מלמד על תרומה לקוד פתוח. גם ספרים דיגיטליים וגם ספרים מודפסים. בשיתוף הקריה האקדמית אונו ובתמיכת חברות מובילות כגון Wix, Outbrain, Elementor, Iron Source, Chegg, Really Good ועוד.
אבטחה אתר אינטרנט

14 תגובות

  1. עידו הגב מרץ 20, 2016 בשעה 10:15 am

    כיף לקרוא את המאמרים שלך.

    • רן בר-זיק הגב מרץ 20, 2016 בשעה 11:09 am

      שמחתי מאוד לקרוא! תודה רבה! 🙂

  2. שמוליקיפוד הגב מרץ 20, 2016 בשעה 10:22 am

    האם זה נכון שכל המיקרו צ'יפים זה לינוקס?

    • רן בר-זיק הגב מרץ 20, 2016 בשעה 11:10 am

      רק המיקרוצ'יפים במיקרו.

  3. רונן הגב מרץ 20, 2016 בשעה 10:31 am

    הדברים מאוד מעניינים תודה

    • רן בר-זיק הגב מרץ 20, 2016 בשעה 11:09 am

      בשמחה רבה 🙂

  4. חבר יקר הגב מרץ 20, 2016 בשעה 11:01 am

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

    • צוקי הגב מרץ 20, 2016 בשעה 11:07 am

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

    • רן בר-זיק הגב מרץ 20, 2016 בשעה 11:09 am

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

  5. עידן בן אור הגב מרץ 20, 2016 בשעה 11:44 am

    מאמר מצויין רן 🙂

    באופן אישי עשית לי סדר, תודה!

    • רן בר-זיק הגב מרץ 20, 2016 בשעה 3:21 pm

      בשמחה רבה! 🙂

  6. Slava הגב מרץ 21, 2016 בשעה 7:02 am

    Thank you Ran, now I know what is it Sanitize filters in php.

  7. שי הגב מרץ 21, 2016 בשעה 7:05 pm

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

    • רן בר-זיק הגב מרץ 27, 2016 בשעה 12:02 pm

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

השארת תגובה

ביטול

ללמוד ג'אווהסקריפט בעברית

ללמוד לתכנת ג'אווהסקריפט בעברית שגייס יותר משלוש מאות אלף שקל ולמעלה מ-2000 תומכים - בואו ללמוד עכשיו איך לתכנת.

רשימת הנושאים
  • מדריכים
    • ריאקט
    • טייפסקריפט
    • ECMAScript 6
    • ES20XX
    • Node.js
    • Express
    • רספברי פיי
    • Babel
    • docker
    • MongoDB
    • Git
    • לימוד MySQL
    • SASS
    • jQuery
    • CSS3
    • HTML 5
    • SVN
    • LESS
  • פיתוח אינטרנט
    • פתרונות ומאמרים על פיתוח אינטרנט
    • jQuery Scripts
    • jQuery למתקדמים
    • יסודות בתכנות
    • נגישות אינטרנט
  • חדשות אינטרנט
  • מידע כללי על אינטרנט
    • רשת האינטרנט
    • בניית אתרי אינטרנט
  • rss logo

    לכל המאמרים

    לכל המאמרים שפורסמו באינטרנט ישראל משנת 2008 ועד עכשיו.
  • rss logo

    RSS Feed

    משתמשים בקורא RSS? אם כן, עקבו אחרי אינטרנט ישראל באמצעות פיד ה-RSS!
    מה זה RSS?
  • Twitter logo

    עקבו אחרי בטוויטר

    בחשבון הטוויטר שלי אני מפרסם עדכונים מהירים על חדשות בתחום התכנות והיזמות, התרעות על מצבי חירום ורכילות בוערת על תחום הווב.
    מה זה טוויטר?
  • facebook like image

    ערוץ הטלגרם של אינטרנט ישראל

    בערוץ הטלגרם של אינטרנט ישראל אני מפרסם את הפוסטים של באתר וכן עדכונים טכנולוגיים נוספים.
    מה זה טלגרם?
  • github logo

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

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

כל הזכויות שמורות לרן בר-זיק ולאינטרנט ישראל | מדיניות הפרטיות של אתר אינטרנט ישראל | אתר אינטרנט ישראל נגיש לפי תקן WCAG 2.0 AA | הצהרת הנגישות של האתר | אבטחת מידע ודיווח על בעיית אבטחת מידע

גלילה לראש העמוד