Come faccio a sapere che un software fa solo ciò che afferma l'autore?

91

Senza essere un programmatore o un esperto di computer, come faccio a sapere se un particolare programma o qualsiasi software in generale non ha funzioni nascoste indesiderate che compromettono la privacy e la sicurezza?

    
posta user3533 06.02.2013 - 22:08
fonte

7 risposte

165

Puoi sapere se un software fa solo ciò che annuncia nello stesso modo in cui puoi sapere se il cibo che ti servono nei ristoranti è avvelenato o meno. In parole povere, non è possibile, ma la Società ha ideato vari schemi per affrontare il problema:

  • Puoi ascoltare amici e critici per sapere se il cibo in un determinato ristorante ha una buona reputazione o no.
  • Puoi prendere un campione e inviarlo a un laboratorio che cercherà molte sostanze tossiche conosciute (ma non tutte).
  • Puoi chiedere gentilmente se puoi osservare il cuoco mentre prepara i piatti.
  • Il cuoco ha un interesse commerciale acquisito nel fatto che il suo cliente sia soddisfatto della qualità del cibo, e la felicità include, in particolare, di non essere morto.
  • La società punisce gli avvelenatori con la massima severità e di solito si può presumere che il cuoco lo sappia.
  • Hai sempre l'opzione estrema di non mangiare lì se sei troppo preoccupato.

Tutti questi possono essere direttamente trasposti nel mondo del software. Metodi estremi per accertare la qualità del software e l'aderenza al suo comportamento pubblicato includono cose molto costose e noiose come Common Criteria che si riducono a, in fondo, sapendo chi ha realizzato il programma e con quali strumenti.

Risposta alternativa: ogni parte del software ha dei bug, quindi è garantito al 100% che non faccia esattamente ciò che deve fare. (Questa affermazione include il software che funziona su una dozzina di piccoli computer che sono incorporati nella tua auto, tra l'altro.)

    
risposta data 06.02.2013 - 22:39
fonte
23

Non puoi, almeno non con una precisione del 100%. Parlando come programmatore, è molto facile codificare ciò che voglio, e non è necessariamente solo ciò che viene pubblicizzato.

Non tutte le attività inaspettate, tuttavia, sono dannose. Suppongo che tu sia più preoccupato per le attività dannose. Anche questo non è possibile al 100% per rilevare tutto il tempo, ma c'è speranza.

Puoi usare un software che monitora cose come il traffico di rete, l'attività dei file, ecc. per trovare indizi sul comportamento del software in modo inaspettato. Ad esempio (e so che questo è solo uno strumento di base) puoi usare Fiddler per vedere se una particolare applicazione sta accedendo a Internet tramite http (s). (Sì, so che ci sono strumenti migliori là fuori, però. Fiddler è solo il primo che viene in mente.) Su Windows, è possibile utilizzare Process Monitor per ottenere ancora più informazioni. Esistono strumenti simili per altre piattaforme.

Ci sono anche molti altri servizi che puoi utilizzare per eseguire l'analisi per te.

risposta data 06.02.2013 - 22:35
fonte
9

Specialmente quando il software diventa più grande e più complicato, diventa impossibile * anche per gli esperti rispondere. In tal senso, la privacy e la sicurezza di un'applicazione vengono gestite al meglio utilizzando sandbox o Macro di controllo degli accessi metodi. L'idea è dietro questi metodi è che il software viene eseguito in un sistema che controlla ciò che può fare e ti permette di fare solo ciò che ti aspetti che faccia. Fatto correttamente, puoi limitare le connessioni possibili e ricevere una notifica se il programma tenta di accedere a file che non ti aspetti. È possibile utilizzare metodi molto avanzati per monitorare la memoria o decrittografare il traffico di rete attraverso un servizio proxy.

In breve, se non riesci a capire tutto ciò che fa, la risposta è di limitare tutto ciò che può fare con qualcosa che gira dentro (il sistema operativo).

    
risposta data 06.02.2013 - 22:41
fonte
7

Nella sua famosa conferenza ACM Turing Award "Reflections on Trusting Trust" (ora quasi esattamente 30 anni fa!) Ken Thompson ha dichiarato: "Non puoi fidarti del codice che non ti sei totalmente creato da solo". In pratica, i software commerciali non fanno eccezione ad altri prodotti commerciali in quanto quelli di produttori che hanno un buon nome sul mercato hanno solitamente una maggiore probabilità di essere migliori. Tuttavia non esiste una garanzia assoluta per questo. Decenni fa ho ricevuto dischetti da un produttore noto che aveva virus. In tal caso personalmente lo credo non era un atto malevolo di nessuno all'interno dell'azienda, ma alcuni computer dell'azienda sono stati infettati dal virus dall'esterno. Tuttavia, è evidentemente impossibile in generale escludere al 100% la possibilità che le backdoor siano introdotte nel software da parte degli addetti ai lavori dell'impresa, indipendentemente dal fatto che questo sia noto al suo amministratore delegato o meno. Le backdoor potrebbero essere IMHO un problema estremamente critico, ora che le cyber-wars si profilano nel mondo. Un'agenzia segreta di un governo potrebbe in particolare gestire (tramite denaro, coazione o anche malware) far sì che tali backdoor vengano impiantati in determinati software che normalmente servono a garantire la sicurezza delle comunicazioni (ad esempio quelle relative alle firme digitali) e che sono venduti e utilizzati da alcune nazioni straniere non amichevoli o potenzialmente non amichevoli e immediatamente o in momenti appropriati ("bombe a orologeria" ecc.) sfruttano le backdoor per raggiungere i loro obiettivi di distruggere le infrastrutture critiche delle nazioni bersaglio, ecc. ecc. Stuxnet, Flame e Gauss sono un paio di nomi che dovrebbero dare alcune indicazioni sulle capacità dei potenziali malfaiteurs.

    
risposta data 07.02.2013 - 14:35
fonte
1

Alla fine arriva alla fiducia. Ti fidi della reputazione della società che rilascia il software. Se è open source, è utilizzato da sviluppatori abbastanza che avrebbero sollevato le bandiere se ci fossero problemi. C'è una certa quantità di forza in numeri, dal momento che un prodotto di uso comune ha più probabilità di fare ricerche approfondite se è affidabile. A meno che tu non sia paranoico, generalmente la migliore è quella che la community ha da dire su un particolare software, ma ci saranno sempre bug e ci saranno sempre errori.

    
risposta data 06.02.2013 - 22:43
fonte
1

Sfortunatamente, non puoi ...

Come un buon programmatore potrebbe essere chiamato wizard dai suoi utenti, un buon trojan avrebbe completamente falso un ambiente normale per rendere la vittima tranquilla.

Alcuni virus / trojan eseguono una sterilizzazione del sistema vittima, al fine di

  • assicurati che un altro virus non interrompa il suo lavoro
  • assicurati che un antivirus non lo trovi
  • fare in modo che il sistema delle vittime funzioni correttamente per garantire che la vittima rimanga sicura.

Quindi non puoi !! In caso di dubbi, consultare !!!!

    
risposta data 06.02.2013 - 22:43
fonte
0

Come sottolineato da altri, non esiste un modo sicuro per sapere. Molto tempo, devi fidarti dell'integrità e della reputazione del venditore. Seguire pratiche sicure, come solo l'installazione di software da fonti affidabili, può aiutare, ma proprio come nella vita reale, a volte, ci fidiamo delle persone sbagliate.

Alla fine, penso che dovremmo adottare un certo livello di paranoia. Se installi un'app sul tuo telefono, non accettare o dire di sì quando il sistema operativo del tuo telefono ti informa che il telefono vuole accedere alle tue informazioni private, alla tua posizione, ecc. Chiediti, perché ha bisogno di quell'accesso. Se ritieni che l'accesso richiesto dall'applicazione sia giustificato in base a ciò che ti aspetti di fare, allora puoi dire di sì, forse OK. D'altra parte, se sembra richiedere l'accesso a informazioni o servizi che sono al di fuori di ciò di cui dovrebbero avere bisogno o essere interessati, allora sii un po 'sospettoso e consier attentamente prima di dire semplicemente si.

    
risposta data 07.02.2013 - 22:36
fonte

Leggi altre domande sui tag