Construindo a sua plataforma de threat intelligence com o OpenCTI
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.