ה-XSS חוזר – איך יגנבו לכם משתמשים בקלות.

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

בהרבה מדריכים “מקיפים” לאבטחת מידע לא מצאתי מילה בנושא – וכשאני אומר “לא מצאתי מילה”, אני מתכוון ל”חיפשתי בגירסאות האלקטרוניות של ‘Web Application Hacker’s Handbook’ ו’XSS Attacks’ באופן אלקטרוני, ולא מצאתי שום הזכרה לעניין הזה”. האם חוסר המודעות העצומה גורמת לרשלנותן של כל-כך הרבה חברות ענק בנושא, הן של חברות ישראליות והן חברות חוץ? אינני יודע לענות לכם על כך בוודאות, אבל אני חושש שהתשובה היא כן. יש להבין שבהעדר רכישת אמצעים מקצועיים לאבטחת הערוצים התקשורתיים, כפי שכבר הזכרתי בעבר, רק הפרצות הנפוצות שמוכרות לבוני האתרים יטופלו.

אזהרה – למי שלא קרא את הפוסט על XSS-ים, אינני מתכוון לדוש בו שוב. כולנו זוכרים את ההגדרה שהצגתי ל”שרת” – מחשב מרוחק המחובר לרשת האינטרנט, ומשמש אותנו למטרות שונות. כשאנחנו אומרים “שרת הקבצים”, אנחנו מתכוונים לשרת שמוצא עבורינו קובץ מסוים על המחשב שבו מאוחסן האתר, מאפשר ומבצע את שליחתו למשתמש. זאת אומרת: אם אני, נכנס לכתובת מסויימת דוגמת http://www.mysite.com/index.php, שרת הקבצים ידע לשלוף עבורי את הקובץ index.php (הוא אפילו יעבד את הקודים של הPHP שבו עבורי – ראו פוסט קודם).

לעניין – crossdomain.xml

ישנן מוסכמות על שמות של קבצים רבים שלהם יש חשיבות מסוימת, ולמרות שמשתמש רגיל יכול לצפות בחלקם – הם אינם חלק מתוכן האתר באופן ישיר. אתן דוגמה: בחלק מהאתרים ישנו קובץ בשם robots.txt אשר לא נועד כדי להיות חלק מן התוכן באתר באופן ישיר ומטרתו האמיתית היא להראות לרובוטים של מנועי החיפוש (זחלנים) מה לעשות. באופן דומה, יש את הקובץ htpasswd (קיים בשרתים מסוימים עליהם מותקן שרת דפי-אינטרנט בשם “Apache”) שמטרתו היא להגביל כניסה לדף מסוים בשם משתמש וסיסמה – והצגת התוכן שלו, כמובן, איננה נגישה למשתמשים, שכן הוא מאחסן את שם המשתמש והסיסמה שיאפשרו גישה לדף. יש עוד מספר קבצים מיוחדים כאלו (שיעורי בית: חפשו על htaccess ועל sitemap.xml), חלקם אחראיים על תפקוד השרת עצמו (php.ini לדוגמה) וחלקם מבקשים משרתים אחרים דברים (robots.txt).

ובכן, למרות שהסוג השני יותר נדיר, הנה הצצה נדירה לקובץ שאת שמו מעטים מכירים: crossdomain.xml. מסתבר שהוא קיים בהמון אתרים, ולרוע המזל – לפעמים הוא יכול להיות ממש לא נחמד. הוא אינו בגדר וירוס, אבל אני מניח שכל קוראיי יסכימו שכמו שלא נמליץ לטבח להתחיל לתכנן ולבנות לבד בניין שדורש יעוץ אדריכלי, כך עדיף יהיה שלא כל בעל אתר יתעסק בקבצים שאיננו מבין בהם. חיזרו למאמרי הקודם בנושא הXSS, וקיראו שוב את ההגדרה המפורטת של “עוגיות” – פתיתי מידע שנשלחים מהשרת ונשמרים על המחשב שלנו, ובסופו של דבר מכילים פעמים רבות את פרטי ההתחברות. משנזכרתם, אוכל להגיד לכם למה אותו קובץ (שעד עכשיו הצגתי כקובץ אימה, שלא בצדק) משמש. עיקר המטרה של crossdomain.xml, הוא להגדיר לאילו אתרים יש גישה לעוגיות של האתר. במילים אחרות: אני, הבעלים של אתר מסויים, יכול להכניס קובץ חדש לאתר: www.mysite.com/crossdomain.xml. בקובץ זה, אני יכול לכתוב שמתחשק לי לתת ל-www.walla.co.il גישה לכל העוגיות של האתר שלי.

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

* הערה: העברת העוגיה בשימוש ברעיון ה-crossdomain.xml יכול להעשות רק דרך מספר טכנולוגיות מצומצמות, כמו Flash ו-Silverlight. למרות זאת, מאחר ורובם המוחלט של המשתמשים ברשת תומכים בטכנולוגיות אלו, אין פה בעיה.

ניצול ה-crossdomain.xml

