Lafine Systems Design · Documentazione tecnica

Whitepaper tecnico di RoamSwitch Server Edition

Suite di sicurezza di rete autonoma e difesa dell'integrità per infrastrutture server Linux cloud e headless

Versione v1.1.0 Ambito RoamSwitch Server Edition 1.3.2 Requisiti systemd + nftables Pubblicato 2026-09-07

§1Panoramica e principi fondamentali

RoamSwitch Server Edition è una suite headless e autonoma per la sicurezza di rete e la protezione dell'integrità, creata appositamente per le infrastrutture server Linux tra provider cloud (AWS, GCP, Azure, VPS bare metal) e data center locali.

A differenza delle edizioni workstation client incentrate sulla mobilità e sull'adattamento del perimetro Wi-Fi, la Server Edition si fonda su cinque principi senza compromessi: Inbound Default Drop, Critical Path File Integrity Monitoring (FIM), Preemptive Kernel LPE e Privilege Escalation Hardening, eBPF Runtime Threat Telemetria e Isolamento autonomo dell'host con air-gap con avvisi di emergenza pre-dismissione.

Costruito con una rigorosa garanzia Zero Telemetry, il software non contiene analisi HTTP/TLS esterne o librerie di tracciamento. Tutti i segreti e i token amministrativi sono protetti crittograficamente con rigorose autorizzazioni 0600.

1.1 Confronto: edizione client e edizione server

Dimensione Edizione client (desktop/mobile) Edizione Server (headless/infrastruttura)
Distribuzione Laptop, workstation mobili per sviluppatori VM cloud, nodi bare metal, host container
Comportamento di rete Commutazione dinamica del profilo basata su SSID Wi-Fi / Gateway MAC Rilascio predefinito in entrata statico. Vengono esposte solo le porte esplicitamente consentite
Interfaccia utente GUI desktop GTK3 + indicatore vassoio CUI puro senza testa. Comandi CLI + Procedura guidata interattiva
Notifiche di incidenti Notifiche sul desktop (libnotify) Push diretto a Bot di Telegram, API di messaggistica LINE e Webhook (Slack/Discord)
Difese primarie Spoofing ARP Wi-Fi pubblico, BadUSB, crittografia dei documenti ransomware Rilascio ricognizione esterna, rilevamento manomissione FIM, fughe di container, kernel LPE (CVE-2026-53362)

1.2 Principi architettonici fondamentali

  • Zero Telemetry: il software non trasmette mai telemetria, metriche o telemetria a server esterni. Le chiamate di rete esterne si verificano esclusivamente per gli avvisi di incidenti configurati dall'utente tramite l'esecuzione del sottoprocesso curl. Per impostazione predefinita non include alcuna libreria di comunicazione esterna. L'unica eccezione: solo se l'operatore attiva esplicitamente cve_kernel_map_updates_enabled (false di default), roamswitch-updater recupera in modo anonimo, una volta al giorno, il database CVE del kernel per l'audit di isolamento dei container da lafine.net.
  • Inbound Default Drop: i pacchetti in entrata non destinati a una porta di servizio dichiarata esplicitamente o alla porta di manutenzione SSH amministrativa vengono scartati a livello del kernel nftables senza generare pacchetti RST ICMP.
  • Fail-Closed Autonomous Containment: le regole Air-Gap di emergenza sopravvivono al riavvio del daemon e agli arresti anomali del processo. Se attori esterni tentano di svuotare le tabelle nftables, il demone rileva la deriva e ripristina l'isolamento in pochi secondi.
  • 0600 Protezione segreta crittografica: /etc/roamswitch/server.conf applica rigorosi permessi 0600 (leggibili solo da root) al momento della creazione e di ogni aggiornamento.

§2Panorama delle minacce e modello avversario

I moderni server connessi a Internet devono far fronte a scansioni automatizzate incessanti, vettori di breakout di contenitori ed escalation dei privilegi del kernel zero-day.

