
أداة ذكاء أمني آلي تجمع البيانات من الخلاصات العامة وواجهات برمجة التطبيقات للتهديدات الخاصة بعناوين IP، النطاقات، عناوين URL، التجزئات (hashes)، وبصمات SSL، مع إعدادات قائمة على YAML ومخرجات بصيغة JSON.

Machinae هي أداة لجمع الاستخبارات من المواقع/الخلاصات العامة حول أنواع مختلفة من البيانات المتعلقة بالأمن: عناوين IP، أسماء النطاقات، عناوين URL، عناوين البريد الإلكتروني، بصمات الملفات وبصمات SSL. استُوحيَت من Automater، وهي أداة ممتازة أخرى لجمع المعلومات. وُلد مشروع Machinae من الرغبة في تحسين Automater في 4 مجالات:
يمكن تثبيت Machinae باستخدام pip3:
pip3 install machinae
أو، إذا كنت تشعر بالمغامرة، يمكن تثبيته مباشرة من github:
pip3 install git+https://github.com/HurricaneLabs/machinae.git
ستحتاج إلى توفير أي تبعيات مطلوبة على نظامك لـ
تجميع وحدات Python (على الأنظمة القائمة على Debian، حزمة python3-dev)، بالإضافة إلى
حزمة تطوير libyaml (على الأنظمة القائمة على Debian، حزمة libyaml-dev).
ستحتاج أيضاً إلى الحصول على أحدث ملف تكوين ووضعه في
/etc/machinae.yml.
يدعم Machinae نظاماً بسيطاً لدمج التكوين يسمح لك بإجراء
تعديلات على التكوين دون تعديل ملف machinae.yml الذي نقدمه
لك، مما يجعل تحديثات التكوين سهلة للغاية. يتم ذلك من خلال العثور على تكوين افتراضي
على مستوى النظام (افتراضياً /etc/machinae.yml)، ثم دمج
تكوين محلي على مستوى النظام (/etc/machinae.local.yml) وأخيراً
تكوين محلي لكل مستخدم (~/.machinae.yml). يمكن أيضاً وضع التكوين
على مستوى النظام في دليل العمل الحالي، أو يمكن تعيينه باستخدام متغير البيئة
MACHINAE_CONFIG، أو بالطبع باستخدام خياري سطر الأوامر -c أو
--config. يمكن تعطيل دمج التكوين بتمرير الخيار --nomerge،
مما سيجعل Machinae يقوم بتحميل التكوين الافتراضي على مستوى النظام فقط (أو الذي تم تمريره عبر سطر الأوامر).
كمثال على ذلك، لنفترض أنك تريد تفعيل موقع Fortinet Category،
وهو معطل افتراضياً. يمكنك تعديل /etc/machinae.yml، لكن هذه
التغييرات ستُستبدل عند التحديث. بدلاً من ذلك، يمكنك وضع المحتوى التالي
في أي من /etc/machinae.local.yml أو ~/.machinae.yml:
fortinet_classify:
default: true
أو على العكس، لتعطيل موقع، مثل Virus Total pDNS:
vt_ip:
default: false
vt_domain:
default: false
استخدام Machinae مشابه جداً لـ Automater:
usage: machinae [-h] [-c CONFIG] [--nomerge] [-d DELAY] [-f FILE] [-i INFILE] [-v]
[-o {D,J,N,S}] [-O {ipv4,ipv6,fqdn,email,sslfp,hash,url}] [-q]
[-s SITES] [-a AUTH] [-H HTTP_PROXY]
[--dump-config | --detect-otype]
...
انظر أعلاه للحصول على تفاصيل الخيارات -c/--config و --nomerge.
يدعم Machinae الخيار -d/--delay، مثل Automater. ومع ذلك، يستخدم Machinae
0 افتراضياً.
يتم التحكم في إخراج Machinae من خلال وسيطين:
-o في صيغة الإخراج، ويمكن أن يتبعه حرف واحد
للإشارة إلى نوع الإخراج المطلوب:
-f/--file الملف الذي يجب كتابة الإخراج إليه. الافتراضي
هو "-" للإخراج القياسي stdout.سيحاول Machinae الكشف التلقائي عن نوع الهدف المُمرر (يشير Machinae
إلى الأهداف باسم "observables" والنوع باسم "otype"). يمكن تجاوز هذا الكشف
باستخدام الخيار -O/--otype. الخيارات مدرجة في الاستخدام أعلاه.
افتراضياً، يعمل Machinae في وضع verbose. في هذا الوضع، سيقوم بإخراج معلومات حالة حول الخدمات التي يستعلم عنها على وحدة التحكم أثناء الاستعلام. سيتم كتابة هذا الإخراج دائماً إلى stdout بغض النظر عن إعداد الإخراج. لتعطيل وضع verbose، استخدم
يأتي Machinae مع دعم جاهز لمصادر البيانات التالية:
مع إضافة مصادر بيانات إضافية قريباً.
يدعم Machinae مصادقة HTTP الأساسية للمواقع التي تتطلب ذلك من خلال العلم --auth/-a.
ستحتاج إلى إنشاء ملف YAML ببيانات اعتمادك، والذي سيتضمن
مفتاحاً للموقع الذي يتطلب بيانات الاعتماد وقائمة من عنصرين، اسم المستخدم
وكلمة المرور أو مفتاح API. على سبيل المثال، بالنسبة لموقع PassiveTotal المضمن قد يبدو هذا كالتالي:
passivetotal: ['[email protected]', 'my_api_key']
داخل تكوين الموقع تحت request سترى مفتاحاً مثل:
json:
request:
url: '...'
auth: passivetotal
يشير auth: passivetotal إلى المفتاح داخل تكوين المصادقة المُمرر
عبر سطر الأوامر.
المواقع التالية معطلة افتراضياً
fortinet_classify)telize)totalhash_ip)domaintools_parsed_whois)domaintools_reverse_whois)domaintools_reputation)passivetotal_pdns)passivetotal_whois)passivetotal_sslcert)passivetotal_components)passivetotal_trackers)maxmind)يأتي Machinae بمجموعة محدودة من صيغ الإخراج: عادي، عادي مع هروب النقاط، و JSON. نخطط لإضافة صيغ إخراج إضافية في المستقبل.
*** قريباً ***
رخصة MIT (MIT)
حقوق النشر (c) 2015 Hurricane Labs LLC
يُمنح الإذن، مجاناً، لأي شخص يحصل على نسخة من هذا البرنامج وملفات التوثيق المرتبطة به (الـ "البرنامج")، للتعامل في البرنامج دون قيود، بما في ذلك وبدون حصر حقوق استخدام، نسخ، تعديل، دمج، نشر، توزيع، ترخيص، و/أو بيع نسخ من البرنامج، والسماح للأشخاص الذين تم تزويدهم بالبرنامج بالقيام بذلك، بشرط مراعاة الشروط التالية:
يجب تضمين إشعار حقوق النشر أعلاه وهذا الإذن في جميع النسخ أو الأجزاء الجوهرية من البرنامج.
يُقدم البرنامج "كما هو"، دون أي ضمان من أي نوع، صريح أو ضمني، بما في ذلك وبدون حصر ضمانات القابلية للتسويق، الملاءمة لغرض معين وعدم التعدي. في أي حال من الأحوال لا يكون المؤلفون أو أصحاب حقوق النشر مسؤولين عن أي دعوى، أضرار أو أي مسؤولية أخرى، سواء في دعوى تعاقدية أو تقصيرية أو غير ذلك، تنشأ عن، من أو فيما يتعلق بالبرنامج أو الاستخدام أو التعاملات الأخرى في البرنامج.
-qافتراضياً، سيقوم Machinae بتشغيل جميع الخدمات في التكوين التي تنطبق على كل otype للهدف وليست موسومة بـ "default: false". لتعديل هذا السلوك، يمكنك:
all لتشغيل جميع الخدمات بما في ذلك
تلك الموسومة بـ "default: false"لاحظ أنه في كلتا الحالتين، لا يزال التحقق من صحة otype مطبقاً.
يدعم Machinae تمرير بروكسي HTTP عبر سطر الأوامر باستخدام الوسيطة
-H/--http-proxy. إذا لم يتم تحديد بروكسي، سيبحث Machinae في متغيرات البيئة
القياسية HTTP_PROXY و HTTPS_PROXY، بالإضافة إلى متغيرات البيئة
الأقل شيوعاً http_proxy و https_proxy.
أخيراً، يجب تمرير قائمة بالأهداف. جميع الوسائط بخلاف الخيارات المدرجة أعلاه سيتم تفسيرها كأهداف.
fraudguard)shodan)