Alternative al modello di sicurezza "open PC"

10

Oggi, i PC (laptop, desktop, ecc.) generalmente funzionano con quello che chiamerò il modello di sicurezza "open PC". Gli utenti hanno accesso completo a livello di amministratore di sistema / sviluppatore al proprio computer. Gli utenti possono installare software arbitrario di loro scelta sul proprio PC. Quel software può fare qualsiasi cosa, o almeno tutto ciò che l'utente può fare. Le applicazioni software non sono in modalità sandbox; possono accedere liberamente a tutti i dati dell'utente e interagire o manomettere tutte le altre applicazioni (*). Essenzialmente, ogni utente è Dio sulla propria macchina e può concedere lo status di Dio a qualsiasi applicazione software scelga di installare.

È possibile visualizzare il malware come una conseguenza del modello di sicurezza "open PC". Se un utente ha la possibilità di installare un software di sua scelta e se quel software ottiene pieno accesso al proprio PC, tutto ciò che un utente malintenzionato deve fare è persuadere l'utente a installare un software dannoso e l'utente è brindato. Allo stesso modo, se le applicazioni non sono in modalità sandbox, tutto ciò che un utente malintenzionato deve fare è compromettere una delle applicazioni dell'utente e quindi l'utente è brusco (l'utente malintenzionato accede a tutti i dati dell'utente e può compromettere tutte le applicazioni dell'utente) .

Attualmente, il modello di sicurezza "open PC" è profondamente integrato nel modo in cui funzionano i PC e il modo in cui funzionano i sistemi operativi per PC.

Quali altre alternative al modello "open PC" ci sono? Se l'industria volesse allontanarsi dal modello "open PC" nei prossimi 5-10 anni, quali sono alcuni possibili paradigmi alternativi che potrebbero valere la pena considerare? Quali sono i loro vantaggi e svantaggi?

Ad esempio, un paradigma in competizione è il modello di sicurezza "app". Nel modello di sicurezza "app", gli utenti in genere non hanno accesso completo a Syadmin / Sviluppatore a livello della propria macchina (a meno che non adottino un passaggio speciale, che la maggior parte degli utenti non accetta). Gli utenti possono installare app, ma per la maggior parte degli utenti, la selezione di app è limitata ad alcuni elenchi che sono curati almeno in un senso minimo (potrebbero esserci modi per trasferire applicazioni da altre fonti, ma la maggior parte degli utenti non lo fa) . Prima di installare un'app, c'è un modo per avere un'idea di quanto sia sicura o rischiosa quella scelta (ad esempio, attraverso recensioni accurate, le autorizzazioni richieste dall'app o altre informazioni). Le app sono in modalità sandbox. Ad ogni app è impedito di interferire con altre app; un'app non può accedere a tutti i dati dell'utente o interferire con altre app.

Il modello di app è probabilmente più resistente ai malware: rende più difficile per un utente malintenzionato persuadere gli utenti a installare software dannoso e limita il danno che un'app dannosa o compromessa può fare.

Quindi, potremmo pensare al modello di sicurezza "app" come un'alternativa al modello di sicurezza "open PC". Gran parte del mondo mobile è passato a un modello di sicurezza "app" e abbiamo persino iniziato a vedere alcuni movimenti in questa direzione nello spazio desktop (ad esempio, Windows 8).

Un'altra possibile alternativa potrebbe essere il modello "appliance", in cui il PC non è più un computer per uso generico e gli utenti non hanno più pieno potere di Dio sul proprio PC. Invece, l'amministrazione del sistema è affidata a qualcun altro (eventualmente il sysadmin del tuo datore di lavoro, o qualche altra società di terze parti che gestisce il sistema). Alcune applicazioni software di base potrebbero essere preinstallate (ad esempio, un browser Web, alcuni software per ufficio / produttività) e potresti non essere in grado di installare altro, o potresti essere limitato a quali applicazioni software è possibile installare (ad es. è possibile installare solo applicazioni incluse in una whitelist di applicazioni consentite). Lo chiamo modello "appliance", ma altri nomi ragionevoli potrebbero essere il modello "whitelisting" o "amministrazione di sistema in outsourcing". Questo modello potrebbe non essere adatto a tutti, ma potresti immaginare che potrebbe essere adatto a una parte degli utenti.

