| RSS: קטעים | תגובות | | | הרשמה לקבלת עדכונים בדואר אלקטרוני | | | אודות | | | כותבים בבלוג | | | יצירת קשר | |
כניסה לפורומים: http://forums.hacking.org.il
קוד סגור טוב או רע לאבטחת מידע?
נכתב ע"י גיא מזרחי בתאריך 27 בנובמבר 2007 | נושאים מאמרים מקוריים | 10 תגובות »
כשאנו מדברים על תוכנות OPEN SOURCE אנו מתייחסים רבות לעניין היכולת לבדוק את הקוד לבעיות אבטחה.
כשחושבים על העניין לעומק, אנו יכולים להבין שכשתוכנה כתובה בקוד פתוח יש אפשרות שמאות, אלפים או יותר יוכלו לראות את הקוד. אם יש בעית אבטחה, סביר שהיא תצוף מהר יחסית.
מצד שני, אנו גם מבינים שכשהקוד פתוח קל יותר לעלות על בעיות אבטחה כי רואים את הקוד (למעשה, זה לא ב-100% נכון כי אין הרבה אנשים שיכולים באמת למצוא חורי אבטחה בקוד מקור ארוך ומייגע).
תוכנות סגורות נהנות מבטחון יחסי כיוון שאף אחד מעבר לכמות המפתחים שעבדה על המוצר לא רואה את הקוד ולכן קשה יותר לעלות על בעיות אבטחה.
כדי לבדוק בעיות כאלה יש לבצע קודם לכן הינדוס לאחור של המוצר (דבר שבד"כ נוגד את הסכם הרישוי) ולאחר מכן לבדוק קוד שלא תמיד תואם ב-100% את קוד המקור.
כיוון שהדבר בעייתי(עלויות, רישוי וכ"ו) - אנו נאלצים להסתמך על קלישאות:
"יהיה בסדר"
"מה?? לכולם יש את זה אז דווקא אצלי יהיו בעיות?"
"מי כבר ימצא את הקוד מקור של זה ויבדוק אותו?"
כל אלה הן אמרות שניתן לשמוע פעמים רבות במהלך ניתוח סיכונים.
אני לא אוהב להסתמך על כך ש"מישהו כבר בדק" את המוצרים שאני עובד איתם.
אני חושב שהזכות לבדוק מוצר שמורה לכל מי שחפץ בכך.
לדעתי תוכנות שאינם OPEN SOURCE או שלא ניתן לראות את קוד המקור שלהן זו סיבה טובה להתחיל לפחד, להזהר ולבדוק.
אני לא חושב שיש יתרון אבטחה למוצר קוד פתוח או למוצר שאינו כזה, אבל היכולת שלי לבדוק את המוצר ולוודא שהוא בטוח נפגעת במוצרים מסויימים ולכן אני חייב לציין שבמקום שאי אפשר לבדוק – יש סכנה.
המשמעות היא שקוד פתוח יהיה פחות בעייתי מבחינת אבטחה בלי קשר לאם הוא נכתב מראש בצורה בטוחה יותר או פחות.


27 בנובמבר 2007 בשעה 16:22
הנושא הזה חרוש כבר הרבה זמן ובכל זאת רלוונטי.
משהו שלא הזכרת פה הוא שאם הקוד פתוח אז יש יותר סיכוי שמישהו עם כוונות טובות ימצא את הבעיה ולא ההפך. ברוב המקרים הבעיה כמובן גם תתגלה הרבה יותר מהר מב"קוד סגור" וכך התוכנה רק תשתפר יותר מהר.
בכל מקרה אני מתנגד לתוכנות בקוד סגור מבחינה שלא קשורה כלל וכלל לאבטחה. אלא לכך שהם פשוט עולות כסף ובכלל לא תורמות לפיתוח תוכנות אחרות למינהם.
"לדעתי תוכנות שאינם OPEN SOURCE או שלא ניתן לראות את קוד המקור שלהן זו סיבה טובה להתחיל לפחד, להזהר ולבדוק."
אני ממש לא חושב שהמשתמש הרגיל צריך לפחד או להזהר מתוכנות האלה. אולי המשפט הזה תקף למשתמשים "מתקדמים".
נ.ב
אני ראשון
27 בנובמבר 2007 בשעה 16:48
0)שמעתי על מעט מאוד מקרים של מציאת חורי אבטחה משמעותיים דרך בחינה של קוד המקור. מציאת בעיות אבטחה ביישומי קוד פתוח מתרחשת בתהליך דומה לזה של קוד סגור (כלומר, לזמינות הקוד אין משמעות גדולה).
למרות שתמיד יש את היוצא מהכלל שמעיד על הכלל.
למשל באותו מקרה שבו נגנב חלק מקוד המקור של חלונות 2000 (ממחשב שעליו היתה מותקנת מערכת הפעלה יוניקסית. אני לא זוכר כרגע על איזה וריאנט היה מדובר).
בתקופה שלאחר מכן החלו להופיע כל מיני תולעים ואקספלויטים שניצלו בעיות אבטחה שהתגלו על ידי עיון בקוד המקור.
1)ואם להמשיך את הטענה של גלעד, סביר להניח שמישהו כבר ישחרר פתרון, וזה קטע שבו זמינות הקוד כן משפיעה לטובה.
2)לגבי ה"בטחון היחסי" של תוכנות סגורות.
ספר את זה למשתמשי התוכנות של מיקרוספט, אדובי, icq, ובעצם כל חברת\מוצר תוכנה אחרת שאתה יכול לחשוב עליה:)
27 בנובמבר 2007 בשעה 16:56
גיא- אתה צודק כשאתה מדבר עם הקלישאות אבל יש פה משהו שבכלל לא הוזכר- רוב משתמשי המחשבים בעולם הם משתמשים בקוד סגור, וזו עובדה. (מישהו יודע בערך אחוזים?)
רוב המשתמשים גם לא מבינים במיוחד את החשיבות של אבטחה ולכן הם נעזרים בקלישאות/ משפטים להחזיק בהם כי פשוט לא אכפת להם והם לא מכירים/רוצים להכיר את התוכנות הפתוחות. וזה כמו שמוטי אמר בעיה רצינית. " ספר את זה למשתמשי התוכנות של מיקרוספט, אדובי, icq וכו"
27 בנובמבר 2007 בשעה 17:35
נשמע ששניכם מבינים הרבה בתחום….
אולי תרשמו לפורום?
27 בנובמבר 2007 בשעה 17:36
מצד אחד במוצרי קוד סגור מוצאים ומנצלים פירצות(כל כמה זמן יוצא עדכון אבטחה חדש?)
מצד שני במוצרי קוד פתוח יש לא מעט פרסומי פריצות(אם נשווה את מספר האקספלוייטים במילוורם נראה שיותר יותר אקספלוייטים לMYSQL ו-APACHE מאשר לIIS ו-MSSQL)
אני אישית חושב שקוד פתוח יכול לתרום… למה? פשוט הרגשת בטן… אולי למשתמשים יש יותר מוטיבציה לשלוח פרצות כדי לתרום לפרוייקט..
אולי בגלל שממהרים לתקן פירצות אבטחה…
ובכל מקרה יש יותר שונאי מיקרוסזפט מאשר שונאי לינוקס…
אני חושב שזה גם קשור בפרוייקט עצמו כמה משתמשים יש לו,מתחרים ועוד פרמטרים
27 בנובמבר 2007 בשעה 21:34
אני ממש לא מסכים עם הנאמר ובוודאי שלא עם המסקנה.
תמיד יותר קל למצוא חור אבטחה במוצר שאני רואה את הקוד שלו. יש כבר כלים ואלגוריתמים שיודעים לסרוק קוד ולמצוא בו פוטנציאלים לשגיאות בטיפול קלט, שגיאות בטיפול באינטרפטים ועוד.
בנוסף, זה שקוד הוא פתוח לא אומר שיושבים אנשים וסורקים אותו למציאות פגיעות. זה בוודאי לא אומר שכאשר נמצאה פרצת אבטחה היא תקבל עדכון ותיקון מהר יותר (http://linmagazine.co.il/mozilla/22/11/2007/mozilla-xss-bug)
אני גם חולק על האמירה של גיא: "אם אני לא מסוגל לבדוק – יש בעיית אבטחה". אני חושב אחרת, בצורה פרקטית יותר: ברור לי מראש שאין לי את היכולת לבדוק כל מוצר תוכנה שאני משתמש בו, החל ממערכת הפעלה, ועד לאיזה פלאג אין לדפדפן. אין לי את היכולת הזו מבחינה טכנית, מבחינת זמן, ומבחינת ידע. מכיוון שכך – אין משמעות לשאלה האם אני מסוגל לבדוק את המוצר. יש משמעות עצומה האם מי שכתב את המוצר בדק אותו כמו שצריך, ומשמעות עצומה לשאלה האם תוקף יוכל לבצע סריקה ובדיקה של התוכנה בקלות או לא.
27 בנובמבר 2007 בשעה 22:24
FireWizard- יא הזוי! אני רשום לפורום. (flint)
27 בנובמבר 2007 בשעה 23:04
מסכים עם Shed.
למאמר מעניין בנושא: http://israblog.nana10.co.il/blogread.asp?blog=177394&blogcode=4427187
27 בנובמבר 2007 בשעה 23:06
שד – דווקא בכל החלק הראשון הסכמת עם מה שכתבתי (למרות שרשמת שאתה לא מסכים
).
לגבי האמירה – אם אני לא מסוגל לבדוק – יש פה בעיית אבטחה.
אין את היכולת לבדוק כל מוצר – ארגון שרוצה להיות מאובטח חייב שתהיה לו היכולת הזו או שהוא מראש יכול להניח שיש לו פוטנציאל לבעיות שהוא לא בדק.
לגבי הזמן, הידע הנדרש והיכולת הטכנית – צריך כסף כדי לשכור את האנשים המתאימים לכל סוג של עבודה כזו.
אגב, גם לגבי העניין של תיקון באגים כאלה או אחרים בקוד פתוח יש לי תשובה.
הרבה פעמים אתה מודע לבעיות או לפוטנציאל בעייתי כלשהו ואתה עושה דברים אחרים כדי שלא יוכלו לנצל את הבעיות האלה.
לא תמיד יש לך אפשרות לתקן הכל אבל אתה הרבה פעמים כן יכול למנוע ניצול של הבעיה למרות שלא תיקנת אותה.
28 בנובמבר 2007 בשעה 7:15
אני מסכים עם שד. יש הרבה מיסקונספציה בעולם לגבי הענין הזה של קוד פתוח/סגור. קודם כל, עובדתית, לא ניתן לבדוק כל תוכנה וכל אפליקציה שמשתמשים בה (אפילו אם ניקח מדגם של 50 התוכנות הנפוצות ביותר בארגון/בבית), גם אם באופן תאורטי יש לך את קוד המקור. העלויות ורמת המומחיות הנדרשת לכך הן בלתי סבירות ובלתי כלכליות בשום מודל שהוא. כך שאין לזה יותר מדי משמעות אם הקוד פתוח או סגור ואם יש או אין דרך לבדוק את קוד המקור.
ארגון רוצה להיות מאובטח עד רמה מסויימת בלבד, זו שהוא יכול לשלם עליה. אפילו לארגונים בטחוניים יש בסופו של דבר תקציב מוגבל כלשהו (אולי פרט ל-NSA וכד') ובארגונים אזרחיים על אחת כמה וכמה.
כמו שציין שד, גם המחשבה התמימה שאם הקוד פתוח אז אלפי עיניים סורקות אותו ומוצאות באגים, היא קצת ילדותית. יש עשרות אלפי תוכנות קוד פתוח. אתם באמת חושבים שכל אחד מהם נסרק, נבדק, עובר QA משתמשים וכן הלאה? אין מצב ואין סיכוי. נהפוך הוא, כשאתה רוכש מוצר (כן, בכסף…) מחברה ידועה ויציבה ומדובר במוצר שמראש צריך להיות מאובטח ברמה כלשהי, סיכוי הרבה יותר גבוה שצוות ה-QA המקצועי (בשאיפה) של החברה בדק אותו במסגרת מתודולוגיית בדיקות סדורה. מוזר, אבל ככה זה.
כשחושבים על קוד פתוח מיד רוב האנשים חושבים על כל מיני תוכנות אינטרנט כגון שוא"ש, או למשל לינוקס, שבאמת מליונים משתמשים בהן. אבל קוד פתוח זה ממש לא רק זה ועולם התוכנה רחב הרבה יותר.
שורה תחתונה – יש פה הרבה משתנים ואי אפשר לומר אמירה גורפת בענין זה. הדברים שונים מאד בסיטואציות שונות וסוגי תוכנה שונים.