העתקת קוד ואבטחת מידע

20/05/2019

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

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

https://shasaurabh.blogspot.com/2017/07/virtual-machine-detection-techniques.html

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

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