Address Space Layout Randomization (ASLR) היא טכניקת אבטחה המשמשת במערכות הפעלה, שהוטמעה לראשונה בשנת 2001. הגרסאות הנוכחיות של כל מערכות ההפעלה העיקריות (iOS, Android, Windows, macOS ו- Linux) כוללות הגנה על ASLR. אבל בשבוע האחרון, שיטה חדשה לעקוף ASLR נמצא . אז אתה צריך להיות מודאג?
לאלה ללא רקע תכנות ברמה נמוכה, ASLR עלול לבלבל. כדי להבין זאת, תחילה עליך להבין זיכרון וירטואלי.
מהו זיכרון וירטואלי?
זיכרון וירטואלי הוא טכניקת ניהול זיכרון עם יתרונות רבים, אך היא נוצרה בעיקר כדי להקל על התכנות. תאר לעצמך שיש לך את Google Chrome, Microsoft Word ומספר תוכניות אחרות פתוחות במחשב עם זיכרון RAM של 4 GB. ככלל, התוכניות במחשב זה משתמשות ביותר מ -4 GB זיכרון RAM. עם זאת, לא כל התוכניות יהיו פעילות בכל עת, או זקוקות לגישה בו זמנית ל- RAM זה.
מערכת ההפעלה מקצה גושי זיכרון לתוכניות הנקראות . אם אין מספיק זיכרון RAM לאחסון בו זמנית את כל הדפים, הדפים הסבירים ביותר שיהיו נחוצים נשמרים בכונן הקשיח האיטי יותר (אך המרווח יותר). כאשר יש צורך בדפים המאוחסנים, הם יחליפו רווחים עם דפים פחות נחוצים כרגע ב- RAM. תהליך זה נקרא החלפה, ומעניק את שמו ל את קובץ pagefile.sys ב- Windows .
זיכרון וירטואלי מקל על התוכניות לנהל את הזיכרון שלהם, וגם הופך אותם לבטוחים יותר. תוכניות אינן צריכות לדאוג היכן מאחסנות נתונים אחרים, או כמה RAM נותר. הם יכולים פשוט לבקש ממערכת ההפעלה זיכרון נוסף (או להחזיר זיכרון שאינו בשימוש) לפי הצורך. כל מה שהתוכנית רואה הוא נתח אחד ורציף של כתובות זיכרון לשימוש בלעדי, הנקרא כתובות וירטואליות. לתוכנית אסור להסתכל בזיכרון של תוכנית אחרת.
כאשר תוכנית צריכה לגשת לזיכרון, היא מעניקה למערכת ההפעלה כתובת וירטואלית. מערכת ההפעלה יוצרת קשר עם יחידת ניהול הזיכרון של המעבד (MMU). ה- MMU מתרגם בין כתובות וירטואליות לפיזיות, ומחזיר את המידע הזה למערכת ההפעלה. בשום שלב התוכנית אינה מתקשרת ישירות עם זיכרון RAM.
מהו ASLR?
ASLR (Randomization Layout Randomization) משמש בעיקר להגנה מפני התקפות הצפת מאגר. בגלישת מאגר, תוקפים מזינים פונקציה כמה שיותר נתוני זבל שהם יכולים להתמודד, ואחריהם עומס מטען זדוני. המטען ידרוס נתונים שהתוכנית מתכוונת לגשת אליהם. הוראות לקפוץ לנקודה אחרת בקוד הן מטען נפוץ. המפורסם שיטת JailbreakMe של iOS 4 , למשל, השתמשה במתקפת הצפת מאגר, מה שגרם לאפל להוסיף ASLR ל- iOS 4.3.
הצפת מאגרים דורשת מהתוקף לדעת היכן כל חלק בתוכנית נמצא בזיכרון. להבין את זה בדרך כלל תהליך קשה של ניסוי וטעייה. לאחר שקבעו זאת, עליהם למלא מטען ולמצוא מקום מתאים להזרקתו. אם התוקף לא יודע היכן נמצא קוד היעד שלהם, זה יכול להיות קשה או בלתי אפשרי לנצל אותו.
ASLR עובד לצד ניהול זיכרון וירטואלי בכדי לאקראי את מיקומם של חלקים שונים בתוכנית בזיכרון. בכל הפעלת התוכנית, רכיבים (כולל הערימה, הערימה והספריות) מועברים לכתובת אחרת בזיכרון הווירטואלי. התוקפים כבר לא יכולים ללמוד היכן המטרה שלהם היא באמצעות ניסוי וטעייה, מכיוון שהכתובת תהיה שונה בכל פעם. באופן כללי, יש לאסוף יישומים עם תמיכת ASLR, אך זו הופכת לברירת המחדל ואף נדרשת ב- Android 5.0 ואילך.
אז האם ASLR עדיין מגן עליך?
ביום שלישי שעבר, חוקרים מסוני בינגהמטון ומאוניברסיטת קליפורניה, ריברסייד, הציגו מאמר בשם קפיצה מעל ASLR: תקיפת חיזוי ענפים כדי לעקוף ASLR . העיתון מפרט דרך לתקוף את מאגר היעד הסניפי (BTB). ה- BTB הוא חלק מהמעבד שמאיץ את הצהרותיו על ידי ניבוי התוצאה. באמצעות שיטת המחברים, ניתן לקבוע מיקומים של הוראות סניף ידועות בתוכנית פועלת. המתקפה המדוברת בוצעה במכונת לינוקס עם מעבד אינטל הסוול (שוחרר לראשונה בשנת 2013), אך ככל הנראה ניתן היה להחיל אותה על כל מערכת הפעלה ומעבד מודרני.
עם זאת, לא בהכרח כדאי להתייאש. העיתון הציע מספר דרכים בהן מפתחי חומרה ומערכות הפעלה יכולים למתן איום זה. טכניקות ASLR חדשות ודגנים עדינים ידרשו מאמץ רב יותר מהתוקף, והגדלת כמות האנטרופיה (אקראיות) יכולה להפוך את התקפת ה- Jump Over לבלתי אפשרית. סביר להניח שמערכות הפעלה ומעבדים חדשים יותר יהיו חסינים להתקפה זו.
אז בשביל מה נשאר לעשות? מעקף הקפיצה מעל הוא חדש, ועדיין לא נצפה בטבע. כאשר תוקפים מנצלים אותו, הפגם יגביר את הנזק הפוטנציאלי שתוקף עלול לגרום למכשיר שלך. רמת גישה זו אינה חסרת תקדים; מיקרוסופט ואפל יישמו ASLR רק במערכות ההפעלה שלהן שפורסמו בשנת 2007 ואילך. גם אם סגנון ההתקפה הזה יהפוך להיות דבר שבשגרה, לא יהיה לך יותר גרוע ממה שחזרת בימי Windows XP.
זכור שתוקפים עדיין צריכים לקבל את הקוד שלהם במכשיר שלך כדי להזיק. פגם זה אינו מספק להם דרכים נוספות להדביק אותך. כמו תמיד, כדאי לך פעל לפי שיטות העבודה המומלצות . השתמש באנטי-וירוס, התרחק מאתרים ותוכניות משורטטים, והעדכן את התוכנה שלך. על ידי ביצוע צעדים אלה ושמירה על שחקנים זדוניים מחוץ למחשב שלך, תהיה בטוח כמו שאי פעם היית.
אשראי תמונה: סטיב / פליקר