שיעור 13: תהליך האתחול¶
חלק ב': מדריך העברה למרצה
הערה למדריך: מסמך זה משמש כמערך השיעור (Lesson Plan) וכולל את התסריט להעברת החומר מול הכיתה, תרחישי הדגמה, ומידע טכני מורחב שיעזור לך להתמודד עם שאלות קשות. שמור על טון שיחתי (Conversational), נגיש ומעשי, כפי שהוגדר בפרוטוקול הקורס. ההדגמות מבוססות על ממשק המשתמש הגרפי (GUI) וכלי הטרמינל המקומיים במחשב עצמאי (Standalone), בעוד תרשימי ה-MDM ונעילת ה-Recovery Lock מתוך המצגת משמשים להעמקה מאחורי הקלעים.
1. שרשרת האתחול: מ-Boot ROM דרך LLB ועד הקרנל ב-Apple Silicon (Chain of Trust)¶
🎯 מטרת החלק: להסביר את השלבים שמערכת Apple Silicon עוברת מרגע הלחיצה על כפתור ההדלקה ועד לעליית הקרנל, בדגש על שרשרת האמון (Chain of Trust) וחתימות החומרה ב-Secure Enclave.
המטרה בחלק זה היא לשנות את הדרך שבה הסטודנטים תופסים את תהליך ההדלקה. זה כבר לא תהליך עיוור של טעינת מערכת הפעלה מתוך כונן (כמו בעידן ה-BIOS/UEFI הישן), אלא שרשרת אמון קריפטוגרפית שבה כל רכיב חומרה מוודא את הבא אחריו. כדאי לפתוח בשאלה לכיתה: "מה באמת קורה בתוך השנייה הראשונה כשלוחצים על כפתור ההדלקה במק עם Apple Silicon?".
← בשיעור 06 למדנו על ה-SSV (Signed System Volume) — כאן רואים כיצד ה-SSV מהווה את החוליה הסופית בשרשרת האתחול, כאשר הקרנל מוודא שהמערכת כולה חתומה וללא שינוי.
🎤 הרצאה¶
- שאלת פתיחה והשוואה לעבר:
- "במחשבי אינטל הישנים היו לנו רכיבי חומרה נפרדים: שבב BIOS/UEFI, בקר SMC לניהול חשמל ותרמי, וזיכרון NVRAM להגדרות בוט."
- "ב-Apple Silicon הכל אוחד לתוך מעגל מודפס אחד (System on Chip - SoC) המנוהל ע"י ה-Secure Enclave."
- שרשרת האמון שלב-אחר-שלב (Chain of Trust):
- 1. Boot ROM (צרוב בחומרה):
- הקוד הראשון שרץ ברגע שמקבלים זרם חשמלי.
- נמצא בזיכרון קריאה-בלבד (Read-Only) על גבי ה-SoC ואינו ניתן לשינוי או לפריצה ע"י תוכנה.
- מכיל את ה-Apple Root Certificate Public Key ומאמת את שלב ה-LLB.
- 2. LLB (Low-Level Bootloader):
- מאתחל את הזיכרון האחוד (Unified Memory) והחומרה ההיקפית הבסיסית.
- קורא את ה-LocalPolicy השמורה ב-Secure Enclave ומאמת את קובץ ה-iBoot הבא.
- 3. iBoot (טוען מערכת ההפעלה הראשי):
- זהו השלב שבו מופיע לראשונה סמל התפוח ומד ההתקדמות (Loading Bar) על המסך.
- טוען את ה-DeviceTree, מאמת את הקרנל ואת ה-Boot Arguments.
- 4. Kernel & launchd (מערכת ההפעלה):
- הקרנל נטען, מאמת את ה-Snapshot החתום של ה-SSV ומרכיב אותו כקובץ מערכת קרוא-בלבד (Read-Only).
- הקרנל מפעיל את תהליך האב
launchd(PID 1), אשר מקים את כל שירותי המשתמש והממשק הגרפי.
- 1. Boot ROM (צרוב בחומרה):
- מה קורה אם חוליה אחת נשברת?
- אם חתימה קריפטוגרפית אינה תואמת — תהליך האתחול נעצר מיד!
- המק לא יציג מסך שגיאה אלא ייכנס למצב שחזור קושחה מובנה (DFU Mode) לטעינה מחודשת של ה-LLB וה-iBoot.
🔗 עזרים ויזואליים¶
| עזר | מה מראה |
|---|---|
📸 L13_LegacySlide_Slide138_image49.jpeg |
דיאגרמת שרשרת האמון (Chain of Trust) ב-Apple Silicon |
📸 L13_LegacySlide_Slide138_image169.png |
שלבי המעבר מ-Boot ROM דרך LLB ו-iBoot עד לקרנל |
🖥️ הדגמה¶
- שלב 1: פתחו את אפליקציית System Information (דרך תפריט התפוח > About This Mac > More Info > System Report).
- שלב 2: בחרו בקטגוריית Hardware בראש הרשימה.
- שלב 3: הראו לתלמידים את השדות:
- Chip: דגם המעבד (למשל Apple M2/M3/M4).
- System Firmware Version: גרסת ה-iBoot הצרובה כרגע במכשיר.
- OS Loader Version: גרסת טוען המערכת הפעיל.
- שלב 4 (בטרמינל): הריצו את הפקודה לבדיקת רכיב האתחול והאבטחה:
system_profiler SPiBridgeDataType
Instructor Deep-Dive: ארכיטקטורת Boot ROM, LLB ו-LocalPolicy
- Apple Root CA: ה-Boot ROM מכיל מפתח ציבורי של אפל שאינו ניתן למחיקה. כל שדרוג גרסה נחתם פרטנית מול שרתי ה-TSS של אפל (Personalized Ticket).
- LocalPolicy ב-SEP: לכל מחיצת מערכת ב-Apple Silicon יש קובץ LocalPolicy מוצפן ב-Secure Enclave. ה-LLB קורא מדיניות זו כדי לקבוע אם לאפשר אתחול ב-Full Security או ב-Reduced Security.
- ביטול קיצורי המקלדת המסורתיים: ב-Apple Silicon אין יותר איפוס PRAM (
Cmd+Opt+P+R) או אתחול בטוח באמצעות מקש Shift בעת ההדלקה — כל אפשרויות האתחול רוכזו לתוך לחיצה ממושכת אחת על כפתור ההפעלה (1TR).
2. כלי אבטחת האתחול (Startup Security Utility) ורמות האבטחה (Full Security מול Reduced Security)¶
🎯 מטרת החלק: להדגים כיצד פועל מנגנון ה-Startup Security Utility ב-Recovery Mode, להבין את המשמעויות של שינוי מדיניות האבטחה (Security Policy), ומתי טכנאי או משתמש נדרשים להוריד את רמת האבטחה.
עכשיו כשהתלמידים מבינים איך המערכת עולה בצורה בטוחה, נציג כיצד שולטים ברמת האבטחה. הדגישו שהורדת אבטחה ל-Reduced Security אינה "פריצה של המק", אלא העברת הסמכות לקבלת החלטות מאפל למנהל המקומי של המחשב (Volume Owner).
← בשיעור 04 למדנו על ה-Volume Ownership וה-Secure Token — כניסה ל-Startup Security Utility מחייבת הזנת סיסמה של משתמש בעל Secure Token (Volume Owner).
🎤 הרצאה¶
- איך מגיעים ל-Startup Security Utility ב-Apple Silicon?
- מכבים את המחשב לחלוטין.
- מבצעים לחיצה ממושכת (Long Press) על כפתור ההפעלה (Touch ID) עד שמופיע הכיתוב
Loading startup options. - בוחרים ב-Options ונכנסים למסך ה-1TR.
- בתפריט העליון בוחרים ב-
Utilities > Startup Security Utility.
- רמות האבטחה (Security Levels):
- 1. Full Security (ברירת המחדל):
- רמת האבטחה הגבוהה ביותר המגיעה מהמפעל (בדומה ל-iOS).
- מתירה הרצה אך ורק של גרסת מערכת ההפעלה הנוכחית והמאושרת ביותר ע"י אפל.
- דורשת אימות מקוון מול שרתי ה-TSS בעת התקנה כדי למנוע התקפות Rollback (הורדת גרסה למערכת ישנה עם פרצות אבטחה ידועות).
- 2. Reduced Security (אבטחה מופחתת):
- מאפשרת הרצת כל גרסת macOS ישנה שאי-פעם נחתמה ע"י אפל (גם אם החתימה פגה).
- פותחת שתי תיבות סימון (Checkboxes) קריטיות:
- Allow user management of kernel extensions from identified developers: מאפשרת למנהלים מקומיים לאשר דרייברים ברמת הליבה (Kexts).
- Allow remote management of kernel extensions and automatic software updates: מאפשרת לשרת MDM לנהל Kexts ועדכונים ברקע באמצעות ה-Bootstrap Token.
- 3. Permissive Security (רמה מוסתרת למפתחים):
- ביטול מוחלט של בדיקות חתימה להרצת קרנל מותאם אישית (Custom Kernel) דרך כלי הפקודה
bputil.
- ביטול מוחלט של בדיקות חתימה להרצת קרנל מותאם אישית (Custom Kernel) דרך כלי הפקודה
- 1. Full Security (ברירת המחדל):
🔗 עזרים ויזואליים¶
| עזר | מה מראה |
|---|---|
📸 L13_LegacySlide_Slide141_image170.jpg |
חלון ה-Startup Security Utility ובחירת כונן המערכת |
📸 L13_LegacySlide_Slide142_image171.png |
הגדרות ה-Reduced Security ותיבות הסימון של Kexts |
🖥️ הדגמה¶
- שלב 1 (בדיקת רמת אבטחה בטרמינל):
- הריצו בטרמינל:
system_profiler SPiBridgeDataType | grep -A 5 "Secure Boot" - הראו כי תחת
Secure Bootמופיע הערך Full Security.
- הריצו בטרמינל:
- שלב 2 (הסבר על מסך ה-Recovery):
- הקרינו את צילום המסך
L13_LegacySlide_Slide141_image170.jpgוהסבירו את תהליך הכניסה ל-1TR. - הצביעו על שתי תיבות הסימון תחת Reduced Security והסבירו מדוע כל איש תמיכה שמחבר כרטיס קול חיצוני ישן או תוכנת וירטואליזציה נתקל במסך הזה.
- הקרינו את צילום המסך
Instructor Deep-Dive: מנגנון ה-TSS Signing וה-APTicket
- Tatsu Signing Server (TSS): בעת התקנה במצב Full Security, המק שולח בקשה הכוללת את ה-ECID הייחודי שלו. השרת מחזיר קובץ APTicket חתום קריפטוגרפית.
- בידוד פר ווליום: ב-Apple Silicon, ניתן להתקין 3 גרסאות שונות של macOS ב-Containers שונים, כאשר ווליום אחד מוגדר ב-Full Security והשני ב-Reduced Security — לכל כרך יש LocalPolicy עצמאי ב-Secure Enclave!
- אישור מנהל (Volume Owner): כל שינוי ב-Startup Security Utility דורש בחירת משתמש אדמין מקומי והקשת סיסמתו כדי לחתום על המדיניות החדשה.
3. הרחבות ליבה (Kexts) מול System Extensions ואיך מתקינים אותן ב-macOS מודרני¶
🎯 מטרת החלק: להסביר מדוע אפל חוסמת בהדרגה הרחבות ליבה (Kernel Extensions), כיצד ה-System Extensions פותרות את בעיית היציבות והאבטחה, ומהו תהליך ההתקנה המדויק של Kext במק מודרני.
רוב אנשי ה-IT הותיקים סובלים מהנושא של Kexts, כיוון שההתקנה הפכה למורכבת במכוון. המטרה כאן היא להסביר את ה"למה" – מדוע אפל מקשה על התקנת Kexts, כיצד הרחבות ב-User Space מונעות קריסות פתאומיות (Kernel Panics), ואיך טכנאי מתמודד עם תוכנה ישנה שעדיין דורשת Kext.
← בשיעור 08 (System Services) למדנו על תהליכים ב-User Space מול System Space — כאן רואים את אותו עיקרון מיושם על דרייברים.
🎤 הרצאה¶
- מדוע אפל "הורגת" את ה-Kexts המסורתיים?
- הבעיה היסטורית (Ring 0 / Kernel Space):
- הרחבות קרנל רצות ישירות בתוך ליבת מערכת ההפעלה עם הרשאות בלתי מוגבלות.
- כל באג קטן, דליפת זיכרון או שגיאת קוד בדרייבר של חברה חיצונית — מוביל מיד לקריסה טוטאלית של המק (Kernel Panic).
- סכנת אבטחה: קוד זדוני שחודר לקרנל יכול לעקוף כל הגנת אבטחה (כולל SIP ו-TCC).
- הבעיה היסטורית (Ring 0 / Kernel Space):
- הפתרון המודרני: System Extensions (Ring 3 / User Space):
- הדרייברים ותוכנות האבטחה רצים ב-User Space כתהליכים מבודדים (Sandbox).
- אם האפליקציה או הדרייבר קורסים — מערכת ההפעלה ממשיכה לעבוד כרגיל ללא שום הפרעה!
- 3 סוגי ה-System Extensions המרכזיים:
- Driver Extensions (DriverKit): דרייברים לחומרה חיצונית (כרטיסי קול, התקני USB, בקרי תקשורת).
- Network Extensions: תוכנות VPN, חומות אש (Firewalls) ומסנני תוכן.
- Endpoint Security Extensions: תוכנות אנטי-וירוס ו-EDR ארגוניות (CrowdStrike, SentinelOne).
- סולם המכשולים: תהליך התקנת Kext במק מודרני (צעד-אחר-צעד):
-
- אתחול פיזי ל-1TR (לחיצה ארוכה על Power).
-
- כניסה ל-Startup Security Utility והורדה ל-Reduced Security.
-
- סימון תיבת האישור: Allow user management of kernel extensions from identified developers.
-
- אתחול רגיל למערכת והפעלת קובץ ההתקנה.
-
- אישור התרעת המערכת ב-
System Settings > Privacy & Securityתחת Security (לחיצה על Allow לצד שם המפתח).
- אישור התרעת המערכת ב-
-
- אתחול נוסף של המק — בשלב זה iBoot בונה את ה-Auxiliary Kernel Collection (AKC) וטוען את הדרייבר בבוט.
-
🔗 עזרים ויזואליים¶
| עזר | מה מראה |
|---|---|
📸 L13_LegacySlide_Slide142_image172.png |
התראת System Extension Blocked ב-macOS |
📸 L13_LegacySlide_Slide142_image174.png |
חלון אישור מפתח יצרן ב-Privacy & Security |
📸 L13_LegacySlide_Slide142_image176.png |
מסך בנייה מחדש של ה-AKC בעת אתחול |
🖥️ הדגמה¶
- שלב 1 (בדיקת הרחבות ב-System Information):
- פתחו את System Information > נווטו בתפריט הצדדי ל-Software > Extensions.
- מיינו לפי עמודת Loaded והראו הרחבות פעילות (
Loaded: Yes).
- שלב 2 (חקירת תיקיית ההרחבות ב-Finder):
- הקישו
Cmd+Shift+Gב-Finder ונווטו אל/Library/Extensions. - הסבירו: "כאן יושבים קבצי ה-Kext של צד שלישי (אם הותקנו). בתיקיית
/System/Library/Extensionsיושבות הרחבות אפל המוגנות ב-SSV".
- הקישו
- שלב 3 (בדיקת הרחבות בטרמינל עם
kmutil):- הריצו את הפקודה המודרנית המציגה הרחבות צד שלישי שאינן של אפל:
kmutil showloaded --show-all | grep -v "com.apple"
- הריצו את הפקודה המודרנית המציגה הרחבות צד שלישי שאינן של אפל:
Instructor Deep-Dive: ארכיטקטורת ה-AKC וכלי ה-kmutil
- Auxiliary Kernel Collection (AKC): ב-Apple Silicon, הרחבות Kext אינן מוזרקות ישירות לזיכרון בזמן ריצה. המערכת מקמפלת אותן מראש לתוך קובץ אימג' אחוד (AKC) הנשמר ב-Preboot ונחתם ע"י ה-LocalPolicy.
- כלי ה-CLI המודרני
kmutil: החליף את הכלים ההיסטורייםkextstat,kextloadו-kextunload. - אבטחת Kext Consent: פקודת
spctl kext-consent statusבטרמינל מציגה האם מנגנון אישור ה-Kexts מאופשר ברמת המערכת.
4. תיבול ארגוני: אבטחת ה-Firmware, ה-Recovery Lock ב-Apple Silicon וה-Bootstrap Token¶
🎯 מטרת החלק: להבין את מנגנון ה-Recovery Lock הבלעדי ל-MDM ב-Apple Silicon (כיורש הארגוני של ה-Firmware Password), לדעת כיצד הוא חוסם לחלוטין גישה פיזית ל-1TR, וכיצד ה-Bootstrap Token מאפשר ניהול שקט של רמות אבטחה מרחוק.
זהו החלק שבו אנשי ה-IT בכיתה מתחברים למציאות היומיומית שלהם. הדגישו את ההבדל הדרמטי בין מחשבי אינטל למחשבי Apple Silicon: בעבר כל לקוח פרטי יכול היה לשים Firmware Password. כיום, נעילת ה-Recovery קיימת אך ורק דרך MDM ארגוני (Recovery Lock) ולא זמינה כלל ללקוחות פרטיים!
← בשיעור 04 ובשיעור 12 ראינו כיצד ה-Bootstrap Token פועל כמיופה כוח של Volume Owner — כאן רואים כיצד הוא מאפשר ל-MDM לאשר שינויי אבטחה ועדכונים שקטים ברקע.
🎤 הרצאה¶
- שאלת פתיחה: מה קרה ל-Firmware Password הישן?
- "במחשבי אינטל הישנים — מי יכל להגדיר Firmware Password? כולם! כל לקוח פרטי יכל להיכנס ל-Recovery ולהגדיר סיסמה מקומית."
- "ב-Apple Silicon אפל ביטלה לחלוטין את ה-Firmware Password המקומי. לקוח פרטי עצמאי אינו יכול לנעול את ה-Recovery כלל!"
- היורש האמיתי: Recovery Lock (
SetRecoveryLockCommand):- פיצ'ר ארגוני בלעדי למערכות MDM!
- מנהל ה-IT שולח פקודת
SetRecoveryLockמתוך קונסולת הניהול (Jamf / Intune), והסיסמה נשמרת באופן מוצפן (Escrow) בכרטיס המכשיר בשרת.
- מה קורה כשמוגדר Recovery Lock על המק?
- כאשר משתמש או טכנאי מחזיק את כפתור ההפעלה כדי להיכנס ל-1TR (Startup Options), המק מקפיץ מסך שחור עם סמל מנעול המחייב את סיסמת ה-MDM.
- חסימה הרמטית: ללא הסיסמה הזו, המשתמש (אפילו אם הוא Admin מקומי או Volume Owner ב-macOS!) חסום לחלוטין מ:
- פתיחת ה-Terminal במצב Recovery.
- גישה ל-Startup Security Utility (חסום מהורדת אבטחה ל-Reduced Security או אישור Kexts).
- הפעלת Disk Utility לפרמוט הכונן או איפוס המחשב.
- אישור Kexts שקט בעזרת ה-Bootstrap Token:
- פרופילי MDM מסוג
Kernel Extension Policyמאפשרים ל-MDM לאשר Kexts ארגוניים ברקע בעזרת ה-Bootstrap Token, ללא צורך בהגעה פיזית של העובד למסך ה-1TR.
- פרופילי MDM מסוג
🔗 עזרים ויזואליים¶
| עזר | מה מראה |
|---|---|
📸 L13_LegacySlide_Slide80_image19.jpg |
ארכיטקטורת אבטחת Firmware ופרופילי אבטחה בארגון |
📸 L13_LegacySlide_Slide80_image93.png |
מסך נעילת Recovery Lock והפקדת מפתחות ב-MDM |
🖥️ הדגמה¶
- שלב 1 — בדיקת Secure Boot ו-SIP במק המקומי (ב-CLI):
- הריצו בטרמינל:
system_profiler SPiBridgeDataType | grep -A 5 "Secure Boot" - הריצו:
csrutil statusכדי לאמת שה-System Integrity Protection מופעל.
- הריצו בטרמינל:
- שלב 2 — בדיקת סטטוס ה-Bootstrap Token:
- הריצו בטרמינל:
sudo profiles status -type bootstraptoken - דגש פדגוגי מנצח למרצה: הצביעו על הפלט המציג
escrowed: NO. הסבירו לכיתה: "רואים? המחשב שבו אנחנו לומדים הוא מחשב עצמאי (Standalone) שאינו מנוהל ב-MDM, ולכן לא הופקד מפתח. במחשב ארגוני המשויך ל-MDM, השורה הזו מציגה YES!".
- הריצו בטרמינל:
- שלב 3 — המלצה פדגוגית למרצה (עזרים ויזואליים):
- הקרינו מתוך העזרים הוויזואליים של השיעור (שקף
L13_LegacySlide_Slide80_image93.png) את צילום המסך של פקודת Set Recovery Lock ב-MDM ואת מסך המנעול השחור שננעל בפני משתמש שמנסה להיכנס ל-1TR.
- הקרינו מתוך העזרים הוויזואליים של השיעור (שקף
Instructor Deep-Dive: פקודות MDM ל-Recovery Lock ו-LocalPolicy
- פקודות ניהול ב-MDM:
- הגדרת סיסמה:
SetRecoveryLockCommand. - אימות מרחוק:
VerifyRecoveryLockPasswordCommand. - הסרת נעילה בעת עזיבת עובד:
ClearRecoveryLockCommand.
- הגדרת סיסמה:
- אי-תלות ב-FileVault: ה-Recovery Lock מגן על סביבת ה-1TR גם אם ה-FileVault כבוי או מבוטל, ומונע מכל אדם עם גישה פיזית לשנות את הגדרות האתחול של המק.
- אכיפת Full Security ב-LocalPolicy: שרת ה-MDM יכול לכפות Full Security ולמנוע מכל מנהל מקומי להוריד את רמת האבטחה דרך כלי ה-GUI.
עזרים ויזואליים¶
המחשה ויזואלית (עזר לתלמיד)
תמונות אלו ממחישות את הממשק או המנגנון הרלוונטי לנושא השיעור.
