מספר מילים על אבטחה, בעקבות פרשת גניבת כרטיסי האשראי

zohar | ביום ה', 01/05/2012 - 01:49

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

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

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

השאר נמצא בידיים שלנו, המפתחים. עלינו לוודא שהמערכת שבה אנו משתמשים יודעת לתת לנו רמה התחלתית טובה של אבטחה. מי שמקפיד לעדכן את גרסאות המערכת בעת שמשתחררים עדכוני אבטחה, עושה טוב. אני ממליץ בחום לכל מפתח באשר הוא, להתעדכן בהתראות האחרונות: http://drupal.org/security כדאי להירשם לעדכונים במייל או בטוויטר.

מעבר לכך יש את הקוד שלנו עצמנו - קוד זה חייב לעמוד ב[תקני הכתיבה לדרופל](http://drupal.org/coding-standards) וב[הנחיות לכתיבת קוד בטוח](http://drupal.org/writing-secure-code). אי הקפדה על כללים אלו עלולה להסתיים בכך שמישהו, בין אם זה בן אנוש זבלון ובין אם זה רובוט מניוק, יפרוץ לכם לאתר או סתם ישחית אותו להנאתו. אין להקל ראש בכך. גם אתרים קטנים מחזיקים מידע רב ערך - שמות של אנשים, כתובות המייל שלהם ובמקרים שבהם השרת לא מאובטח משהו מי יודע כמה, גם סיסמאות מוצפנות ב-MD5 הן פריצות. מכאן הדרך לחשבונות הפרטיים שלהם ומשם הלאה, קצרה מאוד. כך שגם אתרים שלכאורה אינם מאויימים צריכים לדאוג לאבטחת מידע רגיש על השרת (וזו הסיבה ששרתים שיתופיים הם בד"כ רעיון רע לאירוח אתרים).
בדרופל 7 חוזק מנגנון הצפנת הסיסמאות. ניתן, לפי הצורך, גם להצפין שדות מסוימים בלבד. זה קצת יותר כאב ראש, אבל אם המידע קריטי - זה צעד שיש לעשות.

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

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

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