CrowdSec: Collaborative Security bem feita.

Olá a todos.

Depois do debacle que foi a situação do Crowdstrike a semana passada, achei que seria uma boa ideia demonstrar mais uma tool que implemento nos meus Clientes e no meu próprio homelab para auxiliar na defesa dos nossos perímetros e redes seguras: O Crowdsec.

CrowdSec Engine 1.5 improves automation and reduces processing time by 300%

O Que é o CrowdSec?

O CrowdSec é uma plataforma moderna de cibersegurança que se destaca por utilizar a inteligência coletiva para proteger sistemas contra uma ampla gama de ameaças. Lançado em 2020, o CrowdSec foi desenvolvido para ser uma solução de segurança colaborativa, onde os utilizadores contribuem e se beneficiam mutuamente. A plataforma inspira-se em conceitos de segurança colaborativa, coletando e analisando dados de ataques para melhorar constantemente suas capacidades de defesa.

Como o CrowdSec Funciona?

  1. Coleta de Dados e Deteção.
    O funcionamento do CrowdSec começa com a coleta de dados para análise. Ao ser instalado, o CrowdSec monitoriza o tráfego de rede e registra atividades suspeitas. Ele utiliza um sistema de agentes que são implantados nos servidores dos utilizadores, os quais inspecionam logs e tráfego em tempo real. Esses agentes são capazes de detectar uma variedade de comportamentos maliciosos, como tentativas de login falhas, varreduras de portas, e ataques de força bruta. Podem ainda inclusive serem colocados em servidores de logging centralizados para ter um overview mais efetivo do que se está a passar.
  2. Análise e Correlacionamento.
    Uma vez que os dados são coletados, o CrowdSec realiza uma análise detalhada para identificar padrões de comportamento malicioso. Utilizando uma combinação de heurísticas, regras predefinidas e machine learning, a plataforma consegue distinguir entre atividades legítimas e potencialmente prejudiciais. Essa análise é realizada tanto localmente quanto através da rede colaborativa do CrowdSec, que agrega dados de todos os utilizadores para fornecer uma visão mais ampla e precisa das ameaças emergentes.
  3. Decisões de Remediação.
    Com base na análise, o CrowdSec toma decisões sobre como remediar as ameaças detetadas. Essas decisões podem incluir a implementação de bloqueios temporários ou permanentes em endereços IP maliciosos, a geração de alertas para os administradores do sistema, ou a execução de scripts personalizados para mitigar a ameaça. A remediação é projetada para ser rápida e eficaz, minimizando o impacto das ameaças enquanto maximiza a proteção do sistema.
  4.  Partilha de Informações.
    Um dos aspetos mais inovadores do CrowdSec é seu modelo de partilha de informações. Quando uma ameaça é detetada por um utilizador, essa informação é compartilhada com toda a rede CrowdSec. Isto significa que se um atacante tentar comprometer múltiplos sistemas que utilizam CrowdSec, as informações sobre o atacante serão disseminadas rapidamente, permitindo que outros sistemas se protejam pro-ativamente contra a mesma ameaça.Introduction | CrowdSec

E quais as vantagens do CrowdSec para Empresas?

  1. Inteligência Coletiva
    A maior vantagem do CrowdSec é seu modelo de inteligência coletiva. Empresas que adotam o CrowdSec beneficiam automaticamente dos dados de segurança coletados globalmente, recebendo informações sobre ameaças emergentes e proteção atualizada sem precisar investir em soluções proprietárias caras.
  2. Escalabilidade
    Por definição i CrowdSec é altamente escalável, o que o torna adequado para empresas de todos os tamanhos. Desde pequenas startups e homelabs até grandes corporações, a plataforma pode ser adaptada para monitorizar uma variedade de ambientes de TI, incluindo servidores, containers, e dispositivos IoT.
  3. Economia de Custos
    Implementar soluções de cyber security pode ser extremamente caro, especialmente para pequenas e médias empresas. O CrowdSec é uma solução de código aberto, o que significa que pode ser utilizado sem os custos de licenciamento associados a muitos produtos comerciais. Além disso, a capacidade de prevenir ataques com base em inteligência coletiva pode reduzir os custos associados a respostas a incidentes e reparações. Caso isso seja o pretendido existem listas pagas que são afinadas para minimizar ou eliminar falsos positivos (e consequente mitigações).
  4. Facilidade de Implementação
    A implementação do CrowdSec é relativamente simples, com documentação extensa e uma comunidade ativa de utilizadores para suporte. Isso facilita a integração da plataforma em infraestruturas existentes sem a necessidade de interrupções significativas ou reconfigurações extensivas.
  5.  Personalização
    As empresas podem personalizar o CrowdSec para atender às suas necessidades específicas, criando regras personalizadas e ajustando os parâmetros de deteção e remediação. Essa flexibilidade permite que a solução seja ajustada para proteger de maneira eficaz diferentes tipos de ambientes e cargas de trabalho.

