Sicurezza basata sullo sviluppo e sicurezza basata sull'amministrazione in un prodotto software?

1

Ci sono casi in cui si ha l'opportunità, come sviluppatore, di rafforzare le funzionalità di sicurezza e le protezioni su un software, sebbene possano essere gestite a livello ambientale (ad esempio, il sistema operativo si prenderà cura di esso) .

Dove diresti di tracciare la linea e quali elementi prendi in considerazione nella tua decisione?

Esempi concreti

Gestione utenti è responsabilità del sistema operativo

Non esattamente inteso come funzionalità di sicurezza, ma in un caso simile Google Chrome non consentiva profili separati. La ragione invocata (anche se ora supporta più profili per uno stesso utente del sistema operativo) era che la gestione degli utenti era la responsabilità del sistema operativo.

Disabilitazione dei campi del modulo Web

Una richiesta ricorrente che vedo indirizzata online è che il completamento automatico venga disattivato nei campi modulo. Il completamento automatico non esisteva nei vecchi browser ed era una funzionalità gradita al momento dell'introduzione per le persone che dovevano compilare spesso i moduli. Ma ha anche sollevato alcuni problemi di sicurezza, e così alcuni browser hanno iniziato a implementare, oltre all'impostazione (ovviamente necessaria) nel proprio pannello di preferenze / personalizzazione, un attributo autocomplete per i campi form o input . E questo è stato introdotto nel prossimo standard HTML5. Per i browser che non ascoltano questo attributo, vengono offerti strani hack * , come la generazione di ID e nomi univoci per i campi per evitare che vengano suggeriti in moduli futuri (che viene fornito con un altro gruppo di problemi, come inquinando la cache di riempimento automatico locale e non impedendo che una password venga memorizzata al suo interno, ma probabilmente duplicandone le occorrenze).

In questo caso particolare, e altri, direi che questa è una impostazione utente e che è il desiderio dell'utente e la responsabilità dell'utente per abilitare o disabilitare il riempimento automatico (disattivando completamente la funzione). E se si basa su una politica interna e su un requisito di sicurezza in un ambiente aziendale, sostituisci l'utente con l'amministratore nel precedente.

Suppongo che si possa controbattere che l'utente potrebbe voler accedere ad applicazioni non critiche (o siti) con questa comoda funzione abilitata e le applicazioni critiche con questa funzione disabilitata. Ma poi penso che sia per quello che sono le zone di sicurezza (in alcuni browser), o il segno che è necessario un ambiente / account più sicuro (e dedicato) per utilizzare queste applicazioni.

* Ovviamente non nego l'ingenuità delle persone che erano forzate a trovare soluzioni alternative, solo la necessità di soluzioni alternative.

Domande

Questo è stato un po 'prolisso, quindi credo che le mie domande siano:

  • Considerereste generalmente che si tratti della responsabilità dell'applicazione (quindi dello sviluppatore)?
  • Dove disegna la linea, se non nel caso "generale"?

Questo è cross-postato da Programmers StackExchange , basato su commento del moderatore .

    
posta haylem 16.09.2012 - 09:36
fonte

2 risposte

4

Il dilemma non è specifico della sicurezza, ma la sicurezza lo rende più facile da risolvere (anche se non in modo filosoficamente soddisfacente).

Considera il browser Web Firefox. È molto autonomo. Ad esempio, ha il proprio livello crittografico, con la propria memoria di chiavi private e la gestione dei certificati e dell'implementazione SSL e l'elenco di ancore di fiducia. Allo stesso modo, Firefox ha le proprie impostazioni per i proxy. D'altra parte, sia Internet Explorer che Chrome delegano molto al sistema operativo in quelle aree. Questo è un compromesso: ciò che è delegato al sistema operativo non deve essere reimplementato, MA questo porta la configurazione del sistema operativo nella foto e può aggiungere vincoli.