Affrontati i principali vettori di minaccia
  1. Riconoscimento automatizzato ed esposizione DB: scanner a livello di Internet che individuano porte di database interne esposte involontariamente (MySQL 3306, Redis 6379, Postgres 5432).
  2. Manomissione del percorso critico e inserimento di backdoor: intrusi che stabiliscono la persistenza modificando i file binari di autenticazione principali (/bin/login, /usr/bin/sudo, /etc/pam.d/*, /etc/shadow).
  3. Kernel Privilege Escalation (CVE-2026-53362 Frag Gap): aggressori senza privilegi utilizzano come arma gli spazi dei nomi degli utenti (unshare -U -r) per attivare il danneggiamento della memoria del kernel ed eseguire l'escalation a root.
  4. Container Socket Breakout: contenitori configurati in modo errato con flag /var/run/docker.sock o --privileged montati che eseguono azioni root sul sistema operativo host.
  5. Snooping della memoria dei processi: gli aggressori allegano ptrace o leggono /proc/$pid/mem attraverso i processi per estrarre chiavi o credenziali private.

§3Architettura del sistema

RoamSwitch Server Edition funziona come file binari Rust nativi progettati per memoria minima e zero sovraccarico della CPU.

┌─────────────────────────────────────────────────────────────┐
│  Spazio utente e amministratore                             │
│                                                             │
│   roamswitch (CLI)             roamswitch-mcp (AI Agent)    │
│   · server status (30 voci)   · strumenti di audit          │
│   · server config / setup      · stdio JSON-RPC             │
│   · fim verify / update                                     │
│        │                               │                    │
└───────┼───────────────────────────────────┼─────────────────┘
         │ (comandi CLI e config) │ (stdio)
┌───────▼───────────────────────────────────▼─────────────────┐
│  Base del sistema (systemd + privilegio root)               │
│                                                             │
│   roamswitch-server-daemon                                  │
│   ├── CriticalPathFim (scansione SHA-256 in background)     │
│   ├── modulo di integrazione eBPF/Falco                     │
│   ├── Notifier (avvisi Telegram / LINE / Webhook istantanei)│
│   └── Air-Gap Controller (regole di emergenza nftables)     │
│                                                             │
│   Config: /etc/roamswitch/server.conf (permesso 0600)       │
│   DB di integrità: /var/lib/roamswitch/fim_baseline.db      │
└─────────────────────────────────────────────────────────────┘

§4Meccanismi di difesa fondamentali

4.1 Sicurezza dei confini (eliminazione predefinita in entrata)

nftables applica policy drop al traffico in entrata, consentendo connessioni stabilite, loopback e ssh_ports e allowed_ports esplicitamente configurati.

La preservazione delle porte di gestione SSH previene il blocco accidentale dell'operatore durante gli stati di emergenza Air-Gap.

4.2 Monitoraggio dell'integrità dei file del percorso critico (FIM)

Monitora oltre 150 file amministrativi e di autenticazione del sistema operativo critici (/bin/login, /usr/sbin/sshd, /etc/pam.d/*, ecc.). Calcola gli hash SHA-256 rispetto a /var/lib/roamswitch/fim_baseline.db. L'hook del gestore pacchetti /etc/apt/apt.conf.d/99roamswitch-fim aggiorna automaticamente la baseline in seguito alle operazioni apt upgrade autorizzate.

4.3 Rafforzamento del kernel e del contenitore

Frag Gap (CVE-2026-53362) Mitigazione: applica user.max_user_namespaces = 0 tramite sysctl, neutralizzando i vettori LPE. Yama LSM Protection applica kernel.yama.ptrace_scope = 2, impedendo l'ispezione non autorizzata della memoria. I carichi di lavoro dei contenitori vengono controllati per l'esposizione docker.sock.

Le porte pubblicate da Docker (-p) presentano un problema noto di bypass del firewall standard dell'host, pertanto protect_docker_ports=true (predefinito) inserisce permanentemente regole di ispezione nella catena DOCKER-USER, bloccando qualsiasi traffico esterno non esplicitamente consentito. Inoltre, una protezione sempre attiva monitora docker events in tempo reale e ti avvisa immediatamente quando viene avviato un container --privileged o viene montato /var/run/docker.sock — un rischio di escape dal container (nessuna configurazione richiesta; solo notifica, senza blocco automatico). Per gli host che gestiscono file di terzi — un relay di posta, una cartella condivisa — un File Scan Guard opzionale (YARA integrato più ClamAV facoltativo) offre scansioni periodiche e quarantena automatica.

4.4 Telemetria delle minacce runtime eBPF e ottimizzazione anti-gonfiore

Utilizza moderne sonde eBPF (CO-RE / BTF) per intercettare l'escalation dei privilegi e i tentativi di breakout del contenitore in millisecondi. Per eliminare i punti critici standard di Falco—log bloat, esaurimento del disco e sovraccarico della CPU—RoamSwitch standardizza un profilo ottimizzato (/etc/falco/config.d/99-roamswitch-optimized.yaml):

  • Severity Filtering (priority: warning): sopprime la telemetria operativa rumorosa (informazioni/avvisi) del 95%, facendo emergere incidenti di sicurezza strettamente perseguibili.
  • Kernel-Level Pre-Drop (drop_failed_exit: true): scarta le uscite syscall non riuscite direttamente nel sonda kernel, riducendo i cambi di contesto della CPU di oltre il 50%.
  • Ottimizzazione dell'impronta della memoria (cpus_for_each_buffer: 2): comprime i buffer circolari da 8 MB a 2 MB, limitando rigorosamente l'utilizzo della memoria a 30–50 MB.
  • Direct UNIX Domain Socket IPC: lo streaming diretto su /var/run/roamswitch/events.sock elimina completamente il sovraccarico di I/O del disco.
  • Limite registro automatizzato (/etc/logrotate.d/roamswitch-falco): la rotazione giornaliera con maxsize 50M e 7 cicli compressi impedisce in modo permanente l'esaurimento della capacità del disco.

4.5 Isolamento di emergenza del traferro con avvisi pre-interruzione

Immediatamente prima di tagliare le interfacce di rete in caso di manomissione critica, il demone invia in modo sincrono avvisi di emergenza a Telegram, LINE e Webhook. Gli avvisi aggiungono automaticamente il server Nome host e Indirizzo IP primario.

Formato avviso di emergenza (JA/EN)
🚨 [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

§5Suite di diagnostica di sicurezza da 30 controlli

La Server Edition esegue 30 controlli specializzati sullo stato della sicurezza:

# Categoria Controlla il titolo Standard e logica
1Autenticazione e accessoAccesso root SSH e autenticazione passwordVerifica PermitRootLogin no e autenticazione password disabilitata
2Autenticazione e accessoAccount con password vuotiGarantisce che nessun utente abbia un hash della password vuoto in /etc/shadow
3Autenticazione e accessoSudoers Privilegio IgieneVerifica che non esistano direttive NOPASSWD non autorizzate
4ReteRifiuto predefinito in entrataControlla nftables la policy di consegna in entrata predefinita
5Kernel e integritàSpazi dei nomi degli utenti non privilegiati (Frag Gap)Garantisce user.max_user_namespaces = 0 (CVE-2026-53362)
6Kernel e integritàSupporto BTF eBPFConvalida le informazioni sul tipo BTF del kernel tramite /sys/kernel/btf/vmlinux
7Kernel e integritàeBPF LSM attivoVerifica la presenza di bpf nel parametro di avvio lsm= del kernel
8Kernel e integritàeBPF Agente di sicurezza runtimeConvalida il collegamento telemetrico agli agenti Falco/Tetragon
9ContenitoreControllo del montaggio del socket DockerRileva i montaggi del contenitore di /var/run/docker.sock
10ContenitoreContenitori privilegiati DockerControlli per carichi di lavoro di contenitori --privileged ad alto rischio
11IntegritàIntegrità del file del percorso critico (FIM)Convalida gli hash SHA-256 di oltre 150 binari del sistema operativo core
12Kernel e integritàProtezione del processo YamaVerifica kernel.yama.ptrace_scope = 2
13ReteInoltro IP disabilitatoVerifica net.ipv4.ip_forward = 0
14ReteProtezione dei cookie TCP SYNVerifica net.ipv4.tcp_syncookies = 1
15ReteFiltraggio del percorso inverso (rp_filter)Verifica il filtraggio rigoroso del percorso inverso (rp_filter = 1)
16Kernel e integritàRestrizione al core dumpPreviene le perdite di memoria del processo tramite fs.suid_dumpable = 0
17OperazioniAggiornamenti automatici di sicurezzaConvalida la configurazione di unattended-upgrades
18OperazioniSincronizzazione dell'ora NTPControlla la sincronizzazione tramite chrony o systemd-timesyncd
19OperazioniProtezione dalla forza bruta SSHVerifica il monitoraggio attivo tramite fail2ban o crowdsec
20Kernel e integritàeBPF non privilegiato disabilitatoControlli kernel.unprivileged_bpf_disabled = 1
21ReteReindirizzamenti ICMP ignoratiPreviene l'avvelenamento del percorso tramite accept_redirects = 0
22ReteTrasmissioni eco ICMP ignorateMitiga gli attacchi DoS dell'amplificatore Smurf
23Kernel e integritàRafforzamento della memoria condivisaGarantisce che /dev/shm disponga di opzioni di montaggio nodev,nosuid
24Autenticazione e accessoProtocolli legacy non sicuri assentiVerifica l'assenza di demoni in chiaro (telnet, rsh, tftp)
25Kernel e integritàDump core del processo SUID limitatiPreviene la perdita di credenziali in caso di arresti anomali del binario SUID

§6Autoverifica (verifica riproducibile in un ambiente Docker)

I meccanismi di difesa di RoamSwitch Server Edition (Inbound Default Drop, Critical Path FIM, contenimento per gravità tramite guard.yaml, la salvaguardia dei processi protetti, il timer di sicurezza, l'hardening del kernel contro gli LPE e altro) possono essere riprodotti e verificati integralmente sulla propria macchina utilizzando un container Docker separato come attaccante esterno contro il vero pacchetto roamswitch-server v1.3.2 installato dal repository APT ufficiale (non un binario compilato localmente). Di seguito gli otto scenari di verifica e il comportamento che ciascuno dovrebbe mostrare (criterio di superamento). Vedi il paragrafo 6.3 qui sotto per i passaggi e gli script esatti.

# Scenario Vettore di attacco Criterio di superamento
PENT-S1 Nmap SYN Stealth Scan Sonda attraverso le porte 22, 80, 443, 3306, 8080 PASS (100% invisibile)
PENT-S2 Sondaggio porta non consentito curl connessioni dirette alle porte 3306 e 8080 PASS
PENT-S3 Elenco di blocco Egress / C2 Tentativo di connessione in uscita verso un indirizzo registrato nel feed di IP dannosi Superato
Viene bloccato solo l'indirizzo registrato; il traffico verso un host non in elenco non è interessato (non è un blocco generale)
PENT-S4 Attacco di manomissione FIM Inietta il payload backdoor in /bin/login PASS (rilevamento istantaneo)
PENT-S5 Contenimento basato sulla gravità tramite guard.yaml Iniezione di un evento Falco Critical che fa riferimento a un processo reale Superato
Il processo incriminato viene isolato dalla rete e poi terminato con SIGKILL
PENT-S6 Meccanismo di sicurezza per i processi protetti Iniezione di un evento dello stesso tipo che fa riferimento al PID reale di sshd Superato
sshd continua a funzionare; viene registrato solo un rifiuto come falso positivo
PENT-S7 Timer di sicurezza Incidente Air-Gap lasciato senza conferma (nessun ACK dell'operatore) Superato
Il ripristino avviene automaticamente in assenza di conferma; una volta ricevuto l'ACK, l'isolamento continua fino a emergency-restore
PENT-S8 Gap frammento LPE kernel Esegui unshare -U -r come utente senza privilegi PASS (Rifiutato)

Prevenzione del blocco SSH

Mentre un Air-Gap a livello host (on_emergency) è attivo, la sessione SSH dell'amministratore non viene interrotta, grazie a preserve_ssh_on_isolation=true (valore predefinito). Questo design impedisce strutturalmente lo scenario in cui un falso positivo isola completamente un server, rendendolo irraggiungibile senza accesso fisico o alla console. Puoi verificare questo comportamento autonomamente con il passaggio equivalente a PENT-S7 nella suite di test Docker sopra.

Limiti dell'ambito di verifica (una divulgazione onesta)

Cosa non è possibile verificare con questo test

L'irrobustimento del kernel (disabilitazione degli User Namespace non privilegiati, innalzamento del ptrace_scope di Yama) non può essere verificato end-to-end dall'interno di un container. Poiché questi sysctl non sono isolati per namespace a livello di container, le scritture da un container privilegiato (--privileged) non influiscono su una sandbox di test, ma sulla macchina reale che esegue il test stesso. Questa verifica conferma quindi solo che la scrittura sysctl fallisce in modo controllato (senza crash) contro un file system in sola lettura; confermare che il valore venga effettivamente applicato richiede una macchina reale o una VM, ovvero l'ambiente per cui il prodotto è pensato.

Riproducilo tu stesso

Tutti i risultati sopra riportati possono essere riprodotti al 100% sulla propria macchina, utilizzando esclusivamente il pacchetto di distribuzione ufficiale, tramite la suite di test Docker pubblicata nel repository di supporto ufficiale (roamswitch-support): non è richiesto alcun accesso al codice sorgente né alcuna fiducia nei nostri confronti.

# Recupera e riproduci la suite di verifica (installa automaticamente roamswitch-server dal repository APT ufficiale)
git clone https://github.com/lafine1211/roamswitch-support.git
cd roamswitch-support/test/docker/server
./run.sh

Crea tre container usa e getta (Target, Attacker e un'esca C2) sulla rete bridge predefinita di Docker e verifica automaticamente tutti i 18 punti, stampando un report. L'output completo dell'esecuzione è pubblicato su RESULTS-PENTEST-SERVER-2026-09-07.md (inclusi, per trasparenza, i problemi del banco di test stesso individuati e corretti durante la sua costruzione).

§7Operazioni, distribuzione e ciclo di vita

7.1 Strumenti CUI headless e configurazione guidata

Gestione remota completa tramite CLI:

  • roamswitch server status: uscita diagnostica completa di 30 controlli (JA/EN).
  • roamswitch server setup: procedura guidata terminale interattiva per porte e notifiche.
  • roamswitch server config show / set <key> <val>: automazione tramite script per Ansible/Terraform.
  • roamswitch server test-notify [all|telegram|line|webhook]: sonda di notifica end-to-end.

7.2 Imballaggio

Distribuito tramite repository ufficiali Debian/Ubuntu .deb, repository RHEL/Fedora .rpm e Arch Linux AUR (roamswitch-server-bin).

§8Conclusione

RoamSwitch Server Edition offre un perimetro difensivo senza compromessi per le infrastrutture server Linux: privacy Zero Telemetry, Inbound Default Drop, Critical Path FIM e mitigazione proattiva dell'escalation dei privilegi del kernel, offrendo una difesa autonoma unificata per i moderni nodi cloud.

È lo standard di sicurezza per server Linux di nuova generazione che offre difesa a più livelli e contenimento autonomo (Air-Gap) lungo tutte le fasi del vettore di attacco preso di mira dai cyberattaccanti: ricognizione iniziale, intrusione, escalation dei privilegi e persistenza.

Questo documento riflette l'implementazione così come si presenta in RoamSwitch Server Edition v1.3.2 (Inbound Default Drop, Critical Path FIM, motore di policy guard.yaml, hardening del kernel contro gli LPE, monitoraggio runtime eBPF, timer di sicurezza Air-Gap). Consulta il CHANGELOG di roamswitch-support per la cronologia dettagliata delle modifiche. Per le informazioni più recenti, consulta lafine.net/linux.