Che cos’è, a cosa serve e utilizzi della sandbox in informatica

Che cos’è, a cosa serve e utilizzi della sandbox in informatica

Definizione di sandbox 

In informatica e in particolar modo nel mondo della sicurezza informatica, quando si fa riferimento alla sandbox, si intende un ambiente sterile costituito da una macchina virtuale isolata dal resto del computer, in cui poter lanciare software potenzialmente dannoso, senza rischiare di danneggiare il computer o la rete.

Quando si trovano ad analizzare il contenuto di email sospette, gli esperti di sicurezza si servono regolarmente delle sandbox per aprire allegati o collegarsi a link presenti sulle email, così da valutarne il comportamento. I segnali rivelatori da monitorare con attenzione sono ad esempio il codice che si autoreplica, o tenta di mettersi in contatto con un server Command and Control (C&C) esterno comandato da un attaccante, o ancora se fa partire il download di componenti software aggiuntivi, se inizia a crittografare dati nel computer, e così via. Essendo la sandbox, un’area virtuale senza accesso alla rete, ai dati o alle applicazioni presenti nel computer, gli addetti alla sicurezza possono far attivare il malware per analizzare il suo funzionamento e valutarne la eventuale pericolosità.

Non soltanto gli esperti in cybersecurity, ma anche i programmatori utilizzano regolarmente le sandbox per testare il loro codice prima del lancio al pubblico.

Che cos'è, a cosa serve e utilizzi della sandbox in informatica

A cosa serve la sandbox?

Per il lavoro di tutti i giorni, le sandbox nei computer potrebbero essere considerate una spesa superflua. Ma la realtà è che esse sono invece una risorsa fondamentale in molteplici campi, dalla programmazione, alla sicurezza informatica, alla ricerca. Quando vengono utilizzate in ambito sicurezza, vanno però prese precauzioni aggiuntive per assicurarsi che la macchina virtuale sia sicura e ben isolata, perché gli eventuali malware che si stanno testando scansionano a fondo la rete alla ricerca di vulnerabilità da poter sfruttare.

In ambito di SVILUPPO SOFTWARE

Nello sviluppo software, le sandbox si utilizzano solitamente nella fase di development e nella fase di staging per testare il codice senza il rischio di fare danni. Il server per il development è separato dall’ambiente di produzione, ma potrebbe tuttavia richiedere l’accesso alla rete. Gli sviluppatori, si servono di questo server per lanciare il loro codice, man mano che lo sviluppano.

Il server per lo staging deve essere una copia esatta del server di produzione. È il server in cui gli addetti alla qualità (QA) testano il codice prima di rilasciarlo in produzione. Dato che l’ambiente di staging è identico all’ambiente di produzione, il codice che gira senza problemi in staging, girerà perfettamente anche in produzione. Perciò una volta che il codice è stato testato, verrà reso disponibile in produzione.

In ambito cybersecurity

Nel campo della sicurezza informatica, per Sandboxing si intende il meccanismo utilizzato per separare istanze di programmi in esecuzione dall’ambiente in cui vengono eseguite, cioè solitamente il sistema operativo. Ciò viene fatto per scongiurare gli effetti negativi di possibili fallimenti di sistema o per evitare che software malevolo possa infettare il sistema operativo. I sistemi virtualizzati consentono il Sandboxing poiché il sistema operativo ospite non può influenzare negativamente il sistema operativo ospitante, tranne per una vulnerabilità che vedremo più avanti. Una Sandbox tipicamente fornisce un insieme di risorse come memoria volatile e di archiviazione, mentre altre vengono disabilitate come la rete e la possibilità di utilizzare direttamente i dispositivi di Input/Output. Esistono diversi modi di applicare questo meccanismo di sicurezza, come ad esempio l’uso di macchine virtuali o di container, sfruttando quindi i benefici delle virtualizzazione, sia a livello hardware che a livello di sistema operativo, oppure utilizzando alcune funzionalità del Kernel Linux.

In ambito web

Il termine sandbox è comunemente usato per lo sviluppo di servizi Web per riferirsi a un ambiente di produzione con mirroring per l’uso da parte di sviluppatori esterni. In genere, uno sviluppatore di terze parti svilupperà e creerà un’applicazione che utilizzerà un servizio Web dalla sandbox, utilizzato per consentire a un team di terze parti di convalidare il proprio codice prima di migrarlo nell’ambiente di produzione. Microsoft, Google, Amazon.com, Salesforce.com, PayPal, eBay e Yahoo, e tanti altri forniscono tali servizi.

