Saltar a contenido

Monitoreo de Seguridad

Resumen

Esta guía explica cómo implementar monitoreo de seguridad en entornos DevOps, enfocándose en Falco para detección de anomalías en Kubernetes y Wazuh para SIEM básico. Incluye configuración, reglas y integración con alertas.

Prerrequisitos

  • Conocimientos básicos de Kubernetes y Linux.
  • Acceso a cluster K8s o servidor Linux.
  • Familiaridad con herramientas de monitoreo (Prometheus, Grafana).

Falco

Herramienta de runtime security para Kubernetes, detecta anomalías y amenazas basadas en reglas.

Características

  • Detección: Basada en eBPF, monitorea syscalls y eventos de K8s.
  • Reglas: YAML configurables para definir comportamientos sospechosos.
  • Integración: Con Prometheus, Elasticsearch, Slack.

Instalación en Kubernetes

# Usando Helm
helm repo add falcosecurity https://falcosecurity.github.io/charts
helm repo update
helm install falco falcosecurity/falco

# Verificar
kubectl get pods -n falco

Reglas Básicas

# /etc/falco/falco_rules.yaml
- rule: Unexpected network connection
  desc: Detect unexpected outbound connection
  condition: outbound and not (fd.sip in (trusted_ips))
  output: Unexpected outbound connection (command=%proc.cmdline connection=%fd.name)
  priority: WARNING

- rule: Shell spawned by unusual process
  desc: Detect shell spawned by unusual parent
  condition: spawned_process and proc.name = bash and proc.pparent.name != sshd
  output: Shell spawned by unusual process (parent=%proc.pparent.name cmdline=%proc.cmdline)
  priority: WARNING

Reglas Personalizadas

- rule: Suspicious file access
  desc: Access to sensitive files
  condition: open_read and (fd.name pmatch (/etc/shadow, /etc/passwd))
  output: Suspicious file access (file=%fd.name user=%user.name command=%proc.cmdline)
  priority: CRITICAL

Integración con Alertmanager

# Configurar webhook en Falco
webhook:
  enabled: true
  http_config:
    url: "http://alertmanager:9093/api/v2/alerts"

Wazuh

Plataforma open-source para XDR (Extended Detection and Response), incluye SIEM, EDR y gestión de vulnerabilidades.

Componentes

  • Manager: Servidor central.
  • Agents: Instalados en endpoints.
  • API: Para integración.

Instalación

# Script automático
curl -sO https://packages.wazuh.com/4.7/wazuh-install.sh
bash wazuh-install.sh -a

# Acceder a interfaz
# https://wazuh-server (usuario: admin, password: generado)

Configuración de Agentes

# En servidor a monitorear
WAZUH_MANAGER="wazuh-server-ip" apt install wazuh-agent
systemctl enable wazuh-agent
systemctl start wazuh-agent

# Registrar agente
/var/ossec/bin/agent-auth -m wazuh-server-ip
systemctl restart wazuh-agent

Reglas y Alertas

<!-- /var/ossec/etc/rules/local_rules.xml -->
<group name="syslog,sshd,">
  <rule id="100001" level="5">
    <if_sid>5716</if_sid>
    <match>Failed password</match>
    <description>SSH authentication failed.</description>
  </rule>
</group>

Dashboards

Wazuh incluye dashboards en Kibana/Opensearch para visualizar: - Alertas de seguridad - Estado de agentes - Vulnerabilidades - Integridad de archivos

Integración con Stack de Monitoreo

Prometheus + Grafana

# Falco metrics
scrape_configs:
  - job_name: 'falco'
    static_configs:
      - targets: ['falco:9376']

Alertas en Slack

# alertmanager.yml
route:
  group_by: ['alertname']
  group_wait: 10s
  group_interval: 10s
  repeat_interval: 1h
  receiver: 'slack'
receivers:
- name: 'slack'
  slack_configs:
  - api_url: 'https://hooks.slack.com/services/...'
    channel: '#security'

Mejores Prácticas

  • Reglas Específicas: Personalizar reglas para el entorno, evitar falsos positivos.
  • Segmentación: Monitorear diferentes zonas (DMZ, internal, cloud).
  • Correlación: Usar SIEM para correlacionar eventos.
  • Respuesta: Definir playbooks para alertas críticas.
  • Mantenimiento: Actualizar firmas y reglas regularmente.

Ejemplos de Detección

Falco: Detección de Crypto Mining

- rule: Crypto mining detection
  desc: Detect crypto mining activity
  condition: (spawned_process and (proc.cmdline contains "xmrig" or proc.cmdline contains "minerd"))
  output: Crypto mining process detected (command=%proc.cmdline user=%user.name)
  priority: CRITICAL

Wazuh: Detección de Rootkits

<rule id="100002" level="12">
  <if_sid>530</if_sid>
  <match>Possible rootkit</match>
  <description>Rootkit detected by rkhunter.</description>
  <group>rootkit,</group>
</rule>

Troubleshooting

# Ver logs de Falco
kubectl logs -n falco deployment/falco

# Ver estado de agentes Wazuh
/var/ossec/bin/agent_control -l

# Ver alertas en tiempo real
tail -f /var/ossec/logs/alerts/alerts.log

Referencias