לדלג לתוכן

Asset B: Facilitator Guide – Chapter 3

1. הגן הסגור: מנגנון ה-Gatekeeper, חתימות ונוטריון (Notarization)

Objective: להבין כיצד macOS מוודאת שכל תוכנה שרצה על המחשב היא בטוחה, לא שונתה, ומגיעה ממקור מהימן דרך ממשק המשתמש (GUI).

Discussion - Script: "בואו נדבר רגע על מאיפה אנחנו מורידים אפליקציות. באייפון יש לנו את ה-App Store. במק, אנחנו יכולים להוריד מכל מקום – וזה פתח לצרות. כאן נכנס לתמונה ה-Gatekeeper. זהו Gatekeeper (שומר הסף) שלנו. כשאנחנו מורידים אפליקציה מהאינטרנט, הוא בודק שני דברים עיקריים. הראשון הוא Code Signing – האם האפליקציה באמת חתומה על ידי מפתח מוכר של אפל, או שמישהו התעסק איתה בדרך? הדבר השני והחדש יותר נקרא Notarization. זה לא מספיק שהמפתח מוכר, הוא צריך היה לשלוח את האפליקציה לאפל לסריקת וירוסים אוטומטית לפני שהוא הפיץ אותה. אם האפליקציה עברה, היא מקבלת 'כרטיס' אוטומטי שמאשר אותה. אם Gatekeeper רואה שמשהו חסר, הוא פשוט לא ייתן לאפליקציה לרוץ ויציג לנו הודעת שגיאה שהאפליקציה לא מאושרת. פעם היה כפתור קל לעקוף את זה, אבל אפל החביאה אותו כדי להגן על משתמשים. היום אנחנו שולטים בזה ישירות מההגדרות בצורה ויזואלית וברורה."

Demonstration:

  1. הראה לסטודנטים הורדה של אפליקציה צד שלישי (למשל Google Chrome או כלי מוכר אחר) מהדפדפן.
  2. פתח את הקובץ דרך ה-Finder והסב את תשומת הלב להודעת האזהרה: "This app was downloaded from the internet. Are you sure you want to open it?". ציין שזוהי פונקציה חזותית של Gatekeeper.
  3. פתח System Settings > Privacy & Security וגלול למטה לאזור Security.
  4. הראה את שתי האפשרויות הזמינות לאישור תוכנות: App Store ו-App Store and known developers.
  5. הדגם כיצד לאשר אפליקציה שנחסמה על ידי לחיצה על כפתור "Open Anyway" (אם מופיע בהגדרות), או לחלופין דרך ה-Finder על ידי קליק ימני (Right-Click) > Open.
Instructor Deep-Dive (Technical Reference) * **Gatekeeper Quarantine:** כשקובץ מורד מהאינטרנט דרך דפדפן (כמו Safari או Chrome), הדפדפן מוסיף לקובץ Extended Attribute בשם `com.apple.quarantine`. כשהמשתמש מנסה לפתוח את הקובץ, LaunchServices מזהה את התגית הזו, ומעביר את הבדיקה ל-Gatekeeper. * **Notarization Ticket:** כרטיס ה-Notarization של אפל (Stapled Ticket) מוצמד לקובץ, אך במקרים מסוימים Gatekeeper יבדוק אונליין מול שרתי אפל (`ocsp.apple.com`) האם הרישיון לא בוטל (Revoked). * **CLI Control:** מנגנון ה-Gatekeeper נשלט טכנית על ידי מערכת ה-`syspolicyd`. ניתן לעקוף או לבטל את הפונקציה דרך ה-Terminal באמצעות הפקודה `sudo spctl --master-disable` (שתחזיר את אפשרות "Anywhere" להגדרות). ניתן לבדוק סטטוס מדויק של חתימת אפליקציה באמצעות פקודת `spctl -a -v /Path/To/App.app`.

2. האנטי-וירוס השקט: איך XProtect ו-XProtect Remediator עובדים ברקע

Objective: להציג את יכולות הסריקה וההגנה המובנות של macOS שמונעות הרצת קוד זדוני מבלי להפריע לחוויית המשתמש, תוך שימוש בכלים גרפיים מובנים.

Discussion - Script: "אנשים תמיד שואלים: 'האם מק צריך אנטי-וירוס?'. התשובה הקלאסית שלנו היא ש-macOS מגיעה עם אחד מובנה, וקוראים לו XProtect. זה לא אנטי-וירוס עם חלון גדול וכפתור 'סרוק עכשיו' כמו שאתם מכירים מווינדוס. זה מנגנון שקט שעובד ברקע. כשה-Gatekeeper בודק אפליקציה חדשה, הוא גם מעביר אותה דרך XProtect שמחפש חתימות מוכרות של וירוסים למק. ואפל מעדכנת את החתימות האלו בשקט מאחורי הקלעים בעזרת Background Security Updates. לאחרונה, אפל לקחה את זה צעד קדימה עם משהו שנקרא XProtect Remediator. הוא קם מדי פעם ברקע וסורק באופן יזום וירוסים שכבר יושבים במערכת ואפילו מנקה אותם. כדי לראות את הפעילות הזו, לא צריך להיות האקר – אפשר פשוט לפתוח את כלי המערכת שלנו כמו System Information או האפליקציה Console."

