DF-058: التحقيق في سجلات النظام الموحدة – macOS Unified Logs (log show)
تنويه أمني وإخلاء مسؤولية: هذا المقال مخصص لأغراض التعليم، التوعية الرقمية، والدفاع السيبراني فقط. إن استخدام هذه الأدوات أو الاستراتيجيات خارج إطار مصرح به يُعد مخالفة للقانون. نحن نهدف إلى تمكين الأفراد والمؤسسات من فهم آليات التهديد لحماية أنفسهم.

للاستزادة والتوسع الأكاديمي: إذا كنت ترغب في إثراء حصيلتك التقنية وقراءة مقالات وتحليلات تفصيلية حول أدوات ومفاهيم هذا الدرس، يمكنك زيارة قسم التحقيق الجنائي الرقمي في مدونة Digital Shield Lab للحصول على شرح معمّق وتطبيقات عمل إضافية.

 

المفهوم / المحور الأساسي:

فهم واستخراج تحليل نظام السجلات الموحد (Unified Logging System) في macOS، والتعرف على آلية تخزين السجلات في الذاكرة العشوائية وقواعد البيانات الثنائية (.tracev3)، واستخدام أداة السطر البرمجي log لاستعلام وفلترة أحداث النظام والتطبيقات والشبكة.

محتوى الغرفة (Content):

ماذا ستتعلم في هذه الغرفة؟

  • معمارية نظام Unified Logging في macOS والفرق بينه وبين سجلات /var/log التقليدية.

  • التعرف على مسارات تخزين السجلات الموحدة في /var/db/diagnostics/ وملفات التتبع الثنائية .tracev3.

  • استخدام أداة السطر البرمجي log show للفلترة والدعم الجنائي مع تحكم بدقة الأختام الزمنية.

  • بناء استعلامات متقدمة باستخدام Predicates لتتبع أحداث تسجيل الدخول، تنفيذ الأوامر، وتوصيل الأجهزة الخارجية (USB).

  • استخراج وتحليل ملفات الـ Diagnostic Reports وسجلات السقوط (Crash Logs).

محتوى الدرس:

ابتداءً من إصدار macOS Sierra، اعتمدت أبل نظام Unified Logging للجمع بين سجلات النواة، الخدمات، والتطبيقات في هيكلية واحدة مرتفعة الكفاءة.

1. بنية تخزين السجلات الموحدة:

  • لا تُحفظ السجلات الموحدة كنصوص عادية؛ بل تُخزن في هيئة ملفات ثنائية مضغوطة عالية الأداء بصيغة .tracev3 داخل المسار:/var/db/diagnostics/ و /var/db/uuidtext/.

  • تُقسم البيانات إلى:

    • Memory Buffers (In-Memory Logs): سجلات دقيقة لحظية قبل كتابتها للقرص.

    • Persisted Logs: ملفات .tracev3 المخزنة ماديًا على القرص الصلب.

2. استخدام أداة log show للتحقيق الجنائي:

  • نظرًا للفرز الثنائي للملفات، لا يمكن قراءة السجلات عبر cat أو grep مباشرة، بل يتعين استخدام أداة log.

  • عرض السجلات خلال إطار زمني محدد: log show --start "2026-09-28 00:00:00" --end "2026-09-28 01:00:00"

  • استخدام تصفية Predicates لاستخراج أحداث معينة:

    • لتتبع أحداث Sudo وتغيير الصلاحيات: log show --predicate 'process == "sudo"' --info

    • لتتبع محاولات الشاشة وتطبيقات تسجيل الدخول: log show --predicate 'subsystem == "com.apple.loginwindow"'

3. التجميع الاستباقي للبيانات (Unified Log Archive):

  • لجمع السجلات من جهاز ضحية دون العبث بها، يتم إنشاء أرشيف ثنائي كامل بصيغة .logarchive: sudo log collect --output /path/to/investigation.logarchive

  • يتم فتح هذا الأرشيف وقراءته على جهاز المحقق عبر أمر log show --archive.

💬 هل واجهتك صعوبة في تطبيق الأوامر أو لديك استفسار إضافي؟ إذا واجهتك أي مشكلة أثناء تنفيذ الخطوات التطبيقية (مثل عدم معرفة المتغيرات الواجب استبدالها في الأوامر البرمجية)، يمكنك طرح سؤالك ومشاركة استفسارك في قسم التحقيق الجنائي الرقمي بمنتديات Digital Shield Lab ليقوم الفريق والمجتمع بمساعدتك خطوة بخطوة.