Come funziona una sandbox?

Il funzionamento di una sandbox dipende dall’utilizzo che se ne deve fare. Una sandbox utilizzata per analizzare il comportamento di un malware ad esempio, va configurata e funziona in modo diverso da una sandbox utilizzata in ambito di programmazione per testare se il codice è scritto bene e un’applicazione riesce a ricevere gli aggiornamenti. Per la ricerca e l’esecuzione di potenziali malware, bisogna assicurarsi che la sandbox sia totalmente isolata dal resto del sistema.

Indipendentemente dal motivo per cui si sceglie di utilizzare una sandbox, ogni ambiente presenta alcune caratteristiche di base:

  • Emulazione di un dispositivo. Potrebbe essere usata per emulare un computer o un dispositivo mobile. In ogni caso l’applicazione da testare deve avere accesso alle stesse risorse del codice da testare, compresa la CPU, la RAM e la memoria.
  • Emulazione del sistema operativo. Usando una macchina virtuale, l’applicazione deve avere accesso al sistema operativo. Con la macchina virtuale, la sandbox è isolata dall’hardware sottostante, ma ha accesso al sistema operativo.
  • Ambiente virtualizzato. Solitamente la sandbox stà su una macchina virtuale così da impedire l’accesso alle risorse fisiche del computer, ma può comunque accedere a risorse hardware virtualizzate.

La virtualizzazione e l’emulazione non sono però del tutto infallibili nella lotta alle minacce informatiche. Chi scrive malware sa bene che quasi certamente sarà testato prima o poi in un ambiente virtuale, perciò può adottare delle precauzioni per tentare di rendere il codice malevolo invisibile ai radar dei ricercatori ad esempio se, in fase di avvio, il malware percepisce che è stato lanciato su una sandbox.

Il malware può essere in grado di valutare il modo in cui l’utente interagisce con il computer, per capire se si trovi o meno di fronte ad un utente che sta utilizzando il computer normalmente. Altri malware potrebbero analizzare le impostazioni di sistema alla ricerca di quelle impostazioni standard che contraddistinguono le macchine virtuali. In tutti questi casi, il malware rimane silente senza compiere alcuna azione, così da non essere rilevato come malevolo, attivandosi soltanto successivamente, quando raggiunge una macchina reale.

In alcuni casi, chi crea i malware può addirittura creare exploit per compromettere una sandbox poco sicura.

Gli ambienti virtuali vengono anche chiamati “jail”, letteralmente prigioni, perché il sistema operativo emulato e le risorse hardware hanno accesso limitato alla rete e al file system.

Anche certi tipi di applicazioni e cloud hosting si servono delle sandbox per impedire a qualsiasi cosa venga lanciata al loro interno, di accedere a determinati aspetti del server host.

Benefici dell’utilizzo delle sandbox

In un ambiente di sviluppo di test, una sandbox può essere utilizzata per eseguire applicazioni su una risorsa sicura e controllata prima che vengano rilasciate e lanciate sui server di produzione.

Le sandbox consentono alle organizzazioni di eseguire software potenzialmente in grado di causare problemi, perché di origine malevola o semplicemente per malfunzionamenti imprevisti del codice, senza rischiare di danneggiare sistemi o risorse di rete importanti.

Vengono spesso utilizzate come una sorta di lazzaretto per email e allegati sospetti. I filtri email sono in grado di individuare messaggi potenzialmente malevoli, ma l’amministratore di rete avrà bisogno di un luogo sicuro in cui poterli aprire per distinguere le reali minacce dai falsi positivi. Un documento word apparentemente innocuo, potrebbe contenere in realtà delle macro in grado di sfruttare le vulnerabilità di applicazioni popolari come Microsoft Office ad esempio. L’amministratore di rete può servirsi di una macchina virtuale per aprire gli allegati e analizzare le macro così da rendersi conto se i file sono sicuri oppure no.

Per quelle aziende che non hanno degli addetti alla sicurezza informatica al loro interno, le sandbox possono comunque essere tranquillamente usate da qualsiasi impiegato, per isolare programmi sospetti e lanciare software potenzialmente dannoso, senza esporre i sistemi aziendali a rischi informatici.

Pubblicato da Vito Lavecchia

Lavecchia Vito Ingegnere Informatico (Politecnico di Bari) Email: [email protected] Sito Web: https://vitolavecchia.altervista.org

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *