Cybersecurity & Defesa Ativa

CrowdSec Hub: Defesa Ativa e Inteligência Colaborativa de Ameaças

Arquitetura distribuída de mitigação comportamental: como transformar logs de proxies e firewalls em decisões autônomas de bloqueio com bouncers e reputação global de IP.

Carlos Felipe
Carlos Felipe Oliveira da Silva Senior Infrastructure & DevOps Engineer
Princípio Central: Defesa cooperativa em tempo real. Enquanto um IPS tradicional depende apenas de assinaturas estáticas locais, o CrowdSec analisa padrões de comportamento (leaky bucket) e compartilha inteligência de ameaças com uma rede global de sensores.

1. O Desafio: Ameaças Automatizadas e Scanners Silenciosos

Aplicações expostas à internet sofrem constantes varreduras automatizadas: port scans, força bruta em endpoints SSH/HTTP, crawling malicioso em busca de arquivos .env ou painéis de administração expostos. Bloquear manualmente esses IPs gera sobrecarga operacional e lentidão na resposta.

2. Arquitetura do CrowdSec Hub & Camada LAPI

O CrowdSec foi estruturado de forma descentralizada na nossa infraestrutura:

  • CrowdSec Agent (Parser Engine): Processa fluxos de logs de instâncias Nginx, Traefik, SSH e Syslog usando parsers YAML em alta velocidade.
  • Local API (LAPI): Ponto central de decisão que recebe os alertas dos agentes, aplica a política de decisões (banimento temporário, captcha ou drop) e sincroniza a lista de bloqueios com os Bouncers.
  • Bouncers (Remediation Components): Plugins integrados nos pontos de entrada (firewall nftables, Nginx Lua Bouncer e Cloudflare API) que barram o tráfego antes mesmo de consumir recursos da aplicação.

3. Criação de Cenários Customizados de Detecção

Para proteger portais internos e APIs corporativas contra raspagem indevida e abuso de rotas, criamos cenários baseados no algoritmo leaky bucket:

# /etc/crowdsec/scenarios/custom-api-abuse.yaml
type: leaky
name: custom/api-aggressive-probing
description: "Detecta requisicoes suspeitas em sequencia a rotas sensiveis"
filter: "evt.Meta.log_type == 'http_access-log' && evt.Parsed.request contains '/api/v1/auth/'"
leakspeed: "10s"
capacity: 5
groupby: "evt.Meta.source_ip"
blackhole: 1m
labels:
  service: http
  type: brute_force
  remediation: true
---
# Decisão automatizada enviada ao LAPI
duration: 4h
scope: Ip
reason: "Tentativa reiterada de enumeracao de credenciais"

4. Integração com Bouncers e Orquestração Docker

A implantação via Docker Compose integrou a LAPI aos proxies reversos da rede interna:

# docker-compose.yml - CrowdSec Security Engine
services:
  crowdsec:
    image: crowdsecurity/crowdsec:latest
    container_name: crowdsec_engine
    environment:
      - COLLECTIONS=crowdsecurity/linux crowdsecurity/nginx crowdsecurity/http-cve
      - CUSTOM_HOSTNAME=crowdsec-hub
    volumes:
      - /var/log/nginx:/var/log/nginx:ro
      - /var/log/auth.log:/var/log/auth.log:ro
      - ./data:/var/lib/crowdsec/data
      - ./config:/etc/crowdsec
    restart: unless-stopped
    networks:
      - security_net

Impacto e Métricas Alcançadas

Com a ativação dos bouncers de borda, mais de 99% das tentativas de brute-force e scanning automatizado foram mitigadas em Camada 3/4, aliviando o consumo de CPU dos servidores de aplicação e zerando falsos positivos graças ao refinamento dos whitelists locais.