קוד מהסרטים: "הרשת החברתית"

הקדמה (יופיע רק בחלק זה)

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

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

מידע כללי

שם: הרשת החברתית, The Social Network
שנה: 2010
במאי: דייוויד פינצ’ר
שחקנים ראשיים:

לצפיה: Netflix

רקע לסצנות

זמנים: 09:43 - 13:03 (הזמנים עלולים להיות שונים, תלוי בגרסה בה אתם צופים).

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

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

20210211-hkr_facebook_1

Krikland’s House

  • מארק צוקרברג משתמש בלינוקס, הפצה מבוססת KDE (מסיק מהאיקון של ספרית הבית), ובדפדפן מוזילה. התצוגה נראת אמינה לשנת 2003 ומשתמשת בלוגו הנכון של מוזילה לאותה שנה (להשוואה).

20210211-hkr_facebook_2

מארק צוקרברג מציין כי הכל פתוח באתר של Krikland’s House, הוא למעשה מדבר על שגיאת קונפיגורציה שמאפשרת Directory Listing, אפשר להיכנס לנתיב ולראות את כל האובייקטים המופיעים בו. לאחר כן הוא נעזר בפקודה wget עם הפרמטר -A בכדי להוריד את כל התמונות.

20210211-hkr_facebook_4

Eliot House

במקרה שלהם מארק צוקרברג אומר שהם גם כן “פתוחים”, אבל אין directory list מופעל, והוא למעשה מבצע empty search שמחזיר את כל התמונות. כאן כבר מדובר בבאג של חוסר ולידציה על קלט ולא בבעית קונפיגורציה. אני לא יודע אם מדובר ב-SQLi מהתיאור שלו (בפריים לאחר התמונה שמופיעה למטה הוא אומר שהוא הצליח לגרום לכל התמונות להופיע בעמוד אחד) אני חשוב שכן, אבל לא בטוח.

20210211-hkr_facebook_5

Lowell House

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

20210211-hkr_facebook_7

20210211-hkr_facebook_6

Adams House

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

Dunster House

מארק צוקרברג מתאר אותם כ-intense, הוא אומר “שאין ספריות”, אם החיפוש מחזיר יותר מ-20 תוצאות, הוא לא יחזיר כלום והלינקים לתמונות הן למעשה לינקים לסקריפט PHP שמבצע redirect. לבסוף הוא מוותר על הנסיון להוריד מהם.

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

Leverett House

גם פה מארק צוקרברג משתמש ב-Empty search, הוא רק צריך להשמיש את הסקריפט עבור המטרה החדשה של הורדת כל התמונות מ-Leverett House.

20210211-hkr_facebook_8

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

20210211-hkr_facebook_9

האלגוריתם

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

20210211-hkr_facebook_10

סיכום

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

מה למדנו מהסצינה הזו?

  1. ודאו כי Directory List אינה מופעלת במקומות שאינה צריכה להיות.
  2. בצעו ולידציה על קלט, “חיפוש ריק” צריך להחזיר שגיאה ברוב המקרים.
  3. השתמשו בססמאות חזקות ולא משהו שניתן לניחוש כמו מספרי טלפון או ת.ז.
  4. מנעו brute-force על המערכת שלכם.
  5. אל תשתמשו במספרים עוקבים כדי לייצג אובייקטים במערכת שלכם.
  6. אבטחה באמצעות עמימות יכולה להגן על המערכת שלכם בצורה מוגבלת.
2 לייקים

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