La costruzione di un laboratorio robusto per l'analisi del malware si basa spesso sulla virtualizzazione per gestire gli snapshot, consentendo agli investigatori di partire da uno stato pulito o di tornare indietro dopo passaggi critici. Tuttavia, questa comodità comporta un rischio significativo: il ripristino di una macchina virtuale a uno snapshot precedente comporta la perdita totale di tutte le modifiche applicate durante quella sessione. Per gli analisti che utilizzano Ghidra, dove il lavoro è archiviato in file di progetto locali contenenti funzioni rinominate, commenti e strutture, ciò significa che ore di analisi possono svanire istantaneamente se la VM incontra problemi o viene resettata.

Per mitigare questa perdita di dati, gli esperti raccomandano l'implementazione di un server Ghidra locale, un componente incluso nella distribuzione standard che non richiede alcuna licenza aggiuntiva. Questo server trasforma i progetti locali in repository condivisi supportati da una posizione centrale esterna alla macchina virtuale volatile. Il vantaggio principale è la persistenza; gli analisti possono ripristinare le proprie VM con la frequenza desiderata mantenendo al sicuro i programmi annotati sul server. Inoltre, il sistema offre capacità di versioning simili a Git, consentendo agli utenti di tracciare le modifiche con commenti, confrontare diversi stati di un'analisi e ripristinare versioni precedenti.

L'architettura supporta più client, consentendo a un analista di iniziare il lavoro su una macchina e continuarlo su un'altra, come un laptop o la postazione di un collega. Facilita anche la collaborazione permettendo a più analisti di lavorare sugli stessi campioni con permessi granulari, inclusi l'accesso in sola lettura, lettura/scrittura o amministrativo. Fondamentale per gli interventi di risposta agli incidenti, questa configurazione garantisce la riservatezza mantenendo tutti i campioni e i binari relativi ai clienti all'interno della rete del laboratorio, evitando la necessità di inviare dati a servizi di terze parti.

Dal punto di vista tecnico, il server è leggero e può essere eseguito su una piccola VM Linux o un container separato dalle macchine di analisi. Le specifiche raccomandate includono due core CPU, 4 GB di RAM e 8 GB di spazio di archiviazione, con JDK 21 o versioni successive. È essenziale allineare la versione di Ghidra tra il server e i client per evitare problemi di incompatibilità. La configurazione di rete richiede che le porte TCP 13100 e 13101 siano raggiungibili dalle macchine client e che i client possano risolvere il nome host annunciato dal server.

Le considerazioni sulla sicurezza sono fondamentali quando si implementa questo servizio. Poiché il server ospita repository contenenti byte grezzi di codice malevolo, deve essere trattato come se ospitasse malware attivo e mantenuto rigorosamente all'interno della rete del laboratorio di analisi del malware. Non dovrebbe mai essere esposto a Internet. La configurazione prevede la creazione di un account di sistema dedicato, l'estrazione della distribuzione Ghidra e la configurazione del file server.conf per definire il directory del repository, il metodo di autenticazione e il nome host annunciato. Le modalità di autenticazione includono password locali, PKI con certificati client o integrazione JAAS con LDAP o Active Directory.

Una volta installato, gli utenti creano repository tramite il client Ghidra selezionando "Progetto Condiviso" e connettendosi al server. Sebbene i progetti condivisi generino ancora file .gpr locali e directory .rep per la memorizzazione nella cache e le impostazioni di connessione, i binari rimangono privati fino a quando non vengono esplicitamente aggiunti al controllo delle versioni. Il flusso di lavoro rispecchia i sistemi standard di controllo delle fonti: gli analisti effettuano il checkout dei programmi per lavorarci, fanno il check-in delle modifiche con commenti per creare nuove versioni e gestiscono le liste di accesso per altri membri del team. Se una VM viene ripristinata e i dati locali vengono persi, gli analisti possono recuperare il proprio lavoro connettendosi al repository esistente, sebbene i file privati mai aggiunti al controllo delle versioni e le modifiche non confermate rimarranno irrecuperabili.

Fonti: SANS Internet Storm Center.