Un im­por­tan­te passaggio nello sviluppo di un software è la pos­si­bi­li­tà di ve­ri­fi­ca­re la fun­zio­na­li­tà di un nuovo programma. Difatti anche se il codice sorgente non presenta errori visibili, nell’ap­pli­ca­zio­ne pratica po­treb­be­ro so­prag­giun­ge­re com­pli­ca­zio­ni inattese. Ma anche testare un software non completo o sco­no­sciu­to comporta dei rischi: può infatti accadere che il programma, durante la sua in­stal­la­zio­ne, modifichi o ad­di­rit­tu­ra intacchi il sistema operativo tramite un codice dannoso o errato. In questo caso una sandbox può essere d’aiuto, perché offre l’op­por­tu­ni­tà di testare il codice, che sia proprio o di altri, in Internet, in un ambiente isolato senza con­se­guen­ze per il sistema.

Cos’è una sandbox?

Nel mondo in­for­ma­ti­co, i termini “sandbox” e “sand­bo­xing” si sentono sempre più di frequente, ma cos’è ef­fet­ti­va­men­te una sandbox e come viene uti­liz­za­ta? Con la tecnica della sandbox potete creare un ambiente di prova isolato all’interno del vostro sistema. In questo modo, un programma esegue de­ter­mi­na­te azioni senza causare eventuali danni all’hardware. Una sandbox, in pratica, permette di schermare o pro­teg­ge­re il proprio sistema operativo da un codice errato o da un malware. Intanto, nel settore dello sviluppo software e della cy­ber­si­cu­rez­za, la sandbox è diventata una procedura standard e offre anche alle grandi aziende la pro­te­zio­ne ne­ces­sa­ria dai danni di sistema e dagli attacchi in­for­ma­ti­ci.

La sandbox non è un’idea nuova, anzi è nata proprio con lo sviluppo dei primi sistemi PC. Negli anni ‘70 i pro­gram­ma­to­ri uti­liz­za­va­no le sandbox per ef­fet­tua­re test e si­mu­la­zio­ni. In questo modo potevano stabilire se un de­ter­mi­na­to codice fun­zio­na­va in un ambiente limitato. I primi sistemi di sicurezza come Hydra, non solo pro­teg­ge­va­no i costosi hardware, ma pre­sen­ta­va­no anche un altro vantaggio: il sistema della sandbox con­sen­ti­va di de­ter­mi­na­re i problemi che sarebbero emersi senza un iso­la­men­to.

Oggi ci sono de­ter­mi­na­ti programmi che non vi danno solo la pos­si­bi­li­tà di ri­chia­ma­re e deviare i vostri registri di sistema, con le macchine virtuali (VM) potete ad­di­rit­tu­ra simulare un intero cal­co­la­to­re.

Come funziona una sandbox?

Le sandbox si possono rea­liz­za­re in vari modi; mentre prima i pro­gram­ma­to­ri svi­lup­pa­va­no un proprio ambiente di prova protetto, oggi avete a di­spo­si­zio­ne dei programmi pronti all’uso. A seconda del sistema operativo e dello scopo, esistono varie versioni di cor­ri­spon­den­te portata e con diverse procedure. E questo per un buon motivo: uno svi­lup­pa­to­re che lavora a un nuovo programma per computer ha delle necessità diverse rispetto a un’azienda, che vuole so­prat­tut­to pro­teg­ge­re il suo sistema operativo da un codice sco­no­sciu­to e da attacchi in­for­ma­ti­ci. La regola è: tanto più grande è l’ambiente di sistema reale che l’ap­pli­ca­zio­ne sanbox deve simulare, tanto più saranno le risorse ne­ces­sa­rie.

Di seguito una piccola pa­no­ra­mi­ca delle diverse versioni sandbox e del loro fun­zio­na­men­to.

  • Programmi sandbox: un programma stand-alone molto ap­prez­za­to nella tec­no­lo­gia sandbox è “Sandboxie”, che mette a di­spo­si­zio­ne una sandbox già pronta per gli utenti Windows. Una volta attivato, tutti gli accessi di scrittura da parte di po­ten­zia­li programmi dannosi per l’hardware vengono deviati in una cartella che potete definire au­to­no­ma­men­te prima di iniziare il test. I file salvati nella sandbox possono essere trasmessi al sistema reale tramite un comando. All’interno di tali ap­pli­ca­zio­ni potete gestire con­tem­po­ra­nea­men­te più sandbox.
  • Sandbox nel sistema operativo: tramite alcune ap­pli­ca­zio­ni potete uti­liz­za­re la sandbox di­ret­ta­men­te nel vostro codice di pro­gram­ma­zio­ne tramite strati e livelli. In questo modo la sandbox diventa parte in­te­gran­te del vostro sistema operativo, co­sti­tuen­do­ne però una com­po­nen­te limitata in se stessa. Come per altri software sandbox, andrete a definire de­ter­mi­na­ti parametri per il tempo di ese­cu­zio­ne del ri­spet­ti­vo programma, con­sen­ten­do così un’analisi sandbox mirata. Con Windows 10 (dalla versione 1903, build 18305) ri­ce­ve­re­te subito la sandbox di Windows integrata, che potete attivare e di­sat­ti­va­re au­to­no­ma­men­te.
  • Macchine virtuali: le macchine virtuali (VM) hanno una portata maggiore rispetto ai singoli programmi. Una VM funziona come un normale computer e, data la sua di­men­sio­ne, di solito si trova su un server separato. È possibile ripartire la vir­tua­liz­za­zio­ne della VM in più sistemi ospite. Si tratta di quasi-sistemi in­di­pen­den­ti tra loro e com­ple­ta­men­te in­cap­su­la­ti nell’hardware. VM co­no­sciu­te con in­ter­fac­ce complete sono Java Virtual Machine e FAU­ma­chi­ne per Linux e macOS.
  • Plug-in sandbox: un esempio di sandbox come plug-in è offerto dal lin­guag­gio di pro­gram­ma­zio­ne Java. Qui la sandbox si utilizza tramite i co­sid­det­ti applets Java. Gli applets sono programmi per computer eseguiti in un browser web. At­tra­ver­so la sandbox integrata, il codice di pro­gram­ma­zio­ne caricato in Internet gira in un ambiente isolato man­te­nen­do così protetti il disco fisso, la memoria RAM e le funzioni del vostro sistema operativo.
