
EXIST هو تطبيق ويب لتجميع وتحليل استخبارات التهديدات السيبرانية.
⚠️ هذا المستودع غير مُدار / مؤرشَف. لن يتم إصلاح المشكلات الأمنية.
EXIST هو تطبيق ويب لتجميع وتحليل CTI (استخبارات التهديدات السيبرانية).
EXIST كُتب باستخدام البرامج التالية.
EXIST هو تطبيق ويب لتجميع CTI لمساعدة مشغلي الأمن في التحقيق في الحوادث بناءً على المؤشرات ذات الصلة.
EXIST يجلب البيانات تلقائيًا من عدة خدمات CTI وتويتر عبر واجهات برمجة التطبيقات (APIs) والتغذيات. يمكنك البحث عن المؤشرات بشكل متعابر عبر واجهة الويب وواجهة API.
إذا كان لديك خوادم تسجل سلوكيات الشبكة للعملاء (مثل سجلات DNS وخوادم وكيل HTTP)، فستتمكن من تحليل السجلات من خلال الربط مع البيانات الموجودة في EXIST. إذا قمت بتنفيذ بعض البرامج باستخدام API، فستحقق مركز عمليات أمنية مدفوعًا بـ CTI تلقائيًا.

ما عليك سوى كتابة النطاق في نموذج البحث.

ما عليك سوى كتابة عنوان URL في نموذج البحث.

ما عليك سوى إضافة كلمات مفتاحية في Threat Hunter أو Twitter Hunter.

