Construindo a sua plataforma de threat intelligence com o OpenCTI

Cristian Souza
4 min readApr 3, 2023

O OpenCTI é uma plataforma open-source para inteligência de ameaças. Seu objetivo é auxiliar profissionais e organizações no compartilhamento de ameaças. O projeto é extremamente flexível e personalizável, podendo ser adaptado para atender às necessidades específicas de cada empresa, sendo altamente eficiente no seu propósito.

A plataforma utiliza o conceito de conectores para agregar dados de diferentes fontes de dados em sua instância, tudo de acordo com a sua necessidade. Ao se agregar informações de várias fontes em um único local, o OpenCTI pode fornecer uma visão mais completa das ameaças que a sua organização enfrenta ou pode enfrentar.

Alguns dos conectores que mais utilizo em minhas instâncias:

  • AbuseIPDB: para coletar informações sobre endereços IP suspeitos (e.g., utilizados em ataques DDoS ou de força bruta, relacionados a phishing, utilizados para distribuição de malware, entre outros ataques).
  • AlienVault: para consultar dados gerais sobre ataques já catalogados e ameaças emergentes. Sem dúvidas uma das plataformas mais completas para essa finalidade.
  • Cuckoo Sandbox: para agregar dados sobre análises de malware realizadas de forma automatizada pela ferramenta.
  • MalwareBazaar: para coletar informações sobre artefatos recentemente adicionados à base do MalwareBazaar. Muito útil para identificar novos artefatos maliciosos e suas famílias.

Lembrando que é necessário se cadastrar em tais serviços para obter a chave de API que será utilizada pelo OpenCTI para coleta das informações.

Instalação do OpenCTI

Para instalar o OpenCTI, utilizarei como base um sistema operacional Ubuntu na versão 22.04. As configurações da máquina virtual criada são as seguintes:

  • 16 GB de memória RAM.
  • 128 GB de armazenamento.
  • 4 cores de CPU.

Com o objetivo de facilitar o deploy da ferramenta, bem como a sua manutenção, utilizarei containers Docker gerenciados pelo Portainer. Portanto, execute os seguintes comandos para realizar essa configuração:

sudo apt install docker.io docker-compose containerd
docker swarm init
mkdir -p /opt/portainer && cd /opt/portainer
curl -L https://downloads.portainer.io/portainer-agent-stack.yml -o portainer-agent-stack.yml

No arquivo portainer-agent-stack.yml, altere as portas que serão alocadas ao Portainer:

Após isso, você já pode iniciar o Portainer com o seguinte comando:

docker stack deploy --compose-file=portainer-agent-stack.yml portainer

E acessá-lo na porta 19000 do seu servidor:

Após configurar a senha do usuário administrador, entre em stacks e adicione uma stack. O arquivo do Compose que será utilizado para a sua instância pode ser obtido em https://github.com/OpenCTI-Platform/docker.

Também é importante definir as variáveis de ambiente utilizadas pela plataforma. Um arquivo de exemplo pode ser obtido no link anterior e carregado no Portainer. Note que você deverá alterar, ao menos, a credencial do administrador e os UUIDs utilizados pelos conectores.

Após isso, basta clicar em “Deploy the stack”. Seu ambiente será automaticamente configurado e você poderá acessá-lo após alguns minutos na porta 8080 do seu servidor.

Por padrão, sua plataforma estará sem dados. Para que o OpenCTI agregue informações sobre ameaças é necessário configurar seus connectors.

Configurando os connectors do OpenCTI

A configuração dos connectors também é bastante simples, podendo ser feita apenas editando a stack diretamente no Portainer. Como exemplo, irei configurar o connector do AlienVault (lembrando que é necessário ter uma conta no serviço para obter sua chave de API):

Atualize a stack. Após alguns minutos, sua instância será populada com dados do AlienVault:

Conclusão

Neste artigo aprendemos a configurar a plataforma OpenCTI, uma das principais soluções da área de threat intelligence. A partir de agora você pode testar outros conectores da ferramenta e adaptá-la às suas necessidades.

--

--