Recupero di Informazioni da File MDF Criptati: Affrontare il Ransomware nei Database SQL

Negli ultimi anni i virus che criptano i file e che chiedono il pagamento di un riscatto per la decriptazione hanno avuto una diffusione sempre maggiore, creando molti danni a privati e aziende. L'epidemia di virus che criptano file per estorcere soldi agli utenti è da tempo un problema di caratura globale. La diffusione della minaccia e la gravità delle conseguenze stanno aumentando velocemente.

Un computer infetto da un virus che cripta i file può presentarsi in molti modi diversi. Tutti noi, dall’azienda al libero professionista al privato, non possiamo essere vittime così facili dei virus che criptano i file.

L'Evoluzione e la Diffusione dei Ransomware

Cryptolocker fa parte della famiglia dei ransomware (virus che chiedono un riscatto). Questo genere di virus ha origine nel 1989, quando il biologo Joseph Popp scrisse un trojan chiamato “AIDS” (conosciuto anche come “PC Cyborg”), che veniva diffuso principalmente attraverso i floppy disc. Una volta eseguito criptava i dati contenuti nel computer e visualizzava un messaggio inerente ad una licenza scaduta. Negli anni seguenti la crittovirologia ha compiuto passi da gigante, arrivando ai picchi rilevati negli anni a partire dal 2013.

Uno degli esempi più eclatanti, e fra i primi in assoluto, è stato WannaCry, rilasciato nel 2017. Poi sono arrivati cloni e versioni modificate. I cryptovirus, come molti altri malware, si diffondono a causa dei bug presenti su programmi, sistemi operativi o attraverso tecniche di ingegneria sociale. Ad ogni modo, gli stessi virus sono programmi, e hanno bug e vulnerabilità nascoste, e non sfuggono a questa regola i ransomware. Questo offre una speranza aggiuntiva a chi vuole recuperarne il contenuto.

La Vulnerabilità dei Database SQL e i File MDF

