Processo di convalida del software

0

Due giorni fa ho fatto quella domanda: Il browser Web è in grado di utilizzare la fotocamera senza permesso?

e ho ricevuto una risposta che diceva: "ci sono state più vulnerabilità in Flash, Chrome e persino Facebook"

Esiste un processo per verificare che un software sviluppato da un'azienda sia sicuro? Voglio dire, è davvero impossibile dimostrare che un software è sicuro? processo interno o esterno?

Grazie mille

    
posta arezkibe 25.05.2014 - 14:02
fonte

2 risposte

1

Esiste l'idea di sistemi provabilmente sicuri, ma non è pratico per basi di codice grandi / dinamiche, sebbene lo si veda per alcuni software relativi a la crittografia . Anche per effettuare il controllo richiesto, sarebbe molto più difficile di un utente normale del software sarebbe in grado di andare a.

Per scopi pratici è molto difficile per un utente del software sapere che è "sicuro" (lo metto tra virgolette perché la parola "sicuro" significa cose diverse per persone diverse)

Il meglio che è pratico è di solito tenere il passo con le versioni di sicurezza dei venditori, evitare software con una brutta storia recente di difetti di sicurezza e minimizzare la quantità di software che si esegue quando si accede ai contenuti su una rete non sicura (ad esempio Internet)

    
risposta data 25.05.2014 - 14:54
fonte
1

Puoi provare l'esistenza di qualcosa, ma non puoi provare la sua assenza. Se non esiste, non puoi trovare alcuna prova di ciò, dalla definizione stessa di "non esiste".

Per essere sicuro, un'applicazione software non deve presentare alcuna vulnerabilità. Per verificare che sia sicuro, è necessario verificare che le vulnerabilità non esistano nell'applicazione. Come sopra, questo non può essere fatto. Dobbiamo avere un obiettivo diverso.

Possiamo raggiungere l'obiettivo, "non avere vulnerabilità note inaccettabili". Questo è l'obiettivo scelto dalla maggior parte delle applicazioni che eseguono test di sicurezza. Per questo obiettivo possiamo utilizzare strumenti come la modellazione delle minacce, l'analisi del codice statico, l'analisi statica binaria e l'analisi dinamica.

Possiamo raggiungere l'obiettivo "i controlli di sicurezza della nostra applicazione devono funzionare come previsto in tutte le condizioni prevedibili. Ciò significa testare i controlli di sicurezza dell'applicazione, proprio come il QA verifica il funzionamento, le prestazioni e altre caratteristiche dell'applicazione.

Possiamo raggiungere l'obiettivo ", la nostra applicazione deve essere costruita in base a un processo che riduca al minimo le probabilità di introduzione della vulnerabilità. In questo caso, utilizziamo un ciclo di vita sicuro per lo sviluppo del software che comprende formazione, foglietti elettronici, checklist per sviluppatori, checklist QA, uso di strumenti automatici, uso di tester esperti (test di penetrazione), modellazione di minacce e altri processi progettati per ridurre al minimo il rischio di nuovi vulnerabilità.

Mentre questi stanno tutti costruendo l'applicazione, non usando l'applicazione, possono essere estesi al punto di vista dell'utente. Puoi provare a identificare le vulnerabilità nell'applicazione da te - reso più facile se hai il codice sorgente. Puoi provare a verificare la correttezza dei controlli di sicurezza con il tuo test di stile QA, se puoi decomporre correttamente il prodotto e determinare gli scopi dei controlli. È possibile osservare il ciclo di vita di sviluppo sicuro dell'OEM e vedere come si impila contro gli altri (vedere BSIMM). Puoi anche guardare il record pubblico storico di un prodotto (vedi NVD) e provare a tirare conclusioni: per esempio, quando l'OEM ha una vulnerabilità di un tipo in un prodotto, hanno sempre quella vulnerabilità in quel prodotto di nuovo (sembrano fissare architettonicamente o bandire il problema?

    
risposta data 25.05.2014 - 14:59
fonte

Leggi altre domande sui tag