לדלג לתוכן

חלק ב\': מדריך העברה למרצה – שיעור 3

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

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

Discussion - Script:

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

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: קליק ימני > 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:** * התהליך נשלט טכנית על ידי `syspolicyd`. * ביטול המנגנון: `sudo spctl --master-disable` (מחזיר את אפשרות "Anywhere"). * בדיקת חתימת אפליקציה: `spctl -a -v /Path/To/App.app`.

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

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

Discussion - Script:

  • האם מק צריך אנטי-וירוס?
    • התשובה הקלאסית: macOS מגיעה עם אחד מובנה ושמו XProtect.
  • מהו XProtect?
    • לא אנטי-וירוס רגיל עם חלון של "סרוק עכשיו".
    • מנגנון שקט שעובד ברקע.
    • פועל עם Gatekeeper לחפש חתימות מוכרות של וירוסים.
    • אפל מעדכנת את החתימות בשקט מאחורי הקלעים (Background Security Updates).
  • הכירו את XProtect Remediator:
    • שכבת הגנה חדשה ומתקדמת יותר.
    • סורק ברקע באופן יזום וירוסים שכבר יושבים במערכת, ואף מנקה אותם.
  • איך עוקבים אחריו?
    • אין ממשק משתמש מסורתי.
    • ניתן לראות את הפעילות שלו דרך כלי מערכת כמו System Information או Console.
    • Fun Fact: חוקי YARA שעליהם מבוסס המנגנון נקראים כך כבדיחה פנימית על ראשי תיבות מיותרים: "YARA: Another Recursive Acronym".

Demonstration:

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

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

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

Discussion - Script:

  • שינויים בגישה לפרטיות:
    • בעבר אפליקציות ניגשו למיקרופון בחופשיות.
    • כיום פועל מנגנון TCC (Transparency, Consent, and Control).
  • איך זה עובד?
    • המנגנון אחראי על הודעות קופצות (למשל: "האפליקציה מבקשת גישה למיקום").
    • המטרה היא להחזיר את השליטה למשתמש.
    • המשתמש מאשר מפורשות גישה למצלמה, למיקרופון, לאנשי קשר ולדיסק.
  • השפעת בחירת המשתמש:
    • סירוב ב-Prompt יחסום את האפליקציה לתמיד. היא לא תשאל שוב.
    • עבור IT: אם אפליקציה "שבורה" (למשל, זום בלי מצלמה), מתחילים בבדיקת TCC בהגדרות המערכת.
    • Fun Fact: ב-15 השנים הראשונות של המק, פרטיות כלל לא הייתה נושא - המחשבים נועדו למשתמש יחיד. רק ב-2018 (Mojave) מנגנון ה-TCC הוצג במלואו עם עשרות קטגוריות.

Demonstration:

  1. הגדרות פרטיות: פתח System Settings ונווט ל-Privacy & Security.
  2. קטגוריות TCC: הראה את הרשימה (Camera, Microphone, Full Disk Access, Screen Recording).
  3. מתן הרשאות (Full Disk Access):
    • היכנס ל-Full Disk Access (נפוץ באנטי וירוסים וכלי IT).
    • הראה כיצד להוסיף אפליקציה ידנית (לחיצה על + ובחירה מה-Finder).
  4. הסבר ההבדלים:
    • Files and Folders: גישה נקודתית (מסמכים/הורדות/דסקטופ).
    • Full Disk Access: גישה רוחבית (קבצי מערכת ומשתמשים אחרים).
  5. הסרת הרשאה: הדגם לחיצה על - כדי לאפס או להסיר הרשאת TCC לאפליקציה.
Instructor Deep-Dive (Technical Reference) * **TCC Databases:** הבחירות נשמרות במסד נתונים 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:** * תהליך הרקע שאוכף את החוקים בפועל. * איפוס הרשאות דרך 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 בסביבה ארגונית:
    • מהווה אתגר לניהול.
    • הפצת אנטי-וירוס דורשת Full Disk Access.
    • משתמשים שיתעלמו מההודעה יגרמו לכלי לא לתפקד.
  • הפיתרון: פרופיל PPPC:
    • Privacy Preferences Policy Control.
    • ה-MDM שולח פרופיל המאשר את האפליקציה מראש ללא Prompt למשתמש.
  • הגבלות וקווים אדומים:
    • לא ניתן לאשר מרחוק מצלמה או מיקרופון (כדי למנוע חדירה לפרטיות).
    • ניתן לאשר רק גישה לדיסק, או לדחות אישורים מסוימים (Deny).
    • פרופילים גם מאפשרים חסימת הפעלה של אפליקציות ספציפיות דרך Blocklist.

Demonstration:

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