לדלג לתוכן

שיעור 03: אבטחת מידע

מדריך העברה למרצה


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

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

פסקת הכוונה למרצה (Direction)

המתח בין חופש לביטחון. בניגוד ל-iOS הסגורה, במק כל אחד יכול להוריד קבצים מכל מקום ברשת. תפקידך כאן הוא להסביר את "הגן הסגור למחצה" של אפל – מנגנון ה-Gatekeeper שמחייב מפתחים לחתום ולאשר את הקוד שלהם מול שרתי אפל. חשוב להראות לתלמידים שהאזהרות שהם רואים הן לא באגים, אלא מערכת הגנה חכמה.


🎤 הרצאה

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

🖥️ הדגמה

← Forward Reference: את Gatekeeper בפעולה נראה בשיעור 05 כשנתקין אפליקציות — שם תתנגשו בו בצורה הכי מציאותית.

  1. הגדרות אבטחה: פתח System Settings > Privacy & Security וגלול לאזור Security. (ב-Tahoe לעיתים נדרש להרחיב ל-Advanced).
  2. מקורות להורדה: הראה את שתי האפשרויות: App Store ו-App Store and known developers.
  3. עקיפת חסימה (אישור מותאם):
    • הסבר על כפתור "Open Anyway" בהגדרות.
    • הדגם את החלופה ב-Finder (עבור אפליקציות ישנות): קליק ימני > Open.
Instructor Deep-Dive (Technical Reference)
  • Gatekeeper Quarantine:
    • דפדפן שומר קובץ ומוסיף לו Extended Attribute הנקרא: com.apple.quarantine.
    • בניסיון פתיחה, LaunchServices מזהה את התגית ומעביר בדיקה ל-Gatekeeper.
  • Notarization Ticket:
    • כרטיס Notarization (Stapled Ticket) מוצמד לקובץ.
    • לעיתים Gatekeeper מוודא אונליין מול ocsp.apple.com שהרישיון לא בוטל.
  • CLI Control:
    • (הערה למרצה: פקודות אלו לשימושך האישי ויוצגו לתלמידים רק בשלבים מאוחרים יותר).
    • התהליך נשלט טכנית על ידי syspolicyd.
    • ביטול המנגנון: sudo spctl --master-disable (מחזיר את אפשרות "Anywhere").
    • בדיקת חתימת אפליקציה: spctl -a -v /Path/To/App.app.
  • App Translocation:
    • מעלה את האפליקציה בנתיב זמני (Read-Only) כדי למנוע טעינת ספריות זדוניות במקום שבו ירדה.

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

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

פסקת הכוונה למרצה (Direction)

חשוב לנפץ את המיתוס "למק אין אנטי-וירוס". יש לו, והוא מצוין. המטרה פה היא להראות למה התלמידים לא רואים אותו – כי בניגוד ל-Windows, אפל בנתה אותו שקוף לחלוטין (XProtect). הראו להם היכן הוא מסתתר במערכת דרך ה-GUI כדי שיידעו שהוא קיים ועובד עבורם ברקע.


🎤 הרצאה

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

🖥️ הדגמה

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

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

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

פסקת הכוונה למרצה (Direction)

מנגנון ה-TCC הוא "מפעל" ל-Prompt Fatigue (עייפות אישורים). כשאנחנו עובדים בארגון, המשתמשים נוטים ללחוץ על "Don't Allow" בטעות, ואז מתלוננים שהמיקרופון בזום לא עובד להם. הכינו את התלמידים (אנשי ה-IT העתידיים) לדעת לזהות שתקלות חומרה רבות הן בעצם חסימות תוכנתיות של ה-TCC בהגדרות המערכת.


🎤 הרצאה

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

🖥️ הדגמה

  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.
  • tccd Daemon:
    • תהליך הרקע שאוכף את החוקים בפועל באמצעות "שרשרת ייחוס" (Attribution Chain).
    • איפוס הרשאות דרך Terminal מתבצע עם: tccutil reset [Service] [BundleID].
    • דוגמה: tccutil reset Camera us.zoom.xos.
  • SIP (System Integrity Protection):
    • מגן על מסדי הנתונים. אפילו ה-root לא יכול לגשת אליהם ולשנותם ישירות.

4. תיבול ארגוני: שימוש בפרופיל PPPC לאישור אוטומטי של כלי IT

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

פסקת הכוונה למרצה (Direction)

כאן אנחנו סוגרים את המעגל הארגוני של TCC. הסברתם שה-Prompt פוגע בחוויה? עכשיו תראו את הפתרון של אנשי ה-IT (פרופילים מסוג PPPC). כלי ניהול כמו MDM "מזריקים" הגדרות ישירות למערכת שמדלגות על ה-Prompt. הראו להם היכן הפרופילים האלו מותקנים בהגדרות כדי שידעו לזהות מחשב מנוהל לעומת מחשב פרטי.


🎤 הרצאה

  • TCC בסביבה ארגונית:
    • מהווה אתגר לניהול (Prompt Fatigue).
    • הפצת אנטי-וירוס בארגון דורשת הרשאת Full Disk Access.
    • משתמשים שיתעלמו מההודעה יגרמו לכלי האבטחה לא לתפקד.
  • הפיתרון: פרופיל PPPC:
    • Privacy Preferences Policy Control.
    • ה-MDM שולח פרופיל המאשר את האפליקציה מראש ללא Prompt למשתמש.
  • הגבלות וקווים אדומים:
    • לא ניתן לאשר מרחוק מצלמה או מיקרופון (כדי למנוע חדירה מרחוק לפרטיות).
    • ניתן לאשר רק גישה לדיסק, או לדחות אישורים מסוימים מראש (Deny).
    • פרופילים גם מאפשרים חסימת הפעלה של אפליקציות ספציפיות דרך Blocklist.

🖥️ הדגמה

  1. הצגת הפרופיל:
    • ב-System Settings > Privacy & Security, גלול ל-Profiles או Device Management.
    • אם קיים פרופיל במחשב ההדגמה, הצג אותו.
  2. מראה מנוהל:
    • חזור ל-Privacy & Security והיכנס ל-Full Disk Access.
    • הראה כיצד נראית אפליקציה מנוהלת: המתג אפור ובלתי ניתן לשינוי על ידי המשתמש.
    • בדרך כלל מופיע הכיתוב "Managed by your organization".
  3. מערכת ה-MDM (אופציונלי למתקדמים):
    • הדגם במערכת MDM אמיתית (Jamf, Intune) היכן ה-IT מקנפג את ההרשאות הללו.
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.