المتتبع يجمع تلقائيًا تغذيات البيانات من عدة خدمات CTI.
الصياد يمكننا من تعيين استعلامات لجمع البيانات من عدة خدمات CTI وتويتر.
البحث يسترجع المعلومات المتعلقة بمعلومات محددة (مثل عنوان IP، نطاق) من عدة خدمات إنترنت (مثل whois).
أداة لتعليق التغريدات من متتبع التويتر.
توفر البيانات المخزنة في قاعدة بيانات EXIST عبر واجهة برمجة تطبيقات الويب.
بعد ذلك أفترض بيئة CentOS 7 أو Ubuntu 18.04 LTS. يرجى توخي الحذر عند النشر في بيئة أخرى.
$ sudo pip install -r requirements.txt
$ curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash
$ sudo yum install MariaDB-server MariaDB-client
$ sudo apt install mariadb-server mariadb-client
$ sudo systemctl start mariadb
$ sudo systemctl enable mariadb
.env بالاستناد إلى .env.example. وقم بالتعديل وفقًا لإعدادات قاعدة البيانات الخاصة بك.يجب كتابة المفتاح السري لـ Django في ملف .env.
أولاً، قم بتشغيل منشئ المفتاح:
$ python keygen.py
(example)> 70mm6h)()h3r&*b9xq$e52=-7($p=5983gfoyz%$d-j-gd7u5@
واكتب المفتاح السري إلى ملف .env:
...
# EXIST Application Settings
EXIST_SECRET_KEY="70mm6h)()h3r&*b9xq$e52=-7($p=5983gfoyz%$d-j-gd7u5@"
...
$ python manage.py makemigrations exploit reputation threat threat_hunter twitter twitter_hunter news news_hunter vuln
$ python manage.py migrate
متتبع السمعة يستخدم Redis كخلفية لذاكرة التخزين المؤقت لـ Celery.
$ sudo yum install redis
$ sudo systemctl start redis
$ sudo systemctl enable redis
$ sudo apt install redis-server
$ sudo systemctl start redis-server
$ sudo systemctl enable redis-server
متتبع السمعة يستخدم Celery كقائمة انتظار مهام غير متزامنة.
# Name of nodes to start
# here we have a single node
CELERYD_NODES="w1"
# or we could have three nodes:
#CELERYD_NODES="w1 w2 w3"
# Absolute or relative path to the 'celery' command:
CELERY_BIN="/path/to/your/celery"
# App instance to use
# comment out this line if you don't use an app
CELERY_APP="intelligence"
# or fully qualified:
#CELERY_APP="proj.tasks:app"
# How to call manage.py
CELERYD_MULTI="multi"
# Extra command-line arguments to the worker
CELERYD_OPTS="--time-limit=300 --concurrency=8"
# - %n will be replaced with the first part of the nodename.
# - %I will be replaced with the current child process index
# and is important when using the prefork pool to avoid race conditions.
CELERYD_PID_FILE="/var/run/celery/%n.pid"
CELERYD_LOG_FILE="/var/log/celery/%n%I.log"
CELERYD_LOG_LEVEL="INFO"
/etc/systemd/system/celery.service. أيضًا، يجب عليك تعيين مسار إعدادات Celery في EnvironmentFile.[Unit]
Description=Celery Service
After=network.target
[Service]
Type=forking
User=YOUR_USER
Group=YOUR_GROUP
EnvironmentFile=/etc/sysconfig/celery
WorkingDirectory=/path/to/your/exist
ExecStart=/bin/sh -c '${CELERY_BIN} multi start ${CELERYD_NODES} \
-A ${CELERY_APP} --pidfile=${CELERYD_PID_FILE} \
--logfile=${CELERYD_LOG_FILE} --loglevel=${CELERYD_LOG_LEVEL} ${CELERYD_OPTS}'
ExecStop=/bin/sh -c '${CELERY_BIN} multi stopwait ${CELERYD_NODES} \
--pidfile=${CELERYD_PID_FILE}'
ExecReload=/bin/sh -c '${CELERY_BIN} multi restart ${CELERYD_NODES} \
-A ${CELERY_APP} --pidfile=${CELERYD_PID_FILE} \
--logfile=${CELERYD_LOG_FILE} --loglevel=${CELERYD_LOG_LEVEL} ${CELERYD_OPTS}'
[Install]
WantedBy=multi-user.target
$ sudo mkdir /var/log/celery; sudo chown YOUR_USER:YOUR_GROUP /var/log/celery
$ sudo mkdir /var/run/celery; sudo chown YOUR_USER:YOUR_GROUP /var/run/celery
#Type Path Mode UID GID Age Argument
d /var/run/celery 0755 YOUR_USER YOUR_GROUP -
$ sudo systemctl start celery.service
$ sudo systemctl enable celery.service
$ python manage.py runserver 0.0.0.0:8000
ملاحظة: أوصي باستخدام Nginx و uWSGI عند التشغيل في بيئة إنتاج.
النصوص البرمجية لإدراج التغذية في قاعدة البيانات موجودة في scripts/insert2db/*/insert2db.py.
$ python scripts/insert2db/reputation/insert2db.py
$ python scripts/insert2db/twitter/insert2db.py
$ python scripts/insert2db/exploit/insert2db.py
$ python scripts/insert2db/threat/insert2db.py
$ python scripts/insert2db/news/insert2db.py
$ python scripts/insert2db/vuln/insert2db.py
ملاحظة: لأتمتة جمع المعلومات، اكتبها في cron الخاص بك.
Twitter Hunter يمكنه اكتشاف التغريدات التي تحتوي على كلمات مفتاحية ومعرف مستخدم محدد. ويمكنك إشعار Slack إذا لزم الأمر.
Threat Hunter يمكنه اكتشاف أحداث التهديدات التي تحتوي على كلمات مفتاحية محددة. ويمكنك إشعار Slack إذا لزم الأمر.
EXIST يستخدم API VirusTotal.
ملاحظة: تحصل على معلومات أكثر إذا كان لديك مفتاح API خاص.
Lookup IP / Domain يستخدم قاعدة بيانات GeoLite2.
Lookup URL يستخدم wkhtmltopdf و Xvfb.
$ sudo yum install xorg-x11-server-Xvfb
إذا قمت بنشر EXIST على Ubuntu 18.04 LTS، يمكنك تثبيت هذه الحزم باستخدام apt.
$ sudo apt install wkhtmltopdf xvfb
أداة تعليق لإنشاء بيانات تدريب للتغريدات. هذه الأداة مخصصة لباحثي التعلم الآلي.



يرجى مراسلتنا عبر البريد الإلكتروني إذا وجدت أي ثغرات.
يحتوي هذا المنتج على بيانات GeoLite2 التي أنشأتها MaxMind، متاحة من https://www.maxmind.com.
رخصة MIT © Cybersecurity Laboratory, NICT