مدقق OS X

مدقق OS X هو أداة مجانية لتحليل الأدلة الجنائية لأنظمة ماك OS X.
يقوم مدقق OS X بتحليل واستخراج قيم التجزئة (hashing) للقطع الأثرية التالية على النظام قيد التشغيل أو نسخة من نظام تريد تحليله:
- ملحقات النواة (kernel extensions)
- وكلاء وخدمات النظام (system agents and daemons)
- وكلاء وخدمات الطرف الثالث
- عناصر بدء التشغيل القديمة والمهملة من النظام والطرف الثالث
- وكلاء المستخدمين
- ملفات المستخدمين المحملة
- التطبيقات المثبتة
يقوم باستخراج:
- ملفات المستخدمين المحجوبة (quarantined files)
- سجل سفاري للمستخدم، التنزيلات، المواقع الأكثر زيارة، الجلسة الأخيرة، قواعد بيانات HTML5 والتخزين المحلي
- ملفات تعريف الارتباط في فايرفوكس، التنزيلات، سجل النماذج، الأذونات، الأماكن وإشارات الدخول (signons)
- سجل كروم للمستخدم وسجل الأرشيف، ملفات تعريف الارتباط، بيانات تسجيل الدخول، المواقع الأكثر زيارة، بيانات الويب، قواعد بيانات HTML5 والتخزين المحلي
- الحسابات الاجتماعية والبريد الإلكتروني للمستخدمين
- نقاط الوصول اللاسلكية التي اتصل بها النظام المدقق (ويحاول تحديد مواقعها جغرافياً)
كما يبحث عن كلمات رئيسية مشبوهة داخل ملفات .plist نفسها.
يمكنه التحقق من سمعة كل ملف من خلال:
- فريق Cymru's MHR
- VirusTotal
- قاعدة البيانات المحلية الخاصة بك
يمكنه تجميع جميع السجلات من الدلائل التالية في حزمة مضغوطة:
- /var/log (-> /private/var/log)
- /Library/logs
- ~/Library/logs الخاصة بالمستخدم
وأخيراً، يمكن عرض النتائج كـ:
- ملف سجل نصي بسيط (txt) (لتتمكن من استخدام cat-pipe-grep... أو فقط grep)
- ملف سجل HTML
- إرسال إلى خادم Syslog
المؤلف
Jean-Philippe Teissier - @Jipe_ وآخرون.
حالة التطوير
لم يعد مدقق OS X قيد الصيانة - لا ينبغي عليك استخدامه
الدعم
بدأ مدقق OS X كمشروع نهاية أسبوع ولم يعد قيد الصيانة. تم تفرع المشروع من قبل الفريق الرائع في Yelp الذين أنشأوا osxcollector.
أوصي باستخدام osxcollector (https://github.com/Yelp/osxcollector)
كيفية التثبيت
ما عليك سوى نسخ جميع الملفات من GitHub.
التبعيات
إذا كنت تخطط لتشغيل مدقق OS X على جهاز Mac، فستحصل على دعم كامل لتحليل ملفات plist من خلال OS X Foundation عبر pyobjc:
إذا لم تتمكن من تثبيت pyobjc أو كنت تخطط لتشغيل المدقق على نظام تشغيل آخر غير Mac OS X، فقد تواجه بعض المشاكل مع تحليل plist:
pip install biplist
pip install plist
ستتم إزالة هذه التبعيات عندما يتوفر وحدة plist أصلية عاملة في بايثون.
كيفية التشغيل
- يعمل مدقق OS X بشكل جيد مع بايثون >= 2.7.2 (2.7.9 مقبول). لا يعمل مع إصدار مختلف من بايثون حتى الآن (بسبب كابوس plist)
- يتم صيانة مدقق OS X للعمل على أحدث إصدار من OS X. وسيبذل قصارى جهده على الإصدارات الأقدم.
- يجب تشغيله كجذر (أو عبر sudo) إذا كنت تريد استخدامه على نظام قيد التشغيل، وإلا فلن يتمكن من الوصول إلى بعض ملفات النظام والمستخدمين الآخرين.
- إذا كنت تستخدم مفاتيح API من متغيرات البيئة (انظر أدناه)، فستحتاج إلى استخدام
sudo -E لاستخدام متغيرات بيئة المستخدم.
اكتب osxauditor.py -h للحصول على جميع الخيارات المتاحة، ثم قم بتشغيله بالخيارات المختارة.
مثال: [sudo -E] python osxauditor.py -a -m -l localhashes.db -H log.html
تعيين متغيرات البيئة
VirusTotal API:
export VT_API_KEY=aaaabbbbccccddddeeee
سجل التغييرات
0.4.3
0.4.2
- تغيير: تم نقل مفاتيح API من داخل الكود إلى متغيرات البيئة
0.4.1
- تغيير: البحث عن أبواب خلفية عامة في LaunchAgentPlist
0.4
- جديد: استخراج الأحداث (التمهيد/الإيقاف، السبات/الاستيقاظ، أوامر sudo، أجهزة USB، فتح/إغلاق محطات TTY، من سجلات النظام وإنشاء سجل زمني (غير قابل للقراءة بعد) (-e/eventlogs)
- جديد: استخراج عناصر تسجيل الدخول للمستخدمين (LoginItems)
- جديد: استخراج العناصر الأخيرة للمستخدمين (RecentItems)
- جديد: استخراج الجلسة الأخيرة من قطع سفاري الأثرية
- جديد: استخراج تفاصيل مجموعات النظام والمستخدمين
- إصلاح: استدعاءات خاطئة لـ os.path.join()
- إصلاح: خطأ في دالة ParsePackagesDir() التكرارية
0.3.1
- جديد: تقديم اسم النظام وإصداره وبنائه للنظام المدقق
- جديد: إمكانية تحليل التطبيقات المثبتة (-i/--installedapps)
- جديد: استخراج السجل المؤرشف من قطع أثرية لـ Google Chrome
- جديد: تقرير سجل HTML قابل للقراءة البشرية :)
- إصلاح: HTMLLog() و SYSLOGLog() يتعاملان الآن مع الاستثناءات
- إصلاح: ParsePackagesDir() أصبح الآن تكرارياً ويحاول فقط تحليل التطبيقات أو ملحقات النواة. تمت إضافة بعض مخرجات DEBUG أيضاً
- إصلاح: تحسين كبير في UTF-8/UNICODE
- إصلاح: يتم تجاهل ملفات .DS_Store و .localized في ParsePackagesDir()
0.3
- جديد: إمكانية تحليل قطع أثرية لـ Google Chrome (السجل وسجل الأرشيف، ملفات تعريف الارتباط، بيانات تسجيل الدخول، المواقع الأكثر زيارة، بيانات الويب، قواعد بيانات HTML5 والتخزين المحلي) مع -b/--browsers
- جديد: إمكانية استخراج نقاط الوصول اللاسلكية التي اتصل بها النظام المدقق من تفضيلات Airport ومحاولة تحديد مواقعها جغرافياً باستخدام Geomena (-A/--airportprefs). يجب استخدام -g/--wifiapgeolocate لتفعيل التحديد الجغرافي (أو تعيين GEOLOCATE_WIFI_AP إلى True في الكود).
- جديد: إمكانية استخراج حسابات المستخدمين الاجتماعية والبريد الإلكتروني (-U/--usersaccounts)
- إصلاح: القدرة على التعامل مع قواعد بيانات sqlite المقفلة خاصة أثناء تدقيق نظام حي
- إصلاح: إزالة تجزئات مكررة
- إصلاح: تحديد أفضل لـ md5 في مخرجات HTML
- تغيير: يشير إلى ما إذا كان القسم (عناصر بدء التشغيل، دليل الحزم، جداول قاعدة البيانات، إلخ...) فارغاً لتوضيح المخرجات
- تغيير: تتضمن قطع أثرية التنزيلات (-d/--downloads) أدلة التنزيل الافتراضية القديمة والجديدة لتطبيق Mail
0.2.1
- تغيير/إصلاح: تنفيذ دالة BigFileMd5() لتجزئة الملفات الكبيرة جداً، وتجنب استثناءات MemoryError وتقليل بصمة الذاكرة
- إصلاح: إدخالات UTF-8 من LSQuarantineEvent في ParseQuarantines()
0.2
- جديد: إمكانية إرسال النتائج إلى خادم syslogd عن بُعد (-S)
- جديد: إمكانية إنشاء حزمة مضغوطة لجميع ملفات السجل الموجودة على النظام المدقق (-z)
- تغيير: يشمل تحليل قطع بدء التشغيل عناصر StartupItems القديمة والمهملة
- تغيير: يشمل تحليل قطع بدء التشغيل ScriptingAdditions
- تغيير: يشمل تحليل القطع المحجوبة (quarantined) QuarantineEvents القديمة لأنظمة Mac OS X <= 10.6
- تغيير: تحسين كبير في معالجة plist باستخدام الجسر Python ⟷ Objective-C (PyObjC) و OS X Foundation
- تغيير: بعض التغييرات في معلمات الخيارات (-t, -l)
- تغيير: تغيير الترخيص من CC إلى GPL
- تغيير: مستويات التصحيح أصبحت الآن أكثر اتساقاً في سجلات المخرجات
- تغيير: تغيير صغير في CSS الخاصة بـ Bootstrap
- تغيير: يتم الآن البحث في VirusTotal بطريقة مجمعة (bulk)
- إصلاح: خطأ في ParseLaunchAgents() على ملفات plist التي تحتوي على كلا المفتاحين Program و ProgramArguments
0.1
التصميم والقدرات

القطع الأثرية
المستخدمون
-
Library/Preferences/com.apple.LaunchServices.QuarantineEventsV2
-
Library/Preferences/com.apple.LaunchServices.QuarantineEvents
-
Library/Preferences/com.apple.loginitems.plist
-
Library/Mail Downloads/
-
Library/Containers/com.apple.mail/Data/Library/Mail Downloads
-
Library/Accounts/Accounts3.sqlite
-
Library/Containers/com.apple.mail/Data/Library/Mail/V2/MailData/Accounts.plist
-
Library/Preferences/com.apple.recentitems.plist
-
Firefox
- Library/Application Support/Firefox/Profiles/
- cookies.sqlite
- downloads.sqlite
- formhistory.sqlite
- places.sqlite
- signons.sqlite
- permissions.sqlite
- addons.sqlite
- extensions.sqlite
- content-prefs.sqlite
- healthreport.sqlite
- webappsstore.sqlite
- Library/Safari/
- Downloads.plist
- History.plist
- TopSites.plist
- LastSession.plist
- Databases
- LocalStorage
- Library/Application Support/Google/Chrome/Default/
- History
- Archived History
- Cookies
- Login Data
- Top Sites
- Web Data
- databases
- Local Storage