E quais as vantagens do CrowdSec para os nossos homelabs?

Proteção Avançada.

Para entusiastas de homelabs, a segurança é uma preocupação constante. O CrowdSec oferece uma camada adicional de proteção, ajudando a identificar e bloquear tentativas de intrusão antes que causem danos significativos. Isso é especialmente útil para aqueles que executam serviços acessíveis pela internet, como servidores web ou VPNs.

Aprendizagem e Experimentação.

O uso do CrowdSec em um homelab proporciona uma excelente oportunidade de aprendizado. Os utilizadores podem explorar como funciona a detecção de intrusões e a resposta a incidentes, experimentando com diferentes configurações e entendendo melhor as ameaças cibernéticas.

Contribuição para a Comunidade.

Ao utilizar o CrowdSec em um homelab, os utilizadores contribuem para a rede coletiva de segurança. Cada ameaça detetada e reportada ajuda a fortalecer a defesa global, beneficiando outros utilizadores e criando uma comunidade mais segura e robusta.

Gratuitidade.

Well you can’t beet free…O CrowdSec sendo uma solução de código aberto é gratuito, o que o torna acessível para entusiastas de homelabs que podem não ter orçamento para investir em soluções comerciais de segurança.

E quais os use cases específicos do CrowdSec?

Empresas de Hosting.

Empresas de hosting podem utilizar o CrowdSec para proteger seus servidores contra uma variedade de cyber threats. A plataforma pode ajudar a mitigar ataques DDoS, proteger contra tentativas de login fraudulentas e evitar a exploração de vulnerabilidades em aplicações web que tenham sido deployed.

E-Commerce.

Para negócios de comércio eletrónico, a segurança dos dados dos clientes é crucial. O CrowdSec ajuda a prevenir fraudes e proteger informações sensíveis, garantindo que os sistemas de pagamento e bases de dados estejam seguros contra acessos não autorizados.

Setor Financeiro.

Onde existe dinheiro, existe interesse, e instituições financeiras são dos alvos mais frequentes de ciberataques. O CrowdSec oferece uma camada adicional de defesa, ajudando a detetar e responder rapidamente a atividades suspeitas que possam comprometer a integridade dos sistemas financeiros.

Homelabs e Pequenos Negócios

Pequenos negócios e utilizadores de homelabs podem utilizar o CrowdSec para proteger suas redes e dispositivos. Isso é particularmente útil para aqueles que executam servidores web, serviços de email, ou outras aplicações acessíveis pela internet.

E para instalar o Crowdsec?

Fazer um deployment de CrowdSec via Docker é uma das maneiras mais eficazes e práticas de proteger sua infraestrutura de IT.
O Docker fornece uma plataforma leve para executar aplicações em containers, tornando o processo de instalação e gestão mais fácil e consistente.

Pré-requisitos.

Antes de começarmos, certifiquem-se de ter os seguintes pré-requisitos:

  1. Docker instalado no vosso servidor/VM. Se não tiverem, podem instalar seguindo as instruções no site oficial do Docker: Docker Installation Guide.
  2. Docker Compose (opcional, mas recomendado para gerir serviços complexos). As instruções de instalação também estão disponíveis no site oficial do Docker: Docker Compose Installation Guide]

Criar Diretórios Necessários.

Vamos começar  por criar os diretórios necessários para armazenar a configuração e os dados do CrowdSec.

mkdir -p /opt/crowdsec/{data,config}

Criar um Arquivo de Configuração do CrowdSec.

Criem um arquivo de configuração para o CrowdSec. Iremos criar um arquivo chamado `crowdsec_config.yaml` no diretório `/opt/crowdsec/config`.

vi /opt/crowdsec/config/crowdsec_config.yaml

Adicionem as configurações básicas necessárias ao arquivo. Para um setup inicial, podem usar a configuração padrão, que poderá ser ajustada posteriormente conforme as vossas necessidades.

Criar o Dockerfile (Opcional).

Embora o CrowdSec ofereça uma imagem oficial no Docker Hub,  podemos criar um Dockerfile personalizado se quisermos adicionar modificações específicas ou dependências adicionais.
Aqui está um exemplo básico de Dockerfile para o CrowdSec container:

