יום חמישי, אוגוסט 19, 2010

תלמד לכתוב אתר כבר!

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

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

אני אישית אוהב את החוקים הבאים :

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

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

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

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

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

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

תגובה 1:

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

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

    לא תיתן לו תמריץ, לא תקבל מענה הגיוני עבורך.

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

    השבמחק