§1Visão geral e princípios básicos
RoamSwitch Server Edition é um conjunto de segurança de rede autônoma residente e sem cabeça e proteção de integridade desenvolvido especificamente para infraestruturas de servidores Linux em provedores de nuvem (AWS, GCP, Azure, VPS bare-metal) e data centers locais.
Ao contrário das edições de estação de trabalho cliente focadas na mobilidade e adaptação do perímetro Wi-Fi, a Server Edition é baseada em cinco princípios intransigentes: Inbound Default Drop, Critical Path File Integrity Monitoring (FIM), Preemptive Kernel LPE & Privilege Escalation Hardening, eBPF Runtime Threat Telemetry, e Isolamento autônomo de host air-gap com alertas de emergência pré-separação.
Construído com uma garantia estrita de Zero Telemetry, o software não contém nenhuma análise HTTP/TLS externa ou bibliotecas de rastreamento. Todos os segredos administrativos e tokens são protegidos criptograficamente sob permissões estritas 0600.
1.1 Comparação: Edição Cliente vs. Edição Servidor
| Dimensão | Edição cliente (desktop/móvel) | Edição Server (Headless/Infraestrutura) |
|---|---|---|
| Implantação | Laptops, estações de trabalho móveis para desenvolvedores | VMs em nuvem, nós bare-metal, hosts de contêiner |
| Comportamento da rede | Comutação dinâmica de perfil baseada em Wi-Fi SSID / Gateway MAC | Descarte padrão de entrada estática. Somente portas explicitamente permitidas são expostas |
| Interface do usuário | GTK3 Desktop GUI + indicador de bandeja | CUI puro sem cabeça. Comandos CLI + assistente interativo |
| Notificações de incidentes | Notificações na área de trabalho (libnotify) | Push direto para Telegram Bot, LINE Messaging API e Webhooks (Slack/Discord) |
| Defesas Primárias | Falsificação de ARP de Wi-Fi público, BadUSB, criptografia de documentos ransomware | Queda de reconhecimento externo, detecção de adulteração de FIM, fugas de contêiner, kernel LPE (CVE-2026-53362) |
1.2 Princípios Arquitetônicos Fundamentais
- Zero Telemetry: O software nunca transmite telemetria, métricas ou telemetria para servidores externos. As chamadas de rede externas ocorrem estritamente para alertas de incidentes configurados pelo usuário por meio da execução do subprocesso
curl. Por padrão, não inclui nenhuma biblioteca de comunicação externa. A única exceção: somente se o operador ativar explicitamentecve_kernel_map_updates_enabled(false por padrão), oroamswitch-updaterbusca anonimamente, uma vez por dia, o banco de dados de CVE do kernel para a auditoria de isolamento de contêineres a partir de lafine.net. - Inbound Default Drop: Pacotes de entrada não destinados a uma porta de serviço explicitamente declarada ou à porta de manutenção SSH administrativa são descartados no nível do kernel
nftablessem gerar pacotes ICMP RST. - Contenção Autônoma Fail-Closed: As regras de Air-Gap de emergência sobrevivem às reinicializações do daemon e às falhas do processo. Se atores externos tentarem liberar tabelas nftables, o daemon detectará o desvio e restaurará o isolamento em segundos.
- 0600 Proteção criptográfica secreta:
/etc/roamswitch/server.confimpõe permissões0600estritas (legíveis apenas pelo root) na criação e em cada atualização.
§2Cenário de ameaças e modelo adversário
Os servidores modernos voltados para a Internet enfrentam varreduras automatizadas implacáveis, vetores de quebra de contêineres e escalonamentos de privilégios de kernel de dia zero.
- Reconhecimento automatizado e exposição de banco de dados: scanners em toda a Internet que localizam portas de banco de dados internas expostas involuntariamente (MySQL 3306, Redis 6379, Postgres 5432).
- Violação de caminho crítico e inserção de backdoor: Intrusos estabelecem persistência modificando binários de autenticação principais (
/bin/login,/usr/bin/sudo,/etc/pam.d/*,/etc/shadow). - Escalonamento de privilégios de kernel (CVE-2026-53362 Frag Gap): Atacantes sem privilégios transformam namespaces de usuários em armas (
unshare -U -r) para acionar corrupção de memória do kernel e escalar para root. - Container Socket Breakout: Contêineres configurados incorretamente com sinalizadores
/var/run/docker.sockou--privilegedmontados executando ações raiz no sistema operacional host. - Snooping de memória de processo: invasores anexando
ptraceou lendo/proc/$pid/memem processos para extrair chaves privadas ou credenciais.
§3Arquitetura do Sistema
RoamSwitch Server Edition opera como binários Rust nativos projetados para memória mínima e zero sobrecarga de CPU.
┌─────────────────────────────────────────────────────────────┐
│ Espaço de utilizador e administrador │
│ │
│ roamswitch (CLI) roamswitch-mcp (AI Agent) │
│ · server status (30 itens) · ferramentas de auditoria │
│ · server config / setup · stdio JSON-RPC │
│ · fim verify / update │
│ │ │ │
└───────┼───────────────────────────────────┼─────────────────┘
│ (comandos CLI e config) │ (stdio)
┌───────▼───────────────────────────────────▼─────────────────┐
│ Base do sistema (systemd + privilégio root) │
│ │
│ roamswitch-server-daemon │
│ ├── CriticalPathFim (varredura SHA-256 em 2º plano) │
│ ├── módulo de integração eBPF/Falco │
│ ├── Notifier (alertas Telegram / LINE / Webhook) │
│ └── Air-Gap Controller (regras de emergência nftables) │
│ │
│ Configuração: /etc/roamswitch/server.conf (permissão 0600)│
│ BD de integridade: /var/lib/roamswitch/fim_baseline.db │
└─────────────────────────────────────────────────────────────┘
§4Mecanismos Básicos de Defesa
4.1 Segurança de limite (queda padrão de entrada)
nftables aplica-se policy drop ao tráfego de entrada, permitindo conexões estabelecidas, loopback e ssh_ports e allowed_ports explicitamente configurados.
A preservação das portas de gerenciamento SSH evita o bloqueio acidental do operador durante estados de emergência Air-Gap.
4.2 Monitoramento de integridade de arquivos de caminho crítico (FIM)
Monitora mais de 150 arquivos administrativos e de autenticação de sistema operacional críticos (/bin/login, /usr/sbin/sshd, /etc/pam.d/*, etc.). Calcula hashes SHA-256 em relação a /var/lib/roamswitch/fim_baseline.db. O gancho do gerenciador de pacotes /etc/apt/apt.conf.d/99roamswitch-fim atualiza automaticamente a linha de base após operações apt upgrade autorizadas.
4.3 Endurecimento de Kernel e Contêiner
Frag Gap (CVE-2026-53362) Mitigação: impõe user.max_user_namespaces = 0 via sysctl, neutralizando vetores LPE. Yama LSM Protection impõe kernel.yama.ptrace_scope = 2, evitando inspeção de memória não autorizada. As cargas de trabalho de contêiner são auditadas quanto à exposição docker.sock.
As portas publicadas pelo Docker (-p) têm um problema conhecido de bypass da firewall padrão do anfitrião, pelo que protect_docker_ports=true (predefinição) insere permanentemente regras de inspeção na cadeia DOCKER-USER, bloqueando qualquer tráfego externo não explicitamente permitido. Além disso, uma proteção sempre ativa monitoriza docker events em tempo real e notifica-o imediatamente quando um contentor --privileged é iniciado ou /var/run/docker.sock é montado — um risco de fuga do contentor (não requer configuração; apenas notificação, sem bloqueio automático). Para anfitriões que lidam com ficheiros de terceiros — um relay de correio, uma pasta partilhada —, um File Scan Guard opcional (YARA incorporado mais ClamAV opcional) proporciona análises periódicas e quarentena automática.
4.4 Telemetria de ameaças em tempo de execução eBPF e ajuste anti-inchaço
Utiliza sondas eBPF modernas (CO-RE/BTF) para interceptar escalada de privilégios e tentativas de quebra de contêiner em milissegundos. Para eliminar os pontos problemáticos padrão do Falco — inchaço de log, esgotamento de disco e sobrecarga de CPU — o RoamSwitch padroniza um perfil otimizado (/etc/falco/config.d/99-roamswitch-optimized.yaml):
- Filtragem de gravidade (
priority: warning): Suprime a telemetria operacional ruidosa (Informações/Avisos) em 95%, revelando incidentes de segurança estritamente acionáveis. - Kernel-Level Pre-Drop (
drop_failed_exit: true): Descarta saídas de syscall com falha diretamente no teste do kernel, reduzindo as alternâncias de contexto da CPU em mais de 50%. - Otimização de espaço de memória (
cpus_for_each_buffer: 2): compacta buffers de anel de 8 MB para 2 MB, limitando estritamente o uso de memória a 30–50 MB. - Direct UNIX Domain Socket IPC: O streaming direto para
/var/run/roamswitch/events.sockelimina completamente a sobrecarga de E/S do disco. - Automated Log Cap (
/etc/logrotate.d/roamswitch-falco): A rotação diária commaxsize 50Me 7 ciclos compactados evita permanentemente o esgotamento da capacidade do disco.
4.5 Isolamento de Emergência do Entreferro com Alertas Pré-Separação
Imediatamente antes de cortar as interfaces de rede em caso de violação crítica, o daemon envia alertas de emergência de forma síncrona para Telegram, LINE e Webhooks. Os alertas acrescentam automaticamente o servidor Hostname e 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§5Conjunto de diagnóstico de segurança de 30 verificações
A Server Edition executa 30 auditorias especializadas de integridade de segurança:
| # | Categoria | Verifique o título | Padrão e Lógica |
|---|---|---|---|
| 1 | Autenticação e acesso | Login raiz SSH e autenticação de senha | Verifica PermitRootLogin no e autenticação de senha desativada |
| 2 | Autenticação e acesso | Contas com senha vazia | Garante que nenhum usuário tenha hash de senha em branco em /etc/shadow |
| 3 | Autenticação e acesso | Sudoers Privilégio Higiene | Verifica se não existem diretivas NOPASSWD não autorizadas |
| 4 | Rede | Negação padrão de entrada | Auditorias nftables para política de recebimento de entrada padrão |
| 5 | Kernel e integridade | Namespaces de usuários sem privilégios (Frag Gap) | Garante user.max_user_namespaces = 0 (CVE-2026-53362) |
| 6 | Kernel e integridade | Suporte eBPF BTF | Valida informações do tipo BTF do kernel via /sys/kernel/btf/vmlinux |
| 7 | Kernel e integridade | eBPF LSM ativo | Verifica se há bpf no parâmetro de inicialização lsm= do kernel |
| 8 | Kernel e integridade | Agente de segurança de tempo de execução eBPF | Valida link de telemetria para agentes Falco/Tetragon |
| 9 | Recipiente | Auditoria de montagem de soquete Docker | Detecta montagens de contêiner de /var/run/docker.sock |
| 10 | Recipiente | Contêineres privilegiados do Docker | Auditorias para cargas de trabalho de contêiner --privileged de alto risco |
| 11 | Integridade | Integridade de arquivo de caminho crítico (FIM) | Valida hashes SHA-256 de mais de 150 binários principais do sistema operacional |
| 12 | Kernel e integridade | Proteção de Processo Yama | Verifica kernel.yama.ptrace_scope = 2 |
| 13 | Rede | Encaminhamento de IP desativado | Verifica net.ipv4.ip_forward = 0 |
| 14 | Rede | Proteção de cookies TCP SYN | Verifica net.ipv4.tcp_syncookies = 1 |
| 15 | Rede | Filtragem de caminho reverso (rp_filter) | Verifica a filtragem estrita de caminho reverso (rp_filter = 1) |
| 16 | Kernel e integridade | Restrição de dump principal | Evita vazamentos de memória do processo via fs.suid_dumpable = 0 |
| 17 | Operações | Atualizações automáticas de segurança | Valida a configuração de unattended-upgrades |
| 18 | Operações | Sincronização de horário NTP | Verifica a sincronização via chrony ou systemd-timesyncd |
| 19 | Operações | Proteção de força bruta SSH | Verifica o monitoramento ativo via fail2ban ou crowdsec |
| 20 | Kernel e integridade | eBPF sem privilégios desativado | Verificações kernel.unprivileged_bpf_disabled = 1 |
| 21 | Rede | Redirecionamentos ICMP ignorados | Evita envenenamento de rota via accept_redirects = 0 |
| 22 | Rede | Transmissões de eco ICMP ignoradas | Mitiga ataques DoS do amplificador Smurf |
| 23 | Kernel e integridade | Endurecimento de memória compartilhada | Garante que /dev/shm tenha opções de montagem nodev,nosuid |
| 24 | Autenticação e acesso | Protocolos legados inseguros ausentes | Verifica a ausência de daemons de texto não criptografado (telnet, rsh, tftp) |
| 25 | Kernel e integridade | Despejos principais do processo SUID restritos | Evita vazamentos de credenciais em falhas binárias SUID |
§6Autoverificação (verificação reproduzível em um ambiente Docker)
Os mecanismos de defesa do RoamSwitch Server Edition (Inbound Default Drop, Critical Path FIM, contenção por severidade via guard.yaml, o mecanismo de segurança de processos protegidos, o temporizador de segurança, o endurecimento do kernel contra LPE, entre outros) podem ser totalmente reproduzidos e verificados na sua própria máquina, usando um contêiner Docker separado como atacante externo contra o pacote real roamswitch-server v1.3.2 instalado a partir do repositório APT oficial (não um binário compilado localmente). Abaixo estão os oito cenários de verificação e o comportamento que cada um deve exibir (critério de aprovação). Veja a seção 6.3 abaixo para os passos e scripts exatos.
| # | Cenário | Vetor de ataque | Critério de aprovação |
|---|---|---|---|
| PENT-S1 | Nmap SYN Verificação furtiva | Sonde as portas 22, 80, 443, 3306, 8080 | PASS (100% furtivo) |
| PENT-S2 | Investigação de porta não permitida | curl conexões diretas às portas 3306 e 8080 | PASSAR |
| PENT-S3 | Lista de bloqueio de Egress / C2 | Tentativa de conexão de saída para um endereço registrado no feed de IPs maliciosos | Aprovado Apenas o endereço registrado é bloqueado; o tráfego para um host não listado não é afetado (não é um bloqueio geral) |
| PENT-S4 | Ataque de adulteração FIM | Injetar carga útil de backdoor em /bin/login |
PASS (detecção instantânea) |
| PENT-S5 | Contenção baseada em gravidade via guard.yaml |
Injeção de um evento Falco Critical referenciando um processo real | Aprovado O processo responsável é isolado da rede e, em seguida, encerrado com SIGKILL |
| PENT-S6 | Mecanismo de segurança para processos protegidos | Injeção de um evento do mesmo tipo referenciando o PID real do sshd |
Aprovado O sshd continua em execução; apenas uma recusa é registrada como falso positivo |
| PENT-S7 | Temporizador de segurança | Incidente de Air-Gap deixado sem confirmação (sem ACK do operador) | Aprovado Restaura automaticamente quando não há confirmação; uma vez confirmado (ACK), o isolamento continua até o emergency-restore |
| PENT-S8 | Lacuna de fragmentação LPE do kernel | Execute unshare -U -r como usuário sem privilégios |
PASS (rejeitado) |
Prevenção de bloqueio de SSH
Enquanto um Air-Gap em todo o host (on_emergency) está ativo, a sessão SSH do administrador não é cortada, graças a preserve_ssh_on_isolation=true (padrão). Esse design previne estruturalmente o cenário em que um falso positivo isola completamente um servidor, tornando-o inacessível sem acesso físico ou ao console. Você pode verificar esse comportamento por conta própria com a etapa equivalente a PENT-S7 no conjunto de testes Docker acima.
Limites do escopo de verificação (uma divulgação honesta)
O endurecimento do kernel (desativar namespaces de usuário sem privilégios, elevar o ptrace_scope do Yama) não pode ser verificado de ponta a ponta a partir de dentro de um contêiner. Como esses sysctls não possuem namespace por contêiner, gravações a partir de um contêiner privilegiado (--privileged) afetam não um sandbox de teste, mas sim a máquina real que está executando o teste. Portanto, esta verificação confirma apenas que a gravação do sysctl falha de forma controlada (sem travar) diante de um sistema de arquivos somente leitura; confirmar que o valor realmente é aplicado requer uma máquina real ou VM, que é como o produto foi projetado para funcionar.
Reproduza você mesmo
Todos os resultados acima podem ser reproduzidos 100% em sua própria máquina, usando apenas o pacote de distribuição oficial, por meio do conjunto de testes Docker publicado no repositório de suporte oficial (roamswitch-support) — não é necessário acesso ao código-fonte nem confiar em nós.
# Obtenha e reproduza o conjunto de verificação (instala automaticamente o roamswitch-server a partir do repositório APT oficial)
git clone https://github.com/lafine1211/roamswitch-support.git
cd roamswitch-support/test/docker/server
./run.sh
Cria três contêineres descartáveis (Target, Attacker e um decoy de C2) na rede bridge padrão do Docker e verifica automaticamente todos os 18 itens, imprimindo um relatório. O resultado completo da execução está publicado em RESULTS-PENTEST-SERVER-2026-09-07.md (incluindo, para fins de transparência, os problemas do próprio arcabouço de teste encontrados e corrigidos durante sua construção).
§7Operações, implantação e ciclo de vida
7.1 Assistente de configuração e ferramentas CUI sem cabeça
Gerenciamento remoto completo via CLI:
roamswitch server status: Saída de diagnóstico completa de 30 verificações (JA/EN).roamswitch server setup: Assistente de terminal interativo para portas e notificações.roamswitch server config show / set <key> <val>: Automação programável para Ansible/Terraform.roamswitch server test-notify [all|telegram|line|webhook]: Sondagem de notificação ponta a ponta.
7.2 Embalagem
Distribuído através de repositórios oficiais Debian/Ubuntu .deb, repositórios RHEL/Fedora .rpm e Arch Linux AUR (roamswitch-server-bin).
§8Conclusão
O RoamSwitch Server Edition oferece um perímetro defensivo descomprometido para infraestruturas de servidores Linux: privacidade de telemetria zero, queda padrão de entrada, caminho crítico FIM e mitigação proativa de escalonamento de privilégios de kernel, fornecendo defesa autônoma unificada para nós de nuvem modernos.
É o padrão de segurança para servidores Linux de nova geração que oferece defesa em camadas e contenção autônoma (Air-Gap) em todas as etapas do vetor de ataque visado por cibercriminosos — reconhecimento inicial, intrusão, escalonamento de privilégios e persistência.