N.B.

Oltre ai programmi sandbox basati su software esistono anche le co­sid­det­te micro vir­tua­liz­za­zio­ni, eseguite di­ret­ta­men­te nell’hardware. A dif­fe­ren­za delle sandbox, però, non si con­cen­tra­no sulla ricerca di un codice dannoso, bensì sulla pro­te­zio­ne dalle ri­per­cus­sio­ni dirette di malware.

Dove si utilizza il sand­bo­xing?

Ci sono molti campi d’ap­pli­ca­zio­ne per il sand­bo­xing. In generale, gli obiettivi per­se­gui­ti con questa tec­no­lo­gia risiedono in due ambiti: software testing e cy­ber­si­cu­rez­za. Vi rias­su­mia­mo di seguito la loro funzione in questi settori.

Software testing: le sandbox hanno un ruolo im­por­tan­te in relazione ai collaudi di software di nuovo sviluppo. La vir­tua­liz­za­zio­ne dei sistemi di calcolo aiuta i pro­gram­ma­to­ri a svi­lup­pa­re ap­pli­ca­zio­ni sicure ed ef­fi­cien­ti e a testarle in diversi ambienti. Il sandbox testing è quindi uno strumento che mostra agli svi­lup­pa­to­ri quando è ne­ces­sa­rio mo­di­fi­ca­re la pro­gram­ma­zio­ne di un codice. A volte il sand­bo­xing è impiegato per isolare tra loro programmi eseguiti in parallelo, perché non sono com­pa­ti­bi­li tra loro. Visto che il codice viene eseguito in maniera sicura nella sandbox, gli esperti in­for­ma­ti­ci uti­liz­za­no questa tec­no­lo­gia anche per ana­liz­za­re i malware e le loro con­se­guen­ze sul sistema operativo.

Cy­ber­si­cu­rez­za: anche quando si parla della sicurezza dei browser, insieme ai sistemi di sicurezza firewall gli strumenti sandbox rap­pre­sen­ta­no una soluzione ap­prez­za­ta. Pro­teg­go­no il sistema operativo da ma­ni­po­la­zio­ni all’avvio da parte di ap­pli­ca­zio­ni critiche. So­prat­tut­to gli enti e le società che lavorano con dati sensibili, devono pro­teg­ger­si da Advanced Per­si­stent Threats (APTs), ossia da attacchi di hacker per­si­sten­ti e avanzati che operano sul lungo periodo. Anche l’utente tra­di­zio­na­le di Internet può navigare in maniera più sicura con un’ap­pli­ca­zio­ne sandbox. Gli attuali browser basati su Chromium lavorano con processi sandbox distinti per ogni pagina internet o plug-in caricato, per evitare exploit del browser.

Quanto è sicuro il sand­bo­xing?

Sono molti i pro dell’uso di tec­no­lo­gie sandbox. Rimane però da capire quanto siano sicure le sandbox quando si parla di cy­ber­cri­mi­ne. In linea di massima gli utenti sandbox non do­vreb­be­ro farsi ingannare da un falso senso di sicurezza, perché proprio come i mec­ca­ni­smi di sicurezza, anche gli attacchi degli hacker sono in costante sviluppo. Gli attacchi in­for­ma­ti­ci in­tel­li­gen­ti ri­co­no­sco­no i classici ambienti sandbox e riescono ad aggirarli facendo apparire innocuo il codice dannoso prima dell’in­stal­la­zio­ne. Per questo motivo gli esperti con­si­glia­no di non usare esclu­si­va­men­te un sistema stand-alone, ma più tec­no­lo­gie sandbox a diversi livelli. La tec­no­lo­gia di array mul­ti­sand­box utilizza ad esempio varie sandbox nello stesso cloud.

Di seguito vi pro­po­nia­mo nuo­va­men­te un breve riepilogo di vantaggi e svantaggi delle sandbox:

Vantaggi Svantaggi
Ambiente di prova con­trol­la­bi­le nel caso di nuovi software Gli utenti sono convinti di essere al sicuro e quindi prestano minor at­ten­zio­ne
Pro­te­zio­ne di hardware, sistema operativo e registro di sistema Le sandbox più datate in par­ti­co­la­re pre­sen­ta­no delle falle di sicurezza
Nessun accesso dati non con­sen­ti­to sul sistema host I complessi strumenti sandbox ri­chie­do­no molte risorse e sono costosi
Non ci sono conflitti tra programmi o sistema operativo e programma  
Na­vi­ga­zio­ne sicura in Internet tramite pro­te­zio­ne da malware  
In sintesi

Le sandbox offrono agli svi­lup­pa­to­ri un ambiente sicuro per testare a dovere software non ancora completi. Nell’ambito della cy­ber­si­cu­rez­za le sandbox sono più efficaci se applicate a più livelli e combinate con altre misure di sicurezza.

Vai al menu prin­ci­pa­le