29-12-2004, 05:36
|
מנהל פורומי "תכנות ובניית אתרים" ו"חומרה ורשתות"
|
|
חבר מתאריך: 25.10.01
הודעות: 42,775
|
|
בקצרה כי אני ממהר, אפרט מאוחר יותר אם תרצה
כאשר מישהו פורץ לתוכנת שרת מרחוק, הוא עושה זאת על ידי דחיפת קוד ביצועי (בינארי בד"כ) משלו, וגורם, בזכות הבאג, לשינוי זרימת התוכנה כך שהקוד שלו יבוצע, במקום המשך התוכנית המקורי (ולכן אנשי אבטחת מידע היום פועלים נגד הסימפטום הזה, במקום לטפל בתופעה, כלומר, תוכנות של מיקרוסופט ). התוצאה היא שהקוד שהוא שלח, יבוצע כאילו היה חלק מהתוכנה. זה אומר שכל מה שזמין לתוכנה: גישות לקבצים, לזיכרון ולמערכת ההפעלה, זמינות גם לפורץ. זה אומר שאם השרת שאליו פרצו הוא בעל גישה לקובץ XYZ, גם לפורץ תהיה גישה לקובץ הזה, כי הוא הרי רץ בתוך התוכנה בעצם.
ואחרי ההקדמה, נעשה אנלוגיה מהמידע הכללי לדוגמא הפרטית שלנו: אם Exchange רץ בתור SYSTEM (שלמיטב ידיעתי מחזיק הרשאות מלאות לביצוע כל דבר שבעולם במערכת ההפעלה), ומישהו פרץ ל Exchange, התוצאה היא שיש לו הרשאת SYSTEM במערכת, על כל המשתמע מכך; וזאת, למרות שכל מתכנת יודע, שאין שום סיבה שתוכנה תרוץ עם הרשאה שכזו - אבל למיקרוסופט יש מנהג מגונה מאוד ששרתים ירוצו בהרשאות גבוהות. למה? להם הפתרונים.
מילא הייתה הטענה שכמו ב UNIX, אי אפשר להאזין בפורט הנמוך מ 1024 בלי להיות מנהל מערכת (לא חושב שזה כך בחלונות, עוד בעיית אבטחה לדעתי), וגם נדמה לי ש Exchange בכל מקרה רץ על פורט 11111, אבל נדמה לי שהתירוץ שלהם הוא יותר פשוט: "כי ככה בא לנו..."
אתן לך דוגמא מעולם הקוד הפתוח המלא (אפאצ'י על לינוקס, כי אני לא יודע אם מה שהוא עושה בלינוקס אפשרי בחלונות) - למרות שאפאצ'י הוא שרת Web, מה שדורש ממנו להאזין לפורט 80, מה שדורש, כמו שאמרתי בפיסקה הקודמת, הרשאות מנהל מערכת. אז אפאצ'י מורץ כ root, מתחיל האזנה בפורט, ואז משנה לעצמו את המשתמש למשתמש לא פריווילגי כלל, כלומר משתמש שבעצם לא יכול לעשות כלום במערכת חוץ מלכתוב בספריית הבית של הלוגים שלו... וזו, ידידי, אבטחה
מקווה שעכשיו טענתי מובנת יותר...
|