חלק ב\': מדריך העברה למרצה – שיעור 13¶
1. שרשרת האתחול: מ-Boot ROM דרך LLB ועד הקרנל במחשבי Apple Silicon¶
Objective: להסביר את השלבים שמערכת Apple Silicon עוברת מרגע הלחיצה על כפתור ההדלקה ועד לעליית הקרנל, בדגש על שרשרת האמון (Chain of Trust).
Discussion - Script:
- "חברים, כשלוחצים על כפתור ההדלקה במק מבוסס Apple Silicon – זה כבר לא ה-Boot של אינטל."
- כל הפעלה נבדקת מול שרשרת אבטחה שלמה:
- המטרה: לוודא ששום תוכנה זדונית לא השתלטה לפני עליית המערכת.
- התהליך:
- Boot ROM: מתחיל את התהליך (צרוב על החומרה).
- LLB (Low-Level Bootloader): נקרא על ידי ה-Boot ROM, עושה בדיקות חומרה בסיסיות.
- iBoot: מקבל את השרביט מה-LLB, תפקידו להעלות את הקרנל.
- Kernel (קרנל): נטען על ידי iBoot וטוען את מערכת ההפעלה (SSV).
- כל שלב מוודא את הבא בתור באמצעות חתימות קריפטוגרפיות.
- חוליה אחת לא מתאימה? המק פשוט יעצור ולא יעלה.
Demonstration:
- הצג תרשים זרימה של השלבים (אפשר לצייר על הלוח):
Boot ROM -> LLB -> iBoot -> Kernel -> macOS. - הסבר על השינויים ב-Apple Silicon:
- אין SMC נפרד.
- אין NVRAM מסורתי.
- הכל מובנה בתוך ה-SoC.
- פתח System Information:
- נווט לאזור ה-Hardware.
- הצג את ה-System Firmware Version.
Instructor Deep-Dive
* **Boot ROM:** * Hardware-based, read-only memory inside the SoC. * Holds the Apple Root Certificate Public Key. * Verifies the LLB. * **Low-Level Bootloader (LLB):** * Initializes basic hardware (e.g., Unified Memory). * Verifies the iBoot stage. * Maintains basic security properties. * **iBoot (Main Bootloader):** * Verifies the kernel cache (kernel + essential kexts). * Parses the DeviceTree. * Responsible for the boot logo and loading bar. * **Local Policy:** * Each Apple Silicon Volume has its own Local Policy (Full/Reduced Security). * iBoot reads this to determine if older macOS versions or third-party kexts can be loaded.2. Startup Security Utility: שינוי רמות האבטחה (Full Security מול Reduced Security) ולמה שנרצה להוריד אבטחה¶
Objective: להדגים כיצד פועל מנגנון ה-Startup Security Utility ב-Recovery Mode ואת המשמעויות של שינוי מדיניות האבטחה (Security Policy).
Discussion - Script:
- "זוכרים שכל Volume ב-Apple Silicon נבדק בנפרד?"
- כניסה ל-Recovery Mode פותחת את ה-Startup Security Utility:
- מאפשר לנהל Security Policy נפרד לכל ווליום.
- (פרט טריוויה למדריך מתוך ה-DeepDive: בעשור הראשון של Mac OS X בכלל לא הייתה מחיצת Recovery! רק ב-2011 (Lion) היא הוצגה לראשונה. היום ב-Apple Silicon קיימת מערכת 1TR (One True Recovery) שעולה ישירות מהחומרה ומייתרת את אינספור קיצורי המקלדת של העבר).
- Full Security (ברירת מחדל):
- מבטיח הרצת מערכת הפעלה נוכחית/לגיטימית בלבד.
- דורש אינטרנט לאימות מול שרתי אפל.
- מתי נשתמש ב-Reduced Security?
- כמפתחים (להתקנת מערכת הפעלה ישנה).
- כמוזיקאים (לדרייבר של כרטיס קול).
- משמעות המצב:
- מאפשר הרצת גרסאות ישנות.
- מאפשר ניהול משתמש של הרחבות קרנל (Kernel Extensions).
- לא מבטל אבטחה לחלוטין – אלא מעביר את ההחלטה למשתמש המקומי (Admin).
Demonstration:
- הפעל מק ל-Recovery Mode (לחיצה ארוכה על כפתור ההפעלה עד ל-Options).
- פתח Startup Security Utility מתוך תפריט Utilities.
- בחר ווליום רלוונטי ולחץ על Security Policy.
- השווה ויזואלית וטקסטואלית בין Full Security ל-Reduced Security.
- הצג את שתי תיבות הסימון של Reduced Security:
- User Management של Kexts.
- Remote Management.
Instructor Deep-Dive
* **Full Security:** * Requires network to reach Apple’s TSS (Tatsu Signing Server) during installation/updates. * Retrieves a personalized signature (APTicket) based on the Mac's ECID. * Prevents rollback attacks (downgrading to vulnerable OS). * **Reduced Security:** * Allows running any signed macOS version (even if revoked). * Disables online TSS checks for older OS boots. * Enables checkboxes for: * `Allow user management of kernel extensions from identified developers` * `Allow remote management of kernel extensions and automatic software updates` * **Permissive Security (Advanced/Hidden):** * Used by developers for unauthenticated custom kernels. * Requires boot-args configuration via `csrutil`.3. הרחבות קרנל (Kexts): למה אפל הורגת אותן ואיך מתקינים אותן בכל זאת במק מודרני¶
Objective: להסביר את המעבר מ-Kernel Extensions ל-System Extensions ואיך מאשרים Kext כשהמערכת דורשת זאת.
Discussion - Script:
- "למה אפל 'הורגת' את דרייברי הקרנל (Kexts)?"
- בעבר, תוכנות (אודיו, אנטי-וירוס) רצו ברמת הקרנל.
- הבעיה: הקרנל הוא לב המערכת.
- דרייבר קורס = Kernel Panic והמחשב קורס.
- דרייבר בקרנל = גישה להכל (סיוט אבטחתי).
- הפתרון: System Extensions.
- רצות ב-User Space ולא בקרנל.
- קורסות? המחשב ממשיך לעבוד.
- (אנלוגיה היסטורית למדריך: אפשר להשוות את זה למצב שלפני Mac OS X, בו לא היה קרנל מוגן וקריסה קטנה הייתה מקפיאה את כל המחשב. המעבר ל-System Extensions הוא אותו מהלך של 'בידוד תהליכים' (Sandboxing) שעשו פעם לאפליקציות, רק שעכשיו עושים אותו לדרייברים עצמם כדי למנוע Kernel Panics).
- למה עדיין צריכים Kexts?
- יצרני אודיו או וירטואליזציה ישנים שטרם עודכנו.
- איך מתקינים Kext במק מודרני? הכאב ראש המכוון של אפל:
- ירידה ל-Reduced Security.
- סימון ניהול הרחבות קרנל ב-Startup Security Utility.
- אישור מפתח היצרן ב-System Settings > Privacy & Security.
- אתחול המערכת (כדי ש-iBoot יבנה את ה-AKC מחדש).
Demonstration:
- פתח System Information -> Software -> Extensions:
- הצג הרחבות שנטענו בפועל (
Loaded: Yes). - פתח Finder:
- נווט לספרייה
/Library/Extensions. - הראה היכן קבצי ה-Kext (צד שלישי) יושבים פיזית.
- סימולציה של חסימה:
- הראה את החלון ב-
System Settings > Privacy & Security(System Extension Blocked). - הסבר שנדרש אישור ואתחול.
Instructor Deep-Dive
* **Kernel Extensions (Kexts):** * Run in ring 0 (kernel space). * Unrestricted access to memory and hardware. * Easy cause for Kernel Panics (KP). * **System Extensions:** * Run in user space. * Categories: Network Extensions, Endpoint Security Extensions, Driver Extensions (DriverKit). * **Auxiliary Kernel Collection (AKC):** * On Apple Silicon, third-party Kexts are NOT injected directly into memory. * They are pre-compiled and linked into an AKC file during boot. * OS verifies AKC signature before loading. * **kmutil:** * Modern CLI tool replacing `kextstat` and `kextutil`. * Instructor tip: Run `kmutil showloaded` in Terminal to show active extensions.4. תיבול ארגוני: אבטחת ה-Firmware, ניהול מפתחות שחזור מוסדיים במצב Boot, והגבלת משתמשים מלשנות רמת אבטחה¶
Objective: להבין את הכלים שיש ל-IT כדי לנעול את תהליך האתחול, למנוע שינויי אבטחה ולנהל גישה ל-Recovery באמצעות מפתחות שחזור.
Discussion - Script:
- "בעולם הארגוני – המטרה שלנו היא למנוע מ-Admin מקומי לשחק ברמות האבטחה ולהתקין דרייברים."
- תפקיד ה-MDM:
- מחשב מנוהל (במיוחד ב-ADE/Zero-Touch) יכול להפעיל מפתח שחזור מוסדי (IRK/PRK).
- יחד עם FileVault, המשתמש לא יכול לשנות הגדרות ב-Recovery ללא המפתח.
- איש ה-IT חייב לאשר זאת.
- הגבלת אישור Kexts:
- פרופילי MDM יכולים לדרוס לחלוטין את יכולת המשתמש לאשר Kexts.
- נדרש Payload ייעודי ב-MDM עם ה-Team ID המדויק.
- מבטיח שאף תוכנה לא מאושרת ללא בקרת הארגון.
Demonstration:
- הצג תרשים/Payload מתוך מערכת MDM (Jamf/Intune):
- פוליסת Kernel Extension Policy.
- הראה איפה מזינים את ה-Team ID.
- פרופיל System Extensions:
- הסבר שהוא מתנהג דומה.
- מאפשר הפעלה שקטה בלי לערב משתמש.
- אבטחת Firmware ב-Apple Silicon:
- אין יותר Firmware Password (כמו באינטל).
- במקומה: משתמשים ב-FileVault וב-MDM Bootstrap Token לאבטחת הגישה ל-Recovery.