Demonstration:

  1. פתח את אפליקציית System Information (החזק מקש Option + קליק על תפריט התפוח > System Information).
  2. נווט בתפריט הצד ל-Software > Installations, ולחץ על כותרת "Software Name" למיון. חפש ברשימה "XProtectPlistConfigData" או "XProtectPayloads" והראה את תאריך העדכון האחרון.
  3. פתח את אפליקציית ה-Console (מתוך תיקיית Utilities). בסרגל הצד בחר ב-Log Reports או פשוט התחל חיפוש. הראה היכן הלוגים נרשמים, והסבר ש-XProtect כותב את דיווחי הסריקה שלו לכאן.
  4. פתח Finder ולחץ Cmd+Shift+G כדי לעבור לנתיב: /Library/Apple/System/Library/CoreServices/XProtect.bundle. הצג לסטודנטים את תוכן התיקייה כדי להמחיש שמדובר במנוע הקיים פיזית במערכת.
Instructor Deep-Dive (Technical Reference) * **YARA Rules:** המנוע של XProtect מבוסס על שפת YARA, שהיא סטנדרט תעשייתי להגדרת כללי זיהוי תוכנות זדוניות (Malware). ניתן לראות את הכללים האלו פיזית בתוך הקבצים בתיקיית המערכת. * **XProtect Remediator:** זהו אוסף של Executables קטנים (כמו סורקים ייעודיים לכל משפחת Malware, למשל `Adload` או `DubRobber`) שרצים דרך LaunchDaemons ברקע (מוגדרים ב-`com.apple.xprotect.remediator.*`). * **Logging:** בניגוד לתוכנות אנטי-וירוס רגילות שלא מפסיקות להטריד בהתראות, ה-XProtect Remediator ידווח על ממצאים ומחיקות שביצע לתוך ה-Unified Logging System. ניתן גם לשלוף את הדיווחים דרך Terminal על ידי: `log show --predicate 'subsystem == "com.apple.XProtectFramework.PluginAPI"' --info --last 24h`.

3. ניהול פרטיות (TCC): איך מערכת TCC פועלת ומגבילה גישה למצלמה/מיקרופון/דיסק

Objective: הבנת המנגנון שמונע מאפליקציות לגשת לנתונים רגישים של המשתמש, ושימוש בממשק המערכת כדי להעניק או להסיר הרשאות (TCC).

Discussion - Script: "בואו נדבר על פרטיות. פעם, אם אפליקציה רצתה לגשת למיקרופון שלנו, היא פשוט הייתה ניגשת. היום, יש Transparency, Consent, and Control (TCC) (מנגנון פרטיות) שנקרא TCC - Transparency, Consent, and Control. זה המנגנון שאחראי על כל ההודעות הקופצות של 'האפליקציה הזו מבקשת גישה למיקום שלך' או 'האפליקציה הזו רוצה לגשת לתיקיית המסמכים שלך'. המטרה פה היא להחזיר את השליטה למשתמש. אנחנו מחליטים מי יקבל גישה למצלמה, למיקרופון, לאנשי הקשר ולכונן המלא. אם סירבתם בטעות ב-Prompt הראשוני – האפליקציה לא תשאל שוב. היא תניח שהיא חסומה. עבורנו כאנשי תמיכה, כשאפליקציה נראית שבורה (למשל, זום לא רואה את המצלמה), המקום הראשון שאנחנו בודקים הוא אזור ה-TCC בהגדרות המערכת."

Demonstration:

  1. פתח את ה-System Settings ונווט ל-Privacy & Security.
  2. הראה למשתתפים את הרשימה (Camera, Microphone, Full Disk Access, Screen Recording).
  3. לחץ על Full Disk Access (דרישה נפוצה מאוד לאנטי וירוסים וכלי IT), הראה איך להוסיף ידנית אפליקציה על ידי לחיצה על לחצן ה-"+" למטה ופתיחת חלון ה-Finder לבחירת יישום.
  4. הסבר את ההבדל בין הרשאת "Files and Folders" (גישה נקודתית למסמכים/הורדות/דסקטופ) לבין "Full Disk Access" (גישה רוחבית כולל לקבצי משתמשים אחרים ומערכת).
  5. הדגם הסרת הרשאה מאפליקציה על ידי לחיצה על כפתור ה-"-" כדי להמחיש "איפוס" של ההרשאה.
