Quando i computer programmabili sono diventati di uso comune, gli sviluppatori di software hanno avuto un problema: "Come si fa a creare un ambiente isolato per testare il codice senza rischiare di danneggiare il sistema?". La risposta è stata la creazione di uno spazio sicuro chiamato sandbox, un ambiente molto ristretto per l'esecuzione di codice non attendibile, dove è possibile far esplodere gli eseguibili senza preoccuparsi di rompere l'ambiente di produzione.
Si è scoperto che questo "parco giochi" virtuale funzionava bene ed è stato esteso alla ricerca sulla sicurezza, dove il software potenzialmente dannoso o non attendibile poteva essere eseguito in modo sicuro senza influenzare l'hardware fisico della macchina host o compromettere i dati sensibili. Confinando il codice potenzialmente non attendibile in un ambiente virtuale controllato, il sandboxing consente ai ricercatori di eseguire analisi dinamiche e di rilevare modelli di comportamento del software potenzialmente dannoso. Nel contesto della ricerca sulla sicurezza, i sistemi sandbox sono utilizzati principalmente per la "detonazione automatica" del malware e per rilevare il malware sconosciuto tramite l'analisi della catena di attacco completa e il rilevamento dei modelli di comportamento.
Analizzeremo la storia degli ambienti sandbox e come vengono utilizzati dagli analisti della sicurezza per combattere le minacce altamente evasive e adattabili.
- Che cos'è il sandboxing?
- Storia degli ambienti di sandboxing
- Perché il sandboxing esiste nella sicurezza informatica
- Importanza della sicurezza Sandboxing
- Tipi di tecniche di sandboxing
- Vantaggi del sandboxing
- Sfide e limiti
- Migliori pratiche per un sandboxing efficace
- Sandbox Domande frequenti
Che cos'è il sandboxing?
Il sandboxing è una pratica di cybersecurity che utilizza un ambiente di detonazione isolato, o "sandbox", in cui i team di sicurezza detonano, osservano, analizzano, rilevano e bloccano artefatti sospetti come parte del ciclo di risposta agli incidenti in un centro operativo di sicurezza (SOC). Questo metodo fornisce un ulteriore livello di difesa contro i vettori di attacco sconosciuti.

Utilizzando una sandbox, i team di sicurezza possono condurre un'analisi avanzata del malware eseguendo i file sospetti in un ambiente segregato che emula il sistema operativo dell'utente finale. Il vantaggio principale del sandboxing consiste nell'osservare il comportamento di file eseguibili, script o documenti dannosi, consentendo così di rilevare malware completamente nuovi e sconosciuti, o anche malware creati per essere eseguiti in un ambiente specifico. È il passo evolutivo successivo al rilevamento basato sulle firme implementato dai motori antivirus (AV).
Storia degli ambienti Sandbox
Sandboxing è un termine un po'ambiguo in informatica che si riferisce a un'ampia varietà di tecniche. Dal punto di vista della sicurezza del software, è stato sviluppato come tecnica per ottenere l'isolamento dei guasti nel 1993. Più in generale, il concetto di sperimentazione in un ambiente sicuro ha radici in diverse discipline, tra cui l'esercito, l'ingegneria del software, la statistica e le scienze sociali.
Più recentemente, il sandboxing ha portato allo sviluppo di domini di sistema dinamici o "trusted container" sui sistemi operativi Sun e "jails" sui sistemi operativi FreeBSD. Questi meccanismi di sicurezza consentono di far esplodere i programmi in aree isolate all'interno di un sistema operativo, senza che ciò influisca sul sistema stesso.
Oggi le tecniche di sandboxing sono comunemente utilizzate per la ricerca sulla sicurezza da molti sviluppatori di software e professionisti della sicurezza. La virtualizzazione ha anche reso le sandbox più disponibili per gli utenti finali.
Perché il sandboxing esiste nella sicurezza informatica
Nella sicurezza informatica, il sandboxing ha guadagnato popolarità a causa della presenza sempre più elevata di malware evasivo e di minacce avanzate. Il sandboxing viene generalmente utilizzato per:
Detonare il Software sospetto | I ricercatori di sicurezza utilizzano il sandboxing per analizzare e studiare in sicurezza il comportamento del malware. Facendo esplodere il codice maligno in un ambiente controllato, possono identificare potenziali minacce e sviluppare contromisure senza compromettere il sistema host. |
Isolamento del processo | Per la mitigazione degli exploit delle vulnerabilità. Si pensi a PDF (adobe) o a Chrome, che utilizzano entrambi la tecnologia sandboxing. In particolare, PDF è stato sfruttato più e più volte per anni, il che ha portato all'architettura di isolamento del processo. |
Caccia alle minacce | Il sandboxing consente ai cacciatori di minacce di apprendere i comportamenti e le caratteristiche delle minacce informatiche emergenti, aiutandoli a individuare minacce simili. |

L'importanza della sicurezza Sandboxing
Secondo una ricerca di Future Market Insights, il sandboxing ha lasciato un segno sostanziale nel settore della cybersecurity, con un mercato che raggiungerà l'incredibile cifra di 8,1 miliardi di dollari nel 2022.
Un panorama di minacce informatiche in crescita

Crescente sofisticazione degli attacchi informatici
Man mano che i criminali informatici sviluppano attacchi sempre più avanzati e mirati con intento malevolo, il sandboxing è diventato sempre più fondamentale per rilevare e prevenire queste minacce prima che possano causare danni.

L'ascesa degli exploit zero-day
Gli exploit zero-day, che sfruttano vulnerabilità precedentemente sconosciute, rappresentano un rischio significativo per le organizzazioni. Il sandboxing aiuta a identificare e analizzare queste minacce, fornendo preziose indicazioni per lo sviluppo di contromisure.

La proliferazione dei dispositivi dell'Internet degli oggetti (IoT)
La rapida crescita dei dispositivi IoT ha ampliato la superficie di attacco per i criminali informatici. Il sandboxing può aiutare a proteggere questi dispositivi isolando le applicazioni e limitando l'accesso ai dati sensibili.
Tipi di tecniche di sandboxing
Esistono due tipi principali di tecniche di sandboxing: a livello di sistema operativo e a livello di applicazione.
Livello del sistema operativo
Macchine virtuali
Una macchina virtuale (VM) è una forma di sandboxing che emula l'hardware per eseguire più istanze di un sistema operativo. Le macchine virtuali forniscono un elevato livello di isolamento tra il sistema host e quello guest, consentendo agli utenti di eseguire in modo sicuro software non attendibile o di creare ambienti separati per attività diverse.
Container
I container sono una forma leggera di virtualizzazione che condivide il kernel del sistema operativo dell'host, ma isola anche l'applicazione e le sue dipendenze. Questo approccio consente un utilizzo più efficiente delle risorse rispetto alle macchine virtuali, pur mantenendo un elevato livello di isolamento.
Emulazione
Una sandbox di emulazione è un ambiente virtuale in cui software o sistemi possono essere emulati o simulati a scopo di test, detonazione o analisi di sicurezza. Le sandbox di emulazione creano un ambiente isolato per il software o i sistemi, proteggendoli dal sistema operativo host e da altre applicazioni per ridurre al minimo il rischio di danni o interferenze. Queste sandbox incorporano misure di sicurezza per evitare che il malware o il software dannoso sfuggano e abbiano un impatto sul sistema host. Trovano ampia applicazione nel campo della cybersecurity, per individuare e analizzare malware e minacce in modo sicuro. MetaDefender Sandbox è un esempio di sandbox basata sull'emulazione. Inoltre, si rivelano preziose per testare la compatibilità del software con diversi sistemi operativi e configurazioni hardware.
Come si colloca una sandbox basata sull'emulazione rispetto a un container o a una macchina virtuale?
Una sandbox basata sull'emulazione, come Qiling o QEMU, è diversa da un container o da una macchina virtuale per diversi aspetti:
- Le sandbox basate sull'emulazione emulano l'architettura hardware sottostante, mentre le macchine virtuali e i container condividono l'architettura hardware host sottostante. Ciò significa che le sandbox basate sull'emulazione possono eseguire codice di architetture diverse, come ARM su una macchina basata su x86, mentre le macchine virtuali e i container non possono farlo.
- Le sandbox basate sull'emulazione hanno in genere un overhead maggiore rispetto alle macchine virtuali o ai container, poiché vengono eseguite in un ambiente completamente emulato. Questo può renderle più lente e con un maggiore consumo di risorse.
- Le sandbox basate sull'emulazione sono generalmente più isolate e sicure delle macchine virtuali o dei container, poiché non condividono il kernel del sistema operativo host o altre risorse. Questo le rende una buona scelta per analizzare e testare malware o altro codice potenzialmente dannoso.
- I container e le macchine virtuali sono generalmente più facili da configurare e utilizzare rispetto alle sandbox basate sull'emulazione, poiché si basano su tecnologie consolidate e ampiamente supportate.
In generale, le sandbox basate sull'emulazione sono uno strumento potente per analizzare e testare software e sistemi in un ambiente controllato, ma hanno un overhead maggiore e possono essere più difficili da configurare e utilizzare rispetto alle macchine virtuali o ai container. La scelta di quale tecnologia utilizzare dipenderà dai requisiti specifici del caso d'uso.
Livello di applicazione