Ci sono altri modelli di sicurezza radicalmente diversi che vale la pena considerare? Se potessimo cambiare completamente il paradigma di sicurezza alla base dei computer e dei sistemi operativi e dell'architettura del computer (ricominciando da zero, se necessario), esistono altri paradigmi / modelli di sicurezza che potrebbero consentire significativi vantaggi per la sicurezza?

(*) Nota: OK, so che sto semplificando un po 'la descrizione del modello "open PC". Mi rendo conto che i moderni sistemi operativi desktop fanno una distinzione tra l'account utente e l'amministratore / root. Tuttavia, in un certo senso, questo è un dettaglio. Ad esempio, la separazione utente / radice non fornisce alcun isolamento tra le applicazioni. La maggior parte del software che eseguiamo viene eseguito a livello di utente, quindi nei sistemi operativi desktop qualsiasi applicazione utente può comunque interferire con qualsiasi altra applicazione utente.

    
posta D.W. 09.07.2013 - 02:27
fonte

4 risposte

5

In una certa misura, tutto il hype Web / Cloud riguarda un nuovo modello (o, forse, un vecchio modello con un nuovo livello di vernice). Con "app", le applicazioni sono abbastanza contenute e isolate l'una dall'altra. Con il modello "apps" utilizzato per il sistema iOS / Android, viene applicata un'ulteriore svolta in quanto solo le app "consentite" possono essere installate. L'utente può comunque scegliere quali app installare, ma solo all'interno dell'elenco di app mantenute (e firmate) nello Store dedicato.

Il modello "appliance" è un ulteriore passo avanti: l'utente non sceglie più quali applicazioni sono installate sul suo hardware. O forse la differenza tra questo modello e il modello di "app firmata" è la taglia dell'elenco di "app consentite". I confini tra questi modelli di sicurezza sono un po 'confusi. In uno Store con oltre 100.000 app, sarebbe eccessivamente ottimistico credere che tutti siano benigni.

Probabilmente, con il modello "appliance", il computer dell'utente non è più il suo computer. Allora, andiamo alla fine di questa logica: se quello non è il suo computer, perché dovrebbe essere in grado di toccarlo? Mettiamola da qualche altra parte, raggiungibile solo dalla rete. Ciò che rimane nella presenza fisica dell'utente è solo un dispositivo di visualizzazione, ma il codice effettivo viene eseguito su un server remoto. Questo è il modello Cloud (o, semplicemente, il modello Web; la differenza tra un Cloud e un sito Web è al massimo quantitativa, non qualitativa).

Quindi si potrebbe sostenere che esiste un solo modello e che le differenze sono solo di natura quantitativa. Sarebbe un punto di vista piuttosto estremo.

Molto tempo fa (circa 20 anni), ho sentito spesso i deliri di uno studente nella mia stessa scuola; a suo avviso, il futuro era sicurezza dimostrabile . Le applicazioni dovrebbero descrivere ciò che fanno in un modello sufficientemente preciso per acquisire proprietà interessanti, ma anche in modo tale che il sistema operativo sia in grado di "dimostrare" che tali proprietà verranno effettivamente applicate. In pratica sono utilizzate incarnazioni parziali di queste idee, ad esempio nell'elenco delle "autorizzazioni" delle app Android e anche (per la stessa cosa a un livello diverso) nel bytecode Java (il bytecode viene eseguito all'interno dei vincoli del modello di tipo Java e la VM può accertarsene con analisi statistiche e solo controlli di runtime minuti).

Quindi ciò di cui abbiamo bisogno non sarebbe in realtà un "modello" qualitativamente nuovo (come ho cercato di spiegare sopra, tutti i modelli sono in realtà varianti su un unico continuum), ma piuttosto un quadro più ricco per descrivere quali caratteristiche di sicurezza vogliamo per far rispettare (come al solito, il punto delicato sta definendo ciò che vogliamo).

Questo quadro dovrebbe anche essere comprensibile da chiunque sia responsabile per l'amministrazione della macchina, cioè l'utente finale. Quindi sembra una missione del Santo Graal.

    
risposta data 09.07.2013 - 18:30
fonte
3

I maggiori problemi dell'ambiente desktop PC odierno:

  • consentendo alle applicazioni arbitrarie di accedere a tutti i dati che un utente ha;
  • fornendo alle applicazioni accesso illimitato a Internet e hardware sensibile (microfono, fotocamera, chip GPS, Bluetooth ecc.);
  • proliferazione di utenti idioti;
  • l'emergere di una cultura aziendale in cui rubare e vendere i dati personali degli utenti è la norma .

