it-swarm.dev

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

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

91
user3533

Puoi sapere se alcuni software fanno 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 elaborato 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 meno.
  • Puoi prendere un campione e inviarlo a un laboratorio che cercherà molte (ma non tutte) sostanze velenose conosciute.
  • Puoi chiedere gentilmente se puoi osservare il cuoco mentre prepara i piatti.
  • Il cuoco ha un interesse commerciale innato nel fatto che il suo cliente sia soddisfatto della qualità del cibo e la felicità include, in particolare, il 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 la possibilità estrema di non mangiare lì se sei troppo preoccupato.

Tutti questi possono essere direttamente trasposti nel mondo del software. I metodi estremi per accertare la qualità del software e l'adesione al suo comportamento pubblicato includono cose molto costose e noiose come Common Criteria che si riducono, sostanzialmente, a sapere chi ha creato il programma e con quali strumenti.

Risposta alternativa: ogni software ha dei bug, quindi è garantito al 100% che fa no fa esattamente cosa dovrebbe fare. (Questa affermazione include il software che gira in una dozzina di piccoli computer che sono incorporati nella tua auto, comunque.)

166
Tom Leek

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

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

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

Ci sono anche molti altri servizi disponibili per l'uso che eseguiranno l'analisi per te.

23
David Stratton

Soprattutto quando il software diventa più grande e più complicato, diventa impossibile * anche per gli esperti rispondere. A tal fine, la privacy e la sicurezza di un'applicazione sono gestite al meglio utilizzando i metodi sandbox o Controllo dell'accesso obbligatorio . L'idea alla base di questi metodi è che il software viene eseguito in un sistema che controlla ciò che può fare e gli permetti di fare solo ciò che ti aspetti che faccia. Effettuato correttamente, è possibile limitare le connessioni possibili ed essere avvisato se il programma tenta mai di accedere ai file che non ci si aspettava. Metodi molto avanzati possono essere utilizzati 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 è limitare tutto ciò che può fare con qualcosa all'interno del (sistema operativo).

9
Jeff Ferland

Nella sua famosa conferenza del Premio ACM Turing "Riflessioni sulla fiducia" (ora quasi esattamente 30 anni fa!) Ken Thompson ha dichiarato: "Non puoi fidarti del codice che non hai creato completamente da solo". In pratica i software commerciali non fanno eccezione ad altri prodotti commerciali in quanto quelli di produttori che hanno buoni nomi sul mercato hanno generalmente una maggiore probabilità di essere migliori. Tuttavia non vi è alcuna garanzia assoluta per questo. Decenni fa ho ricevuto dischetti da un noto produttore con virus. In quel caso, personalmente ritengo che non si sia trattato di un atto dannoso di chiunque all'interno dell'azienda, ma che alcuni computer dell'azienda siano stati infettati da virus dall'esterno. Tuttavia, evidentemente, in generale non è possibile escludere al 100% la possibilità che le backdoor vengano introdotte nel software dagli addetti ai lavori dell'azienda, indipendentemente dal fatto che sia noto o meno al suo CEO. Le backdoor potrebbero essere un problema estremamente critico per l'IMHO, ora che le guerre informatiche si profilano nel mondo. Un'agenzia segreta di un governo potrebbe in qualche modo riuscire (tramite denaro, coercizione o persino malware) a impiantare tali backdoor in alcuni software che normalmente servono a garantire la sicurezza delle comunicazioni (ad esempio quelle relative alle firme digitali) e che vengono vendute e utilizzato da alcune nazioni straniere non amichevoli o potenzialmente non amichevoli e immediatamente o in alcuni punti temporali appropriati successivi ("bombe a tempo" ecc.) sfruttano le backdoor per raggiungere i loro obiettivi di interruzione dell'infrastruttura critica delle nazioni target, ecc. ecc. Stuxnet, Flame e Gauss sono un paio di nomi che dovrebbero fornire alcune indicazioni sulle capacità dei potenziali malfattori.

7
Mok-Kong Shen

Sfortunatamente, non puoi ...

Come un buon programmatore potrebbe essere chiamato procedura guidata dai suoi utenti, un buon trojan sarebbe completamente falso un ambiente normale per rendere la vittima silenziosa.

Alcuni virus/trojan eseguono una sanificazione del sistema delle vittime, al fine di

  • assicurarsi che un altro virus non interrompa il suo lavoro
  • assicurarsi che un antivirus non lo trovi
  • far funzionare bene il sistema delle vittime per garantire che le vittime rimangano sicure.

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

1
F. Hauri

Alla fine si riduce alla fiducia. Ti fidi della reputazione dell'azienda che rilascia il software. Se è open source, viene utilizzato da un numero sufficiente di sviluppatori da sollevare bandiere in caso di problemi. Vi è una certa forza numerica poiché un prodotto di uso comune ha maggiori probabilità di svolgere ricerche approfondite se è affidabile. A meno che tu non sia molto paranoico, in genere guardare ciò che la community ha da dire su un particolare software è la soluzione migliore, ma ci saranno sempre dei bug e ci saranno sempre degli errori.

1
AJ Henderson

Come sottolineato da altri, non esiste un modo garantito per saperlo. Molte volte, devi fidarti dell'integrità e della reputazione del venditore. Seguire pratiche sicure, come l'installazione di software da fonti di cui ti fidi 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ì solo quando il sistema operativo del telefono ti informa che il telefono desidera accedere alle tue informazioni private, alla tua posizione, ecc. Chiediti, perché ha bisogno di tale accesso. Se ritieni che l'accesso richiesto dall'applicazione sia giustificato in base a ciò che ti aspetti che faccia, quindi dire di sì forse OK. D'altra parte, se sembra richiedere l'accesso a informazioni o servizi che sono ben al di fuori di ciò di cui dovrebbe avere bisogno o interesse, allora sii un po 'sospettoso e rispondi attentamente prima di dire semplicemente di sì.

0
Tim X