I server SQL Microsoft memorizzano dati in file con estensione MDF e NDF. Le dimensioni di questi file possono essere molto elevate, soprattutto per i database di dimensioni importanti, raggiungendo anche diversi terabyte. Un database in formato MS SQL Server contiene uno o piu file. Ci sono alcuni tipi di file: file di dati principale (main data file, con l'estensione predefinita *.mdf), file di dati secondario (secondary data file, con l'estensione predefinita *.ndf) e log delle transazioni (transaction log file, con l'estensione predefinita *.ldf).

Leggi anche: Parquet Anni '70: Come Restaurare

Spesso l'opzione più efficace è ripristinare il database del server SQL dall'ultimo backup. Ma se non è possibile farlo? Cosa si può fare se il ransomware cripta anche il backup? Come è possibile leggerli? Come possiamo mettere assieme tutte le pagine e i blocchi di dati se le informazioni di servizio non sono più disponibili?

Un segnale di danneggiamento può essere: "La proprietà DIMENSIONE FILE non è corretta. Sql Server ha rilevato un errore I/O di inconsistenza logica: checksum non corretta."

[HACKING ITA] DATABASES E SQL PRT 1 - Vulnerabilità di Base Sicurezza Informatica Corso Pratico LZ 9

Il Recupero Parziale di Dati da File MDF Criptati

Il dipartimento di supporto informa che solitamente i programmi ransomware criptano solo la testata del database, a causa della sua grande dimensione. Ad ogni modo, Recovery Toolbox for SQL Server può essere utile in casi dove il file MDF era parzialmente criptato. Tipicamente, i virus criptano solo la testata e/o l'inizio del file a causa delle loro grandi dimensioni. In questi casi, se solo la testata o parte del file MDF è stata criptata, Recovery Toolbox for SQL Server può essere utile. Il programma analizza tutti i blocchi di dati e raccoglie la struttura dei dati nel file. Non c'è garanzia che tu possa recuperare il 100% dei dati o una parte di essi usando il programma.

Recovery Toolbox for SQL Server: Una Soluzione per il Recupero Dati

Recovery Toolbox for SQL Server permette di recuperare i dati presenti in database corrotti in formato MS SQL Server (con estensione *.mdf). Per recuperare dati da un database danneggiato di un server SQL puoi usare l’ultimo backup o provare a usare Recovery Toolbox for SQL Server. Molto probabilmente, Recovery Toolbox for SQL Server può riportare il database del Server SQL a come era prima della corruzione. Se devi riparare velocemente il file MDF di un server SQL danneggiato, allora Recovery Toolbox for SQL Server può farlo in un paio di click.

La revisione del file MDF avviene copiando e riparando i dati dal file MDF danneggiato in un nuovo database o in un file script SQL separato su disco. Lo strumento non ripara o modifica i file MDF del server SQL esistente. Dato che Recovery Toolbox for SQL Server è stato sviluppato per un solo scopo (recuperare database di Microsoft SQL Server danneggiati), contiene un numero minimo di impostazioni. Il programma Recovery Toolbox for SQL Server non prevede limiti di dimensione dei file MDF/NDF recuperabili.

Leggi anche: Come creare bracciali con materiali riciclati

Per recuperare database MS SQL Server di grandi dimensioni, è necessaria molta RAM. Si consiglia quindi di recuperare database di grandi dimensioni su computer con memoria disponibile sufficiente. La memoria fisica utilizzata dal programma non deve essere inferiore alla dimensione del file che si vuole recuperare divisa per 500, più 20-100 MB per l'esecuzione del programma. Il programma Recovery Toolbox for SQL Server non utilizza i file di log LDF del database per recuperare il database Microsoft SQL Server danneggiato.

Processo di Recupero con Recovery Toolbox for SQL Server

  1. Selezione del file sorgente

    Innanzitutto, bisogna indicare il percorso del file corrotto con estensione *.mdf. Selezionare il file desiderato dall'elenco a discesa che si visualizza premendo il pulsante. Per recuperare i dati con l'aiuto di Recovery Toolbox for SQL Server, bisogna specificare il percorso del file di dati principale e di tutti i file di dati secondari. Se il database danneggiato contiene il file di dati principale e uno o piu file di dati secondari e log delle transazioni, bisogna selezionare il file principale in formato *.mdf e tutti i file secondari in formato *.ndf.

  2. Avvio dell'analisi

    In questa tappa, il programma vi chiederà: Do you wish to start recovery? (Iniziare il processo di recupero?) Per avviare il processo, premere su Yes (Si). Recovery Toolbox for SQL Server inizierà il processo di recupero dei dati. In questa fase, Recovery Toolbox for SQL Server inizia automaticamente il processo di scansione e analisi del database corrotto. Un apposito indicatore permette di vedere lo stato di avanzamento del processo. Nel passaggio iniziale, lo strumento legge e analizza il database del server SQL criptato, passaggio fondamentale nell'operazione che può durare a lungo nel caso di database di grosse dimensioni. Maggiori sono la dimensione e la complessità dei dati, maggiore sarà la durata dell'analisi.

  3. Anteprima dei dati recuperati

    Una volta completata l'estrazione dei dati di sistema, Recovery Toolbox for SQL Server li visualizzerà sullo schermo, in una finestra simile a quella di Esplora risorse. Tutto quello che è stato ripristinato dal file MDF criptato viene presentato all'utente sotto forma di tabelle e liste dentro Recovery Toolbox for SQL Server. L'utente può navigare tra le pagine che contengono dati, tabelle, funzioni definite dall'utente e procedure. Se il file MDF criptato è stato analizzato con successo, allora le liste e tabelle nella seconda pagina del programma non saranno vuote. Altrimenti, se il software non riesce a decifrare i dati presenti dal database, non ci sarà nulla da vedere. Selezionando la categoria User Tables (Tabelle utente), la parte destra dello schermo si divide in due. Selezionando la categoria Views (Viste), la parte destra dello schermo si divide in due. Selezionando la categoria Stored Procedures (Procedure memorizzate), la parte destra dello schermo si divide in due. Selezionando la categoria Function (Funzione), la parte destra dello schermo si divide in due.

  4. Esportazione dei dati

    Recovery Toolbox for SQL Server offre due modi per esportare i dati estratti dai database corrotti MS SQL Server. Il primo consiste nel salvarli come set di script in linguaggio SQL. Se volete usare questo método, premere su Save script to disk (Salva script su disco), quindi specificate la cartella per il salvataggio nel campo Destination Directory (Directory di destinazione). Recovery Toolbox for SQL Server creerà nella directory di destinazione una cartella intitolata in base al seguente modello: Recovered nome_file_sorgente. Nella cartella saranno presenti gli script in linguaggio SQL e il file install.bat per installare i dati sul server. Il file avrà il seguente formato: install.bat nome_server nome_database nomeutente.

    Leggi anche: guida completa alla creazione di mensole fai da te

    Quando si salvano i dati su disco, Recovery Toolbox for SQL Server crea nella directory indicata dall'utente una sottodirectory intitolata in base al nome del file MDF sorgente. Gli script saranno salvati in questa sottodirectory. Il nome di ciascuno script è composto da una parola e una cifra. La parola indica la funzione dello script, la cifra è il numero d'ordine. I numeri d'ordine nei nomi degli script non contengono alcuna informazione rilevante, né indicano la sequenza di esecuzione. Sono utilizzati per suddividere i dati e salvarli in una serie di documenti di dimensione ridotta anziché in un file di grandi dimensioni. È possibile specificare la dimensione massima dei file di script SQL. Siccome un database può contenere tanti gigabyte di dati, Recovery Toolbox for SQL Server permette di suddividere gli script di output in più parti.

    Il secondo método è esportare i dati recuperati direttamente in un database. Se volete usare questo método, premere su Execute script on database (Esegui script su database), quindi specificate il valore della stringa di connessione nel campo Connection String (Stringa di connessione). Questa finestra è molto simile a quella dell'anteprima dei dati, descritta nel passaggio 3. L'unica differenza sono le caselle di controllo accanto ai nomi di tutte le categorie e tutti gli oggetti.

Differenze tra Versione Demo e Completa

La versione demo di Recovery Toolbox for SQL Server è gratuita e comprende la possibilità di eseguire l'analisi dei dati. Se l'analisi è positiva, infatti, si può scegliere come salvare i propri dati. Tuttavia, solo la versione registrata di Recovery Toolbox for SQL Server permette di esportare i dati recuperati.

Mentre la versione demo gratuita può essere utile per una valutazione iniziale, la versione completa offre vantaggi significativi, soprattutto per le situazioni critiche di recupero dei dati. A differenza della versione demo, la versione completa consente di recuperare ed esportare i dati dal database SQL Server danneggiato, inclusi tabelle, procedure, viste e l'intera struttura del database. Offre controllo di precisione, permettendo di recuperare oggetti di dati specifici o l'intero database, ed è potenzialmente in grado di recuperare i dati da database crittografati da virus ransomware. Il recupero dei dati è spesso sensibile al tempo, e la versione a pagamento è ottimizzata per la velocità, consentendo di risparmiare tempo prezioso. È importante ricordare che, anche con la versione completa, il recupero dei dati non è garantito.

Caratteristica Versione Demo Versione Completa
Analisi dei dati
Anteprima dei dati recuperabili
Esportazione dei dati recuperati No
Recupero da ransomware Potenzialmente per analisi Sì (da file parzialmente criptati)
Controllo di precisione (oggetti specifici) Limitato/No
Ottimizzazione per velocità No

Il software viene venduto tramite partner come PayPro Global e Noventiq. PayPro Global supporta più di cento tipi di valuta, tutte le carte di credito più diffuse e offre una varietà di opzioni per il pagamento. Noventiq offre ai clienti più di 15.000 programmi di 3.000 sviluppatori e assicura consegne rapide con diversi metodi di pagamento e un sistema di sconti cumulativi, fornendo anche consulenza necessaria relativa all'acquisto di software con licenza. Le licenze software concedono il diritto di utilizzare il software stesso, mentre il supporto tecnico può essere un’offerta separata.

Considerazioni e Potenziali Problemi Dopo il Recupero

Quando si ripristina un database di un server SQL dopo l'attacco ransomware, c'è la possibilità di perdere una parte dei dati. Inoltre, l'integrità dei dati può essere compromessa. Come risultato, le chiavi primarie ed esterne probabilmente non funzioneranno. Si capirà al momento di eseguire gli script SQL con chiavi primarie o esterne dopo avere importato i dati nel database, in quanto gli script con chiavi primarie o esterne non sono eseguiti o sono eseguiti con errori.

La sequenza di esecuzione degli script SQL viene presentata nel file Install.bat, che Recovery Toolbox for SQL Server salva nella cartella con tutti gli altri script SQL. Quando si salvano i dati su disco, Recovery Toolbox for SQL Server crea nella directory indicata dall'utente una sottodirectory intitolata in base al nome del file MDF sorgente. Gli script saranno salvati in questa sottodirectory. Il nome di ciascuno script è composto da una parola e una cifra. La parola indica la funzione dello script, la cifra è il numero d'ordine. I numeri d'ordine nei nomi degli script non contengono alcuna informazione rilevante, né indicano la sequenza di esecuzione. Sono utilizzati per suddividere i dati e salvarli in una serie di documenti di dimensione ridotta anziché in un file di grandi dimensioni. È possibile specificare la dimensione massima dei file di script SQL.

Inoltre, bisogna fare attenzione alla numerazione dei file Data. Innanzitutto, ciascun file di tipo Data può contenere dati solo per una tabella. La sequenza di esecuzione degli script dipende dalle restrizioni esistenti relative alle strutture e ai dati presenti nelle tabelle. Per creare una chiave secondaria, bisogna specificare la rispettiva chiave primaria. Le tabelle vengono riempite prima della creazione di indici e chiavi secondarie. È una condizione obbligatoria, perché quando si riempie una tabella con una chiave secondaria definita, viene effettuato il controllo dell'integrità referenziale. Se una tabella con una chiave secondaria viene riempita prima della tabella con la rispettiva chiave primaria, si verifica un errore.

Nel caso i dati recuperati siano in conflitto con la chiave primaria, gli indici unici, ecc., i dati verranno comunque inseriti nella tabella, ma non verranno create le restrizioni (indice, chiave primaria, ecc.). La creazione di oggetti come Procedure, Funzioni, Viste e Trigger in un database comporta alcune difficoltà, in quanto questi tipi di oggetti possono avere dipendenze molto complicate. Le Procedure si possono riferire ad altre Procedure, le Viste si possono riferire alle Funzioni, i Trigger si possono riferire a tutti gli oggetti. Il programma non può aiutare a sciogliere questo nodo. Quindi, l'utente dovrà stabilire manualmente tutti i riferimenti ed eseguire gli script SQL nella sequenza giusta.

[HACKING ITA] DATABASES E SQL PRT 1 - Vulnerabilità di Base Sicurezza Informatica Corso Pratico LZ 9

Esecuzione degli Script e Strumenti Necessari

Il file install.bat viene creato per poter eseguire automaticamente tutti gli script. Questo file permette di eseguire tutti gli script salvati in precedenza dal programma. La sequenza di esecuzione degli script sarà uguale a quella del database. L'esecuzione di questo file batch richiede l'installazione dell'utility isqlw che fa parte del lato client di MS SQL Server. Per eseguire il file install.bat, bisogna specificare i seguenti parametri nella riga di comando: Server name (Nome server), Database name (Nome database), Username (Nome utente) e Password (Password). Usare spazi per separare i parametri. Se per accedere a Microsoft SQL Server impiegate l'account Windows, usate il file InstallTrusted.bat.

Prima di eseguire gli script, è necessario interrompere SQL Server. Per fare questo, seleziona Interrompi nel menu di scelta rapida e rispondi Sì alla domanda Interrompere il servizio SQL Server? Una volta eseguito il ripristino, è possibile avviare SQL Server e ripristinare le impostazioni. Caricare nel Query analyzer di Microsoft SQL Server gli script eseguiti con errori e provare ad eseguirli. I messaggi di errore vi aiuteranno a individuare il comando che causa l'errore. Se il comando scrive dati senza valore, potete semplicemente rimuoverlo dal file. Altrimenti, si prega di inviare al supporto tecnico lo script eseguito con errori e lo screenshot di Query analyzer.

Recovery Toolbox for SQL Server rileva automaticamente la versione del server sul quale il database è stato usato. Pertanto, se il database è stato usato su MS SQL Server 2000, il programma scrive lo strumento isqlw negli script salvati, per l’importazione nel nuovo database. Se il database è stato usato su MS SQL Server 2005 o versione successiva, negli script è impiegato lo strumento sqlcmd. Se non si possiede lo strumento isqlw.exe, componente del pacchetto MS SQL Server (ad esempio usando SQL Express), è possibile scaricare la versione più aggiornata di MS SQL Server dal sito Microsoft e installare i componenti necessari, oppure scaricare e installare Query Analyzer dal nostro sito Web.

Altre Specificità e Avvertenze

Se nei campi Chiave primaria appaiono valori duplicati, il programma ha ripristinato fogli di dati che dovevano essere stati contrassegnati per l’eliminazione all’interno del database (file mdf, ndf). Ma, in effetti, non è presente alcuna indicazione in merito alla necessità di eliminare suddetti fogli. Pertanto, il programma ripristina i dati di tutti i fogli. Questo si traduce in un numero eccessivo di dati ripristinati, e gli sviluppatori di Recovery Toolbox for SQL Server non sono riusciti a trovare dei criteri utili a filtrare le voci in eccesso. È possibile che sia accaduto qualcosa nel file MDF nel periodo intercorso fra la prova e la registrazione (ripristino da altro software o simile).

Dopo la migrazione del database MSDB sul nuovo server tramite il ripristino, non è possibile aprire ed eseguire i pacchetti DTS. Limitarsi a copiare o ripristinare tabelle dati da un database MSDB a un nuovo server non consente di ripristinare i pacchetti DTS, dal momento che gli stessi presentano delle connessioni interne al contesto di esecuzione del server sul quale sono stati creati e sul quale sono stati utilizzati prima della migrazione. Per copiare i pacchetti DTS su altri server, è necessario impiegare script VB.

tags: #recupero #mdf #criptato