Sandbox in sicurezza informatica: cos’è e come funziona

Soluzioni di sicurezza per le piccole aziende Proofpoint Web Security

Con il termine sandbox, nel mondo della sicurezza informatica, si intende un ambiente sterile costituito da una macchina virtuale isolata dal resto del computer, in cui è possibile lanciare software potenzialmente dannosi, 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 “detonare” 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.

La formazione sulla sicurezza informatica inizia qui

Ecco come funziona la nostra prova gratuita:

  • Incontra i nostri esperti di sicurezza informatica per far valutare il tuo ambiente e identificare la tua esposizione al rischio di minacce.
  • Nel giro di 24 ore e con una configurazione minima, distribuiremo le nostre soluzioni per 30 giorni.
  • Prova la nostra tecnologia sul campo!
  • Ricevi report che evidenziano le vulnerabilità della tua sicurezza per poter prendere provvedimenti immediati contro gli attacchi informatici.

Compila questo modulo per richiedere un incontro con i nostri esperti di sicurezza informatica.

Grazie per esserti registrato per la nostra prova gratuita. Un rappresentante di Proofpoint si metterà in contatto con te a breve, guidandoti nei prossimi passi da seguire.

A cosa serve la sandbox nel computer?

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 programmazione

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.

Applicazione delle sandbox nella sicurezza informatica

Le sandbox in sicurezza informatica vengono utilizzate in modo simile. Ma in questo caso, diventa molto più importante assicurarsi che nessuna risorsa di rete sia accessibile dai malware che si vanno a testare. La macchina virtuale ha la sua rete e solitamente non ha alcun collegamento al server di produzione. Lo scopo di utilizzare una sandbox è di lanciare codice malevolo e analizzarne il comportamento. A volte potrebbe trattarsi di un cosiddetto exploit zero-day i cui effetti non sono ancora noti. Per questo è fondamentale che la sandbox non abbia alcun accesso alla rete.

Grazie all'utilizzo delle sandbox, gli esperti di sicurezza informatica sono in grado di capire come funziona un malware, quali effetti ha sul sistema e quindi cercare di renderlo innocuo. Il primo passo nello sviluppo di software antivirus è proprio quello di impedire al malware di diffondersi ad altri sistemi e di rimuoverlo dai sistemi già infetti.

Quando ci trova di fronte ad attacchi, anche sofisticati, le sandbox sono uno strumento indispensabile che permette ai ricercatori di analizzare a fondo il malware e bloccarne la diffusione prima che diventi una minaccia globale. I ransomware ad esempio possono diffondersi in modo incontrollato e mettere ko sistemi e infrastrutture critiche di enti e governi in tutto il mondo. Ecco perché il tempestivo utilizzo delle sandbox si rivela così importante per contrastare le minacce informatiche.

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.

Alcuni malware riconoscono le sandbox

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.

Esempi di sandbox in informatica

Una sandbox, in informatica, è uno strumento che può avere sia componenti hardware che software. Impostando delle restrizioni hardware, è possibile isolare una sandbox impedendole l'accesso a qualsiasi altra rete. Per il massimo livello di isolamento, la sandbox può avere il proprio router Wi-Fi e connessione internet dedicati. Questo tipo di configurazione rende fisicamente impossibile per un software malevolo, accedere alla rete principale.

Molte applicazioni utilizzano le sandbox di default per proteggere il sistema operativo. I browser hanno le loro sandbox integrate, per impedire ad applicazioni web potenzialmente dannose di accedere alle risorse locali del sistema. Linguaggi di programmazione come Java hanno la loro sandbox integrata, sempre per proteggere le risorse locali da codice poco sicuro e potenzialmente dannoso, come gli applet Java presenti nelle pagine web.

Anche i sistemi operativi, come Windows 10 ad esempio, hanno integrate le proprie sandbox per proteggere l'utente da applicazioni potenzialmente dannose. Anche se tale protezione non va considerata come un sostituto dell'antivirus, del firewall, o dei programmi anti malware, aggiunge però un livello di sicurezza che le precedenti versioni di Windows non offrivano.

HTML5 ha una sandbox per impedire l'utilizzo malevolo dello strumento iframe. E il sistema operativo Linux mette a disposizione diverse sandbox attraverso le utilità Seccomp e cgroup. Google mette a disposizione la API per la sua sandbox a tutti gli sviluppatori C++ che necessitano di isolare il proprio codice e testarlo prima di renderlo disponibile in produzione.

Come configurare una sandbox?

Il modo in cui va configurata una sandbox dipende dall’utilizzo che prevedete di farne. Molte piattaforme cloud sono dotate delle proprie sandbox per far girare software e ricevere aggiornamenti. Ad esempio se decidete di utilizzare PayPal come processore di pagamento per l’applicazione che state sviluppando, la piattaforma vi metterà a disposizione una sandbox completa dove potrete simulare in tutto e per tutto, l'ambiente di produzione. Il codice che gira sulla sandbox resta sempre isolato dalla produzione, perciò eventuali errori o bug non si rifletteranno sulla piattaforma principale in produzione.

Se avete bisogno di una sandbox per testare le vostre applicazioni, del codice potenzialmente dannoso o del malware, potete crearvi la vostra sandbox installando una macchina virtuale. Una delle soluzioni più scaricate ed utilizzate per la creazione di macchine virtuali è VirtualBox. Avrete bisogno soltanto di un file di installazione per lanciare l’installazione del sistema operativo all'interno della macchina virtuale.

Prima di installare il sistema operativo sulla macchina virtuale però, dovrete impostare le risorse hardware che desiderate rendere disponibili per l'ambiente virtuale: RAM, CPU, quantità di spazio su disco, scheda di rete, etc. Queste risorse sono virtualizzate e non saranno disponibili al di fuori della macchina virtuale. Allo stesso modo, i programmi che gireranno sulla macchina virtuale non saranno in grado di condividere risorse con nient'altro al di fuori della macchina virtuale stessa, incluso il sistema operativo principale del computer.

Anche se solitamente l’ambiente virtuale è considerato piuttosto sicuro, i cybercriminali tentano sempre di violare la sicurezza delle sandbox. Le grandi aziende del settore IT sono solite elargire elevate ricompense a chiunque scopra e segnali malfunzionamenti e vulnerabilità nelle loro sandbox. Gli sviluppatori di Microsoft Edge pagano fino a 30.000 dollari a chi trova il modo di bypassare la sandbox integrata nel loro browser. Gli sviluppatori di Google Chrome nel 2012 hanno pagato 60.000 dollari a chi fu in grado di eseguire codice non autorizzato su una macchina aggiornata e apparentemente protetta.

Per poter condurre qualsiasi analisi di sicurezza su malware e software potenzialmente dannoso, l'utilizzo di una sandbox è un must. Vi permetterà di isolare completamente le risorse del sistema dalla virtual machine, incluse le risorse di rete. Grazie all’utilizzo della sandbox potrete testare e analizzare qualsiasi tipo di malware, senza il rischio di compromettere l'ambiente di produzione.