Ad esempio, quando vogliamo aggiungere un supporto per smartcard al browser, il driver pertinente deve essere installato nel sistema operativo (nel mondo Windows, un "provider di servizi di crittografia"), ma questo non è sufficiente per Firefox, che < em> anche ha bisogno del proprio driver (una DLL PKCS # 11). Il modo in Firefox aumenta quindi la complessità e i costi di amministrazione. D'altra parte, se imposto un proxy in Chrome, lo imposto a livello di sistema e incide su tutte le altre applicazioni; mentre con Firefox, posso impostarlo solo per Firefox, che è più flessibile; per esempio. se voglio osservare il comportamento del mio server Web quando le connessioni provengono da IP distinti, mi piacerebbe eseguire più browser contemporaneamente, alcuni dei quali usando proxy SOCKS - Non posso farlo con Chrome (a meno che non usi VM), ho bisogno Firefox per questo.

Quindi il dilemma riguarda principalmente il bilanciamento della flessibilità con la complessità. Firefox è un sistema operativo a sé stante, che lo rende abbastanza portatile, ma richiede un'amministrazione specifica. In che modo arriva la sicurezza ? Quando diciamo "sicurezza", spesso pensiamo alla "colpa" (da questo "noi" intendo "la maggior parte dei manager"). Questo risolve il dilemma: se, come sviluppatore, ho la scelta tra fidarsi del sistema operativo per fare il suo lavoro, o farlo da solo, allora non posso essere biasimato per aver scelto quest'ultimo, anche se aumenta i costi selvaggiamente.

Come ho detto, questo è altamente insoddisfacente, ma il dilemma è risolto. È anche ammesso socialmente che uno sviluppatore ingaggiato si rifiuta di fare completamente il lavoro se ritiene che sia "non sicuro". Considerando che la delega al sistema operativo, per questioni di sicurezza, è sentita come audace e audace, e in qualche modo rischiosa, e, come sviluppatore, questo ha funzionato meglio e non accennato mai all'introduzione di problemi di sicurezza, perché altrimenti lo sviluppatore audace diventerà un capro espiatorio coraggioso . Guai a chi non osa condividere la paranoia ambientale!

(L'argomento sopra può essere trasformato in un argomento per l'integrazione del browser nel sistema operativo, che è ciò che Microsoft fa con IE.)

    
risposta data 16.09.2012 - 16:15
fonte
1

La tua domanda è troppo ampia per dare una risposta chiara. L'unica risposta che posso immaginare è: "dipende".

In generale, se si dispone di una proprietà di sicurezza specifica dell'applicazione, l'applicazione dovrà applicarla e implementare la funzionalità di sicurezza. D'altra parte, se si dispone di una proprietà a livello di sistema che si desidera applicare a tutte le applicazioni, potrebbe essere necessario applicarla nel sistema operativo o in un altro livello inferiore. Ma i dettagli della situazione specifica probabilmente determineranno la risposta giusta.

La situazione con il completamento automatico non è guidata da un dibattito sulla sicurezza da parte degli sviluppatori e degli amministratori. È una situazione specifica, che è sorto a causa di altri fattori; se vuoi sapere di più su come il web si è sviluppato in questo modo, ti preghiamo di fare una domanda a parte. Ma assicurati di inquadrarlo attentamente: una domanda su cosa i "dovrebbero" fare è probabile che sia troppo soggettivo per fare una buona domanda. E se ti trovi a discutere sulla domanda su cosa pensi sia la cosa giusta da fare, forse questo sito non è proprio il più adatto per la domanda - cerca di evitare qualsiasi cosa con qualche accenno di sfogo e concentrati su questioni tecniche che avere una risposta tecnica o in cui le risposte possono essere supportate da prove o analisi.

Come promemoria, per le domande frequenti, le domande dovrebbero riguardare una situazione specifica e concreta che stai affrontando. Questo non è un forum di discussione. Quindi, qual è il vero problema che stai affrontando? Una domanda su un singolo dilemma specifico in cui questo è sorto sarebbe stato in argomento; ma chiedere informazioni sulla "sicurezza guidata dallo sviluppo rispetto all'amministrazione" (qualunque cosa ciò significhi) in generale è semplicemente troppo ampia.

    
risposta data 16.09.2012 - 10:01
fonte

Leggi altre domande sui tag