Mi oppongo fermamente ai curati giardini recintati, dal momento che la loro ragion d'essere è commerciale, e non è così inverosimile vedere la loro fonte di profitto la mia sicurezza. Lo stesso vale per i servizi cloud e le appliance sigillate: acquisto la potenza di elaborazione e mi sento libero di acquistare, installare e utilizzare qualsiasi cosa scegliamo senza la paura di tenere i miei dati in ostaggio, senza sorprese, agli interessi commerciali di qualcun altro.

Temiamo che non ci sia una pallottola d'argento per spazzare via l'inettitudine degli utenti e l'avidità del settore, ma piuttosto alcuni passi evolutivi per rendere la sicurezza delle applicazioni utilizzabile e fare pressione sull'industria (uno sforzo futile, lo so ).

Alcune soluzioni:

  • virtualizzazione dell'hardware (VT-x) e sandboxing;
  • che stabilisce insiemi di permessi a grana fine che separano vari ruoli:

    • hat / role dell'amministrazione del sistema (come nel tweaking del SO) dovrebbe essere separato dal cappello che l'utente mette in atto durante l'installazione (e la prova) delle applicazioni;
    • il mio browser bancario deve essere separato dal browser che utilizzo per la posta elettronica;
    • es. la videoconferenza dovrebbe essere isolata dalle applicazioni del mio ufficio (ricorda che ci sono flussi di lavoro in cui si suppone che ci sia "integrazione perfetta" - ci sono stati giorni in cui questo tipo di interoperabilità era il punto vendita di molti fornitori di software);
  • spostando il maggior numero possibile di funzioni di sicurezza nell'hardware (sì, il microcodice può essere aggiornato, ma l'implementazione del controllo degli accessi nel software è vulnerabile e costosa).

Questo è non che reinventa la ruota, tutte ricette provate che finiranno per penetrare nell'ampio mondo dell'OS / hardware desktop consumer.

... a meno che l'idiozia e l'avidità non vincano la guerra contro la prudenza e la saggezza.

    
risposta data 09.07.2013 - 21:46
fonte
0

Sul tuo PC personale, sei "dio", ma questo non è solitamente il caso su un PC aziendale. Il tuo amministratore di sistema può forzare tutto il tuo traffico web a passare attraverso il proxy web aziendale, e non hai la possibilità di sovrascriverlo (a meno di hacking). Linux e Windows (e Mac) hanno una buona sicurezza multiutente, che hanno ereditato in modo efficace dai mainframe multiutente.

Quindi penso che il modello di "appliance" che hai citato, che è più comunemente chiamato "sistema gestito" esiste già ed è ampiamente utilizzato. Ma forse potrebbe essere più ampiamente usato. Ad esempio, mio padre possiede il suo PC, ma non è tecnico. Attualmente lo usa in modalità "dio", ma "sistema gestito" sarebbe più appropriato per lui. La domanda è: chi sarebbe il suo sysadmin? Non sto facendo volontariato: -)

La grande debolezza della sicurezza dei PC è esattamente ciò che fai notare: le app possono fare tutto ciò che fai. E penso che tu abbia ragione, dobbiamo considerare un modello di sicurezza radicalmente diverso, in cui le app sono sandbox. Ma questo modello ha un precedente: è il modello "app" che vediamo su iOS e Android. Si tratta di un'eccellente innovazione tecnica e ritengo che i team che lo hanno creato dovrebbero ottenere più credito.

A proposito, è importante separare le idee delle app in modalità sandbox e le app controllate (come questo app store iOS). Entrambi aiutano la sicurezza, ma le app di controllo creano ogni sorta di problemi sociali. Il sandboxing d'altra parte non è particolarmente controverso.

Quindi, il passo successivo è sandboxing sul desktop. Stiamo assistendo a piccoli passi verso questo, ad es. Chrome viene eseguito in una sandbox. Tuttavia, è un problema difficile. Le app desktop devono fare molto più delle app mobili. Sul cellulare, ogni app tende ad avere i propri dati in un silo. Sul desktop, più app lavorano insieme su un file system condiviso. E naturalmente sul desktop, gli utenti esperti vogliono fare cose come lo scripting.

Non penso che sia necessario alcun nuovo modello di sicurezza radicale, ma il processo di implementazione del sandboxing sul desktop richiederà molti anni.

    
risposta data 10.10.2013 - 14:30
fonte
-1

