
GCP, AWS और स्थानीय स्रोतों से डिस्क इमेज, पैकेज और संग्रह से फोरेंसिक फ़ाइल हैश सेट बनाता है, DFIR वर्कफ़्लो के लिए डीडुप्लीकेशन और PostgreSQL/Spanner निर्यात के साथ।
HashR आपको अपने डेटा स्रोतों के आधार पर अपने स्वयं के हैश सेट बनाने की अनुमति देता है। यह एक उपकरण है जो इनपुट स्रोतों (जैसे रॉ डिस्क इमेज, GCE डिस्क इमेज, ISO फ़ाइल, Windows अपडेट पैकेज, .tar.gz फ़ाइल, आदि) से फ़ाइलें और हैश निकालता है।
HashR निम्नलिखित घटकों से मिलकर बना है:
वर्तमान में कार्यान्वित importers:
फ़ाइलें निकाले जाने और हैश हो जाने के बाद परिणाम exporters को भेज दिए जाएंगे, वर्तमान में कार्यान्वित exporters:
आप चुन सकते हैं कि कौन से importers चलाने हैं, प्रत्येक की अलग-अलग आवश्यकताएँ हैं। इसके बारे में अधिक जानकारी नीचे दिए गए अनुभागों में मिल सकती है।
HashR को चलाने के लिए Linux OS आवश्यक है, यह भौतिक, वर्चुअल या क्लाउड मशीन हो सकती है। नीचे इष्टतम हार्डवेयर आवश्यकताएँ दी गई हैं:
HashR संभवतः कम विशिष्टताओं वाली मशीनों पर चल सकता है, हालांकि इसका पूरी तरह से परीक्षण नहीं किया गया था।
एक hashr बाइनरी बनाने के लिए निम्नलिखित कमांड चलाएँ:``` shell env GOOS=linux GOARCH=amd64 go build hashr.go
कोर hashR पैकेज के लिए परीक्षण चलाने हेतु आपको Spanner एमुलेटर चलाना होगा:``` shell
gcloud emulators spanner start
फिर सभी परीक्षण निष्पादित करने के लिए निम्न कमांड चलाएँ:``` shell go test -timeout 2m ./...
## HashR की स्थापना
### OSDFIR इंफ्रास्ट्रक्चर में HashR
आप HashR को [OSDFIR Infrastructure project](https://github.com/google/osdfir-infrastructure/tree/main/charts/hashr) के हिस्से के रूप में तैनात कर सकते हैं। यह तैनाती HashR को kubernetes cronjobs के रूप में चलाएगी और Timesketch के साथ आसान एकीकरण की अनुमति देती है।
### Docker का उपयोग करके HashR
Docker कंटेनर में HashR चलाने के लिए [डॉकर विशिष्ट मार्गदर्शिका](https://github.com/google/hashr/blob/main/docker/README.md) देखें।
### OS कॉन्फ़िगरेशन और आवश्यक तृतीय-पक्ष टूलिंग
HashR भारी-भरकम काम (डिस्क इमेज, वॉल्यूम, फाइल सिस्टम पार्स करना) Plaso का उपयोग करके करता है। आपको निम्न कमांड का उपयोग करके Plaso docker कंटेनर खींचने की आवश्यकता है:``` shell
docker pull log2timeline/plaso
हमें 7z की भी आवश्यकता है, जिसका उपयोग WSUS importer द्वारा Windows Update पैकेजों के पुनरावर्ती निष्कर्षण के लिए किया जाता है, ताकि इसे HashR चलाने वाली मशीन पर स्थापित किया जा सके:``` shell sudo apt install p7zip-full
आपको उस उपयोगकर्ता को, जिसके अंतर्गत HashR चलेगा, sudo के माध्यम से कुछ कमांड चलाने की अनुमति देनी होगी। यह मानते हुए कि आपका उपयोगकर्ता `hashr` है, एक फ़ाइल `/etc/sudoers.d/hashr` बनाएँ और उसमें डालें:``` shell
hashr ALL = (root) NOPASSWD: /bin/mount,/bin/umount,/sbin/losetup,/bin/rm
जिस उपयोगकर्ता के अंतर्गत HashR चलेगा, उसे भी docker चलाने में सक्षम होना होगा। यह मानते हुए कि आपका उपयोगकर्ता hashr है, उसे docker समूह में इस प्रकार जोड़ें:``` shell
sudo usermod -aG docker hashr
### प्रसंस्करण कार्यों के लिए भंडारण की स्थापना
HashR को संसाधित स्रोतों के बारे में जानकारी संग्रहीत करने की आवश्यकता होती है। यह प्रसंस्करण कार्यों के बारे में अतिरिक्त टेलीमेट्री भी संग्रहीत करता है: प्रसंस्करण समय, निकाले गए फ़ाइलों की संख्या, आदि। आप उपयोग करने के बीच चयन कर सकते हैं:
1. PostgreSQL
1. Cloud (GCP) Spanner
#### PostgreSQL भंडारण की स्थापना
अपने PostgreSQL इंस्टेंस को चलाने और बनाए रखने के कई तरीके हैं, सबसे सरल तरीकों में से एक इसे Docker कंटेनर में चलाना होगा। PostgreSQL Docker कंटेनर सेट करने के लिए नीचे दिए गए चरणों का पालन करें।
चरण 1: PostgreSQL Docker इमेज पुल करें।``` shell
docker pull postgres
चरण 2: PostgreSQL कंटेनर को पृष्ठभूमि में प्रारंभ करें और चलाएँ। पासवर्ड समायोजित करना सुनिश्चित करें।``` shell docker run -itd -e POSTGRES_DB=hashr -e POSTGRES_USER=hashr -e POSTGRES_PASSWORD=hashr -p 5432:5432 -v /data:/var/lib/postgresql/data --name hashr_postgresql postgres
चरण 3: एक टेबल बनाएं जिसका उपयोग प्रोसेसिंग जॉब्स को संग्रहीत करने के लिए किया जाएगा।``` shell
cat scripts/CreateJobsTable.sql | docker exec -i hashr_postgresql psql -U hashr -d hashr
In order to use PostgreSQL to store information about processing tasks you need to specify the following flags: -storage postgres -postgres_host <host> -postgres_port <port> -postgres_user <user> -postgres_password <pass> -postgres_db <db_name>
आप प्रोसेसिंग जॉब्स के बारे में डेटा Cloud Spanner में संग्रहीत करना चुन सकते हैं। इसके लिए आपको एक Google Cloud प्रोजेक्ट की आवश्यकता होगी। इस सेटअप का मुख्य लाभ यह है कि आप Google Data Studio का उपयोग करके आसानी से डैशबोर्ड बना सकते हैं और सीधे Cloud Spanner इंस्टेंस से कनेक्ट हो सकते हैं, जो आपके PostgreSQL इंस्टेंस के विरुद्ध क्वेरी चलाए बिना मॉनिटरिंग और डीबगिंग की अनुमति देता है।
यह मानते हुए कि आपका gcloud टूल आपके लक्षित hashr GCP प्रोजेक्ट के साथ कॉन्फ़िगर किया गया है, Cloud Spanner को सक्षम करने के लिए आपको नीचे दिए गए चरणों का पालन करना होगा।