
OS X के लिए एक फोरेंसिक साक्ष्य संग्रह और विश्लेषण टूलकिट

OSXCollector OS X के लिए एक फोरेंसिक साक्ष्य संग्रह और विश्लेषण टूलकिट है।
संग्रह स्क्रिप्ट संभावित रूप से संक्रमित मशीन पर चलती है और एक JSON फ़ाइल आउटपुट करती है जो लक्ष्य मशीन का वर्णन करती है। OSXCollector plists, SQLite डेटाबेस और स्थानीय फ़ाइल सिस्टम से जानकारी एकत्र करता है।
फोरेंसिक संग्रह से लैस, एक विश्लेषक इस तरह के प्रश्न का उत्तर दे सकता है:
Yelp अधिकांश OSXCollector रनों के विश्लेषण को स्वचालित करता है, इसके आउटपुट को सिर्फ संदिग्ध चीजों के आसानी से पढ़ने योग्य और कार्रवाई योग्य सारांश में परिवर्तित करता है। स्वचालित OSXCollector आउटपुट विश्लेषण का अधिकतम लाभ उठाने का तरीका जानने के लिए OSXCollector Output Filters project देखें।
osxcollector.py एक एकल Python फ़ाइल है जो एक मानक OSX मशीन पर बिना किसी निर्भरता के चलती है। यह किसी भी मशीन पर संग्रह चलाना बहुत आसान बनाता है - brew, pip, कॉन्फ़िग फ़ाइलों या पर्यावरण चरों से परेशान न हों। बस एकल फ़ाइल को मशीन पर कॉपी करें और इसे चलाएँ:
sudo osxcollector.py बस इतना ही चाहिए।
$ sudo osxcollector.py
Wrote 35394 lines.
Output in osxcollect-2014_12_21-08_49_39.tar.gz
यदि आपने अभी-अभी GitHub रिपॉजिटरी को क्लोन किया है, तो osxcollector.py osxcollector/ निर्देशिका के अंदर है, इसलिए आपको इसे इस प्रकार चलाना होगा:
$ sudo osxcollector/osxcollector.py
महत्वपूर्ण: कृपया सुनिश्चित करें कि आपकी Mac OS X मशीन पर python कमांड सिस्टम के साथ शिप किए गए डिफ़ॉल्ट Python इंटरप्रेटर का उपयोग करता है और इसे ओवरराइड नहीं किया गया है, उदा. brew के माध्यम से स्थापित Python संस्करण द्वारा। OSXCollector OS X लाइब्रेरीज़ के लिए कुछ देशी Python बाइंडिंग पर निर्भर करता है, जो आपके सिस्टम पर मूल रूप से स्थापित Python संस्करण के अलावा अन्य Python संस्करणों में उपलब्ध नहीं हो सकते हैं।
वैकल्पिक रूप से, आप osxcollector.py को उस Python संस्करण को स्पष्ट रूप से निर्दिष्ट करके चला सकते हैं जिसका आप उपयोग करना चाहते हैं:
$ sudo /usr/bin/python2.7 osxcollector/osxcollector.py
कलेक्टर का JSON आउटपुट, सिस्टम लॉग जैसी कुछ सहायक फ़ाइलों के साथ, एक .tar.gz में बंडल किया गया है जिसे विश्लेषक को सौंपा जा सकता है।
osxcollector.py में संग्रह के काम करने के तरीके को बदलने के लिए बहुत सारे उपयोगी विकल्प भी हैं:
-i INCIDENT_PREFIX/--id=INCIDENT_PREFIX:
एक पहचानकर्ता सेट करता है जिसका उपयोग आउटपुट फ़ाइल के उपसर्ग के रूप में किया जाता है। डिफ़ॉल्ट मान osxcollect है।
$ sudo osxcollector.py -i IncontinentSealord
Wrote 35394 lines.
Output in IncontinentSealord-2014_12_21-08_49_39.tar.gz
घटना नामों के साथ रचनात्मक बनें, इससे दर्द से गुज़रना आसान हो जाता है।
-p ROOTPATH/--path=ROOTPATH:
संग्रह चलाने के लिए फाइलसिस्टम के रूट का पथ सेट करता है। डिफ़ॉल्ट मान / है। यह डिस्क की छवि पर संग्रह चलाने के लिए बढ़िया है।
$ sudo osxcollector.py -p '/mnt/powned'
-s SECTION/--section=SECTION:
पूर्ण संग्रह का केवल एक भाग चलाता है। एक से अधिक बार निर्दिष्ट किया जा सकता है। अनुभागों और उपखंडों की पूरी सूची है:
versionsystem_infokextstartup
launch_agentsscripting_additionsstartup_itemslogin_itemsapplications
applicationsinstall_historyquarantinesdownloads
downloadsemail_downloadsold_email_downloadschrome
historyarchived_historycookieslogin_datatop_sitesweb_datadatabaseslocal_storagepreferencesfirefox
cookiesdownloadsformhistoryhistorysignonspermissionsaddonsextensioncontent_prefshealth_reportwebapps_storejson_filessafari
downloadshistoryextensionsdatabaseslocalstorageextension_filesaccounts
system_adminssystem_userssocial_accountsrecent_itemsmailfull_hash$ sudo osxcollector.py -s 'startup' -s 'downloads'
-c/--collect-cookies:
कुकीज़ का मान एकत्र करें।
डिफ़ॉल्ट रूप से OSXCollector कुकी का मान डंप नहीं करता, क्योंकि इसमें संवेदनशील जानकारी (जैसे सत्र आईडी) हो सकती है।
-l/--collect-local-storage:
वेब ब्राउज़रों के स्थानीय स्टोरेज में संग्रहीत मानों को एकत्र करें।
डिफ़ॉल्ट रूप से OSXCollector मानों को डंप नहीं करता क्योंकि उनमें संवेदनशील जानकारी हो सकती है।
-d/--debug:
वर्बोज़ आउटपुट और python ब्रेकपॉइंट्स को सक्षम करता है। यदि OSXCollector में कुछ गलत है, तो यह प्रयास करें।
$ sudo osxcollector.py -d
कलेक्टर एक .tar.gz आउटपुट करता है जिसमें सभी एकत्रित कलाकृतियाँ होती हैं। आर्काइव में अधिकांश जानकारी के साथ एक JSON फ़ाइल होती है। इसके अतिरिक्त, लक्ष्य सिस्टम लॉग से उपयोगी लॉग का एक सेट शामिल किया जाता है।
JSON फ़ाइल की प्रत्येक पंक्ति 1 जानकारी का टुकड़ा रिकॉर्ड करती है। कुछ सामान्य कुंजियाँ हैं जो प्रत्येक JSON रिकॉर्ड में दिखाई देती हैं:
osxcollector_incident_id: एक अद्वितीय ID जो प्रत्येक रिकॉर्ड में साझा होती है।osxcollector_section: इस रिकॉर्ड में डेटा का अनुभाग या प्रकार।osxcollector_subsection: डेटा के प्रकार का उपखंड या अधिक विस्तृत विवरण।फ़ाइलों का प्रतिनिधित्व करने वाले रिकॉर्ड के लिए कई उपयोगी कुंजियाँ हैं:
atime: फ़ाइल एक्सेस समय।ctime: फ़ाइल निर्माण समय।mtime: फ़ाइल संशोधित समय।file_path: फ़ाइल का निरपेक्ष पथ।md5: फ़ाइल सामग्री का MD5 हैश।sha1: फ़ाइल सामग्री का SHA1 हैश।sha2: फ़ाइल सामग्री का SHA2 हैश।डाउनलोड की गई फ़ाइलों का प्रतिनिधित्व करने वाले रिकॉर्ड के लिए:
xattr-wherefrom: डाउनलोड की गई फ़ाइल के स्रोत और रेफरर URL वाली एक सूची।xattr-quarantines: एक स्ट्रिंग जो बताती है कि किस एप्लिकेशन ने फ़ाइल डाउनलोड की।SQLite डेटाबेस की एक पंक्ति का प्रतिनिधित्व करने वाले रिकॉर्ड के लिए:
osxcollector_table_name: वह तालिका का नाम जिससे पंक्ति आती है।osxcollector_db_path: SQLite फ़ाइल का निरपेक्ष पथ।किसी विशिष्ट उपयोगकर्ता से जुड़े डेटा का प्रतिनिधित्व करने वाले रिकॉर्ड के लिए:
osxcollector_username: उपयोगकर्ता का नामOSXCollector टाइमस्टैम्प को YYYY-mm-dd hh:MM:ss प्रारूप में मानव-पठनीय दिनांक/समय स्ट्रिंग में बदलने का प्रयास करता है। यह स्वचालित रूप से विभिन्न टाइमस्टैम्प की पहचान करने के लिए heuristic का उपयोग करता है:
version अनुभागOSXCollector का वर्तमान संस्करण।
system_info अनुभागसिस्टम के बारे में बुनियादी जानकारी एकत्र करता है:
kext अनुभागकर्नेल एक्सटेंशन को एकत्र करता है:
/System/Library/Extensions/Library/Extensionsstartup अनुभागLaunchAgents, LaunchDaemons, ScriptingAdditions, StartupItems और अन्य लॉगिन आइटम के बारे में जानकारी एकत्र करता है: