As listas de repositórios são seguras? Existe uma versão HTTPS?

24

As atualizações do repositório são seguras?

Como um urso de pouco cérebro do lado do desenvolvedor, não consigo entender por que a lista de repositórios é http://security.ubuntu.come os outros httpsites (a descoberto) listados na /etc/apt/sources.list. Sem uma correspondência de cadeia de certificados, isso aparece como "peça uma lista de pacotes para atualizar a qualquer respondedor" em vez de "pergunte ao site ubuntu.com ..."

Qualquer rede pode optar por falsificar os sites de atualização, e essa é uma prática comum fornecer uma cópia em cache e verificada localmente?

Charles Merriam
fonte

Respostas:

30

Em resumo, sim, eles são seguros, devido à criptografia de chave pública usada para assinar os arquivos.

Todos os arquivos baixados pelo APT possuem uma assinatura que permite que o arquivo baixado seja verificado nas chaves públicas armazenadas no seu computador como sendo assinadas pelo Ubuntu e somente pelo Ubuntu. Isso verifica se o arquivo que você recebeu foi autorizado pelo Ubuntu em algum momento e não foi modificado ou violado desde então.

Uma explicação técnica de como isso funciona está disponível no Ubuntu (e no Debian que usa o mesmo sistema).

Devido ao uso de HTTP em vez de HTTPS, sim, os bisbilhoteiros podem ver quais arquivos você está baixando, mas a privacidade provavelmente não é sua preocupação neste caso. Uma tentativa man-in-the-middle de modificar os pacotes para injetar código nocivo ainda falharia, porque isso quebraria o mecanismo de assinatura.

Um possível problema nesse mecanismo de assinatura é que ele não garante que você esteja obtendo a versão mais atualizada do pacote (de fato, às vezes, os espelhos demoram a atualizar). Para ajudar a atenuar esse problema, o arquivo de versão assinado inclui uma data "Válido até", após a qual todos os arquivos que ele referencia devem ser considerados obsoletos. Seria plausível que um técnico intermediário substituísse um arquivo morto por uma versão anterior não modificada do arquivo dentro desta data Válida até e faça com que o seu APT acredite que não há atualizações. Mas eles não podem fazer modificações arbitrárias nos pacotes nem voltar no tempo após um certo ponto.

Os mecanismos de assinatura fornecem segurança muito melhor que o HTTPS nesse tipo de ambiente distribuído, onde os arquivos são espelhados em muitos servidores não controlados pelo Ubuntu. Em essência, você só precisa confiar no Ubuntu, não no espelho, então você precisa provar que os arquivos originalmente vieram do Ubuntu e não foram modificados desde então - não há necessidade de verificar a identidade do espelho.

Observe que quando você adiciona um repositório não oficial à sua lista de fontes, como um PPA, receberá arquivos que não são assinados pelo Ubuntu. O APT deve avisá-lo sobre isso, porque eles não foram assinados por um certificado correspondente a nenhuma das chaves públicas instaladas no seu computador, conforme autorizado pelo Ubuntu.

thomasrutter
fonte
1
Ótimo! Portanto, a versão curta é "a camada de transporte não é segura, mas cada pacote é assinado. Não há garantia de entrega da lista segura de atualizações e correções disponíveis para problemas de segurança existentes".
Charles Merriam
2
Não sei o que você quer dizer com "Não há lista segura de atualizações disponíveis", mas as listas de arquivos e pacotes são assinadas. Só que não verifica se o seu espelho está atualizado.
thomasrutter
3
Se não houver como verificar se um espelho ou o site principal está atualizado, não há como saber se há atualizações disponíveis, atualizações de segurança ou outras. Ou seja, não existe uma lista segura de atualizações disponíveis.
Charles Merriam
4
Alice executa o Ubuntu. Bob controla a conexão com a Internet de Alice. Bob não pode colocar um pacote inválido na instalação de Alice porque cada pacote está assinado. Há uma enorme falha de segurança encontrada no Ubuntu. Alice tenta encontrar o pacote atualizado, mas Bob remove todas as menções ao pacote da verificação de atualização de Alice. Alice acerta um administrador de sistema e, em seguida, realiza a verificação de atualização via HTTPS no ubuntu.com, verificando se está conectado ao site real por meio de um link seguro. Agora Alice vê a atualização de segurança e Bob não pode ocultá-la.
Charles Merriam
3
Esta é obviamente a resposta correta. Mas o que eu acho estranho é que ninguém parece estar preocupado com um interceptador compilando uma lista de todos os pacotes que você instalou em ordem, incluindo quais você atualizou e quais não, para direcionar seu ataque a ataques conhecidos. vulnerabilidades de segurança nesses pacotes.
Teekin
8

A resposta mais bem avaliada aqui está claramente desatualizada. Desde então, houve 2 explorações sérias de execução remota de código encontradas no apt por causa da verificação de pacotes com erros. Boletins de segurança aqui e aqui .

Isso é muito pior do que as preocupações sobre privacidade / vazamento de informações e versão antiga do pacote; isso permite a execução arbitrária de código como raiz, falha de segurança completa. E a questão é: esses ataques teriam sido evitados se o https fosse usado em vez do http.

Isso prova que o princípio da defesa em profundidade se aplica aqui e em qualquer outro lugar. As muitas reivindicações que flutuam em torno desse https não fornecem benefícios mínimos ou mínimos de segurança no contexto do apt são simplesmente incorretas, como foi demonstrado por essas explorações.

A pergunta então é se o benefício de segurança do https vale o custo em termos de cache, aumento de sobrecarga etc. Não posso responder a isso, mas pelo menos acho que o Ubuntu / Canonical / Launchpad deve fornecer pontos de extremidade https opcionais para seus repositórios .

Niklas Holm
fonte
1
A segurança também tem a ver com privacidade, e os meios HTTPS terão, no mínimo, mais dificuldade para descobrir quais pacotes e versões você está executando.
l0b0
Eu direi que, desde que o apt em si não esteja tendo problemas com isso, o http está bem. No entanto, o https fornece um backup caso a segurança do gpg (ou como ele o use com mais precisão) seja prejudicada.
RoundDuckMan
2

Suplemento importante: de fato, como o upgrade e a instalação inicial são baixados on-line, é preciso muito tráfego e a origem desse tráfego, ou seja, fluxos de código binário e de texto, é reproduzível. Portanto, há um grande número de gateways e dispositivos de cache na Internet. Um número considerável de ISPs configurou o cache com base no protocolo http para salvar a largura de banda de exportação, e o protocolo https não pode existir como um cache transparente.

Outro motivo é que o programa de espelhamento baseado em http é muito mais simples, não há necessidade de verificar o certificado tls-ssl e também não precisa se preocupar com a invalidação de certificado ou com os problemas de configuração do servidor da web.

Não faz muito tempo, cerca de 20 anos, no início da Internet, https e tráfego na Internet ainda eram jogos muito caros. Portanto, o http também incluiu o protocolo ftp, que está quase obsoleto, como a principal maneira de fornecer instalação e atualização para distribuição online de pacotes de software.

Da mesma forma, o Microsoft Windows e o Office também são atualizados usando http. Você pode observar que geralmente não é o pacote de instalação baixado do servidor da Microsoft, mas o servidor de cache auto-criado do seu ISP.

JZ
fonte