קוד פתוח ואבטחת מידע: יתרון או חסרון?

ברשימה הקודמת ("האתר של Raymond") הוצג כיצד ניתן לפרוץ בקלות רבה את הסיסמה של VNC. הפתרון נעזר בעובדה שמדובר בקוד פתוח דבר שהקל מאוד על הפריצה (עיון בקוד איפשר למידה של אלגוריתם הקידוד ב- registry). למה העובדה הזאת מטרידה אותי? כי יש אדם שעובד איתי שפוסל לחלוטין את השימוש בתוכנות קוד פתוח (ומציין תמיד את הדוגמה של VNC כדוגמה לבעיות האבטחה של תכנות קוד פתוח…). מיותר לציין שאותו אדם מעדיף את התוכנות של מיקרוסופט. העובדה הזאת לא הייתה מפריעה לי אלמלא העובדה שאותו אדם מתווה את מדיניות האבטחה בחברה בה אני עובד … (ותסלחו לי שאני משאיר ואשאיר את הנושא חסוי). ברשימה הזאת אנסה להעלות טיעונים בעד ונגד קוד פתוח בהקשר של אבטחת מידע בלבד. אשמח אם תעזרו לי להשיב לו …

טיעונים בעד הקוד הפתוח:

  • גם התוכנות של מיקרוסופט פרוצות לחלוטין. Raymond הציג במאמר הבא:
    How To Crack Windows Account Password
    כיצד ניתן לפרוץ בקלות רבה לחשבונות במעה"פ של מיקרוסופט. הסיכום שלו אומר הכל…
    That's all! It's that easy to crack a Windows account's password and gain access to it
  • המאמר מתבסס על גישה למחשב והרצה של תוכנה זדונית. זה ידוע שברגע שיש לאדם גישה פיזית למחשב שלך אז שום אבטחה שבעולם לא תעזור…
  • Firefox כדוגמה לתוכנת קוד פתוח סובלת מפחות פרצות אבטחה מאשר "מוצר הדגל" של מיקרוסופט (I.E). גם כשמתגלים פרצות אבטחה ב- Firefox מופץ טלאי עדכון במהירות רבה יותר מאשר באינטרנט אקספלורר (עובדה סטטיסטית)
  • מעה"פ חלונות סגורה לחלוטין, מה שלא מנע מציאת פרצות אבטחה רבות בתוכה (כולל בויסטה).
  • בדר"כ פרצות אבטחה לא מוצאים ע"י עיון בקוד, אלא באמצעות כלים אוטומטיים. בהקשר הזה אין שום יתרון לתוכנות הקוד סגור לעומת הקוד הפתוח.
  • חברות אבטחה רבות משלבים במוצרים שלהם קוד פתוח מבלי שהמוצרים שלהם נחשבים לפרוצים. יש דוגמאות רבות ואציין רק את Checkpoint שמשתמשת בלינוקס כפלטפורמה עליהם מותקנים כמה ממוצרי החברה (UTM ,Splat ועוד …)
  • הרבה יותר עיניים צופות בקוד מה שמאפשר גילוי מוקדם של בעיות אבטחה.

טיעונים נגד הקוד הפתוח:

  • הדוגמה ש- VNC מייצגת: גישה ישירה לקוד מאפשרת פיצוח קל של ההגנה.
  • לא תמיד התכנתים הם מקצועיים, מה שמאפשר כתיבת קוד לא מאובטח.
  • האמירות הרגילות: "מה זה קוד פתוח?", "לא יכול להיות שתקבל בחינם משהו טוב", "זה שבלינוקס מתגלים פחות פרצות אבטחה זה רק בגלל שמשתמשים בו פחות".

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

troll.jpg


[ratings]

My Signature
פורסם בקטגוריה לינוקס ותוכנה חופשית. אפשר להגיע לכאן עם קישור ישיר.

10 תגובות בנושא קוד פתוח ואבטחת מידע: יתרון או חסרון?

  1. מאת ik_5‏:

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

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

    האמת היא, שזה שיש את הקוד פתוח לפניך לא עושה מערכת פרוצה או מוגנת יותר. זה בסה"כ קוד. אני מכיר כמה אנשים שיודעים לעשות disassembler וזה מספיק להם בשביל להבין איך אלגוריתמים שלמים עובדים. ויותר מזה, תן להם קוד (נגיד C) והם יוכלו בראש שלהם להמיר לך אותו לאסמבלי בצורה ממש מדוייקת. ככה שהרעיון של Security By obscurity הוא די טיפשי בסופו של דבר…

  2. מאת ליאור קפלן‏:

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

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

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

  3. מאת אורי עידן‏:

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

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

  4. מאת Jabka‏:

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

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

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

    # הדוגמה ש- VNC מייצגת: גישה ישירה לקוד מאפשרת פיצוח קל של ההגנה.
    לא נאמר נכון גישה ישירה לקוד מאפשרת השבחת הקוד ושיפורו בתחומים רבים ע"י אנשים רבים.

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

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

  5. מאת ilanshavit‏:

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

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

  6. מאת אורון‏:

    לא צריך לקרוא את הקוד של vnc כדי לדעת
    את מגבלות האבטחה שלו.

    מתוך ה-man של vncpasswd:
    …the stored password is not
    encrypted securely – anyone who has access…

    זו דוגמא מצויינת לחולשת אבטחה
    *מתועדת*. דוגמא דומה היא cvs login.

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

    נ.ב: כמעט בכל man-page יש section
    המתאר BUGS/CEVEATS.

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

  7. מאת אורון‏:

    עיקר שכחתי.

    זה שהאדם המתווה מדיניות אבטחה
    דוגל ב-Security by Obscurity
    מראה אי הבנה בסיסית באבטחת מידע.

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

    זה ודאי יגן יותר טוב…במיוחד אם יבחר
    בשיטת ROT-13…

  8. מאת אבירם‏:

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

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

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

  9. מאת ilanshavit‏:

    תודה לכולם על התשובות המושקעות והמלומדות.
    נתתם לי קצת "חימוש" בהתמודדות מולו 🙂

  10. פינגבאק: מערכות מידע ועסקים קטנים » קוד פתוח, קוד בטוח?

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *