Sandbox (sicurezza informatica)

Nella sicurezza informatica, una sandbox è un meccanismo per eseguire applicazioni in uno spazio limitato. Solitamente fornisce un ristretto e controllato set di risorse al programma che deve essere testato, come un'area ristretta di memoria o un insieme di chiamate di sistema limitate; di…

Nella sicurezza informatica, una sandbox è un meccanismo per eseguire applicazioni in uno spazio limitato. Solitamente fornisce un ristretto e controllato set di risorse al programma che deve essere testato, come un'area ristretta di memoria o un insieme di chiamate di sistema limitate; di norma, l'accesso alla rete, la possibilità di ispezionare il sistema ospite o leggere dai Dispositivi di Input-Output, sono disabilitati o altamente ristretti. Data la capacità di fornire un ambiente estremamente controllato, le sandbox possono essere viste come uno esempio specifico di virtualizzazione, solitamente utilizzata per eseguire programmi non testati o non attendibili, non verificati o provenienti da terze parti non riconosciute (come utenti o siti web), senza rischiare di infettare il dispositivo dove viene eseguita l'applicazione, ad esempio effettuare test su programmi non verificati che possono contenere virus o codice maligno, senza permettere al software di infettare il dispositivo ospite.

Implementazioni

Una sandbox è implementata eseguendo il software in un’area ristretta del sistema operativo, controllando le risorse (per esempio, file descriptors, memoria, lo spazio nel file system, ecc.) che un processo può utilizzare. Le sandbox sono diventate rapidamente un rapido ed efficace meccanismo di difesa contro le intrusioni di terzi, trovando implementazione in molte delle applicazioni comunemente usate.

Browser

Se un attaccante è in grado di trovare un exploit nel browser in modo da poter eseguire del codice malevolo sulla macchina ospite, il meccanismo della sandbox previene possibili danni al sistema. Inoltre, tramite l’utilizzo della sandbox, si previene che l’attaccante possa leggere o scrivere qualsiasi file personale presente nel sistema. In aiuto ai produttori di browser, in HTML5 è stato aggiunto un attributo sandbox al tag iframe, che abilita una serie di restrizioni per il contenuto di esso.

Google Chrome

Google Chrome utilizza un’architettura a multi-processo che permette molta flessibilità in termini di sicurezza. Infatti, tutta la parte di rendering di HTML e l’esecuzione di codice Javascript è isolata in una specifica classe di processi (detti renderer): in questo modo si è riusciti a creare un ambiente isolato che permette di aprire pagine web in sicurezza.

Mozilla Firefox

Per risolvere i problemi di sicurezza, Firefox genera dei processi figli per delimitare le risorse a disposizione di un’applicazione web. Il modo in cui Firefox genera i processi figli e interagisce con loro è comune a tutte le piattaforme per cui il browser è disponibile, mentre l’implementazione vera e propria di una sandbox per i processi figli è specifica per ogni piattaforma poiché vengono utilizzate tecnologie proprietarie di ogni sistema operativo.

Internet Explorer - Microsoft Edge

Sin dalla versione 7 di Internet Explorer, viene utilizzata una modalità protetta che forzava l’esecuzione del rendering di una pagina web con privilegi inferiori rispetto a quelli dei controlli del browser o dell’utente. Dalla versione 10, si aggiunge una modalità protetta avanzata (EPM), dove venne implementata una sandbox migliore ed attivata di default la semantica deny-by-default e no-read-up. Infine, nell’ultima versione del browser di Microsoft, Edge, i contenuti di una pagina web vengono sempre eseguiti all’interno di una sandbox, impedendone la disattivazione.

Sistemi Operativi

Nei moderni sistemi operativi e alla capillare diffusione di applicazioni che possono essere installate nei computer, si è reso necessario prevedere dei meccanismi di sandboxing. Ogni piattaforma ha un approccio diverso. In Microsoft Windows, per isolare l’ambiente di esecuzione di un’applicazione, viene utilizzata una tecnologia chiamata AppContainer. Questa permette di creare ambienti isolati con accesso al minimo set di risorse necessarie per l’applicazione, in modo che, seppur venga trovata una vulnerabilità in una determinata app, non si possa accedere a più risorse di quelle specificate da AppContainer. Ad esempio, se una applicazione desidera avere accesso ad alcune periferiche del sistema, come la fotocamera, questa funzionalità è bloccata di default, consentendone l’accesso solo se esplicitamente richiesto. Lo stesso meccanismo viene utilizzato in MacOS e iOS, dove la tecnologia utilizzata viene chiamata App Sandbox.

A partire dal kernel 2.6.2 di Linux, viene implementata una funzione denominata seccomp, con la funzione di isolare il processo dalle risorse disponibili. Per quanto riguarda Android, per garantire maggior sicurezza, pur condividendo il kernel con Linux, è stata implementata una vera e propria sandbox dove le applicazioni accedono a risorse estremamente limitate.

Vulnerabilità

Nonostante la tecnologia sandbox sia un buon metodo per proteggere i propri dispositivi da attacchi informatici, ogni giorno in rete nascono nuove minacce: nel giugno 2016 Google ha corretto un bug presente in Chrome che eludeva il meccanismo di sandboxing. L’implementazione di una sandbox può essere divisa in tre compartimenti primari: l’interprete del linguaggio di base, le librerie standard e il codice dell’applicazione non attendibile. Solitamente, le librerie standard sono l’anello debole del meccanismo, rendendo così le sandbox vulnerabili: l’utilizzo di codice Java o C# per scrivere librerie che gestiscono funzionalità importanti (come ad esempio la comunicazione di rete e la crittografia) porta delle vulnerabilità a causa dei difetti intrinseci di questi due linguaggi.

Molti utenti o organizzazioni utilizzano macchine virtuali (VM) come una sandbox: questa può essere vista come un’ulteriore sicurezza da parte dell’utente, ma le nuove generazioni di malware e trojan create da hacker black hat riescono ad individuare se viene utilizzata una VM, oltrepassandola sfruttando le possibili vulnerabilità.

Servizi correlati

Altre voci

B

BackBox

BackBox è una distribuzione GNU/Linux derivata da Ubuntu, progettata per eseguire penetration test e vulnerability assessment and mitigation fornisce un insieme di strumenti che facilitano l'analisi di reti e sistemi informatici. Essa integra in un ambiente desktop completo tutti gli strumenti…

Leggi la voce →
H

Ho.

ho. o ho. Mobile è un operatore virtuale di telefonia mobile italiano appartenente a Fastweb (precedentemente a Vodafone Italia).

Leggi la voce →
Sicurezza informaticaS

Sicurezza informatica

La sicurezza informatica è l'insieme dei mezzi, delle tecnologie, delle procedure e delle pratiche finalizzate alla protezione dei sistemi informatici e delle informazioni in essi contenute. I principali obiettivi della sicurezza informatica sono la tutela della riservatezza, dell'integrità e…

Leggi la voce →
Pirateria informaticaP

Pirateria informatica

La pirateria informatica indica varie attività di natura illecita perpetrate tramite l'utilizzo di strumenti informatici, in violazione delle norme giuridiche di uno Stato e del copyright.

Leggi la voce →
L

L'arte dell'intrusione

L'arte dell'intrusione è il secondo libro scritto da Kevin Mitnick, con la collaborazione del giornalista scientifico statunitense William L. Simon, che tratta il tema della sicurezza informatica attraverso il racconto delle vicende relative a diversi casi di hacking realmente accaduti.

Leggi la voce →
O

OPST

L'OSSTMM Professional Security Tester (OPST) è una certificazione fornita da ISECOM - Institute for Security and Open Methodologies. Si tratta di una certificazione, basata su best practice, volta a migliorare il lavoro svolto dai professionisti che si occupano di sicurezza informatica, nello…

Leggi la voce →