נכנס לעובי הקורה ונסתכל באותו קובץ של טוויטר. נתמקד בשורות הכוללות allow-access-from domain (מכיוון שהן מרכז המאמר), ונוכל לראות שהוא מקנה גישה לארבעה אתרים שמהווים חלקים מ-Twitter עצמו. נבדוק אתר אחר – YouTube (לחצו על-מנת להגיע לקובץ). הופה, גילינו משהו מעניין: יוטיוב מעניק גישה לעוגיות שלנו גם עבור האתר s.ytimg.com. אלוהים יודע מה זה.. מוזר. (*תודה לw3rp שהגיב לפוסט והודיע לנו שמדובר בשרת המאחסן קבצים, בבעלות YouTube.) עם הרגשת חוסר הבטיחות ואולי החשש הזו, נפנה אל אתר רדיו מעניין – Hideout. לאנשים לא טכנולוגיים מדי קצת קשה להבין מה הולך כאן, ולכן אעזור לכם: סימן הכוכבית במחשבים הוא אחד מקבוצת סימנים חשובה אשר קרויה Wildcards, שהם בעצם תווים שמסמנים תכונה מיוחדת. משמעות הכוכבית היא “הכל”, ולכן במקרה שלנו Hideout פשוט מאפשר לכל האתרים לקחת את העוגיות שלו, כלומר – של המשתמשים שלו. מפתיע ומדהים? חסר אחריות לגמרי? מעצבן ומקומם? כל התשובות נכונות. למי שעדיין לא נפל האסימון עד כאן, הנה עזרה קטנה: אני יכול פשוט להקים אתר משלי, ולדעת שכשמשתמש יתחבר לאתר עם crossdomain לא מאובטח, ולאחר מכן לאתר שלי – אוכל פשוט לגנוב לו את העוגיות ששייכות לאותו אתר. XSS ממעלה שנייה, אם תרצו.

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

אבל יש גם אנשים שמנסים להיות אחראיים, ולא מציינים את אותה כוכבית ארורה שעלולה לגרום לכל-כך הרבה צרות. גם אם יש עשרות אתרים שאיתם הם רוצים לשתף את העוגיות, הם רושמים את כל כתובות האתרים. אז מה רע, אתם שואלים? הבעיה עם העמסת כתובות אתרים על קובץ היא מובנת, והפעם לאו-דווקא מזווית של אבטחת מידע אלא מזווית אנושית: כשקונים דומיין (כתובת אתר), בדרך-כלל רוכשים אותו לתקופה של שנה עד שנתיים. לאחר מכן הוא מתפוגג (לא מיד, כי אם לאחר “תקופת חסד“, תודה לגולש שוהם שביקש להבהיר), ואז כל אחד אחר יכול לרשום אותו שוב. זאת אומרת, שאם נעמיס, נניח, 1,000 כתובות על crossdomain.xml, הסיכוי שדומיין יפוג למחרת הוא כמעט ודאי. למען האמת, בהנחה שכל דומיין נרשם לשנה ולא לשנתיים, מספיקים 22 דומיינים על מנת שתהיה סבירות גבוהה מ-50% שאחד מהם יפוג ממש למחרת! (קראו על פרדוקס יום ההולדת על מנת להבין מדוע).

בואו נניח שיש לנו חברה בשם “חמציצים בע”מ“. חמציצים בע”מ היקרים בדיוק עשו שיתוף פעולה עם “תותים עזאם“, שמהווה חברה מאוד ותיקה לתותים בשוק. למעשה, “תותים עזאם” רכשו דומיין לשנה בדיוק לפני 362 ימים (עוד 3 ימים והדומיין חוגג יומולדת ויש צורך לחדש אותו). במסגרת השותפות הוחלט שכל אתר ישים קובץ crossdomain.xml, שיאפשר גישה לעוגיות האתר השני. עד כאן הכל דבש. יומיים לאחר מכן, בצער רב, מכריזים “תותים עזאם” על פשיטת רגל. תוך יום נגמרה תקופת ההשכרה של הדומיין, והוא פנוי למשכירים חדשים. אם “חמציצים בע”מ” לא יורידו את האתר של “תותים עזאם” מקובץ הcrossdomain.xml, יוכל גורם עוין (“שזיפים בלעם”) להשתלט על הדומיין של תותים עזאם ולהשתיל שם Cookie Stealer. בכך, כל פעם שמישהו יתחבר ל”חמציצים בע”מ” ומיד אחרי זה יחפש בגוגל “תותים עזאם” ויגיע לאתר, שעכשיו בכלל בבעלות “שזיפים בלעם”, יסגיר את פרטי ההתחברות שלו לאתר של “חמציצים בע”מ”. מסוכן. (התבלבלתם? קראו שוב).

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

הערה חשובה: הפוסט נועד למטרות ידע בלבד והשימוש במידע זה למטרות רעות עובר על חוק המחשבים התשנ”ה (1995) והוא מהווה עבירה פלילית לכל דבר.

.

הפוסט נכתב במקור בבלוג G33ky stuff

Avatar

ים מסיקה

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

הגב

2 תגובות על "ה-XSS חוזר – איך יגנבו לכם משתמשים בקלות."

avatar
Photo and Image Files
 
 
 
Audio and Video Files
 
 
 
Other File Types
 
 
 

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

סידור לפי:   חדש | ישן | הכי מדורגים
ארז
Guest

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

ים מסיקה
Guest
ארז שלום ותודה על התגובה, אני לא יודע מה גורם לך להשמע כל כך בטוח בעצמך, אבל אתה טועה. בתור אחד שמזה שנים רבות מתעסק גם בבניית אתרים, גם בהקמת מערכות מוכנות וגם באבטחת מידע, אני יכול להגיד לך בבירור: כמעט כל מערכת מחזיקה מידע קריטי על העוגיות, וזה כולל את ענקית הבלוגים WordPress (בה גם אני וגם Newsgeek משתמשים), מערכות הפורומים IPB ו-vBulletin (שעליהן עובדות המון חברות ענק כיום). אפילו ב-YouTube, מערכת ענקית ללא כל ספק, עוגייה בשם login_info מאחסנת מידע על פרטי ההתחברות שלך. כמובן שעוגיות מאחסנות גם את מה שאמרת, אך לרוב הן גם מאחסנות מידע רגיש… Read more »
wpDiscuz

תגיות לכתבה: