
EXIST é uma aplicação web para agregação e análise de inteligência de ameaças cibernéticas.
⚠️ Este repositório não é mantido / arquivado. Problemas de segurança não serão corrigidos.
EXIST é uma aplicação web para agregar e analisar CTI (inteligência de ameaças cibernéticas).
EXIST é escrito com os seguintes softwares.
EXIST é uma aplicação web para agregar CTI, ajudando operadores de segurança a investigar incidentes com base em indicadores relacionados.
EXIST busca automaticamente dados de vários serviços de CTI e do Twitter através de suas APIs e feeds. Você pode pesquisar indicadores de forma cruzada através da interface web e da API.
Se você tiver servidores que registram comportamentos de rede dos clientes (por exemplo, logs de servidores DNS e proxy HTTP, etc.), você poderá analisar os logs correlacionando com os dados no EXIST. Se você implementar alguns programas usando a API, você realizará um centro de operações de segurança automatizado orientado por CTI.

Basta digitar o domínio no formulário de busca.

Basta digitar a URL no formulário de busca.

Basta adicionar palavras-chave no Threat Hunter ou Twitter Hunter.

Tracker coleta automaticamente feeds de dados de vários serviços de CTI.
Hunter permite definir consultas para coletar dados de vários serviços de CTI e do Twitter.
Lookup recupera informações relacionadas a informações específicas (ex: endereço IP, domínio) de vários serviços de internet (ex: whois).
Uma ferramenta para anotar tweets do tracker do Twitter.
Fornece dados armazenados no banco de dados do EXIST via Web API.
Após isso, assumo o ambiente CentOS 7 ou Ubuntu 18.04 LTS. Por favor, por sua conta ao implantar em outro ambiente.
$ 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 conforme .env.example. E edite de acordo com suas configurações de BD.A chave secreta para Django deve ser escrita no arquivo .env.
Primeiro, execute o gerador de chaves:
$ python keygen.py
(exemplo)> 70mm6h)()h3r&*b9xq$e52=-7($p=5983gfoyz%$d-j-gd7u5@
e escreva a chave secreta no arquivo .env:
...
# Configurações da Aplicação EXIST
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
O Reputation tracker usa redis como backend do servidor de cache do 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
O Reputation tracker usa Celery como uma fila de tarefas assíncronas.
# Nome dos nós a iniciar
# aqui temos um único nó
CELERYD_NODES="w1"
# ou poderíamos ter três nós:
#CELERYD_NODES="w1 w2 w3"
# Caminho absoluto ou relativo para o comando 'celery':
CELERY_BIN="/caminho/para/seu/celery"
# Instância do App a usar
# comente esta linha se você não usa um app
CELERY_APP="intelligence"
# ou totalmente qualificado:
#CELERY_APP="proj.tasks:app"
# Como chamar manage.py
CELERYD_MULTI="multi"
# Argumentos extras de linha de comando para o worker
CELERYD_OPTS="--time-limit=300 --concurrency=8"
# - %n será substituído pela primeira parte do nome do nó.
# - %I será substituído pelo índice do processo filho atual
# e é importante ao usar o pool prefork para evitar condições de corrida.
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. Além disso, você deve definir o caminho da configuração do celery no EnvironmentFile.[Unit]
Description=Serviço Celery
After=network.target
[Service]
Type=forking
User=SEU_USUARIO
Group=SEU_GRUPO
EnvironmentFile=/etc/sysconfig/celery
WorkingDirectory=/caminho/para/seu/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 SEU_USUARIO:SEU_GRUPO /var/log/celery
$ sudo mkdir /var/run/celery; sudo chown SEU_USUARIO:SEU_GRUPO /var/run/celery
#Tipo Caminho Modo UID GID Idade Argumento
d /var/run/celery 0755 SEU_USUARIO SEU_GRUPO -
$ sudo systemctl start celery.service
$ sudo systemctl enable celery.service
$ python manage.py runserver 0.0.0.0:8000
Nota: Recomendo usar Nginx e uWSGI ao executar em ambiente de produção.
Os scripts para inserir feed no banco de dados estão em 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: Para automatizar a coleta de informações, escreva-os no seu cron.
O Twitter Hunter pode detectar tweets contendo palavras-chave específicas e ID de usuário. E você pode notificar o Slack se necessário.
O Threat Hunter pode detectar eventos de ameaça contendo palavras-chave específicas. E você pode notificar o Slack se necessário.
EXIST usa a API do VirusTotal.
Nota: Você obtém mais informações se tiver uma chave API privada.
Lookup IP / Domain usa o Banco de Dados GeoLite2.
Lookup URL usa wkhtmltopdf e Xvfb.
$ sudo yum install xorg-x11-server-Xvfb
Se você implantar o EXIST no Ubuntu 18.04 LTS, pode instalar esses pacotes usando apt.
$ sudo apt install wkhtmltopdf xvfb
Uma ferramenta de anotação para criar dados de treinamento para tweets. Esta ferramenta é para pesquisadores de aprendizado de máquina.



Por favor, envie-nos um e-mail se encontrar alguma vulnerabilidade.
Modelo de Relatório de Vulnerabilidade
Este produto inclui dados GeoLite2 criados pela MaxMind, disponíveis em https://www.maxmind.com.
Licença MIT © Cybersecurity Laboratory, NICT