בילוי ערב בקבוצת המשתמשים של אבטחה וקצת פיתוח קורי עכביש

11 בנובמבר 2008

תגיות: , ,
אין תגובות

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

איך שהגעתי הלך לי המצב רוח. מסתבר שבאותו יום ובאותה שעה ליאון לינגליבן הרצה על IIS7 בקבוצת המשתמשים של מפתחי קורי העכביש (Web Developers). מאד מרגיז אותי שיש שני מפגשים של קבוצות משתמשים שונות באותו יום ובאותה שעה. פיתוח ב Web מעניין אותי וגם אבטחת ישומים מעניין אותי. למה אני צריל להיכנס לדילמה בנושא ? יש תשע קבוצות משתמשים למפתחים ועוד כשמונה שמיועדות לאנשי IT סך הכל 17 קבוצות פעילות פחות או יותר. יש לפחות 20 ערבים בחודש. למה אי אפשר לחלק את ימי השבוע בין הקבוצות השונות כך שלא יהיו התנגשויות ? מי שעוסק ב ALM לא יתעניין אך פעם ב Windows Client ? מפתחי Web לא מתענינים באבטחת ה Client ? אני מבקר בהרבה קבוצות משתמשים ואני פוגש הרבה חברה שחברים ביותר מקבוצת משתמשים אחת. אני אשמח מאד אם כל מנהלי הקבוצות ישבו ביחד ויתאמו יום חודשי קבוע לכל קבוצה ללא התנגשויות.

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

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

הכלי החשוב ביותר לאבטחת תחום ויכולת הפעולה של יישומי דוט נט, הוא Code Access Security או בקיצור CAS. זה כלי חזק יותר ממנגנון האבטחה הרגיל של מערכת ההפעלה, והוא נותן יכולת ביקורת ומניעה טובה מאד למנהלי מערכת. שימוש ב CAS מאפשר למנהלי מערכת להבטיח ולוודא שהיישום הדוט נטי לא יחצה את גבולות ארגז החול הוירטואלי שבו הוא מורשה לפעול. זו מערכת יפיפיה, עם מעל 18 מימדים שונים, המאפשרת לך להגדיר גבולות פעולה וגיזרה מאד מדויקים.

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

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

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

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

הוסף תגובה
facebook linkedin twitter email

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *