לדלג לתוכן

פרק 16: מעבדה מעשית (Hands-On Lab) – ניתוח זירת פשע: לוגים ודיאגנוסטיקה

מטרת התרגול

מעבדה זו מתמקדת בשימוש מתקדם בכלי הדיאגנוסטיקה המובנים של macOS 26. נתרגל קריאה, סינון וניתוח של ה-Unified Logging System באמצעות הממשק הגרפי (Console.app). לאחר מכן, נלמד כיצד להפיק ולנתח את ארכיון ה-Sysdiagnose. התרגול תסתיים בתרחיש "חדר בריחה" ארגוני שבו תשתמשו בכלים הוויזואליים של המערכת כדי לאתר את שורת הלוג הספציפית ("האקדח המעשן") שמוכיחה כי פקודות ה-MDM נחסמות.

דרישות קדם (Prerequisites)

  • מחשב מק המריץ macOS.
  • גישת Admin כדי לצפות בלוגים מורחבים ב-Console וכדי ליצור Sysdiagnose.
  • (מומלץ לתרגיל 4) חיבור של המחשב לשרת MDM.

תרגיל 1: שליטה ויזואלית באפליקציית Console וסינון רעשים

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

שלב 1: התחלת ניטור חי ב-Console

  1. פתחו את אפליקציית Console מתוך תיקיית Applications > Utilities (או באמצעות חיפוש ב-Spotlight).
  2. בחלונית הצדדית השמאלית (Sidebar), תחת קטגוריית Devices, ודאו שמחשב המק המקומי שלכם מסומן.
  3. בסרגל הכלים העליון, לחצו על כפתור Start (אם הזרם טרם החל). תבחינו בזרם בלתי פוסק של נתונים ואירועים חולפים.
  4. לחצו על כפתור Pause כדי לעצור את הזרם. זהו תמיד הצעד הראשון בחקירת לוגים אקטיבית.

שלב 2: סינון לפי תהליך (Process)

  1. לחצו שוב על Start כדי לחדש את הזרם.
  2. בשורת החיפוש בפינה הימנית העליונה, הקלידו את המילה mdmclient ולחצו Enter.
  3. כברירת מחדל, ה-Console מחפש את המילה הזו בכל השדות ומוסיף מסנן תחת התגית Any.
  4. לחצו על החץ הקטן המופיע ליד המילה "Any" (בסרגל האפור שנוצר מתחת לשורת החיפוש), ושנו את ההגדרה ל-Process.
  5. כעת הזרם מצטמצם משמעותית, ואתם רואים אך ורק פעולות של סוכן ה-MDM המקומי.

שלב 3: החרגת רעשים (Exclude)

  1. בזמן שהזרם רץ, אתרו שורת לוג שחוזרת על עצמה ושאינה רלוונטית לחקירה.
  2. לחצו קליק ימני (Right-Click) על אותה שורה ובחרו ב-Hide messages like this (או ב-Hide process).
  3. שימו לב כיצד מתווסף באופן אוטומטי מסנן חדש לשורת החיפוש העליונה, ועליו סימן שלילה. פעולה זו מאפשרת לכם לנקות את התצוגה ממידע לא רלוונטי.

תרגיל 2: חיפוש מתקדם בממשק הגרפי (Saved Searches & Multiple Filters)

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

שלב 1: בניית חיתוך מורכב (Multiple Filters)

  1. מחקו את כל המסננים הקיימים בשורת החיפוש (באמצעות ה-X הקטן בכל תגית מסנן).
  2. הקלידו com.apple.TCC (השירות שאחראי על הרשאות פרטיות ב-macOS) ולחצו Enter.
  3. שנו את סוג המסנן מ-Any ל-Subsystem.
  4. כעת, הקלידו בשורת החיפוש את המילה error ולחצו Enter.
  5. שנו את סוג המסנן של המילה error מ-Any ל-Message Type.
  6. קיבלתם כעת שאילתה המציגה אך ורק שגיאות השייכות למערכת ההרשאות.

שלב 2: שמירת החיפוש (Saved Searches)

  1. אם זו שאילתה שאתם צריכים להריץ באופן יומיומי בעבודתכם, לחצו על כפתור ה-Save הממוקם מתחת לשורת החיפוש (מימין לשורת המסננים האפורה).
  2. תנו לחיפוש שם ברור, למשל "TCC Errors".
  3. החיפוש השמור יופיע כעת בסרגל הכלים העליון של אפליקציית ה-Console, וניתן ללחוץ עליו בכל עת בלחיצת כפתור אחת.

שלב 3: צפייה חיה במתרחש (Streaming)

  1. מחקו את המסננים הקיימים, והקלידו SoftwareUpdate בשורת החיפוש. שנו את הפילטר ל-Process.
  2. ודאו שה-Console נמצא במצב Start.
  3. פתחו את System Settings ונווטו ל-General > Software Update.
  4. עקבו במקביל בחלון ה-Console וראו כיצד פעולת בדיקת העדכונים משתקפת באופן ויזואלי ומיידי באמצעות כתיבת לוגים.

תרגיל 3: הפקה וניתוח של Sysdiagnose בעזרת ממשק המשתמש

תרחיש: מהנדסי התמיכה של אפל (או צוות ה-Tier 3 בארגון שלכם) זקוקים לתמונת מצב מקיפה של המערכת מרגע הקריסה או התקלה. יש להפיק את דו"ח ה-Sysdiagnose העצום, המכיל מאות מגה-בייטים של נתוני אבחון.

שלב 1: יצירת הארכיון דרך Activity Monitor

  1. פתחו את אפליקציית Activity Monitor (מתוך Applications > Utilities).
  2. בשורת התפריטים העליונה של האפליקציה, חפשו את סמל הכלים או גלגל השיניים שנקרא System Diagnostics Options (תלוי בגרסת המערכת).
  3. לחצו עליו ובחרו באפשרות Run System Diagnostics.
  4. עליכם להסכים לתנאי האזהרה של אפל (המסבירים שהדו"ח מכיל מידע רגיש) ולהזין את סיסמת מנהל המערכת שלכם.
  5. התהליך לוקח בין 3 ל-10 דקות ואוסף מידע רב ברקע. המתינו בסבלנות.

(הערה: ניתן להפיק את הקובץ גם ללא Activity Monitor, על ידי הקשה על קיצור המקלדת הגלובלי Shift + Control + Option + Command + Period (.). המסך יהבהב בקצרה לאישור תחילת התהליך).

שלב 2: פירוק וחקר הארכיון

  1. בסיום התהליך, יקפוץ אוטומטית חלון Finder ויציג את קובץ הארכיון הדחוס (בפורמט .tar.gz) בנתיב המוסתר /private/var/tmp/.
  2. גררו את הקובץ לשולחן העבודה וחלצו אותו (Unzip) על ידי לחיצה כפולה.
  3. היכנסו לתיקייה המחולצת. סקרו את מבנה התיקיות העשיר – תמצאו שם רשימות של תהליכים פתוחים, מצב חיבורי הרשת, פירוט זיכרון ועוד.
  4. אתרו את הקובץ המרכזי שנקרא system_logs.logarchive.
  5. לחיצה כפולה עליו תפתח אותו ישירות באפליקציית Console. כעת אתם מסוגלים "לנסוע בזמן" ולסנן את הלוגים ההיסטוריים בדיוק כפי שעשיתם בתרגיל הקודם.

תרגיל 4: "חדר הבריחה" הארגוני - איתור חסימת MDM (The Smoking Gun)

תרחיש "חדר הבריחה": משתמש קצה טוען שהוא לא מקבל פרופילים ופקודות מה-MDM הארגוני. כאיש IT, אתם חושדים שה-Firewall הארגוני חוסם את התקשורת של המק לשרתי אפל. עליכם לספק הוכחה חותכת מתוך הלוגים לצוות ה-Network כדי שישחררו את החסימה.

שלב 1: דימוי פעילות MDM

  1. פתחו את System Settings ונווטו ל-Privacy & Security > Profiles (או תחת Device Management בגרסאות חדשות).
  2. אם יש לכם פרופיל MDM מותקן, לחצו עליו לחיצה כפולה כדי לראות את הסטטוס שלו. (במידה ואין לכם פרופיל, בדיקת עדכוני תוכנה כפי שעשינו קודם תייצר תנועת רשת שתוכלו לעקוב אחריה כתרגול חלופי).

שלב 2: תחקור אירוע הרשת ב-Console

  1. פתחו את אפליקציית Console.
  2. הקלידו בשורת החיפוש mdmclient ושנו את הפילטר ל-Process.
  3. כעת, הקלידו בשורת החיפוש מילות מפתח המסגירות כשלים ברשת, כגון timeout, failed או unreachable, והשאירו את הפילטר על Any.

שלב 3: איתור שורת "האקדח המעשן"

  1. סרקו את התוצאות עד שתאתרו את השגיאה המדויקת של מערכת הרשת (לרוב תחת ה-subsystem של com.apple.mdmclient או NSURLErrorDomain).
  2. חפשו פלט הדומה לאחת מהאפשרויות הבאות:
  3. NSURLErrorDomain error -1001 (The request timed out)
  4. Failed to connect to MDM server: Host is down
  5. APNs connection dropped / failed to establish
  6. העתיקו את שורת הלוג הזו. זהו פתרון חדר הבריחה. שורה זו מהווה את ההוכחה הנדרשת לצוות התקשורת הארגוני לכך שהמק מנסה לפנות החוצה, אך ה-Firewall שמט את החבילה (Dropped).

תרגיל אקסטרה / קצה קרחון טכני

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

1. חקירת לוגים מתוך הטרמינל (במקום שימוש ב-Console): הפקודה log show מאפשרת לדלות מידע ולסנן אותו באמצעות "Predicates" (התואמים למסננים הגרפיים):

log show --predicate 'process == "mdmclient" AND eventType == error' --info --last 2h
הסבר: הפקודה תציג שגיאות של תהליך ה-MDM מהשעתיים האחרונות עם פירוט מורחב.

2. הפקת Sysdiagnose באמצעות פקודה (במקום מתוך Activity Monitor): אם נדרש להפיק דיאגנוסטיקה באופן מרוחק ללא ממשק גרפי, מריצים את הפקודה הבאה שמנתבת את קובץ הארכיון לשולחן העבודה:

sudo sysdiagnose -f ~/Desktop/