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