Il sandboxing, e quindi l’utilizzo di una sandbox, è una soluzione di sicurezza informatica che risponde alla necessità di effettuare test di applicativi oppure di eseguire un’applicazione di cui non conosciamo in maniera certa la provenienza, senza esporre a rischi e minacce il sistema su cui questo meccanismo di protezione è in esecuzione.
Di meccanismi simili ne esistono diversi e da tempo: server dedicati, macchine virtuali, emulatori, ambienti isolati e altri ancora. Nella maggior parte dei casi, in ambito aziendale, è “sufficiente” aprire un ticket all’help desk, attendere l’approvazione, la verifica della disponibilità dello spazio necessario e del rilascio della macchina virtuale dedicata per effettuare i test in maniera sicura, al termine dei quali verrà cancellata. In uno scenario del genere, però, il tempo necessario per l’intera operazione e l’effort dei vari dipartimenti coinvolti potrebbe non essere trascurabile.
Il meccanismo del sandboxing, invece, ormai da alcuni mesi è disponibile nativamente già all’interno dei sistemi operativi più diffusi e consente quindi una gestione molto più rapida e flessibile di questi ed altri scenari.
Indice degli argomenti
A cosa serve e come funziona una sandbox
Grazie a questa nuova funzionalità embedded di sandbox è possibile – per esempio in ambito Microsoft – poter lanciare una macchina virtuale dedicata (senza alcuna installazione aggiuntiva di software di terze parti), aprire l’applicazione untrusted e cancellarla al termine dei test o delle sue funzioni, avendo garanzia che l’ambiente virtuale non possa in alcun modo interferire con il sistema host.
Il termine Sandboxing – in sicurezza informatica come nella traduzione letterale di recinto con la sabbia, usato dai bambini per giocare in un ambiente circoscritto – indica un meccanismo software utile a contenere determinate applicazioni in un ambiente predeterminato e con il minimo delle interazioni possibili con l’esterno.
È un metodo sicuramente conosciuto tra i programmatori, in quanto rappresenta la base di sicurezza e sviluppo delle applet Java, eseguite tramite le JVM dei diversi sistemi operativi (Java Virtual Machine). Stesso meccanismo viene implementato ormai per tutte le applicazioni sviluppate per mobile (MacOS, Android ecc.) per limitare l’interazione tra le app e le routine/dati di sistema.
Anche in questo caso lo scopo è quello di isolare sistema operativo e applicazioni da eventuale codice malevolo, limitando il suo ambito e separandolo dagli altri programmi e dal kernel stesso del sistema in uso sulla macchina, in modo da minimizzare le interazioni e l’espansione di eventuali vulnerabilità.
Vantaggi nell’utilizzo delle sandbox
I vantaggi di un sistema di questo tipo possono essere, a titolo di esempio:
- mitigazione del rischio cyber: le applicazioni che girano all’interno della sandbox hanno meno possibilità di poter accedere direttamente alle chiamate di sistema, alle altre applicazioni, ai dati e hanno quindi anche meno possibilità di perpetrare attacchi verso la macchina host, limitandone l’effetto e il danno all’interno della sandbox;
- efficientamento dei processi interni di approvvigionamento: senza entrare nel dettaglio dei tempi e delle infrastrutture di sviluppo che ovviamente dipendono da numerosi fattori, possiamo ipotizzare che per gli user test finali e per l’approvvigionamento dello spazio virtuale necessario, l’effort necessario da parte dell’azienda diminuisce notevolmente;
- riduzione degli investimenti relative alle infrastrutture IT dedicate al testing: di pari passo rispetto al punto precedente, gli investimenti per le infrastrutture virtuali classiche saranno ridotti per tutti i casi in cui l’uso della sandbox potrà sostituirle;
- monitoraggio ed efficientamento delle risorse hardware: con l’utilizzo delle sandbox è anche possibile monitorare, come se stessimo parlando di sistemi di virtualizzazione classica, le risorse hardware impostandone anche i limiti di allocazione (spazio disco, CPU, memoria e via dicendo).
Soluzioni e controindicazioni
Come per ogni meccanismo volto a migliorare la security, le sandbox non rappresentano la panacea, ma possono evidentemente dare il proprio contributo in combinazione con altre soluzioni.
Ad esempio, mentre attivando un malware all’interno della sandbox abbiamo la prova di impossibilità di accesso ai dati del disco primario del sistema operativo, non possiamo essere certi allo stesso modo di ciò che può accadere tramite network.
Infatti, se la sandbox ha le funzionalità networking attive, può tranquillamente comunicare con gli altri PC della rete aziendale e, di conseguenza, anche il malware di esempio può diffondersi secondo le usuali modalità, causando problemi ben più gravi.
La sandbox in ambiente Windows
Ricollegandoci a quanto detto prima, è utile segnalare che Windows 10 (dalla insider build 18305) integra nativamente la funzione di sandboxing (nelle versioni Pro o Enterprise): in questo modo non è necessario scaricare o installare ulteriori software per poter utilizzare l’ambiente virtuale.
È sufficiente attivarne le funzionalità dal menu di configurazione delle Windows Features e Microsoft Sandbox apparirà subito disponibile nel menu start come tutti gli altri programmi.
Tra l’altro, non è necessario scaricare un’immagine di Windows aggiuntiva, ma verrà utilizzata una copia derivata dal sistema operativo attualmente in uso sulla macchina stessa, creata in automatico e che verrà rimossa al suo “spegnimento”, a meno di impostazioni diverse.
Una volta pronto, si utilizzerà il nuovo ambiente di lavoro come se fosse una seconda macchina, con le sue configurazioni di disco, memoria, porte USB ecc., e sapendo quindi che ogni azione sarà quasi sicuramente circoscritta e avrà effetto solo nel suo ambito. Il “quasi” è d’obbligo per tutte le considerazioni sul rischio security già menzionate.
Come funziona la Windows Sandbox
Come già accennato, per poter utilizzare Sandbox, non è necessario scaricare nuovamente un’immagine di Windows da cui effettuare il boot, ma il sistema in maniera autonoma crea una copia a partire dalla versione Windows già installata sulla macchina e dai cui quindi viene lanciata. Windows Sandbox garantisce la protezione virus tramite il preinstallato Windows Defender e non consente di installare antivirus alternativi.
Per poter garantire che effettivamente l’ambiente Sandbox non possa contaminare il sistema host, nemmeno modificandone file di sistema, l’istanza virtuale viene creata attraverso il metodo di “immagine base dinamica”, ovvero caratterizzata dalla copia dei soli file che posso essere modificati, ma utilizzando invece link ai file che non possono essere modificati nella immagine Windows reale.
Anche la gestione della memoria è stata ottimizzata per permettere l’utilizzo di due macchine sullo stesso hardware, limitato in termini di risorse. Ciò è possibile grazie al meccanismo di gestione scelto, che consente all’host di poter richiamare memoria dalla sandbox (gerarchicamente inferiore) e consente l’uso delle stesse porzioni di memoria fisica da parte di entrambe le macchine, effettuando però un mapping che assicura la separazione delle informazioni e dei dati condivisi.
Conclusioni
Come già accennato, non possiamo pensare che tramite l’utilizzo di una sandbox non possa più accadere nulla di spiacevole sulla nostra macchina: si tratta comunque di un ambiente virtuale che va utilizzato con prudenza.
Rappresenta, tuttavia un valido ed efficiente metodo per poter testare software conosciuto (meglio se con interfaccia di rete spenta) nelle realtà sprovviste di infrastrutture di virtualizzazione dedicate.