
تطبيق بايثون معياري لسحب معلومات استخباراتية حول الملفات الخبيثة
هذه أداة تُستخدم لجمع مصادر استخباراتية متنوعة لملف معين. تمت كتابة Fileintel بطريقة معيارية بحيث يمكن إضافة مصادر استخباراتية جديدة بسهولة.
يتم تعريف الملفات من خلال تجزئة الملف (MD5, SHA1, SHA256). المخرجات تكون بتنسيق CSV وتُرسل إلى STDOUT بحيث يمكن حفظ البيانات أو توجيهها إلى برنامج آخر. نظرًا لأن المخرجات بتنسيق CSV، فإن برامج جداول البيانات مثل Excel أو أنظمة قواعد البيانات ستكون قادرة بسهولة على استيراد البيانات.
يعمل هذا مع Python v2، لكن من المفترض أن يعمل أيضًا مع Python v3. إذا وجدت أنه لا يعمل مع Python v3، فيُرجى إرسال مشكلة (issue).
تم اختبار هذا الكود على Windows 7 و Mac OSX El Capitan. إذا جربت هذا على أي نوع آخر من الأجهزة، فيُرجى إخباري!
فيديو تقديمي لـ fileintel: https://youtu.be/MgJoy2fD0ZY
خلفية عن أداتي الأولى hostintel: https://github.com/keithjjones/hostintel
$ python fileintel.py -h
usage: fileintel.py [-h] [-a] [-v] [-n] [-o] [-t] [-r]
ConfigurationFile InputFile
Modular application to look up file intelligence information. Outputs CSV to
STDOUT.
positional arguments:
ConfigurationFile Configuration file
InputFile Input file, one hash per line (MD5, SHA1, SHA256)
optional arguments:
-h, --help show this help message and exit
-a, --all Perform All Lookups.
-v, --virustotal VirusTotal Lookup.
-n, --nsrl NSRL Lookup for SHA-1 and MD5 hashes ONLY!
-o, --otx OTX by AlienVault Lookup.
-t, --threatcrowd ThreatCrowd Lookup for SHA-1 and MD5 hashes ONLY!
-r, --carriagereturn Use carriage returns with new lines on csv.
أولاً، تأكد من أن ملف الإعدادات الخاص بك صحيح لجهاز الكمبيوتر/التثبيت الخاص بك. أضف مفاتيح API وأسماء المستخدمين الخاصة بك حسب الاقتضاء في ملف الإعدادات. Python و Pip مطلوبان لتشغيل هذه الأداة. توجد وحدات يجب تثبيتها من GitHub، لذا تأكد من أن أمر git متاح من سطر الأوامر الخاص بك. Git سهل التثبيت لأي منصة. بعد ذلك، قم بتثبيت متطلبات Python (قم بتشغيل هذا في كل مرة تقوم فيها بسحب (git pull) هذا المستودع أيضًا):
$ pip install -r requirements.txt
كانت هناك بعض المشاكل مع الإصدار الافتراضي من Python على Mac OSX (http://stackoverflow.com/questions/31649390/python-requests-ssl-handshake-failure). قد تحتاج إلى تثبيت الجزء الأمني من مكتبة requests باستخدام الأمر التالي:
$ pip install requests[security]
إذا كنت تستخدم استعلامات قاعدة بيانات NSRL، فقم بتنزيل مجموعة بيانات NSRL "الحد الأدنى" (Minimal) كملف مضغوط. ضعه في دليل يمكنك الوصول إليه وأشر ملف الإعدادات الخاص بك إلى ذلك الملف المضغوط. ليست هناك حاجة لفك ضغط بيانات NSRL.
إذا كنت ترغب في استخدام 7Zip (سريع) بدلاً من مكتبة Python الداخلية للـ zip (بطيئة) لقراءة ملف NSRL المضغوط الكبير، فستحتاج إلى تثبيت 7Zip. تثبيت 7Zip على Windows بسيط للغاية، لكن Mac OX X أو Linux سيحتاجان إلى تثبيت p7zip، أداة سطر الأوامر. بالنسبة لـ Mac OS X، يمكنك تثبيت هذه الأداة باستخدام Brew. بمجرد تثبيت 7Zip، ستحتاج إلى توجيه ملف الإعدادات الخاص بك بشكل مناسب إلى مكان وجود ملف 7z القابل للتنفيذ.
أخيرًا، أنا من محبي virtualenv لـ Python. لإنشاء تثبيت محلي مخصص لـ Python لتشغيل هذه الأداة، أوصيك بقراءة:
http://docs.python-guide.org/en/latest/dev/virtualenvs/
$ python fileintel.py myconfigfile.conf myhashes.txt -a > myoutput.csv
يجب أن تكون قادرًا على استيراد myoutput.csv إلى أي برنامج قاعدة بيانات أو جداول بيانات.
لاحظ أنه اعتمادًا على شبكتك، وحدود مفتاح API الخاص بك، والبيانات التي تبحث عنها، يمكن أن يعمل هذا البرنامج النصي لفترة طويلة جدًا! استخدم كل وحدة باعتدال! في مقابل الانتظار الطويل، توفر على نفسك عناء سحب هذه البيانات يدويًا.
توجد بعض البيانات العينة في دليل "sampledata". تم اختيار التجزئات (hashes) عشوائيًا ولا يقصد بها بأي حال استهداف أي مؤسسة أو فرد. يعمل تشغيل هذه الأداة على البيانات العينة بالطريقة التالية:
$ python fileintel.py local/config.conf sampledata/smallerlist.txt -a > sampledata/smallerlist.csv
INFO: Using 7Zip from: /usr/local/bin/7z
Preprocessing NSRL database.... please hold...
*** Processing 275a021bbfb6489e54d471899f7db9d1663fc695ec2fe2a2c4538aabf651fd0f ***
*** Processing 001025c6d4974fb2ccbea56f710282aca6c1353cc7120d5d4a7853688084953a ***
*** Processing 001025c6d4974fb2ccbea56f710282aca6c1353cc7120d5d4a7853688084953b ***
*** Processing 92945627f32dfde376ffb7091b5faad2 ***
*** Processing 92945627f32dfde376ffb7091b5faad1 ***
*** Processing CEEF161D68AE2B690FA9616361271578 ***
*** Processing D41D8CD98F00B204E9800998ECF8427E ***
*** Processing B284A42B124849E71DBEF653D30229F1 ***
*** Processing 0322A0BA58B95DB9A2227F12D193FDDEA74CFF89 ***
*** Processing E02CE6D73156A11BA84A798B26DE1D12 ***
*** Processing B4ED7AEDACD28CBBDE6978FB09C22C75 ***
*** Processing C6336EA255EFA7371337C0882D175BEE44CBBD49 ***
$ python fileintel.py local/config.conf sampledata/largerlist.txt -a > sampledata/largerlist.csv
INFO: Using 7Zip from: /usr/local/bin/7z
Preprocessing NSRL database.... please hold...
*** Processing 275a021bbfb6489e54d471899f7db9d1663fc695ec2fe2a2c4538aabf651fd0f ***
*** Processing 001025c6d4974fb2ccbea56f710282aca6c1353cc7120d5d4a7853688084953a ***
*** Processing CEEF161D68AE2B690FA9616361271578 ***
*** Processing D41D8CD98F00B204E9800998ECF8427E ***
*** Processing B284A42B124849E71DBEF653D30229F1 ***
*** Processing 0322A0BA58B95DB9A2227F12D193FDDEA74CFF89 ***
*** Processing E02CE6D73156A11BA84A798B26DE1D12 ***
*** Processing B4ED7AEDACD28CBBDE6978FB09C22C75 ***
*** Processing C6336EA255EFA7371337C0882D175BEE44CBBD49 ***
...
*** Processing 09a64957060121a765185392fe2ec742 ***
*** Processing e0ab52a76073bff4a27bdf327230103d ***
*** Processing 02a5bd561c140236a3380785a3544b71 ***
*** Processing 152c3bb23cc9cb0b0112051b94f69d47 ***
*** Processing 2c9a5e7ce87259ec89e182416ac3a4f8 ***
*** Processing c777b094a3469610d81c139c952e380e ***
*** Processing aa58d9126ed96fa61f53e4f6c0bcd6b4 ***
*** Processing a68e53c42e2d0968e2fbcd168323725f ***
*** Processing a1651db6630f90b11576389aa714ad41 ***
هذا التطبيق مغطى برخصة Creative Commons BY-SA.
اقرأ Contributing.md