לדלג לתוכן

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

מדריך עזר לתלמיד


מטרות השיעור

  • Gatekeeper
  • XProtect
  • TCC
  • PPPC

🎧 האזנה לסיכום — לפני או אחרי השיעור


מושגי יסוד (Terminology)

  • Gatekeeper: מנגנון האבטחה של macOS שמוודא שרק תוכנות ממקור מהימן (App Store או מפתחים מזוהים) מורשות לרוץ על המק. הוא בודק את חתימת המפתח ואת ה-Notarization.
  • Notarization: תהליך אוטומטי של Apple שבו אפליקציות נסרקות לאיתור קוד זדוני ידוע לפני הפצתן, עוד בטרם הגיע למשתמש. Gatekeeper דורש אישור זה עבור כל תוכנה המורדת מהאינטרנט.
  • XProtect: מערכת ה-Anti-Virus השקטה והמובנית של macOS. פועלת ברקע, מבוססת חתימות (YARA) וחוסמת הפעלה של תוכנות זדוניות מוכרות בעת ניסיון ההרצה הראשון.
  • XProtect Remediator: מנגנון סריקה אקטיבי שרץ ברקע (על ידי LaunchDaemons) ומבצע סריקות תקופתיות לאיתור והסרת נוזקות שכבר הצליחו לחדור למערכת.
  • Transparency, Consent, and Control (TCC): מנגנון הפרטיות של macOS, הדורש מהמשתמש לאשר באופן אקטיבי בקשות גישה של אפליקציות למשאבים רגישים (כגון מצלמה, מיקרופון, מיקום, תיקיית מסמכים או דיסק מלא).
  • Privacy Preferences Policy Control - PPPC: Configuration Profile (Payload) ארגוני המופץ על ידי מערכת ה-MDM ומאפשר למנהלי ה-IT להעניק מראש (או למנוע) הרשאות TCC עבור אפליקציות, ובכך למנוע מהמשתמשים לקבל חלוניות קופצות (Pop-ups) הדורשות אישור.
  • System Integrity Protection - SIP: מנגנון אבטחה ב-macOS המונע אפילו ממשתמש root לשנות קבצי מערכת רגישים, כולל את מסדי הנתונים של ה-TCC.
  • Quarantine: תגית (Extended Attribute) המוצמדת לקבצים שהורדו מהאינטרנט על ידי אפליקציות כמו ספארי, דואר או תוכנות מסרים. תגית זו מפעילה את הבדיקה של Gatekeeper עם פתיחת הקובץ.

אבני דרך היסטוריות באבטחת macOS

  • 2007 - Code Signing: הוצג לראשונה ב-Leopard, במקביל ליציאת ה-iPhone.
  • 2012 - Gatekeeper: נכנס לפעולה כדי לחסום הרצת קוד זדוני.
  • 2018 - TCC (Privacy): רק ב-Mojave צמחה המערכת והיום מגנה על עשרות משאבים (ב-15 השנים הראשונות פרטיות כמעט ולא נוהלה ברמת האפליקציה).
  • YARA Rules: מנוע ה-XProtect מבוסס על שפת YARA. השם הוא הלצה: "YARA: Another Recursive Acronym".

פקודות טרמינל (CLI Commands)

שימוש בטרמינל (שורת הפקודה)

מופיעות כאן פקודות טרמינל מתקדמות לניהול אבטחה ופרטיות. אין צורך לזכור את התחביר שלהן בעל פה כעת! ניתן פשוט לבצע העתק-הדבק במעבדה (למשל בתרגיל איפוס הרשאות הזום). הלימוד המעמיק של הטרמינל יתבצע באופן מסודר בשיעור 08.

חקירה וניהול של Gatekeeper (spctl)

הכלי spctl (SecAssessment system policy security) משמש לניהול ובדיקת מערכת ה-Gatekeeper.

  • בדיקת אפליקציה - הערכת Gatekeeper (האם היא מאושרת ותרוץ):

    spctl -a -vv /Applications/AppName.app
    
    (הדגל -a מבצע Assessment, -vv מציג פלט מפורט כולל מידע על ה-Notarization וזהות המפתח).

  • הסרת תגית ההסגר (Quarantine) מקובץ (עוקף את אזהרת ההפעלה הראשונית):

    xattr -d com.apple.quarantine /path/to/AppName.app
    

חקירה וניהול של XProtect (xprotect)

הכלי xprotect מאפשר בדיקה ושליטה על עדכוני החתימות.

  • בדיקת הגרסה המותקנת כעת של XProtect:
    xprotect version
    
  • כפיית התקנה של העדכון האחרון מ-iCloud:
    sudo xprotect update
    

ניהול ואיפוס הרשאות TCC (tccutil)

הכלי tccutil מאפשר לאפס הרשאות פרטיות שהוענקו, מה שמכריח את המערכת לבקש אותן שוב. לא ניתן להעניק הרשאות דרכו, רק לאפס.

  • איפוס כל הרשאות ה-TCC עבור כל האפליקציות:
    tccutil reset All
    
  • איפוס הרשאת מצלמה בלבד (לכל האפליקציות שביקשו עד כה):
    tccutil reset Camera
    
  • איפוס הרשאת מצלמה עבור אפליקציה ספציפית (לדוגמה, Terminal או Zoom):
    tccutil reset Camera com.apple.Terminal
    tccutil reset Camera us.zoom.xos
    

נתיבים קריטיים, לוגים ומסדי נתונים (Paths & Plists)

מיקומי מסדי הנתונים של TCC

מסדי הנתונים של TCC מוגנים על ידי SIP ולא ניתן לערוך אותם ידנית. * רמת המשתמש (מצלמה, מיקרופון, קבצים אישיים): ~/Library/Application Support/com.apple.TCC/TCC.db * רמת המערכת (Full Disk Access): /Library/Application Support/com.apple.TCC/TCC.db

XProtect & Remediator

  • מיקום העדכונים העדכני של XProtect (החל מ-Tahoe): /var/protected/xprotect/XProtect.bundle
  • האפליקציה המריצה את הסריקות של Remediator: /Library/Apple/System/Library/CoreServices/XProtect.app

שאילתות לוגים (Unified Logging) דרך הטרמינל

מערכת הלוגים - שיעור 16

הפקודות הבאות נראות מורכבות ומשתמשות בכלי log show. בשלב זה אין צורך להבין את ה-Predicates (תנאי הסינון). השתמשו בהן רק כהעתק-הדבק במקרה של דיבאג. אנו נלמד לכתוב שאילתות לוגים מתקדמות בשיעור האחרון של הקורס!

  • מעקב אחר פעילות Gatekeeper (חקירת חסימות אפליקציות ב-1h אחרונה):
    log show --predicate 'subsystem == "com.apple.syspolicy"' --info --last 1h
    
  • מעקב אחר חסימות של מערכת ה-TCC:
    log show --predicate 'subsystem == "com.apple.TCC"' --info --last 1h
    
  • צפייה בתוצאות הסריקה של XProtect Remediator (האם זוהתה נוזקה بـ-24h אחרונות):
    log show --predicate 'subsystem == "com.apple.XProtectFramework.PluginAPI"' --info --last 24h
    

קישורים מומלצים ולקריאה נוספת


🎬 סרטון סיכום


עזרים ויזואליים

המחשה ויזואלית (עזר לתלמיד)

תמונות אלו ממחישות את הממשק או המנגנון הרלוונטי לנושא השיעור.

What_is_a_Background_Security_Improvement__and_how_p1_21 What_is_a_Background_Security_Improvement__and_how_p3_21 26-Tahoe-Passwords-scaled 26-Tahoe-Settings-Privacy-scaled Slide99_image30 Slide99_image31