للاستزادة والتوسع الأكاديمي: إذا كنت ترغب في إثراء حصيلتك التقنية وقراءة مقالات وتحليلات تفصيلية حول أدوات ومفاهيم هذا الدرس، يمكنك زيارة قسم التحقيق الجنائي الرقمي في مدونة Digital Shield Lab للحصول على شرح معمّق وتطبيقات عمل إضافية.
المفهوم / المحور الأساسي:
فهم وتتبع آلية الحجر الصحي (Quarantine Management) ونظام الأمان Gatekeeper في macOS، واستخراج السجلات الرقمية المسؤولة عن تتبع مصدر الملفات المُحملة من شبكة الإنترنت أو البريد الإلكتروني (com.apple.quarantine) وقواعد بيانات SQLite الخاصة بها لكشف منشأ البرمجيات الخبيثة (Initial Access Analysis).
محتوى الغرفة (Content):
ماذا ستتعلم في هذه الغرفة؟
-
آليات عمل نظام Gatekeeper والفرق بين التوقيع الرقمي المعتمد والموثق (Notarization) والملفات المجهولة.
-
فهم السمة الممتدة للأنظمة (Extended Attribute) المسماة
com.apple.quarantineوكيفية قراءة وتفكيك محتواها. -
التحليل الجنائي لقاعدة بيانات الأحداث الحجرية
com.apple.LaunchServices.quarantineeventsV2المعتمدة على SQLite. -
تحديد العناوين المصدرية (URL) وتطبيقات التحميل (مثل Safari, Chrome, Slack) للملفات المشبوهة.
-
ربط أحداث الحجر الصحي بشرائح زمنية (Timestamps) لإثبات طريقة تسلل البرمجيات الخبيثة لجهاز الضحية.
محتوى الدرس:
عندما يقوم المستخدم بتحميل أي ملف من الإنترنت، يفرض macOS آلية أمان مدمجة تتكون من شقين: Quarantine System و Gatekeeper.
1. السمة الممتدة com.apple.quarantine:
-
عند تحميل ملف، يضيف نظام التشغيل سمة ممتدة (Extended Attribute – xattr) إلى الملف تحتوي على معرفات التتبع (Quarantine ID) والتطبيق المصدر.
-
الأمر الجنائي لقراءة السمة الممتدة:
xattr -p com.apple.quarantine /path/to/downloaded_file -
إزالة السمة (تكتيك تتخذه البرمجيات الخبيثة لتجاوز التحذير):
xattr -d com.apple.quarantine /path/to/file
2. قاعدة بيانات أحداث الحجر الصحي (Quarantine Events Database):
-
يُسجل النظام كافّة عمليات التحميل التي تمت على الجهاز داخل قاعدة بيانات SQLite شاملة.
-
مسار قاعدة البيانات:
~/Library/Preferences/com.apple.LaunchServices.quarantineeventsV2 -
استعلام SQLite نموذجي لاستخراج الروابط والتاريخ:
sqlite3 com.apple.LaunchServices.quarantineeventsV2 "SELECT LSQuarantineTimeStamp, LSQuarantineAgentBundleIdentifier, LSQuarantineDataURLString FROM LSQuarantineEvent;"
💬 هل واجهتك صعوبة في تطبيق الأوامر أو لديك استفسار إضافي؟ إذا واجهتك أي مشكلة أثناء تنفيذ الخطوات التطبيقية (مثل عدم معرفة المتغيرات الواجب استبدالها في الأوامر البرمجية)، يمكنك طرح سؤالك ومشاركة استفسارك في قسم التحقيق الجنائي الرقمي بمنتديات Digital Shield Lab ليقوم الفريق والمجتمع بمساعدتك خطوة بخطوة.
