§1Descripción general y principios básicos
RoamSwitch Server Edition es una suite de protección de integridad y seguridad de red autónoma residente y sin cabeza diseñada específicamente para infraestructuras de servidores Linux en proveedores de nube (AWS, GCP, Azure, VPS bare-metal) y centros de datos locales.
A diferencia de las ediciones de estaciones de trabajo cliente centradas en la movilidad y la adaptación del perímetro Wi-Fi, la edición Server se basa en cinco principios inflexibles: Caída predeterminada de entrada, Monitoreo de integridad de archivos de ruta crítica (FIM), LPE de kernel preventivo y refuerzo de escalada de privilegios, Telemetría de amenazas en tiempo de ejecución eBPF, y Aislamiento autónomo del host por espacio de aire con alertas de emergencia previas al despido.
Construido con una estricta garantía Zero Telemetry, el software no contiene bibliotecas de seguimiento o análisis HTTP/TLS externos. Todos los secretos administrativos y tokens están protegidos criptográficamente bajo estrictos permisos 0600.
1.1 Comparación: Edición Cliente versus Edición Servidor
| Dimensión | Edición de cliente (escritorio/móvil) | Edición de servidor (sin cabeza/infraestructura) |
|---|---|---|
| Implementación | Computadoras portátiles, estaciones de trabajo móviles para desarrolladores | VM en la nube, nodos bare-metal, hosts de contenedores |
| Comportamiento de la red | Cambio de perfil dinámico basado en Wi-Fi SSID/Gateway MAC | Descarga predeterminada de entrada estática. Sólo se exponen los puertos permitidos explícitamente |
| Interfaz de usuario | GUI de escritorio GTK3 + indicador de bandeja | CUI puro sin cabeza. Comandos CLI + asistente interactivo |
| Notificaciones de incidentes | Notificaciones de escritorio (libnotify) | Envío directo a Telegram Bot, API de mensajería LINE y Webhooks (Slack/Discord) |
| Defensas Primarias | Suplantación de ARP de Wi-Fi pública, BadUSB, cifrado de documentos ransomware | Caída de reconocimiento externo, detección de manipulación FIM, fugas de contenedores, kernel LPE (CVE-2026-53362) |
1.2 Principios arquitectónicos básicos
- Zero Telemetry: El software nunca transmite telemetría, métricas o telemetría a servidores externos. Las llamadas a la red externa se producen estrictamente para alertas de incidentes configuradas por el usuario mediante la ejecución del subproceso
curl. De forma predeterminada no incluye ninguna biblioteca de comunicación externa. La única excepción: solo si el operador activa explícitamentecve_kernel_map_updates_enabled(false por defecto),roamswitch-updaterobtiene de forma anónima, una vez al día, la base de datos de CVE del kernel para la auditoría de aislamiento de contenedores desde lafine.net. - Descarga predeterminada entrante: los paquetes entrantes no destinados a un puerto de servicio declarado explícitamente o al puerto de mantenimiento SSH administrativo se descartan en el nivel del kernel
nftablessin generar paquetes ICMP RST. - Contención autónoma de cierre fallido: Las reglas de espacio de aire de emergencia sobreviven a los reinicios del demonio y a las fallas del proceso. Si actores externos intentan vaciar las tablas de nftables, el demonio detecta la desviación y restaura el aislamiento en cuestión de segundos.
- 0600 Protección de secreto criptográfico:
/etc/roamswitch/server.confaplica permisos estrictos0600(legibles solo por root) tras la creación y cada actualización.
§2Threat Landscape & Adversary Model
Modern internet-facing servers confront relentless automated scanning, container breakout vectors, and zero-day kernel privilege escalations.
- Reconocimiento automatizado y exposición de bases de datos: escáneres de Internet que localizan puertos de bases de datos internos expuestos involuntariamente (MySQL 3306, Redis 6379, Postgres 5432).
- Manipulación de ruta crítica e inserción de puerta trasera: Intrusos que establecen persistencia modificando los archivos binarios de autenticación centrales (
/bin/login,/usr/bin/sudo,/etc/pam.d/*,/etc/shadow). - Escalada de privilegios del kernel (CVE-2026-53362 Frag Gap): atacantes sin privilegios que utilizan espacios de nombres de usuario como armas (
unshare -U -r) para desencadenar la corrupción de la memoria del kernel y escalar a la raíz. - Container Socket Breakout: contenedores mal configurados con indicadores
/var/run/docker.socko--privilegedmontados que ejecutan acciones raíz en el sistema operativo host. - Espionaje de memoria de procesos: los atacantes adjuntan
ptraceo leen/proc/$pid/mementre procesos para extraer claves privadas o credenciales.
§3System Architecture
RoamSwitch Server Edition operates as native Rust binaries designed for minimal memory and zero CPU overhead.
┌─────────────────────────────────────────────────────────────┐
│ Espacio de usuario y administrador │
│ │
│ roamswitch (CLI) roamswitch-mcp (AI Agent) │
│ · server status (30 puntos) · herramientas de auditoría │
│ · server config / setup · stdio JSON-RPC │
│ · fim verify / update │
│ │ │ │
└───────┼───────────────────────────────────┼─────────────────┘
│ (comandos CLI y config) │ (stdio)
┌───────▼───────────────────────────────────▼─────────────────┐
│ Base del sistema (systemd + privilegio root) │
│ │
│ roamswitch-server-daemon │
│ ├── CriticalPathFim (barrido SHA-256 en 2º plano) │
│ ├── módulo de integración eBPF/Falco │
│ ├── Notifier (alertas Telegram / LINE / Webhook) │
│ └── Air-Gap Controller (reglas de emergencia nftables) │
│ │
│ Configuración: /etc/roamswitch/server.conf (permiso 0600) │
│ BD de integridad: /var/lib/roamswitch/fim_baseline.db │
└─────────────────────────────────────────────────────────────┘
§4Core Defense Mechanisms
4.1 Boundary Security (Inbound Default Drop)
nftables applies policy drop on inbound traffic, permitting established connections, loopback, and explicitly configured ssh_ports and allowed_ports.
Preservation of SSH management ports prevents accidental operator lockout during emergency Air-Gap states.
4.2 Critical Path File Integrity Monitoring (FIM)
Monitors 150+ critical OS authentication and administrative files (/bin/login, /usr/sbin/sshd, /etc/pam.d/*, etc.). Calculates SHA-256 hashes against /var/lib/roamswitch/fim_baseline.db. Package manager hook /etc/apt/apt.conf.d/99roamswitch-fim automatically updates the baseline following authorized apt upgrade operations.
4.3 Kernel & Container Hardening
Frag Gap (CVE-2026-53362) Mitigation: Enforces user.max_user_namespaces = 0 via sysctl, neutralizing LPE vectors. Yama LSM Protection enforces kernel.yama.ptrace_scope = 2, preventing unauthorized memory inspection. Container workloads are audited for docker.sock exposure.
Los puertos publicados por Docker (-p) tienen un problema conocido de evasión del firewall estándar del host, por lo que protect_docker_ports=true (predeterminado) inserta permanentemente reglas de inspección en la cadena DOCKER-USER, bloqueando cualquier tráfico externo no permitido explícitamente. Además, una protección siempre activa vigila docker events en tiempo real y le notifica de inmediato cuando se inicia un contenedor --privileged o se monta /var/run/docker.sock, un riesgo de escape del contenedor (no requiere configuración; solo notifica, sin bloqueo automático). Para los hosts que gestionan archivos de terceros —un relé de correo, una carpeta compartida—, un File Scan Guard opcional (YARA integrado más ClamAV opcional) ofrece análisis periódicos y cuarentena automática.
4.4 eBPF Runtime Threat Telemetry & Anti-Bloat Tuning
Utiliza sondas eBPF modernas (CO-RE/BTF) para interceptar intentos de escalada de privilegios y ruptura de contenedores en milisegundos. Para eliminar los puntos débiles estándar de Falco ( hinchazón de registros, agotamiento del disco y sobrecarga de CPU), RoamSwitch estandariza un perfil optimizado (/etc/falco/config.d/99-roamswitch-optimized.yaml):
- Filtrado de gravedad (
priority: warning): suprime la telemetría operativa ruidosa (información/aviso) en un 95 %, lo que revela incidentes de seguridad estrictamente procesables. - Precaída a nivel de kernel (
drop_failed_exit: true): Descarta las salidas de llamadas al sistema fallidas directamente en la sonda del kernel, lo que reduce los cambios de contexto de la CPU en más del 50 %. - Optimización del espacio de memoria (
cpus_for_each_buffer: 2): comprime los buffers circulares de 8 MB a 2 MB, limitando estrictamente el uso de memoria a 30–50 MB. - Socket de dominio UNIX directo IPC: la transmisión directa a
/var/run/roamswitch/events.sockelimina por completo la alteración de E/S del disco. - Capa de registro automatizada (
/etc/logrotate.d/roamswitch-falco): la rotación diaria conmaxsize 50My 7 ciclos comprimidos evita permanentemente el agotamiento de la capacidad del disco.
4.5 Aislamiento de emergencia por espacio de aire con alertas previas al despido
Inmediatamente antes de cortar las interfaces de red ante una manipulación crítica, el demonio envía sincrónicamente alertas de emergencia a Telegram, LINE y Webhooks. Las alertas agregan automáticamente el servidor Hostname y Primary IP Address.
🚨 [RoamSwitch IMMINENT AIR-GAP] CRITICAL: IMMINENT AIR-GAP HOST ISOLATION (cve_2026_53362_lpe)
🚨 CRITICAL SECURITY INCIDENT DETECTED: cve_2026_53362_lpe
Host: production-node-01 (IP: 192.168.1.10)
Process: exploit_payload (PID: 4921)
ACTION: Initiating host Air-Gap network isolation (SSH preservation active).
WARNING: Outbound internet connectivity will be cut immediately after this message.
Timestamp: 2026-09-06 18:00:00§5Paquete de diagnóstico de seguridad de 30 comprobaciones
Server Edition ejecuta 30 auditorías de estado de seguridad especializadas:
| # | Categoría | Comprobar título | Estándar y lógica |
|---|---|---|---|
| 1 | Autenticación y acceso | Autenticación de inicio de sesión y contraseña de raíz SSH | Verifica PermitRootLogin no y autenticación de contraseña deshabilitada |
| 2 | Autenticación y acceso | Cuentas de contraseña vacías | Garantiza que ningún usuario tenga un hash de contraseña en blanco en /etc/shadow |
| 3 | Autenticación y acceso | Higiene privilegiada de Sudoers | Verifica que no existan directivas NOPASSWD no autorizadas |
| 4 | Red | Denegación predeterminada entrante | Auditorías nftables para la política de entrega entrante predeterminada |
| 5 | Núcleo e integridad | Espacios de nombres de usuarios sin privilegios (Frag Gap) | Garantiza user.max_user_namespaces = 0 (CVE-2026-53362) |
| 6 | Núcleo e integridad | Soporte eBPF BTF | Valida la información del tipo BTF del kernel a través de /sys/kernel/btf/vmlinux |
| 7 | Núcleo e integridad | eBPF LSM activo | Comprueba bpf en el parámetro de arranque lsm= del kernel |
| 8 | Núcleo e integridad | Agente de seguridad en tiempo de ejecución eBPF | Valida enlace de telemetría con agentes Falco/Tetragon |
| 9 | Contenedor | Auditoría de montaje de zócalo Docker | Detecta montajes de contenedores de /var/run/docker.sock |
| 10 | Contenedor | Contenedores privilegiados de Docker | Auditorías para cargas de trabajo de contenedores --privileged de alto riesgo |
| 11 | integridad | Integridad de archivos de ruta crítica (FIM) | Valida hashes SHA-256 de más de 150 binarios centrales del sistema operativo |
| 12 | Núcleo e integridad | Protección del proceso Yama | Verifica kernel.yama.ptrace_scope = 2 |
| 13 | Red | Reenvío de IP deshabilitado | Verifica net.ipv4.ip_forward = 0 |
| 14 | Red | Protección de cookies TCP SYN | Verifica net.ipv4.tcp_syncookies = 1 |
| 15 | Red | Filtrado de ruta inversa (rp_filter) | Verifica el filtrado estricto de ruta inversa (rp_filter = 1) |
| 16 | Núcleo e integridad | Restricción de volcado de núcleo | Previene pérdidas de memoria de proceso a través de fs.suid_dumpable = 0 |
| 17 | Operaciones | Actualizaciones de seguridad automáticas | Valida la configuración de unattended-upgrades |
| 18 | Operaciones | Sincronización de hora NTP | Comprueba la sincronización a través de chrony o systemd-timesyncd |
| 19 | Operaciones | Protección de fuerza bruta SSH | Verifica el monitoreo activo a través de fail2ban o crowdsec |
| 20 | Núcleo e integridad | eBPF sin privilegios deshabilitado | Cheques kernel.unprivileged_bpf_disabled = 1 |
| 21 | Red | Redirecciones ICMP ignoradas | Previene el envenenamiento de ruta vía accept_redirects = 0 |
| 22 | Red | Transmisiones de eco ICMP ignoradas | Mitiga los ataques DoS del amplificador Smurf |
| 23 | Núcleo e integridad | Endurecimiento de la memoria compartida | Garantiza que /dev/shm tenga opciones de montaje nodev,nosuid |
| 24 | Autenticación y acceso | Protocolos inseguros heredados ausentes | Verifica la ausencia de demonios de texto sin cifrar (telnet, rsh, tftp) |
| 25 | Núcleo e integridad | Volcados de núcleo del proceso SUID restringidos | Previene fugas de credenciales en fallas binarias SUID |
§6Autoverificación (verificación reproducible en un entorno Docker)
Los mecanismos de defensa de RoamSwitch Server Edition (Inbound Default Drop, Critical Path FIM, contención por gravedad mediante guard.yaml, el mecanismo de seguridad de procesos protegidos, el temporizador de seguridad, el endurecimiento del kernel contra LPE, entre otros) se pueden reproducir y verificar por completo en su propia máquina utilizando un contenedor Docker independiente como atacante externo contra el paquete real roamswitch-server v1.3.2 instalado desde el repositorio APT oficial (no un binario compilado localmente). A continuación se presentan los ocho escenarios de verificación y el comportamiento que debe observarse en cada uno (criterio de aprobación). Consulte la sección 6.3 más abajo para conocer los pasos y scripts exactos.
| # | Escenario | Vector de ataque | Criterio de aprobación |
|---|---|---|---|
| PENT-S1 | Nmap SYN Escaneo sigiloso | Sonda a través de los puertos 22, 80, 443, 3306, 8080 | PASS (100% sigiloso) |
| PENT-S2 | Sondeo de puerto no permitido | conexiones curl directas al puerto 3306 y 8080 | PASA |
| PENT-S3 | Lista de bloqueo de Egress / C2 | Intento de conexión saliente a una dirección registrada en el feed de IP maliciosas | Superado Solo se bloquea la dirección registrada; el tráfico hacia un host no incluido en la lista no se ve afectado (no es un bloqueo general) |
| PENT-S4 | Ataque de manipulación FIM | Inyectar carga útil de puerta trasera en /bin/login |
PASS (Detección instantánea) |
| PENT-S5 | Contención basada en gravedad mediante guard.yaml |
Inyección de un evento Falco Critical que hace referencia a un proceso real | Superado El proceso responsable se aísla de la red y luego se termina con SIGKILL |
| PENT-S6 | Mecanismo de seguridad para procesos protegidos | Inyección de un evento del mismo tipo que hace referencia al PID real de sshd |
Superadosshd sigue funcionando; solo se registra un rechazo como falso positivo |
| PENT-S7 | Temporizador de seguridad | Se dejó un incidente de Air-Gap sin confirmar (sin ACK del operador) | Superado Se restaura automáticamente si no hay confirmación; una vez confirmado (ACK), el aislamiento continúa hasta emergency-restore |
| PENT-S8 | Brecha de fragmentación LPE del kernel | Ejecutar unshare -U -r como usuario sin privilegios |
PASS (Rechazado) |
Prevención de bloqueo de SSH
Mientras un Air-Gap a nivel de host (on_emergency) está activo, la sesión SSH del administrador no se corta, gracias a preserve_ssh_on_isolation=true (valor predeterminado). Este diseño evita estructuralmente el escenario en el que un falso positivo aísla completamente un servidor, dejándolo inaccesible sin acceso físico o a la consola. Puede verificar este comportamiento usted mismo con el paso equivalente a PENT-S7 en el conjunto de pruebas Docker anterior.
Límites del alcance de la verificación (una divulgación honesta)
El endurecimiento del kernel (deshabilitar los espacios de nombres de usuario sin privilegios, aumentar el ptrace_scope de Yama) no se puede verificar de extremo a extremo desde dentro de un contenedor. Dado que estos sysctl no están aislados por espacio de nombres a nivel de contenedor, las escrituras desde un contenedor privilegiado (--privileged) no afectan a un entorno aislado de prueba, sino a la máquina real que ejecuta la prueba. Por lo tanto, esta verificación solo confirma que la escritura del sysctl se degrada correctamente (sin fallos) frente a un sistema de archivos de solo lectura; confirmar que el valor realmente se aplica requiere una máquina real o una VM, que es como está pensado que se ejecute el producto.
Reprodúzcalo usted mismo
Todos los resultados anteriores se pueden reproducir al 100 % en su propia máquina, utilizando únicamente el paquete de distribución oficial, mediante el conjunto de pruebas Docker publicado en el repositorio de soporte oficial (roamswitch-support); no se requiere acceso al código fuente ni confiar en nosotros.
# Obtener y reproducir la suite de verificación (instala automáticamente roamswitch-server desde el repositorio APT oficial)
git clone https://github.com/lafine1211/roamswitch-support.git
cd roamswitch-support/test/docker/server
./run.sh
Crea tres contenedores desechables (Target, Attacker y un señuelo C2) en la red bridge predeterminada de Docker y verifica automáticamente los 18 puntos, imprimiendo un informe. El resultado completo de la ejecución está publicado en RESULTS-PENTEST-SERVER-2026-09-07.md (incluyendo, por transparencia, los problemas del propio arnés de pruebas detectados y corregidos durante su construcción).
§7Operaciones, implementación y ciclo de vida
7.1 Asistente de configuración y herramientas de CUI sin cabeza
Gestión remota completa a través de CLI:
roamswitch server status: Salida de diagnóstico completa de 30 comprobaciones (JA/EN).roamswitch server setup: Asistente de terminal interactivo para puertos y notificaciones.roamswitch server config show / set <key> <val>: Automatización programable para Ansible/Terraform.roamswitch server test-notify [all|telegram|line|webhook]: sondeo de notificación de un extremo a otro.
7.2 Embalaje
Distribuido a través de repositorios oficiales de Debian/Ubuntu .deb, repositorios RHEL/Fedora .rpm y Arch Linux AUR (roamswitch-server-bin).
§8Conclusión
RoamSwitch Server Edition ofrece un perímetro defensivo sin concesiones para las infraestructuras de servidores Linux: privacidad de telemetría cero, caída predeterminada de entrada, FIM de ruta crítica y mitigación proactiva de escalada de privilegios del kernel, lo que brinda una defensa autónoma unificada para los nodos de nube modernos.
Es el estándar de seguridad de servidores Linux de nueva generación que ofrece defensa en profundidad y contención autónoma (Air-Gap) en todas las etapas del vector de ataque que buscan los ciberatacantes: reconocimiento inicial, intrusión, escalada de privilegios y persistencia.