Come la Sandboxing delle App macOS Protegge gli Utenti

Introdotta nel 2007 e richiesta dal 2012, la sandboxing è uno strumento utilizzato da macOS per limitare i danni che un’app compromessa può causare. Apple afferma: “Sebbene la App Sandbox non prevenga attacchi contro la tua app, minimizza il danno che un attacco riuscito può causare. La sandboxing delle app macOS protegge gli utenti limitando quanto danno un’applicazione può causare.
Leggi anche: 4 delle migliori applicazioni Sandbox per Windows per mantenerti al sicuro
Cos’è la Sandboxing delle App macOS?
Ogni app ha la propria area in cui operare: una “sandbox.” Se l’applicazione desidera accedere al di fuori della sua sandbox, deve chiedere il permesso al sistema operativo. A seconda delle impostazioni della sandbox, il sistema operativo può negare o approvare la richiesta dell’applicazione fornendo le informazioni meno specifiche possibili per completare la richiesta.

Pensa a un’auto. Il conducente è protetto da molteplici caratteristiche di sicurezza come freni anti-bloccaggio, airbag, zone di deformazione e altro. Nel 2007, al momento dell’introduzione della Sandboxing delle App, non esistevano sistemi informatici analoghi. Come chiedeva la presentazione introduttiva, dove erano le cinture di sicurezza per i computer? La sandboxing protegge gli utenti come le auto proteggono i loro conducenti: affrontando i guasti con sistemi di riduzione dei danni. Che siano causati da attività malevole o errori di codifica, i danni diminuiscono.
Poiché la sandboxing limita ciò che le app possono fare, può restringere la libertà degli sviluppatori. Le app sandbox funzionano più lentamente e richiedono più tempo per essere sviluppate. Grazie all’enorme capacità del Mac, i limiti della sandbox possono avere un grande impatto sulla compatibilità delle varie app. Di conseguenza, gli utenti esperti sono spesso spinti a scegliere app che funzionano al di fuori della sandbox, sia per problemi di prestazioni che di funzionalità.
Come Funziona la Sandboxing delle App?
La sandboxing si basa sul principio del minimo privilegio. In breve, i sistemi possono fare ciò che devono fare, ma non di più. Limitando ogni parte di un sistema a completare solo il proprio obiettivo dichiarato, si riduce la possibilità che la tua app venga compromessa. Ad esempio, non c’è motivo per un’app torcia di avere accesso alla tua lista di contatti.
Le app possono accedere al di fuori della loro sandbox, ma solo con il permesso del sistema operativo. Prendi la finestra di dialogo “Salva e Apri” in macOS. L’app, all’interno della sua sandbox, non può accedere direttamente alle risorse del filesystem sul tuo disco rigido. Non può, ad esempio, aprire un pannello a “~/Documents.” Invece, l’app deve chiedere all’API Powerbox con le classi NSOpenPanel e NSSavePanel per accedere al pannello.

L’applicazione non può vedere cosa sta succedendo all’interno di Powerbox direttamente. Solo il file aperto o salvato sarà accessibile all’app. In questo modo, le app possono eseguire funzioni critiche senza rischi inutili.
Questa funzionalità è abilitata da un diritto (specificamente com.apple.security.files.user-selected.read-write). Gli sviluppatori di app impostano diritti che dichiarano cosa fa un’app. Sulla base dei diritti dichiarati, il sistema operativo consente all’applicazione un livello di funzionalità limitato in modo appropriato.
Questo processo di pensiero sottende l’intero modello e meccanismo di sandboxing delle app: le app devono dichiarare l’intenzione e chiedere il permesso a un capo a livello di sistema operativo per realizzare qualsiasi cosa pericolosa.
App Sandboxed vs. App Non Sandboxed
Dal 1° giugno 2012, tutte le applicazioni di terze parti distribuite tramite il Mac App Store devono essere sandboxed. Sebbene la sandboxing consenta un’ampia gamma di funzionalità delle app, scoprirai che le app del Mac App Store sono spesso più limitate rispetto ai loro componenti non sandboxed. Alcuni sviluppatori mantengono persino due versioni: un’app completa per il download diretto e una versione limitata per il Mac App Store. Grazie alla maggiore complessità dello sviluppo della sandbox, aggiungere nuove funzionalità a un’applicazione è più difficile – se quella funzionalità è anche consentita dal sistema operativo, ovviamente.
Sebbene le app sandboxed possano beneficiare della distribuzione tramite il Mac App Store, puoi immaginare quanto pensiamo che sia prezioso. La sandboxing può anche essere estesa con permessi di sicurezza. Sebbene un’app non possa attivare i permessi di Accessibilità per se stessa, può chiedere all’utente di farlo.

Per vedere quali delle tue app sono sandboxed, apri Monitoraggio Attività e fai clic con il tasto destro sui titoli delle colonne per aggiungere “Sandbox” alla finestra.

Ci sono alcune app che non possono semplicemente mai esistere in una sandbox. Infatti, una varietà di casi d’uso preziosi è impedita dalla sandboxing. La sandboxing impedisce la comunicazione, l’osservazione o la modifica tra le applicazioni, limitando significativamente come le applicazioni possono interagire. Le scorciatoie a livello di sistema come TextExpander sono totalmente proibite, poiché quel livello di funzionalità potrebbe essere consentito dalla sandbox.
Conclusione
Sebbene promettente, la sandboxing delle app macOS non è stata eseguita bene. Ha limitato i punti di vendita unici delle app Mac, come velocità e funzionalità avanzate. Le app che funzionano al di fuori della sandbox sono quasi sempre più capaci e veloci. Dalla prospettiva di un utente esperto, le mie app più utilizzate sono non sandboxed. App come TextExpander, SnagIt e TotalFinder sono tutte cruciali per il mio lavoro quotidiano. Per evitare simili evitamenti diffusi, i futuri sistemi di sicurezza devono avere flessibilità e potenza bilanciate con trasparenza.
Crediti immagine: Apple