Questa "domanda" è di parte perché potrebbe non esserci una risposta definitiva. Il termine "Open PC" è equivoco: non esiste un modello "Open PC" nell'ambito dell'architettura dei computer / dei modelli di sicurezza.

Users have full, system administrator/developer-level access to their own machine

Dal punto di vista della sicurezza IT e dell'amministratore di sistema, non è accettabile dare diritti amministrativi completi a un utente. Una "best practice" è controllare i diversi ruoli all'interno dell'organizzazione e mappare i loro livelli di permessi / accesso di conseguenza. Il principio dei privilegi minimi deve essere applicato quando si tratta di autorizzazioni dell'utente. Tali politiche devono essere applicate a livello di sistema e a livello di rete. Ruoli e permessi legati a sistemi e amp; le domande devono essere riviste periodicamente. Un software e amp; l'inventario hardware deve essere gestito.

L'argomento è ampio, diversi aspetti potrebbero essere discussi:

  • Modello (i) di controllo dell'accesso da implementare (MAC, DAC, RBAC, ecc.)
  • Tipo di Plaftform (PC, terminale stupido, appliance, server ...)
  • Architetture e ampli del SO limitazioni (gestione dei permessi, meccanismi di sandboxing, modello di fiducia per il software ...)
  • Distribuzione software (in-house, SaaS, canale del fornitore classico, "app-store", repository distribuiti ...)
  • Gestione del sistema informativo (politiche, controlli tecnici, audit, monitoraggio ...)

Per definire quale dovrebbe essere un'alternativa al cosiddetto modello di sicurezza "open PC", è necessario definire il primo: il citato modello di sicurezza "Open PC" sembra essere un caso d'uso in cui la sicurezza della piattaforma è completamente non gestito. Questo caso d'uso non può essere definito come un "modello".

I tipi di piattaforma rientrano nelle seguenti categorie:

  • Un personal computer (PC) è destinato ad essere gestito dall'utente finale. A rigor di termini, il PC è un computer per uso generale per uso domestico.
  • Una workstation è un computer nell'ambiente aziendale / professionale (single-user o multidesk).
  • Un terminale (di solito stupido) è un sistema appositamente creato che espone un'interfaccia utente vincolata per eseguire solo attività specifiche (registratore di cassa, bancomat, thin client ...).
  • Un'appliance è un sistema "chiavi in mano" costituito da hardware e / o software personalizzati. Non è destinato agli utenti finali. Solitamente un'appliance viene utilizzata in un ambiente di rete per scopi specifici (sicurezza, archiviazione, ...)
  • Un server è un sistema che risponde alle richieste dei client in un ambiente di rete (il modello client / server viene anche utilizzato come framework di comunicazione tra componenti, applicazioni e processi). I client possono essere PC, workstation, terminali, appliance, processi applicativi, altri server ...

I modelli di sicurezza sono modelli astratti pensati per aiutare a sviluppare politiche di sicurezza, sistemi e amp; software, oltre a gestire il flusso di informazioni all'interno di un'organizzazione. I modelli di sicurezza e controllo degli accessi sono principalmente di alto livello. Sono ben definiti nella letteratura ufficiale su infosec.

Cercare di definire un nuovo paradigma di sicurezza come alternativa al caso d'uso particolare è un vicolo cieco. Ciononostante, la domanda è probabilmente più relativa al provisioning del software e all'implementazione del controllo degli accessi all'interno dei sistemi informatici.

Il modello di provisioning del software dipende da:

  1. Categoria di sistema del computer / tipo di piattaforma
  2. Funzioni del sistema operativo
  3. Ambiente (single-user, multidesk, distributed, networked ...)
  4. Modello di business del fornitore

L'implementazione del modello di controllo dell'accesso dipende da:

  1. Accettazione del rischio riguardante i dati da proteggere. Un'analisi costi / benefici deve essere eseguita per mantenere l'equilibrio tra sicurezza e amp; costo della sicurezza). Nota che il costo potrebbe essere denaro, tempo, esperienza ...
  2. Ambiente (single-user, multidesk, distributed, networked ...)
  3. Funzionalità dei sistemi operativi disponibili per applicare i controlli di sicurezza
  4. Modello di governance (basato sull'utente, basato sui ruoli, criterio organizzativo, esternalizzato ...)
risposta data 10.10.2013 - 16:42
fonte

Leggi altre domande sui tag