È stata scoperta recentemente un seria falla di sicurezza che coinvolge apparentemente tutte le versioni di FileMaker Server e che permette a chiunque di entrare da mediante FMPro/ ProAdvanced con accesso completo in qualunque database ospitato su FileMaker Server. Addirittura, non è necessario conoscere ne' il nome del file ne' il nome degli utenti.
Purtroppo non è uno scherzo, ne' un pesce di aprile: se stai usando una versione di FileMaker Server inferiore a 19.6.4 devi davvero leggere questo articolo con la massima attenzione e agire in fretta per risolvere il problema.
Ti sembra una brutta notizia? Bene, se possibile la realtà è anche peggiore!
FileMaker Server non mostra le connessioni in atto che sfruttano la falla ne' nell’admin console in tempo reale ne' nei log. In sostanza non si ha nemmeno la possibilità di intercettare l'intrusione in tempo reale oppure controllare che qualcuno abbia effettivamente avuto un accesso non autorizzato ai file.
Non disperiamo
Passiamo quindi alle notizie meno brutte: la falla è stata scoperta in autunno 2023, Claris è stata informata e ha posto rimedio ad aprile 2024. Ma solo a partire dalla versione 20.3.2 e sulla versione 19.6.4..
Tutto a posto, quindi?
Al contrario: tutte le versioni di FileMaker Server antecedenti la 19.6 e raggiungibili da una rete sono vulnerabili. Non c'è modo di capire lato FileMaker se qualcuno abbia già compromesso il sistema.
Ma come è possibile che sia venuta a crearsi una situazione così catastrofica?
A livello tecnico la problematica dipende da tre fattori:
- Il protocollo che FileMaker usa per comunicare client/server;
- il modo in cui FileMaker Server identifica i database ospitati;
- Il metodo con cui il motore di FileMaker (Draco) gestisce gli utenti.
Il protocollo CORBA
FileMaker utilizza il protocollo CORBA per far comunicare il client e il server, utilizzando una implementazione chiamata omniORB. A partire dalla versione 12, Claris ha introdotto la crittografia mediante SSL, cosa che ha reso molto più difficile per chiunque intercettare e leggere i dati scambiati tra client e server. Tuttavia, il sistema CORBA è ancora in uso. Il processo di connessione e accesso può essere schematizzato in tre fasi principali:
Connessione Iniziale al server: il client invia al server alcune informazioni di base, come il codice di licenza e la versione e e gli indirizzi MAC di tutte le interfacce di rete del client. Il server risponde con un codice ID che servirà a identificare la sessione.
Richiesta del Database specifico: il client chiede al server di collegarsi a un database specifico, usando l’ID di sessione. Il server verifica se il database richiesto esiste e, in caso affermativo, invia il codice che lo identifica; se non esiste, invia invece un codice nullo.
Login: Il client invia l'ID di Sequenza (dalla prima fase), l'Indice del Database (dalla seconda fase) e un hash di login e password. In caso di autorizzazione riuscita, il server invia l'UserID dell'utente trovato, che per FileMaker Pro è prova dell'avvenuta connessione, dato che in caso di problemi la procedura non sarebbe arrivata a questi punto.
I dati
FileMaker Server identifica i database ospitati con… un numero. Esatto tutti i Database in un server sono numerati da 1 a 255.
Allo stesso modo, Draco identifica tutti gli oggetti all'interno di un database FileMaker (tabelle, campi, formati, oggetti, script, istruzioni di script, liste valori…) con un numero identificativo progressivo. E questo comprende anche gli utenti.
La falla deriva dal fatto che FileMaker Server sembra rispondere a una serie di comandi anche se l'autorizzazione non è effettivamente avvenuta. Quindi è possibile per un malintenzionato impostare una piattaforma (come ad esempio Node Js) che in sostanza:
- Ricavi dati teoricamente riservati (come numero identificativo dei DB sul server e numero identificativo degli utenti in un file)
- Faccia da tramite fra FileMaker Pro e FileMaker Server
In sostanza FileMaker Pro chiama l'applicativo "intruso" che da un lato "simula" di essere FileMaker Server ascoltando sulla porta 5003 utilizzata per le connessioni client-server di FileMaker, mentre dall'altro ricava dal server l'id del File e l'id dell'utente e "passa" a FileMaker Pro i dati.
Quindi FileMaker Pro segue la procedura normale, connettendosi al file specificato con l'utente specificato proprio come se li avesse passati FileMaker Server in seguito alla procedura corretta di inserimento.
Un esempio classico di attacco "man in the middle" che utilizza le procedure stesse di FileMaker per entrare, rendendosi praticamente invisibile.
La soluzione? Aggiornare FileMaker Server almeno alla versione 19.6.4.
Anche se l'utilizzo di strumenti come VPN o similari riduce il rischio di accessi indesiderati, non aggiornare e chiudere l'accesso esterno al server non è una soluzione definitiva. Resta infatti una grave vulnerabilità interna alla rete.
Non sai come aggiornare FileMaker Server? Scrivici subito!