Come proteggere i database Firebird dal ransomware?
06-dicembre-2016, di Alexey Kovyazin
Gli attacchi ransomware sono diventati un problema serio per molte aziende: durante l’ultima settimana, abbiamo avuto 3 incidenti da diversi clienti che avevano i loro database Firebird crittografati da virus ransomware. Fortunatamente siamo riusciti ad aiutare tutti, ma la portata del problema sta sicuramente aumentando.
In questo articolo, esamineremo come questi problemi sono stati risolti.
In generale, il ransomware non è progettato per crittografare specificamente i database Firebird; crittografa semplicemente tutti i file sul computer, e poi chiede un riscatto per fornire la password per decrittografarli, e anche se paghi, potresti non ricevere alcuna password di decrittazione o risposta (inoltre, è necessario controllare i siti web antivirus: spesso pubblicano codici PIN o persino strumenti di decrittazione per quel ransomware. Ad esempio, uno di questi: noransom.kaspersky.com/)
Naturalmente, è necessario avere un antivirus affidabile (e adatto ai server), ma possiamo fare qualcosa di specifico per proteggere il database Firebird?
Esistono diversi tipi di ransomware, consideriamo il loro impatto sui database Firebird.
Le 2 aziende sono state colpite da ransomware che ha crittografato parzialmente i loro database Firebird.
Come sapete, il file del database Firebird è un insieme di pagine della stessa dimensione. Le pagine del database in Firebird contengono diversi tipi di informazioni: metadati, dati utente, indici, generatori, ecc.

Di solito, tale ransomware non crittografa l’intero file del database, ma una piccola parte di esso - la pagina di intestazione e una certa percentuale di pagine del database all’interno del database.
Poiché tutte le pagine hanno forti relazioni, anche poche pagine crittografate rendono l’intero database illeggibile dal motore Firebird. Ad esempio, in un database di 10Gb è stato crittografato meno dell'1% dei dati, e il restante 99% era integro.
In questo caso, tale database crittografato può essere considerato come un file di database gravemente corrotto, e IBSurgeon FirstAID è lo strumento che può eseguire l’esportazione dei dati dal file di database Firebird crittografato. Lo stesso approccio viene utilizzato per recuperare database da dischi rigidi danneggiati.
Esportazione dei dati dal database Firebird crittografato
IBSurgeon FirstAID può recuperare database con una correzione diretta o con l’estrazione dei dati. La correzione diretta è veloce, può correggere rapidamente le corruzioni direttamente nel file del database. Tuttavia, nel caso di un ransomware, non aiuterà, poiché la pagina di intestazione e i metadati principali sono persi, quindi l’estrazione è l’unica scelta.
FirstAID legge il file del database direttamente - non utilizza Firebird per accedere al file del database, legge il file del database direttamente, byte per byte. Poiché si concentra solo sull’estrazione dei dati corrotti e sacrifica le prestazioni, FirstAID può esportare dati anche da database Firebird gravemente corrotti. Naturalmente, FirstAID salta i dati crittografati come corrotti ed esporta solo i dati buoni.
Se il ransomware non ha crittografato i metadati critici, è possibile aprire il file di database crittografato con FirstAID e visualizzare in anteprima i record: selezionare la tabella nell’elenco a sinistra e aprire la scheda Anteprima, quindi sfogliare le pagine dei dati.
I record che puoi vedere possono essere esportati in un nuovo database con la stessa struttura:

L’ammontare approssimativo delle perdite può essere stimato con la percentuale di pagine danneggiate nella scheda Riepilogo pagine per il database:

La percentuale di pagine danneggiate mostra quante pagine del database sono state crittografate e i loro dati sono persi.
Quindi, in 2 casi i database sono stati salvati utilizzando FirstAID Extractor, che ha esportato i dati dai database crittografati.
Ransomware con crittografia al 100%
Purtroppo, il ransomware spesso crittografa il 100% dei file, e li crittografa completamente, senza eccezioni.
Di solito, tale ransomware inietta codice dannoso nel bootloader del sistema operativo, poi riavvia il computer e simula l’esecuzione di CHKDSK, ma invece di controllare i dischi crittografa tutto.
L’unico modo per proteggersi da tale virus è avere un backup del database importante in una posizione di terze parti: nel cloud o in un altro ufficio.
Ci sono 4 possibili approcci di backup per i database Firebird:
- Backup completo verificato con gbak
- Backup incrementale non verificato con nbackup
- Backup a livello di VM (per ambienti virtuali)
- Warm Standby (mirror del database), basato sulla replica
Quale metodo di backup è il migliore per la protezione dal ransomware? Consideriamo i loro pro e contro su un esempio reale di database Firebird di 50Gb.
| Caratteristica | Backup completo verificato (gbak) | Backup incrementale (nbackup) | Backup a livello di VM | Warm-standby (replica) |
|---|---|---|---|---|
| Dimensione da caricare | ~30Gb ogni giorno | 50Gb inizialmente, poi porzioni modificate | ||
| Frequenza massima di backup | Ogni giorno | Ogni ora | Dipende dalle impostazioni dello strumento di backup VM | Ogni minuto |
| Degrado delle prestazioni del database | Alto | Moderato | Basso | Molto basso |
| Affidabilità del metodo di backup | Alta | Bassa | Bassa | Alta |
| Tempo necessario per eseguire il backup | 2-3 ore (dipende dalla velocità di I/O) | Iniziale 15-20 minuti per creare il livello 0, poi 3-4 minuti | Richiede di fare uno snapshot completo del disco (dipende da I/O e dimensione del disco) | Iniziale 15-20 minuti, sempre online |
Backup completo verificato con gbak
Lo strumento di backup (gbak) legge l’intero database e lo memorizza in un formato speciale (fbk). Questo metodo di backup è chiamato verificato perché legge ogni record nel database e garantisce che il database sia integro. È un metodo di backup molto affidabile.
Tuttavia, il backup completo verificato non è conveniente per il backup cloud di database abbastanza grandi (come 50Gb nel nostro esempio) poiché richiede il caricamento dell’intero backup ogni volta, e richiede molto tempo per essere eseguito (è il tipo di backup più lento in Firebird). Durante l’esecuzione di gbak, le prestazioni del database sono basse a causa dell’intensa lettura e scrittura casuale del disco.
Backup incrementale con nbackup
Il backup incrementale viene eseguito con nbackup - un altro strumento di backup di Firebird. Nbackup crea backup come incrementi di modifiche: prima crea un backup di livello 0, che è la copia esatta del database, e poi, all’iterazione successiva, scansiona il database e memorizza solo le pagine modificate come Livello 1, Livello 2, ecc. È possibile impostare un backup completo (Livello 0) una volta al trimestre, incrementi di Livello 1 ogni mese, Livello 2 ogni settimana, Livello 3 ogni giorno e Livello 4 ogni ora.
È abbastanza veloce, crea backup quasi alla velocità della copia lineare di file.
Il principale svantaggio di nbackup è l’assenza di verifica - se una pagina del database è corrotta, nbackup la copierà nel file di backup, che sarà anch’esso corrotto (a differenza di gbak, che in questo caso darà un errore). Inoltre, poiché la creazione di ogni livello fa sì che Firebird scansiona l’intero database (in Firebird 2.5, v3 ha miglioramenti), non è possibile eseguire nbackup troppo spesso su un database grande.
Come puoi capire, nbackup richiede una pianificazione abbastanza sofisticata, ma con gli strumenti giusti, è un compito facile.
Un modo corretto è usare nbackup in combinazione con gbak: gbak verifica il database ogni giorno o ogni settimana, e nbackup fornisce il modo veloce per eseguire il backup del database abbastanza spesso.
Quindi, nbackup sembra una buona scelta per memorizzare il database nel cloud.
Backup VM
E i backup delle macchine virtuali? I fornitori di strumenti VM e backup affermano di supportare il backup dei database, tuttavia, spesso non specificano quali database sono supportati. Il backup VM richiede che il provider Volume Shadow Service (VSS) per il database specifico sia installato per eseguire correttamente il backup online. Per Firebird, il provider VSS è disponibile come parte della distribuzione avanzata HQbird.
Naturalmente, non c’è magia nel backup di una VM con provider VSS - dietro le quinte, usa nbackup per portare il database in una modalità adatta alla copia. Senza il provider VSS, il risultato del backup a livello di VM sarà come una copia di un database in uno stato simile a un hard reset: Firebird utilizza intensamente la cache dei dati in RAM, ed è possibile che il backup sia corrotto a causa di modifiche non scaricate.
Warm-standby
Alcune aziende non vogliono perdere alcun dato dal database. Le fatture recenti prima del crash potrebbero essere critiche, e l’ultima spedizione potrebbe mandare una dozzina di camion sulla strada. In questo caso, anche i backup orari non sono sufficienti; l’unica soluzione possibile è il warm standby (un mirror di sola lettura) del database, basato sulla replica nativa asincrona.
Nativa significa che la replica non richiede trigger o modifiche ai metadati (l’unico requisito è avere chiavi primarie o uniche per tutte le tabelle replicate), e funziona molto velocemente.
Il warm-standby richiede la creazione di una copia iniziale del database, l’inizializzazione come replica e il caricamento sul server standby. Dopo di che, le modifiche dei dati verranno inviate dal master con un ritardo minimo (da 1 minuto). Vengono inviate solo le modifiche, quindi non sopprime le prestazioni di lettura del database.
Questa opzione di backup è molto affidabile - garantisce l’esistenza di una copia live del database su un altro server.
Cosa può fare IBSurgeon per te?
Offriamo il servizio di supporto in abbonamento per Firebird, e include opzioni di backup cloud e warm standby. È facile e conveniente ($99/mese), include le seguenti opzioni:
- Monitoraggio del database Firebird e automazione dei backup
- Supporto tramite desktop remoto e messaggistica istantanea
- Soluzione Firebird failover (warm standby) e backup cloud
Per favore leggi maggiori dettagli sul servizio di supporto Firebird qui.
Un’altra opzione è usare HQbird, la nostra distribuzione avanzata di Firebird, e implementare il backup cloud o il warm standby da soli. Puoi trovare maggiori dettagli su HQbird qui.
E, naturalmente, come ultima possibilità, FirstAID Extractor.
Non esitare a contattarci per qualsiasi domanda!