
Malcom - محلل اتصالات البرمجيات الخبيثة
Malcom هي أداة مصممة لتحليل اتصالات الشبكة لنظام ما باستخدام تمثيلات بيانية لحركة مرور الشبكة، ومقارنتها بمصادر البرامج الضارة المعروفة. وهذا مفيد عند تحليل كيفية محاولة أنواع معينة من البرامج الضارة التواصل مع العالم الخارجي.
يمكن لـ Malcom مساعدتك في:
هدف Malcom هو تسريع تحليل البرامج الضارة وجمع المعلومات الاستخباراتية من خلال تقديم نسخة قابلة للقراءة البشرية من حركة مرور الشبكة الصادرة من مضيف معين أو شبكة معينة. تحويل معلومات حركة مرور الشبكة إلى معلومات استخباراتية قابلة للتنفيذ بشكل أسرع.
تفقد الويكي لدليل البدء السريع مع بعض لقطات الشاشة الجميلة ودرس تعليمي حول كيفية إضافة مغذياتك الخاصة.
إذا كنت بحاجة إلى مساعدة، أو تريد المساهمة، لا تتردد في الانضمام إلى القائمة البريدية أو حاول العثور على شخص ما على IRC (#malcom على freenode.net، إنه هادئ جدًا ولكن يوجد دائمًا شخص ما حولك). يمكنك أيضًا التواصل معي على تويتر @tomchop_
فيما يلي مثال على رسم بياني للمضيف tomchop.me

عرض مجموعة البيانات (مصفى لإظهار عناوين IP فقط)

mongodb و redis-server./malcom.py -c malcom.conf (أو راجع الخيارات مع ./malcom.py --help)
** للحصول على ملف تكوين مثال، يمكنك نسخ malcom.conf.example إلى malcom.conf
** المنفذ الافتراضي هو 8080
** بدلاً من ذلك، قم بتشغيل المغذيات من celery. راجع قسم المغذيات للحصول على تفاصيل حول كيفية القيام بذلك.Malcom مكتوب بلغة python. بشرط توفر المكتبات اللازمة، يجب أن تكون قادرًا على تشغيله على أي منصة. أوصي بشدة باستخدام البيئات الافتراضية python (virtualenv) حتى لا تفسد مكتبات النظام لديك.
تم اختبار ما يلي على Ubuntu server 14.04 LTS:
قم بتثبيت git و python و libevent libs و mongodb و redis وغيرها من التبعيات
$ sudo apt-get install build-essential git python-dev libevent-dev mongodb libxml2-dev libxslt-dev zlib1g-dev redis-server libffi-dev libssl-dev python-virtualenv
استنساخ مستودع Git:
$ git clone https://github.com/tomchop/malcom.git malcom
قم بإنشاء بيئتك الافتراضية وتفعيلها:
$ cd malcom
$ virtualenv env-malcom
$ source env-malcom/bin/activate
احصل على scapy وقم بتثبيته:
$ cd ..
$ wget http://www.secdev.org/projects/scapy/files/scapy-latest.tar.gz
$ tar xvzf scapy-latest.tar.gz
$ cd scapy-2.1.0
$ python setup.py install
لا تزال من البيئة الافتراضية الخاصة بك، قم بتثبيت حزم python اللازمة من ملف requirements.txt:
$ cd ../malcom
$ pip install -r requirements.txt
لكي يعمل تحديد الموقع الجغرافي IP، تحتاج إلى تنزيل قاعدة بيانات Maxmind واستخراج الملف إلى دليل malcom/Malcom/auxiliary/geoIP. يمكنك الحصول على قاعدة البيانات المجانية (وبالتالي أكثر أو أقل دقة) من Maxmind من الرابط التالي: http://dev.maxmind.com/geoip/geoip2/geolite2/:
$ cd Malcom/auxiliary/geoIP
$ wget http://geolite.maxmind.com/download/geoip/database/GeoLite2-City.mmdb.gz
$ gunzip -d GeoLite2-City.mmdb.gz
$ mv GeoLite2-City.mmdb GeoIP2-City.mmdb
قم بتشغيل خادم الويب من دليل malcom باستخدام ./malcom.py. تحقق من ./malcom.py --help لواجهة الاستماع والمنافذ.
malcom.conf.example إلى malcom.conf وتشغيل ./malcom.py -c malcom.confافتراضيًا، سيحاول Malcom الاتصال بمثيل mongodb محلي وإنشاء قاعدة البيانات الخاصة به، المسماة malcom. إذا كان هذا مناسبًا لك، يمكنك تخطي الخطوات التالية. خلاف ذلك، تحتاج إلى تحرير قسم database في ملف malcom.conf.
افتراضياً، سيستخدم Malcom قاعدة بيانات باسم malcom. يمكنك تغيير هذا السلوك عن طريق تحرير ملف malcom.conf وتعيين التوجيه name من قسم database كما تريد.
[database]
...
name = my_malcom_database
...
افتراضيًا، سيحاول Malcom الاتصال بـ localhost، ولكن قد تكون قاعدة البيانات الخاصة بك على خادم آخر. لتغيير ذلك، فقط قم بتعيين التوجيه hosts. يمكنك استخدام أسماء المضيفين أو عناوين IPv4/v6 (فقط تذكر وضع عناوين IPv6 الخاصة بك بين [ و ]، على سبيل المثال [::1]).
إذا كنت ترغب في استخدام قاعدة بيانات مستقلة على المضيف my.mongo.server، فقط قم بتعيين:
[database]
...
hosts = my.mongo.server
...
يمكنك أيضًا تحديد المنفذ الذي يستمع عليه mongod عن طريق تحديده بعد اسم/عنوان الخادم الخاص بك، مفصولاً بـ ::
[database]
...
hosts = localhost:27008
...
وإذا كنت تستخدم ReplicaSet يعيد تجميع my.mongo1.server و my.mongo2.server، فقط قم بتعيين:
[database]
...
hosts = my.mongo1.server,my.mongo2.server
...
ربما قمت بتكوين مثيلات mongod الخاصة بك لفرض اتصالات مصادق عليها. في هذه الحالة، عليك تعيين اسم المستخدم الذي سيتعين على السائق استخدامه للاتصال بمثيل mongod الخاص بك. للقيام بذلك، فقط أضف توجيه username إلى قسم database في ملف malcom.conf. قد تضطر أيضًا إلى تعيين كلمة المرور مع التوجيه password. إذا لم يكن لدى المستخدم كلمة مرور، فقط تجاهل (أي علق) التوجيه password.
[database]
...
username = my_user
password = change_me
...
إذا لم يكن المستخدم مرتبطًا بقاعدة بيانات malcom ولكن بقاعدة بيانات أخرى (على سبيل المثال قاعدة بيانات admin لمستخدم مسؤول)، ستحتاج إلى تعيين التوجيه authentication_database باسم تلك القاعدة.
[database]
...
authentication_database = some_other_database
...
عند استخدام مجموعة نسخ متماثلة، قد تحتاج إلى التأكد من أنك متصل بالمجموعة الصحيحة. لهذا، فقط أضف التوجيه replset لإجبار سائق mongo على التحقق من اسم مجموعة النسخ المتماثلة.
[database]
...
replset = my_mongo_replica
...
افتراضيًا، سيحاول Malcom الاتصال بالعقدة الأساسية لمجموعة النسخ المتماثلة. قد تحتاج/ترغب في تغيير ذلك. لتغيير هذا السلوك، فقط قم بتعيين التوجيه read_preference. راجع توثيق mongo لمزيد من المعلومات.
[database]
...
read_preference = NEAREST
...
تفضيلات القراءة المدعومة هي:
أسرع طريقة لبدء العمل هي سحب صورة Docker من مستودع Docker العام. لسحب إصدارات Docker الأقدم والأكثر استقرارًا، استخدم tomchop/malcom بدلاً من tomchop/malcom-automatic.
$ sudo docker pull tomchop/malcom-automatic
$ sudo docker run -p 8080:8080 -d --name malcom tomchop/malcom-automatic
الاتصال بـ http://<docker_host>:8080/ يجب أن يبدأ العمل.