Instructor Deep-Dive (Technical Reference) * **TCC Databases:** מנגנון ה-TCC שומר את הבחירות של המשתמש בתוך מסד נתונים של SQLite. יש שני מסדי נתונים עיקריים: * רמת משתמש (User TCC): נמצא ב-`~/Library/Application Support/com.apple.TCC/TCC.db`. * רמת מערכת (System TCC): נמצא ב-`/Library/Application Support/com.apple.TCC/TCC.db`. מוגן על ידי מנגנון ה-SIP וניתן לשנותו רק באמצעות ממשק ה-GUI או פרופיל MDM. * **tccd Daemon:** תהליך הרקע שאוכף את החוקים בפועל. ניתן לאפס את הרשאות ה-TCC לאפליקציה ספציפית בעזרת ה-Terminal עם הפקודה `tccutil reset [Service] [BundleID]`, לדוגמה `tccutil reset Camera com.zoom.us`.

4. תיבול ארגוני: שימוש בפרופיל PPPC (Privacy Preferences Policy Control) לאישור אוטומטי של כלי IT

Objective: להבין כיצד ניתן לנהל מראש את חוויית ה-TCC וסביבת האפליקציות בארגון מנוהל (MDM) כדי למנוע קריאות תמיכה, באמצעות Profiles בממשק הגרפי.

Discussion - Script: "בסביבה הארגונית, ה-TCC הופך פתאום מסיוע לפרטיות לכאב ראש רציני למחלקת ה-IT. תארו לכם שאתם מפיצים אנטי-וירוס ארגוני ל-1,000 מחשבים. האנטי-וירוס הזה חייב Full Disk Access כדי לעבוד. אם נשאיר את זה למשתמשים, רובם יתעלמו מההודעה שקופצת, והאנטי-וירוס פשוט לא יעבוד כראוי. כאן נכנס לפעולה משהו שנקרא פרופיל PPPC (Privacy Preferences Policy Control). דרך מערכת ה-MDM, אנחנו שולחים הגדרה שמראש אומרת למק: 'היי, האנטי-וירוס הזה מאושר מראש, אל תשאל את המשתמש אפילו'. חשוב לציין שלאפל יש קווים אדומים - לעולם לא נוכל לאשר מרחוק גישה למצלמה או למיקרופון, כי זו חדירה לפרטיות של העובד! אנחנו רק יכולים להעניק גישה לכונן או למנוע אישורים מסוימים. בנוסף, דרך פרופילים נוכל לחסום הפעלה של אפליקציות ספציפיות על ידי חוקי Blocklist."

Demonstration:

  1. ב-System Settings (תחת Privacy & Security) גלול למטה לאזור הפרופילים. אם קיימים פרופילים, היכנס להראות כיצד נראה פרופיל PPPC (Privacy Preferences Policy Control).
  2. חזור למסך Privacy & Security והיכנס ל-Full Disk Access כדי להראות כיצד ייראה ה-TCC אחרי שפרופיל ניהול נשלח: בשורת האפליקציה המנוהלת, מתג ההפעלה יהיה אפור ולא ניתן לשינוי על ידי המשתמש (לרוב עם הכיתוב "Managed by your organization").
  3. (אופציונלי) אם יש לכם סביבת MDM פתוחה (כמו Jamf או Intune), הראו לסטודנטים את הממשק הגרפי שבו ה-IT מקנפג את ההרשאות הללו (למשל תפריט ה-PPPC Utility).
Instructor Deep-Dive (Technical Reference) * **Bundle ID and Code Requirement:** כדי לבנות פרופיל PPPC יעיל, ה-MDM לא מסתמך רק על שם האפליקציה. הוא דורש את ה-`Code Requirement` – מחרוזת קריפטוגרפית שמוודאת שהאפליקציה אכן נחתמה על ידי תעודת המפתח של אותו מפתח. זה מונע מנוזקה להסוות את עצמה תחת אותו שם. * **Screen Recording Limitation:** בגלל דרישות אבטחה, אישור Screen Recording הוא מוגבל ולא ניתן לאישור שקט מרחוק. אבל אפשר להתיר למשתמש שהוא Standard User (לא מנהל) ללחוץ `Allow` בחלון ולהפעיל את שיתוף המסך בעצמו ללא הזנת סיסמת Admin באמצעות Payload מסוג `AllowStandardUserToSetSystemService`. * **Blocklists - App Restrictions:** פרופילי MDM מסוג `com.apple.applicationaccess` מאפשרים יצירת חסימות לאפליקציות. כשהמערכת חוסמת אפליקציה בהתאם לפרופיל זה, המשתמש יקבל הודעה מהמערכת המונעת את ההרצה עוד בשלב ה-LaunchServices. בטרמינל ניתן לבדוק פרופילים המותקנים על ידי `profiles show -type configuration`.