WrapperSoftware
Agiscono come uno strato protettivo attorno a un'applicazione, limitandone i privilegi e controllandone l'accesso alle risorse di sistema. Questo tipo di sandboxing è utile per limitare le applicazioni potenzialmente dannose, pur consentendone il funzionamento.

Sandbox dei browser Web
I moderni browser Web utilizzano tecniche di sandboxing per isolare i contenuti Web dal sistema dell'utente. Ciò consente di proteggere i dati dell'utente da siti Web o script dannosi che potrebbero tentare di sfruttare le vulnerabilità del browser o del sistema operativo.
Vantaggi del sandboxing
Il sandboxing offre un'ampia gamma di vantaggi per la sicurezza che migliorano la posizione di un'organizzazione contro i rischi di sicurezza sconosciuti e noti.
Sicurezza migliorata
Il sandboxing fornisce un ulteriore livello di sicurezza rilevando e isolando il malware e il software dannoso. Eseguendo codice sospetto in ambienti di test sandbox, gli utenti possono ridurre al minimo il rischio di violazioni della sicurezza e proteggere i loro dati preziosi.
Protezione contro le minacce sconosciute
L'uso di una sandbox è un metodo affidabile per prevenire le minacce sconosciute o il malware avanzato che elude i metodi di rilevamento più semplici. Le minacce zero-day possono sfuggire ai meccanismi di rilevamento basati sulle firme, quindi attivarle in un ambiente sicuro e isolato protegge le organizzazioni da attacchi catastrofici.
Migliori informazioni attuabili
La conoscenza è potere, e i test sandbox offrono un tesoro di informazioni utilizzabili che consentono alle organizzazioni di creare un profilo chiaro delle minacce, estremamente utile per prevenire minacce simili in futuro.
Limitazioni e sfide del sandboxing
Sovraccarico di prestazioni e scalabilità
Uno dei limiti principali del sandboxing è il sovraccarico di prestazioni associato alla virtualizzazione. L'esecuzione delle applicazioni in una sandbox può richiedere risorse aggiuntive, con conseguente rallentamento dei tempi di esecuzione. In genere, non è pratico eseguire la sandboxing di ogni file in un ambiente privo di un'infrastruttura significativa. Pertanto, la sandboxing è solitamente integrata come tecnologia aggiuntiva all'interno di un imbuto di elaborazione più ampio.
Tecniche di evasione
Gli sviluppatori di malware sviluppano costantemente nuove tecniche per eludere il rilevamento. Identificando che sono in esecuzione in un ambiente sandbox, questi programmi sospetti possono alterare il loro comportamento o ritardare l'esecuzione per eludere l'analisi e il rilevamento. Per questo motivo, anche la sicurezza delle sandbox è un fattore importante da tenere in considerazione.
Alta complessità
L'implementazione e la manutenzione degli ambienti sandbox può essere complessa e richiedere molto tempo. Le organizzazioni devono assicurarsi di avere le competenze e le risorse necessarie per gestire efficacemente questi ambienti.