Dockerfile
FROM crowdsecurity/crowdsec:latest
# Copiar o arquivo de configuração para o container
COPY ./config/crowdsec_config.yaml /etc/crowdsec/config.yaml
# Definir o ponto de entrada
ENTRYPOINT ["crowdsec", "-c", "/etc/crowdsec/config.yaml"]

Gravem este arquivo como `Dockerfile` no diretório `/opt/crowdsec`.

Criar um Arquivo docker-compose.yml

Para facilitar a gestão do container, especialmente se vocês estiverem executando múltiplos serviços, é recomendável usar o Docker Compose. Crie um arquivo `docker-compose.yml` no diretório `/opt/crowdsec` com o seguinte conteúdo:

version: '3.7'

services:
crowdsec:
image: crowdsecurity/crowdsec:latest
container_name: crowdsec
volumes:
- ./config/crowdsec_config.yaml:/etc/crowdsec/config.yaml:ro
- ./data:/var/lib/crowdsec/data
ports:
- "8080:8080"
restart: unless-stopped

Iniciar o Container.

Com o Dockerfile e o `docker-compose.yml` configurados, podemos iniciar o container usando o Docker Compose. Vão até o diretório `/opt/crowdsec` e executem o seguinte comando:

docker-compose up -d

Este comando irá iniciar o container do CrowdSec em background.

Verificar o Status do Container.

Para verificarem se o CrowdSec está a funcionar corretamente,  podem usar o comando `docker ps` para listar os containers em execução:

docker ps

Deverão ver o container do CrowdSec  em execução na lista apresentada. Para visualizarem os logs do container e garantirem  que tudo está funcionando conforme o expectável, usem o comando:

docker logs crowdsec

Aceder e Configurar o CrowdSec.

Com o container em execução, podem agora aceder ao CrowdSec e configurar as vossas regras de deteção e mitigação conforme necessário. Para aceder o painel web (se configurado), abra o seu browser e navegue até `http://ip_do_servidor_docker:8080`. Caso contrario, registem o vosso agente/enforcer e vão a vosso painel de controle na CrowdSec para acederem as opções de configuração/alertas/métodos de mitigação.

Tips & Tricks.

Atualizações: Certifiquem-se de atualizar regularmente a imagem do Docker do CrowdSec para aproveitar as últimas atualizações e correções de segurança.  Pode atualizar a imagem e recriar o container usando os comandos:

docker-compose pull
docker-compose up -d

Configurações: O crowdsec, como qualquer boa ferramenta de deteção irá ter de ser configurada para os tipos específicos de logs que está a analisar. Para isso visitem este site, e vejam os parsers que vos interessam.

Backups: Realizem backups regulares das configurações e dos dados do CrowdSec armazenados no diretório `/opt/crowdsec`.

Segurança: Considerem configurar firewalls e outras medidas de segurança para proteger o acesso ao CrowdSec, e por favor não o exponham à internet.

Logs e Monitorização: Utilizem ferramentas de monitorização de logs para analisar e agir rapidamente sobre os alertas gerados pelo CrowdSec. Ferramentas como ELK Stack (Elasticsearch, Logstash, Kibana) podem ser integradas para uma análise mais aprofundada.

Conclusão

Chegamos ao fim de mais um post semanal. Neste vimos como o CrowdSec representa uma abordagem inovadora e eficaz para cyber security, combinando a força da inteligência coletiva com ferramentas poderosas de deteção e resposta a ameaças. Para empresas, oferece uma solução escalável e económica, capaz de proteger infraestruturas complexas contra uma ampla gama de ameaças. Para entusiastas de homelabs, proporciona uma oportunidade de aprendizado e uma camada adicional de segurança sem custos adicionais. Lembrem-se sempre é que falsos positivos existem, e que este software irá necessitar de ser afinado para as necessidades de cada um especialmente se optarem por uma utilização sem custo.

Ao adotar o CrowdSec, tanto empresas quanto os utilizadores  individuais podem beneficiar de uma comunidade global dedicada à proteção contra cyberthreats, contribuindo para um ecossistema de IT  mais seguro e resiliente. A plataforma não apenas ajuda a identificar e mitigar ameaças, mas também fortalece a defesa coletiva, tornando-se uma ferramenta indispensável no arsenal de cyber security moderno.

Se notarem alguma coisa menos correta, já sabem onde me encontrar. Até a próxima semana.
Um abraço.
Nuno