
EXIST è un'applicazione web per l'aggregazione e l'analisi di cyber threat intelligence.
⚠️ Questo repository non è più mantenuto / archiviato. I problemi di sicurezza non verranno risolti.
EXIST è un'applicazione web per aggregare e analizzare CTI (intelligence sulle minacce informatiche).
EXIST è sviluppato con i seguenti software.
EXIST è un'applicazione web per aggregare CTI per aiutare gli operatori di sicurezza a investigare incidenti basati su indicatori correlati.
EXIST recupera automaticamente dati da diversi servizi CTI e Twitter tramite le loro API e feed. Puoi effettuare ricerche incrociate sugli indicatori tramite l'interfaccia web e l'API.
Se hai server che registrano i comportamenti di rete dei client (ad es., log di server DNS e proxy HTTP, ecc.), potrai analizzare i log correlandoli con i dati su EXIST. Se implementi alcuni programmi utilizzando l'API, realizzerai un centro operativo di sicurezza automatizzato guidato da CTI.

Basta digitare il dominio nel modulo di ricerca.

Basta digitare l'URL nel modulo di ricerca.

Basta aggiungere parole chiave in Threat Hunter o Twitter Hunter.

Tracker raccoglie automaticamente feed di dati da diversi servizi CTI.
Hunter ci consente di impostare query per raccogliere dati da diversi servizi CTI e Twitter.
Lookup recupera informazioni relative a informazioni specifiche (es. indirizzo IP, dominio) da diversi servizi internet (es. whois).
Uno strumento per annotare tweet dal tracker di Twitter.
Fornisce dati memorizzati nel database EXIST tramite Web API.
Dopodiché presumo un ambiente CentOS 7 o Ubuntu 18.04 LTS. Procedi a tuo rischio quando lo distribuisci in altri ambienti.
$ 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 facendo riferimento a .env.example. E modificare secondo le impostazioni del DB.La chiave segreta per Django deve essere scritta nel file .env.
Prima, esegui il generatore di chiavi:
$ python keygen.py
(esempio)> 70mm6h)()h3r&*b9xq$e52=-7($p=5983gfoyz%$d-j-gd7u5@
e scrivi la chiave segreta nel file .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
Reputation tracker utilizza redis come backend della cache per 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
Reputation tracker utilizza Celery come coda di job asincroni.
# 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. Inoltre, devi impostare il percorso della configurazione di celery su 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
Nota: Raccomando di utilizzare Nginx e uWSGI quando si esegue in ambiente di produzione.
Gli script per inserire i feed nel database sono 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
Nota: Per automatizzare la raccolta di informazioni, scrivili nel tuo cron.
Twitter Hunter può rilevare tweet contenenti parole chiave e ID utente specifici. Inoltre, può notificare su slack se necessario.
Threat Hunter può rilevare eventi di minaccia contenenti parole chiave specifiche. Inoltre, può notificare su slack se necessario.
EXIST utilizza VirusTotal API.
Nota: Ottieni più informazioni se hai una chiave API privata.
Lookup IP / Domain utilizza GeoLite2 Database.
Lookup URL utilizza wkhtmltopdf e Xvfb.
$ sudo yum install xorg-x11-server-Xvfb
Se distribuisci EXIST su Ubuntu 18.04 LTS, puoi installare questi pacchetti usando apt.
$ sudo apt install wkhtmltopdf xvfb
Uno strumento di annotazione per creare dati di addestramento per i tweet. Questo strumento è per ricercatori di machine learning.



Si prega di inviarci un'e-mail se trovate vulnerabilità.
Modello di segnalazione vulnerabilità
Questo prodotto include dati GeoLite2 creati da MaxMind, disponibili su https://www.maxmind.com.
Licenza MIT © Cybersecurity Laboratory, NICT