Aftermath هو إطار استجابة للحوادث مفتوح المصدر يستند إلى Swift.
يمكن للمدافعين الاستفادة من العواقب من أجل جمع البيانات من المضيف المخترق وتحليلها لاحقًا. يمكن نشر العواقب من MDM (بشكل مثالي)، ولكن يمكن أيضًا تشغيلها بشكل مستقل عن سطر أوامر المستخدم المصاب.
يقوم Aftermath أولاً بتشغيل سلسلة من الوحدات للتجميع. سيتم إما كتابة مخرجات هذا إلى الموقع الذي تختاره، عبر خيار -o
أو --output
، أو بشكل افتراضي، سيتم كتابته إلى الدليل /tmp
.
بمجرد اكتمال عملية التجميع، يمكن سحب الملف المضغوط/الأرشيف النهائي من قرص المستخدم النهائي. يمكن بعد ذلك تحليل هذا الملف باستخدام وسيطة --analyze
المشار إليها في ملف الأرشيف. سيتم كتابة نتائج ذلك إلى الدليل /tmp
. يمكن للمسؤول بعد ذلك فك ضغط دليل التحليل هذا ورؤية عرض محلل لقواعد البيانات المجمعة محليًا، ومخطط زمني للملفات مع إنشاء الملف، وآخر وصول، وتواريخ آخر تعديل (إذا كانت متوفرة)، وقصة تتضمن الملف البيانات التعريفية وتغييرات قاعدة البيانات ومعلومات المتصفح لتعقب ناقل العدوى.
لإنشاء Aftermath محليًا، قم باستنساخه من المستودع
git clone https://github.com/jamf/aftermath.git
cd
في دليل Aftermath
cd < path_to_aftermath_directory >
البناء باستخدام Xcode
xcodebuild -scheme " aftermath "
cd
في مجلد الإصدار
cd build/Release
تشغيل بعد ذلك
sudo ./aftermath
يجب أن يكون برنامج Aftermath هو الجذر، بالإضافة إلى الوصول الكامل إلى القرص (FDA) حتى يتم تشغيله. يمكن منح FDA للتطبيق الطرفي الذي يعمل عليه.
يتم تشغيل الاستخدام الافتراضي لـ 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
يعملان على سلاسل رسائل إضافية والهدف هو جمع أكبر قدر ممكن من البيانات منها، فإنهما يخرجان عند انتهاء العواقب. ولهذا السبب، قد يتم اقتطاع السطر الأخير من ملف eslogger json أو ملف pcap الذي تم إنشاؤه من tcpdump.
يتوفر Aftermath.pkg ضمن الإصدارات. تم توقيع هذه الحزمة وتوثيقها. سيتم تثبيت الملف الثنائي التالي على /usr/local/bin/
. ستكون هذه هي الطريقة المثالية للنشر عبر MDM. نظرًا لأنه تم تثبيته في bin
، يمكنك بعد ذلك تشغيل ما بعد ذلك
sudo aftermath [option1] [option2]
لإلغاء تثبيت الملف الثنائي التالي، قم بتشغيل AftermathUninstaller.pkg
من الإصدارات. سيؤدي هذا إلى إلغاء تثبيت الملف الثنائي وتشغيل aftermath --cleanup
لإزالة أدلة ما بعد ذلك. إذا كانت هناك أي أدلة لاحقة موجودة في مكان آخر، من استخدام الأمر --output
، تقع على عاتق المستخدم/المسؤول إزالة الدلائل المذكورة.
--analyze -> analyze the results of the Aftermath results
usage: --analyze <path_to_aftermath_collection_file>
--collect-dirs -> specify locations of (space-separated) directories to dump those raw files
usage: --collect-dirs <path_to_dir> <path_to_another_dir>
--deep or -d -> perform a deep scan of the file system for modified and accessed timestamped metadata
WARNING: This will be a time-intensive, memory-consuming scan.
--disable -> disable a set of aftermath features that may collect personal user data
Available features to disable: browsers -> collecting browser information | browser-killswitch -> force-closes browers | -> databases -> tcc & lsquarantine databases | filesystem -> walking the filesystem for timestamps | proc-info -> collecting process information via TrueTree and eslogger | slack -> slack data | ul -> unified logging modules | all -> all aforementioned options
usage: --disable browsers browser-killswitch databases filesystem proc-info slack
--disable all
--es-logs -> specify which Endpoint Security events (space-separated) to collect (defaults are: create exec mmap). To disable, see --disable es-logs
usage: --es-logs setuid unmount write
--logs -> specify an external text file with unified log predicates (as dictionary objects) to parse
usage: --logs /Users/<USER>/Desktop/myPredicates.txt
-o or --output -> specify an output location for Aftermath collection results (defaults to /tmp)
usage: -o Users/user/Desktop
--pretty -> colorize Terminal output
--cleanup -> remove Aftermath folders from default locations ("/tmp", "/var/folders/zz/)
يستفيد هذا المشروع من مشروع TrueTree مفتوح المصدر، الذي كتبه وترخيصه جارون برادلي.