CrowdSec: seguridad open source, gratuita y colaborativa para servicios en Internet

CrowdSec es un nuevo proyecto de seguridad diseñado para proteger servidores, servicios, contenedores o máquinas virtuales en Internet que utiliza un agente del lado del servidor. Inspirado en fail2ban, CrowdSec aplica un modelo colaborativo más moderno que tiene como objetivo aprovechar el poder de la multitud para crear una base de datos de reputación de IP muy precisa mediante un mecanismo de consenso altamente regulado.

CrowSec se desarrolla bajo la filosofia Open Source bajo la licencia de software libre del MIT. Actualmente está disponible para GNU/Linux, macOS y Microsoft Windows.

¿Cómo funciona CrowdSec?

La configuración de CrowdSec es rápida y fácil, no lleva más de cinco minutos. Cuenta con ayuda de un asistente apropiadamente llamado wizard.sh, y apunta a ser rápidamente utilizable tanto por individuos como por organizaciones, tanto en ejecución manual como automática, ideal para integrar con cloud-init, ansible, etc.

Esta herramienta ha sido escrita en Golang y está diseñada para ejecutarse en arquitecturas modernas y complejas como la nube (o sea, servidores de terceros), lambdas (serverless) y contenedores. Para lograr esto, podemos decir que está “desacoplado”, esto es, que puede “detectar aquí” (por ejemplo en los registros de una base de datos) y “bloquear allí” (por ejemplo en un firewall, proxy o CDN).

Su ciclo de funcionamiento es el siguiente:

  • Ingesta de fuentes de información (archivos de logs, por ejemplo) para su normalización y enriquecimiento.
  • Aplicar reglas de detección de patrones de comportamiento, denominados escenarios.
  • Si se detecta un comportamiento no deseado, se trata a través de un bouncer: este componente puede aplicar diversas contramedidas en diversas capas: bloqueo a nivel firewall, un 403 a nivel HTTP, y en el futuro captchas, 2FA/MFA.
  • La IP atacante, el nombre del escenario activado y una marca de tiempo se envía a una plataforma configurable, que permite evitar situaciones de poisoning, falsos positivos, etc.
  • Si la IP es verificada como maliciosa, la mísma es integrada a la lista de bloqueo distribuida que todos los clientes CrowdSec utilizan.

Motor de análisis de comportamiento

Es la primera capa de protección. Utiliza escenarios definido mediante YAML para correlacionar los eventos a un depósito. Cuando dicho depósito se desborda se genera una señal que se emite a los bouncers para ejecutar la acción que corresponda.

Motor de reputación

El secreto de CrowdSec radica en su base de datos de reputación, la cual es generada gracias al trabajo colaborativo.

Esta base de datos se alimenta de todas las instancias de CrowdSec, cuyas señales son filtradas y procesadas de forma centralizada por nuestra API. Los falsos positivos y los intentos de robo por parte de atacantes son un problema real, de ahí la necesidad de procesar las señales que surgen de las instalaciones de CrowdSec.

Visualización

El software incluye un sistema de visualización local y ligero basado en Metabase. CrowdSec también está equipado con Prometheus, para proporcionar capacidades de alerta y observabilidad, lo cual integrado con las capacidades analíticas de AlertManager permitirían detectar situaciones antes que las mismas logren afectar el servicio.

Seguridad

Si bien el software actualmente parece un Fail2ban mejorado, el objetivo es aprovechar el poder de la multitud, para crear una base de datos de reputación de IP muy precisa. Cuando CrowdSec actúa sobre una IP específica, el escenario desencadenado y la marca de tiempo se envían a la API central para que se validen contra el consenso global de reputación IP.

Si bien desde el proyecto ya se está redistribuyendo una lista de bloqueo a la comunidad, dicho servicio será mejorado ampliamente. Hoy día la red tiene controladas más de 103.000 direcciones IP (actualizadas diariamente) y tiene la capacidad de redistribuir unas 10.000 a los usuarios de su comunidad. El proyecto también ha sido diseñado para cumplir con la GDPR y respetar la privacidad, tanto en términos técnicos como legales.

La visión de las personas que están detrás del proyecto es que CrowdSec sea lo suficientemente grande, para que, entre toda la comunidad de usuarios, se genere en tiempo real una base de datos de reputación IP lo más precisa y confiable posible. Este motor de reputación global, junto con la evaluación y corrección del comportamiento local, debería permitir a muchas empresas y especialistas del mundo IT lograr una seguridad más estricta a un costo más bajo, de forma más eficiente.

Pensando en las empresas

Muchas veces las comunidades de desarrollo de código abierto sufren de una falta de financiación. El equipo de CrowdSec ofrece suscripciones premium a las empresas que quieran aprovechar la base de datos de reputación de IP sin contribuir a la mísma. Si uno contribuye, el acceso es sin cargo.

Casos de Estudio

Aquí hay dos ejemplos de las capacidades de CrowdSec.

Cuando uno de los clientes de una empresa fue atacado por una red de bots de 7.000 máquinas, CrowdSec fue capaz de consumir todos los logs y bloqueó exitosamente más del 95% de los miembros de la botnet, mitigando eficazmente el ataque, en menos de cinco minutos. Para comparar, Fail2Ban habría necesitado diez veces más de tiempo para procesar dichos registros y lidiar con el ataque. Más información aquí (en Inglés).

Un negocio de comercio electrónico estaba pasando por un ataque masivo vinculado a números de tarjetas de crédito. El atacante estaba abusando de la pasarela de pago, probando miles de diferentes números de tarjetas de crédito usando una única dirección IP. En lugar de tener que modificar todas sus aplicaciones para tratar de detectar el ataque, gracias a CrowdSec la empresa pudo escanear todos los registros y bloquear la intrusión en menos de 5 minutos.

Una comunidad internacional en crecimiento

Actualmente, los miembros de la comunidad provienen de 60 países, en 6 continentes diferentes. Se están buscando más usuarios, colaboradores y embajadores para llevar el proyecto al siguiente nivel. El team puede ser contactado por GitHub, Discourse o Gitter.

La versión 1.0 acaba de ser liberada y se puede descargar desde aquí.

Fuente: Crowdsec

Share

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.