הקדמה (יופיע רק בחלק זה)
אני בטוח שנתקלתם במספיק סרטים או סדרות שמדמים (בצורה מציאותית או פחות) פעולה בעולם המחשבים, אני בטוח שמי שמבין קצת בתחום יודע להבחין בין אלו שהקפידו על הדימוי ואלו שלא. בסדרת הפוסטים הזו “קוד מהסרטים”, אבחר סרט או סדרה ואנתח את אחת הסצינות בכל הנוגע לרמת המציאות שהיא מציגה.
הניתוחים לא 100% שלי, אני נעזר במידע נוסף שזמין במקומות אחרים, כמובן שאני שואף להקפיד על חוק הציטוטים, ואנסה להזכיר את כל המקורות במקרה ואינם ניתוח ראשוני\עצמאי שלי.
מידע כללי
שם: הרשת החברתית, The Social Network
שנה: 2010
במאי: דייוויד פינצ’ר
שחקנים ראשיים:
לצפיה: Netflix
רקע לסצנות
זמנים: 09:43 - 13:03 (הזמנים עלולים להיות שונים, תלוי בגרסה בה אתם צופים).
מארק צוקרברג בדיוק חוזר מדייט לא מוצלח, כאשר הוא מתוסכל ממי שעכשיו האקסית שלו, הוא מחליט להקים אתר שמשווה בין התלמידות השונות באוניברסיטה, בשביל זה הוא צריך 2 דברים:
- תמונת הפנים של התלמידות באוניברסיטה (כל מעון מחזיק את המידע הזה).
- אלגוריתם שיודע אך להשוות בין שתי תמונות על-פי הניקוד שלהן.
Krikland’s House
- מארק צוקרברג משתמש בלינוקס, הפצה מבוססת KDE (מסיק מהאיקון של ספרית הבית), ובדפדפן מוזילה. התצוגה נראת אמינה לשנת 2003 ומשתמשת בלוגו הנכון של מוזילה לאותה שנה (להשוואה).
מארק צוקרברג מציין כי הכל פתוח באתר של Krikland’s House, הוא למעשה מדבר על שגיאת קונפיגורציה שמאפשרת Directory Listing, אפשר להיכנס לנתיב ולראות את כל האובייקטים המופיעים בו. לאחר כן הוא נעזר בפקודה wget
עם הפרמטר -A
בכדי להוריד את כל התמונות.
Eliot House
במקרה שלהם מארק צוקרברג אומר שהם גם כן “פתוחים”, אבל אין directory list מופעל, והוא למעשה מבצע empty search
שמחזיר את כל התמונות. כאן כבר מדובר בבאג של חוסר ולידציה על קלט ולא בבעית קונפיגורציה. אני לא יודע אם מדובר ב-SQLi מהתיאור שלו (בפריים לאחר התמונה שמופיעה למטה הוא אומר שהוא הצליח לגרום לכל התמונות להופיע בעמוד אחד) אני חשוב שכן, אבל לא בטוח.
Lowell House
פה כבר מארק צוקרברג מציין שישנה אבטחה כלשהי, דרישה לשם משתמש וססמה, הוא גם מציין שאין להם גישה ל-FAS database לכן הם לא יכולים לזהות חדירה, והוא אכן פרץ אליהם. לא הצלחתי להבין מהזה בדיוק FAS, אז אני אקבע שהחלק הזה לא מציאותי, אך התיאור שלו בבלוג לאחר מכן יותר מבוסס (הוא ידע שהססמאות הן התעודת סטודנט של המשתמשים).
Adams House
גם להם אין אבטחה כלשהי לפי מארק צוקרברג, אך הם מגבילים את התצאות ל-20, אך שום דבר לא מונע ממך מלהריץ חיפוש שוב. אז הוא פשוט מריץ את הסקריפט perl שהוא כתב עבור Lowell עם ההתאמות.
Dunster House
מארק צוקרברג מתאר אותם כ-intense, הוא אומר “שאין ספריות”, אם החיפוש מחזיר יותר מ-20 תוצאות, הוא לא יחזיר כלום והלינקים לתמונות הן למעשה לינקים לסקריפט PHP שמבצע redirect. לבסוף הוא מוותר על הנסיון להוריד מהם.
ניסתי להבין איך זה בדיוק עובד, הקטע עם “PHP redirect” ולהבנתי סך הכל מדובר בפרסור של התמונה רק בתנאים מסויימים. אני משער שזה ניתן לפריצה פשוט לא היה לו כוח להתעסק עם זה.
Leverett House
גם פה מארק צוקרברג משתמש ב-Empty search, הוא רק צריך להשמיש את הסקריפט עבור המטרה החדשה של הורדת כל התמונות מ-Leverett House.
מה שמעניין שבפריים אחרי שרואים אותו מוריד, אפשר לראות שה-ID דיי עוקב, אני חושב שהיה יותר קל לכתוב סקריפט שמוריד את התמונות לפי ID עולה.
האלגוריתם
לצערי מתמטיקה היא לא התחום החזק שלי, אז אני אקשר להסבר. בסוף הסצינה מגיע אדוארדו סברין שיש לו אלגוריתם שכתב בעבר לדרג שחקני שחמט, נראה שמדובר באלגוריתם אמיתי אך לא ישים להשוואה - הסבר.
סיכום
תזכרו שהסצינה הזו מדמה את 2003, המודעות לאבטחה הייתה נמוכה ברוב המקומות ושלא נדבר על אותנטיקציה או דרישה לססמאות מורכבות.
מה למדנו מהסצינה הזו?
- ודאו כי Directory List אינה מופעלת במקומות שאינה צריכה להיות.
- בצעו ולידציה על קלט, “חיפוש ריק” צריך להחזיר שגיאה ברוב המקרים.
- השתמשו בססמאות חזקות ולא משהו שניתן לניחוש כמו מספרי טלפון או ת.ז.
- מנעו brute-force על המערכת שלכם.
- אל תשתמשו במספרים עוקבים כדי לייצג אובייקטים במערכת שלכם.
- אבטחה באמצעות עמימות יכולה להגן על המערכת שלכם בצורה מוגבלת.