SO Open Source: il codice che vedi e il codice che ottieni

1

In questa domanda userò l'esempio di Linux OS, ma sono anche interessato alla situazione generale.

Le distribuzioni di SO Linux sono famose per essere open source e quindi piuttosto sicure. Ma come puoi essere sicuro che il Linux che hai impostato sul tuo PC, con l'installer che hai scaricato, sia codificato esattamente con lo stesso codice disponibile nella sorgente per essere letto da tutti? E lo stesso vale per altri progetti OS?

    
posta James C 05.05.2014 - 00:03
fonte

2 risposte

4

Quando scarichi solo il binario, allora non puoi. Devi fidarti del distributore del file binario che è stato effettivamente compilato dal codice sorgente pubblicato.

Se consideri lo sviluppatore affidabile, ma non sei sicuro di poterti fidare di un mirror del download, nota che molti sviluppatori pubblicano hashsum dei loro binari, quindi quando scarichi il file binario da un mirror non attendibile, puoi convalidarlo controllando l'hash. Questo, tuttavia, presuppone 1. che il binario sia quello compilato dallo sviluppatore e non una build indipendente dal distributore, e 2. che lo sviluppatore non sia colui che vuole avvitare qualcuno rilasciando un binario compilato da un altro codice sorgente rispetto a quello che sta pubblicando.

Quando vuoi assicurarti che il file binario che ottieni sia realmente compilato dalla fonte, devi ottenere il codice sorgente e compilarlo da solo. Questo potrebbe richiedere parecchio tempo con progetti più complessi.

Ma è discutibile se ne valga davvero la pena dal punto di vista della sicurezza, perché solo perché il codice sorgente è pubblico non significa che sia privo di backdoor. C'è il sottotitolo C del codice con molti esempi creativi di come nascondere codice sorgente dannoso in bella vista. Quando vuoi un esempio più realistico: il bug heartbleed era una vulnerabilità che esisteva da anni in un pezzo molto usato di software open source e nessuno ha notato. Non c'è motivo di credere che si trattasse di una backdoor intenzionale, ma quando sarebbe stato intenzionale, il fatto che fosse in codice pubblico e non inserito di contrabbando in un file binario avrebbe dato a colui che l'aveva piantato una plausibile negabilità.

    
risposta data 05.05.2014 - 00:22
fonte
1

Esiste un concetto di build deterministiche in cui più parti possono compilare i binari identici byte-per-byte esatti. Uno strumento di cui sono a conoscenza è Gitian . Gitian consente a più parti di compilare lo stesso identico binario e firmarlo . Questo ti dà più fiducia che il file binario che stai scaricando è legittimo poiché non c'è più un singolo punto di errore.

Bitcoin e Tor sono due progetti notevoli che utilizzano un processo di generazione deterministico.

    
risposta data 05.05.2014 - 04:53
fonte

Leggi altre domande sui tag