Migliori pratiche per un sandboxing efficace
Creare un ambiente dorato
La sfida principale consiste nell'analizzare i campioni in vari ambienti o, idealmente, nell'esatto ambiente di destinazione se tutti gli endpoint sono standardizzati. Ad esempio, si consideri un exploit che si attiva solo su Adobe Reader v9. Senza testare i campioni su un'ampia gamma di versioni di Adobe, diventa difficile attivare l'exploit. Date le infinite combinazioni di stack di applicazioni e ambienti, l'approccio ottimale consiste nel creare un ambiente virtuale che funga da "ambiente d'oro" e che imiti la configurazione semplificata degli endpoint. Idealmente, tutti gli endpoint dell'ambiente aziendale dovrebbero avere lo stesso aspetto e utilizzare lo stesso stack di applicazioni e la stessa versione.
Impiegare i guardrail di sicurezza per una macchina virtuale
Per migliorare la sicurezza della sandbox, installare sempre dei guardrail di sicurezza che rilevino le informazioni personali identificabili o i dati sensibili quando si utilizza una sandbox. Alcuni guardrail possono anche impedire al malware di uscire dall'ambiente sandbox.
Controllare i falsi positivi inviando file innocui
I falsi positivi possono danneggiare il flusso di lavoro dell'organizzazione, in quanto gli esperti IT devono condurre ulteriori analisi per assicurarsi che i file siano sicuri. Per ridurre al minimo i falsi positivi, si consiglia di aggiungere di tanto in tanto file innocui alla sandbox. Se viene rilevato un falso positivo, potrebbe esserci un problema con le definizioni della sandbox.
Seguire un approccio alla sicurezza a più livelli
La sandboxing non deve essere considerata l'unica misura di sicurezza. È più efficace se combinata con altri strumenti e pratiche di sicurezza, come firewall, sistemi di rilevamento delle intrusioni e scansioni euristiche. L'implementazione di una strategia di difesa in profondità fornisce più livelli di protezione, rendendo più difficile per gli aggressori compromettere un sistema.
Monitoraggio continuo delSoftware Sandbox alla ricerca di codice dannoso
Le sandbox che consentono il monitoraggio continuo sono risorse preziose per i cacciatori di minacce e gli esperti di sicurezza. Sapere come le minacce informatiche inviano richieste e interagiscono con l'ambiente sandbox consente di ottenere preziose informazioni utili per le future operazioni di sicurezza.
Conclusione
Il sandboxing è una valida soluzione di sicurezza nella moderna cybersecurity, in quanto fornisce un potente mezzo per salvaguardare gli spazi digitali. Consente l'esecuzione sicura di codice software non attendibile, l'analisi di malware e il test controllato di nuove applicazioni, limitando al contempo l'accesso delle applicazioni a dati e risorse sensibili.
Sandbox FAQ
D: Il sandboxing può sostituire il software antivirus tradizionale?
R: La sandboxing non sostituisce il software antivirus tradizionale. È più efficace se combinato con altri strumenti e pratiche di sicurezza, come firewall, sistemi di rilevamento delle intrusioni e software antivirus, per creare una strategia completa di difesa in profondità.
D: Il sandboxing può proteggere da tutti i tipi di malware?
R: Sebbene il sandboxing sia uno strumento efficace per rilevare e isolare molti tipi di malware, potrebbe non catturare tutte le minacce. Alcune minacce informatiche possono eludere il rilevamento delle sandbox alterando il loro comportamento o ritardando l'esecuzione. L'impiego di un approccio alla sicurezza a più livelli può aiutare ad affrontare queste sfide.
D: Il sandboxing può influire sulle prestazioni del mio sistema o delle mie applicazioni?
R: Il sandboxing può introdurre un sovraccarico di prestazioni a causa delle risorse aggiuntive necessarie per la virtualizzazione o l'isolamento. Questo impatto può variare a seconda della tecnica di sandboxing e dell'applicazione specifica che viene messa in sandboxing.
D: Che cos'è l'ambiente sandbox di Windows?
R: Windows Sandbox offre un ambiente desktop leggero per l'esecuzione sicura di applicazioni in isolamento. Software installato all'interno dell'ambiente sandbox rimane "in sandbox" e viene eseguito separatamente dal computer host. Una sandbox è temporanea. Quando viene chiusa, tutti i software, i file e lo stato vengono eliminati.