Como posso confirmar que os binários no meu Ubuntu são do código-fonte de onde deveria ser?

25

Como 99% dos usuários, eu instalei o Ubuntu de binários prontos.

Como posso verificar se esses binários são, na verdade, do código-fonte original do Ubuntu?

Seria bom verificar se o NSA / alguém não colaborou com o Ubuntu nem com o Linode (meu provedor de VPS) para mexer com os binários. Se pudéssemos verificar os binários, também seria improvável que tentassem isso em primeiro lugar, já que seria fácil chamá-los.

    
por mark1111 09.07.2014 / 13:02

6 respostas

36

Você pode fazer o download do código fonte e compilá-lo você mesmo. Mas espere - primeiro você tem que verificar o código fonte, porque se a Canonical colaborou com a NSA, eles provavelmente introduziram algum código em algum lugar para permitir um keylogger ou algo que possa ser ativado remotamente.

Então ...

  1. depois de fazer o download do código fonte,
  2. você precisa verificar todo o código,
  3. e depois compile!

Mas espere - você pode confiar no compilador ?

    
por SPRBRN 09.07.2014 / 13:46
9

Se você não está disposto a aceitar "porque o Ubuntu diz isso", então você não pode.

    
por fkraiem 09.07.2014 / 13:24
5

O Ubuntu oferece meios convenientes para compilar um pacote em sua própria máquina. No entanto, não há como verificar se o executável em um pacote binário que você baixou foi obtido desse código-fonte. O processo de assinatura usado pelo Ubuntu reduz substancialmente o risco de adulteração de terceiros com os pacotes, mas você ainda precisa confiar que nenhum código prejudicial foi adicionado antes da compilação que não seja refletido no código-fonte para download.

A razão é que é tremendamente difícil obter precisamente os mesmos binários que existem nos pacotes compilados, pois eles dependem da versão precisa do compilador, de suas opções e, provavelmente, também existem alguns caminhos ou variáveis ​​de ambiente compilados no pacote. binário. Assim, você não conseguirá obter precisamente o mesmo binário ao compilar a si mesmo, o que "verificará" o binário baixado.

Na verdade, existe uma pequena comunidade de pesquisa em torno desse problema precisamente - como tornar a compilação reproduzível.

Dito isto, uma comparação manual de um binário baixado e um auto-compilado pode detectar código adicionado / modificado, então seria arriscado para alguém oferecer binários e o código-fonte esconder algo nos binários, pois isso pode ser detectado.

Mas também existe o problema de confiar no compilador, como já mencionado ...

    
por DCTLib 09.07.2014 / 15:25
4

É um problema difícil criar exatamente os mesmos binários em duas máquinas diferentes. O projeto TOR faz isso como parte regular de sua construção. Há uma descrição como eles fazem isso. Debian e Fedora parece ter projetos tornando isso possível para esta distribuição, mas eles estão nos estágios iniciais. não parece haver trabalho feito no Ubuntu .

Para reproduzir um pacote binário do Ubuntu, você precisaria reproduzir o ambiente em que ele foi criado o mais próximo possível. Para começar, primeiro você precisa descobrir onde e como esses pacotes foram compilados. Não parece que essa informação seja fácil de encontrar.

    
por Josef 09.07.2014 / 16:29
0

Verificando com o MD5 do Ubuntu. Se o MD5 que você obtém dos seus arquivos for igual ao publicado pelo Ubuntu, então ninguém adulterou os binários entre eles.

    
por YoMismo 10.07.2014 / 16:15
0

Esse é um trabalho Difícil, acho que confiar aqui é melhor do que esse trabalho complicado. Mas a pergunta Você pode confiar?

Como o software de código aberto oferece muitas liberdades para os usuários mudarem no código, você não pode confiar em ninguém.

Vamos criar um cenário para este propósito, eu quero verificar se o meu Ubuntu == source code , wait Por que você não tenta comparar os pacotes com o código fonte?

  1. Construa um pacote binário para o Ubuntu a partir do código-fonte.
  2. comparou o pacote binário auto-criado com o publicado pela distribuição.
  3. Use o apt-get -b source para fazer o download da origem.

Mas, para mim, comparar bem resulta em resultados menores devido a timestamps, ambientes diferentes, mas isso prova que não é do código-fonte!

    
por nux 11.07.2014 / 04:14

Tags