נושא הפרוייקט
מספר פרוייקט
מחלקה
שמות סטודנטים
אימייל
שמות מנחים
מתחת למערכת ההפעלה - הגנה על בסיס הפעולה של מערכת מחשב מודרנית מפני קוד עוין
Below The OS - Defending the baseline of modern computer systems against malware
תקציר בעיברית
קושחת UEFI הפכה למימוש ה-BIOS הסטנדרטי במערכות מחשב מודרניות ( מחשבים שולחנים, מחשבים ניידים, שרתים מתקדמים וכו). בשל ארכיטקטורת השכבות של מערכות מחשב, כל שכבה במחסנית המערכת מאובטחת רק כמו השכבה שמתחתיה. עדכוני קושחת BIOS לא מורשים או החדרת קוד זדוני ל-BIOS יכול לשמש כדי לחבל ולהשתלט על קטעי קוד שנטענים מאוחר יותר בתהליך האתחול. על ידי ניצול פגיעות אשר נמצאה ב-BIOS ניתן ליצור מתקפה חמקנית ובעלת קביעות במערכת שכן קוד ה-BIOS פועל לפני שליבת מערכת ההפעלה נטענה לזיכרון ובכך יכול להשפיע על תהליך עליית מערכת ההפעלה ואף לחבל בו. אפילו התקנה מחדש של מערכת ההפעלה לא יכולה לטפל בסוג זה של התקפה. שחקני איום מבינים את עוצמתן של התקפות מסוג זה ומעבירים את ההתקפות שלהם אל עמוק שכבות המערכת על ידי פיתוח ערכות אתחול כתוכנה זדונית ברמת הקושחה. כיום, אבטחת תהליך האתחול מבוססת על הגנות המבוססות חתימה אשר אינם מספקים הגנה מלאה וניתן להתגבר עליהם על ידי התקפות שרשרת אספקה או ניצול חולשות באותם קטעי הקוד החתומים. המחקר העיקרי שנעשה בתחום זה עד כה מתמקד בניתוח סטטי של קוד ה-BIOS כדי לזהות נקודות תורפה. כלי ניתוח סטטי מנתחים את בסיס הקוד מבלי לבדוק או להתחשב בריצתו בפועל מה שעלול להוביל לפספוס חולשות שמתבטאות רק במהלך זמן הריצה של התוכנית בפועל. גישת הניתוח הסטטי אינה מהווה פתרון מלא ואף ניתן לעקיפה על ידי יריבים מתוחכמים תוך שימוש בטכניקות אנטי-פורנזיות. מהתובנות הללו, המחקר שלנו מניח אפס אמון בין הרכיבים השכבתיים ומיישם ניטור מהימן וניתוח דינמי של ה-BIOS (קושחת UEFI) במהלך שלבי האתחול וזמן הריצה על מנת לזהות פעילויות זדוניות של קוד עוין השוכן בשכבת הקושחה ואפילו בשכבת מערכת ההפעלה.
תקציר באנגלית
UEFI firmware is the standard BIOS implementation in modern computer systems (e.g., desktop computers, laptops, and high-end servers). Due to the layered architecture of computer systems, every layer in the system stack is only as secure as the layer below it. Unauthorized BIOS firmware updates or malicious code injection into BIOS can be used to compromise and take control of components loaded later in the boot process. Exploiting a vulnerability found in the BIOS would result in a stealthy and persistent attack since BIOS code runs before the operating system (OS) kernel is loaded into memory and by that can affect the OS load process and sabotage it. Even reinstalling the OS cannot remove this kind of attack. Threat actors understand the strength of such attacks and move their attacks deep down the system stack by developing bootkits as firmware-level-malware. These days, boot security leans on signature-based mitigations that don't provide full protection and can be overcome by supply chain attacks or exploiting vulnerabilities in signed components. The primary research done in this domain so far focuses on static analysis of BIOS code to detect vulnerabilities. Static analysis tools analyze the codebase without executing it and may not detect runtime issues that only manifest during actual program execution. The static analysis approach is not a complete solution and can even be fooled by smart adversaries using anti-forensic technics. From these insights, our research assumes zero trust between the layered components and applies trusted monitoring and dynamic analysis of the BIOS, i.e., UEFI firmware during boot and runtime phases to detect malicious activities of malware residing in the firmware and even the OS layer.