אבטחת מידע – תיאוריה בראי המציאות :שיעור 1 Architectural attacks במכונות וירטואליות ניתנת לנו הגנה מספק הוירטואליזיציה על סמך מרחבי זיכרון שונים למכונות שונות. למרות זאת ,המשאבים הפיסיים (… )CPU, Cache, DRAMמשותפים. המתקיף יכול לבצע מניפולציות על אותם רכיבים ובכך ללמוד מידע על דפוס ההתנהגות של הקורבן (לדוגמא טעינת ערכים ל cacheע"י המתקיף ומדידת הזמן שבו המותקף קורא ערכים מהזיכרון). סוגי התקפות Side Channel Attack מדובר על מידע שזולג מהמותקף למתקיף תוך שימוש במסלול סמוי ,לרבות השכבה הפיסית שעליה מבוססת אבטחת המערכת. הקורבן לא עד ליצירת המסלול לתוקף. דוגמא – Timing attack, Power monitoring attack, Acoustic attackועוד. Covert Channel Attack ערוץ חבוי .המתקיף והקורבן משתפים פעולה כדי להזרים מידע מאחד לשני. כיוון שיש מנגנונים רבים שמנטרים ערוצים כאלה ,דרך השליחה יכולה להיות לא טריוויאלית .לדוגמא העברת ביט של 0/1מאחד לשני יכולה להתבסס על פניה לזכרון המטמון ברגע מסויים. דוגמא – שבירת AESדרך דליפת כתובת הזיכרון AESמבוסס על פניה לזיכרון למקומות שמחושבים ע"י ].Plain[x]^Key[x נניח שנצליח להבין מהי הכתובת שאליה פונים אזי בקלות נוכל למצוא את המפתח (נבקש מהנתקף להצפין עבורינו מידע ועל ידי כך נחשב את ] key[xע"י ].)address ^ Plain[x יש כמה סיבוכים :רעש במערכת ,אנחנו לא בטוחים איזה פעולה הנתקף מריץ בכל רגע (ייתכן context )switchוייתכן שמספר אינדקסים יפנו לאותו ( cahce lineהנתקף מתחרה עם עצמו על מקומות בcache ואנחנו צריכים להיות מודעים לזה). איך נצליח להשיג את הכתובת? באמצעות זיכרון המטמון! פניה לזיכרון המטמון היא 1nsבעוד פניה ל DRAMהיא .100nsבאמצעות מדידת הזמן נוכל לדעת האם התבצעה פניה לזיכרון המטמון או ל.DRAM ישנן שתי שיטות לעשות זאת: שיטה - 0לבדוק מתי הקורבן פונה לDRAM .0התוקף מבקש מהקורבן להצפין עבורו משהו .הקורבן טוען למטמון את .T0 .2התוקף ממלא את המטמון. .3התוקף מבקש מהקורבן שוב להצפין משהו ,אך הפעם בודק האם ההצפנה לקחה יותר זמן. שיטה – 2לבדוק מתי התוקף פונה לDRAM .0התוקף ממלא את המטמון. .2התוקף מבקש מהנתקף להצפין עבורו משהו. .3התוקף שוב פונה לזיכרון ומודד האם הפניה החוזרת לקחה יותר זמן. כל משאב משותף יכול לשמש את התוקף ,לדוגמא באלגוריתם RSAעושים שימוש רב ביחידת הכפל והריבוע ,ולכן יחידת ה ALUהיא פוטנציאל לשימוש ע"י התוקף (התוקף מודד את הזמן שלוקח ליחידת הALU לבצע חישובים .אם הזמן ממושך אזי זהו סימן שגם הנתקף משתמש ביחידה). ניתן להרחיב את השיטות הללו ע"י: .0 .2 .3 .4 מערכות Hyper Threading נותני שירות למערכות וירטואליות ניצול לרעה מערכות המאפשרות לך להשתמש במשאביהן קוד המורץ על המכונה של הנתקף (לדוגמא .)JS
© Copyright 2024