
إطار عمل استجابة للحوادث قائم على Swift لنظام macOS لجمع وتحليل آثار المضيف، بما في ذلك الطوابع الزمنية لنظام الملفات، وبيانات المتصفح، والسجلات الموحدة، وآليات الاستمرارية، وأشجار العمليات، مع تحليل مدمج وتوليد جداول زمنية.

Aftermath هي إطار عمل مفتوح المصدر للاستجابة للحوادث مبني على لغة Swift.
يمكن للمدافعين الاستفادة من Aftermath لجمع وتحليل البيانات من المضيف المخترق. يمكن نشر Aftermath عبر MDM (من الناحية المثالية)، ولكن يمكن أيضاً تشغيلها بشكل مستقل من سطر أوامر المستخدم المخترق.
تقوم Aftermath أولاً بتشغيل سلسلة من الوحدات النمطية لجمع البيانات. سيتم كتابة المخرجات إما إلى الموقع الذي تختاره عبر الخيار -o أو --output، أو افتراضياً، تُكتب إلى مجلد /tmp.
بمجرد اكتمال الجمع، يمكن سحب ملف الأرشيف النهائي (الـ zip) من قرص المستخدم النهائي. يمكن بعد ذلك تحليل هذا الملف باستخدام الوسيط --analyze الموجه إلى ملف الأرشيف. ستتم كتابة نتائج التحليل إلى مجلد /tmp. يمكن للمسؤول بعد ذلك فك ضغط دليل التحليل ورؤية عرض محلّى لقواعد البيانات التي تم جمعها محلياً، وخط زمني للملفات مع تواريخ الإنشاء وآخر وصول وآخر تعديل (إذا كانت متاحة)، وسردية تتضمن بيانات وصفية للملفات وتغييرات قاعدة البيانات ومعلومات المتصفح لتتبع ناقل العدوى المحتمل.
لبناء Aftermath محلياً، قم باستنساخها من المستودع
git clone https://github.com/jamf/aftermath.git
انتقل إلى مجلد Aftermath
cd <path_to_aftermath_directory>
قم بالبناء باستخدام Xcode
xcodebuild -scheme "aftermath"
انتقل إلى مجلد Release
cd build/Release
قم بتشغيل aftermath
sudo ./aftermath
تحتاج Aftermath إلى صلاحيات الجذر وكذلك الوصول الكامل للقرص (FDA) لكي تعمل. يمكن منح صلاحية FDA لتطبيق Terminal الذي يتم التشغيل منه.
الاستخدام الافتراضي لـ Aftermath
sudo ./aftermath
لتحديد خيارات معينة
sudo ./aftermath [option1] [option2]
أمثلة
sudo ./aftermath -o /Users/user/Desktop --deep
sudo ./aftermath --analyze <path_to_collection_zip>
يمكن للمستخدمين تمرير ملف نصي من مسندات السجل الموحد إلى Aftermath باستخدام الوسيطين --logs أو -l. يجب أن يكون الملف الممرّر إلى Aftermath ملفاً نصياً ويجب أن يكون كل مسند مفصولاً بسطر جديد. بالإضافة إلى ذلك، سيكون كل عنصر سطر كائن قاموس. المفتاح في القاموس سيكون ما يرغب المستخدم في تسمية هذا المسند به. على سبيل المثال، إذا كنت تريد رؤية جميع أحداث تسجيل الدخول، سنقوم بإنشاء مسند وتسميته login_events.
login_events: processImagePath contains "loginwindow" and eventMessage contains "com.apple.sessionDidLogin
tcc: process == "tccd"
نظراً لأن eslogger و tcpdump يعملان على خيوط إضافية والهدف هو جمع أكبر قدر ممكن من البيانات منهما، فإنهما يخرجان عند خروج Aftermath. ولهذا السبب، قد يكون السطر الأخير من ملف json لـ eslogger أو ملف pcap الناتج عن tcpdump مقطوعاً.
يتوفر ملف Aftermath.pkg ضمن الإصدارات. تم توقيع وتوثيق هذا الـ pkg. سيقوم بتثبيت الثنائي aftermath في المسار /usr/local/bin/. هذه هي الطريقة المثالية للنشر عبر MDM. نظراً لأنه مثبت في bin، يمكنك بعد ذلك تشغيل aftermath كالتالي:
sudo aftermath [option1] [option2]
لإلغاء تثبيت الثنائي aftermath، قم بتشغيل AftermathUninstaller.pkg من الإصدارات. سيقوم ذلك بإلغاء تثبيت الثنائي وتشغيل aftermath --cleanup أيضاً لإزالة دلائل aftermath. إذا كانت أي دلائل aftermath موجودة في مكان آخر نتيجة استخدام أمر --output، فتقع مسؤولية إزالة تلك الدلائل على عاتق المستخدم/المسؤول.
--analyze -> تحليل نتائج Aftermath
الاستخدام: --analyze <path_to_aftermath_collection_file>
--collect-dirs -> تحديد مواقع (مفصولة بمسافات) للدلائل لتفريغ تلك الملفات الأولية
الاستخدام: --collect-dirs <path_to_dir> <path_to_another_dir>
--deep or -d -> إجراء فحص عميق لنظام الملفات للحصول على بيانات وصفية زمنية (تعديل ووصول)
تحذير: هذا الفحص سيستغرق وقتاً طويلاً ويستهلك ذاكرة كبيرة.
--disable -> تعطيل مجموعة من ميزات aftermath التي قد تجمع بيانات مستخدم شخصية
الميزات المتاحة للتعطيل: browsers -> جمع معلومات المتصفح | browser-killswitch -> إغلاق المتصفحات قسراً | databases -> قواعد بيانات tcc و lsquarantine | filesystem -> التجوال في نظام الملفات للطوابع الزمنية | proc-info -> جمع معلومات العملية عبر TrueTree و eslogger | slack -> بيانات Slack | ul -> وحدات التسجيل الموحد | all -> جميع الخيارات المذكورة أعلاه
الاستخدام: --disable browsers browser-killswitch databases filesystem proc-info slack
--disable all
--es-logs -> تحديد أحداث أمان نقطة النهاية (مفصولة بمسافات) لجمعها (الافتراضيات هي: create exec mmap). لتعطيلها، انظر --disable es-logs
الاستخدام: --es-logs setuid unmount write
--logs -> تحديد ملف نصي خارجي مع مسندات سجل موحد (ككائنات قاموس) لتحليلها
الاستخدام: --logs /Users/<USER>/Desktop/myPredicates.txt
-o or --output -> تحديد موقع مخرجات نتائج جمع Aftermath (الافتراضي هو /tmp)
الاستخدام: -o Users/user/Desktop
--pretty -> تلوين مخرجات Terminal
--cleanup -> إزالة مجلدات Aftermath من المواقع الافتراضية ("/tmp", "/var/folders/zz/")
يستفيد هذا المشروع من المشروع مفتوح المصدر TrueTree، الذي كتبه ورخصه Jaron Bradley.