Cos'è una sandbox e perché dovresti giocare in una

Cos'è una sandbox e perché dovresti giocare in una / Cultura Web

Dai un'occhiata alle applicazioni che usi di più sul tuo computer. Più che probabile, un buon numero di loro offre funzionalità altamente connettive, in particolare il tuo browser web. Questi programmi altamente connettivi possono fare molto, ma sono anche un invito aperto a colpire i cattivi hacker.

Per evitare che gli scioperi abbiano successo, uno sviluppatore dovrebbe individuare e chiudere ogni singolo buco nel loro codice, che semplicemente non è possibile. Invece, gli sviluppatori devono prendere questo fatto e pianificare il loro codice con quello in mente. La soluzione più comune ed efficace: una sandbox.

Sabbia in una scatola?


No, non è la sandbox del parco locale che preferisco, ma sandbox software. Queste sandbox hanno uno scopo chiave: prevenire la diffusione di un attacco. Come ho detto sopra, gli sviluppatori intelligenti sanno che il codice non è perfetto e che il loro prodotto sarà eventualmente hackerato o altrimenti penetrato. Per proteggere l'utente, implementano una sandbox che isola le parti del loro programma. In sostanza, tutto ciò che accade in una sandbox rimane in quella sandbox.

Sandbox in azione


Per spiegare le sandbox in azione, utilizzerò Google Chrome come esempio principale. Chrome è uno dei prodotti più noti per implementare il sandboxing, che Google vanta con orgoglio come una caratteristica di sicurezza unica tra i browser. Google ha preso Chrome e in sostanza lo ha diviso in tre diverse categorie: il processo principale che lega tutto insieme, il processo (o le schede) che contiene le pagine e include il renderer e il / i processo / i del plugin. Tutte queste categorie hanno diversi livelli di autorizzazione in modo che siano in grado di funzionare, ma tali autorizzazioni sono il minimo indispensabile in modo che tutti siano abbastanza limitati. Inoltre, i diversi processi non possono realmente parlarsi, ma coesistono. Ad esempio, sebbene il contenuto Flash del plugin Flash possa essere presente su una pagina, i processi sono ancora separati e non parlano tra loro. Il renderer lascia solo uno spazio nella pagina per la visualizzazione di quel processo. Questa incapacità di comunicare è importante perché se una scheda si blocca o viene dirottata, non può influenzare le altre schede né il sistema stesso.

Anche Firefox lo ha, tipo di


Firefox ha anche una funzione sandboxing, sebbene limitata, che la separa da plugin di terze parti come Flash. Mentre il browser e tutte le sue schede sono combinati in un unico processo, esiste un processo separato per tutti i plugin. Nell'approccio di Firefox, ripone più fiducia nel proprio codice rispetto a Google che fa con Chrome e attribuisce la colpa a qualsiasi problema di navigazione sui plug-in. Pertanto, se i plug-in si bloccano in qualsiasi modo, il browser e le schede non sono interessati.

Pensare fuori dagli schemi


Sebbene sia una buona strategia implementare le tecniche di sandboxing nel codice di un programma stesso, ci sono molti altri programmi che non hanno alcun tipo di sandboxing. Invece, ti consigliamo di eseguire una sandbox virtuale in cui è possibile eseguire programmi che possono solo causare il caos più che possono all'interno della sandbox, lasciando il tuo sistema intatto. Anche se questo è spesso pensato per testare il software, è anche una buona scelta per eseguire un browser web o qualsiasi altro software lì dentro se sei paranoico (o inserisci qui la tua altra parola preferita). Una scelta molto popolare per questo è Sandboxie Come isolare e testare applicazioni non sicure sul PC Come isolare e testare applicazioni non sicure sul PC Ulteriori informazioni, ma ci sono altri prodotti, sia gratuiti che a pagamento, che possono ottenere lo stesso risultato.

Conclusione

Il sandboxing è attualmente uno degli argomenti più scottanti per quanto riguarda la sicurezza, e sta facendo decisamente bene il lavoro. Naturalmente, gli sviluppatori dovrebbero sempre concentrarsi sul rendere il loro codice il più buono possibile, ma sicuramente non aiuta ad avere piani di azione per quando si verifica un problema. Tieni presente che le sandbox non sono ancora perfette, in quanto la sandbox di Chrome è stata sconfitta in Pwn2Own 2012 dopo alcuni hack estremamente difficili, ma sono decisamente una scelta molto migliore che nessuna.

Qual è la tua opinione sulle applicazioni di sandboxing? Quali miglioramenti vorresti vedere nei sandboxing dei browser web o quali applicazioni ritieni necessitino di sandboxing? Fateci sapere nei commenti!

Crediti immagine: Katie Gregory, Ernst Vikne

Scopri di più su: Sviluppo App, Programmazione, Virtualizzazione.