Quais repositórios de pacotes da distribuição Linux são seguros e quais não são?

14

A maioria das distros que conheço possui algum tipo de funcionalidade de repositório onde novos pacotes podem ser baixados após a instalação. Quais distribuições fazem isso de maneira segura e quais não fazem isso de maneira segura.

Estou pensando especialmente em vetores de ataque, como man-in-middle, e problemas como violação de segurança, tanto no meta servidor do repositório quanto no espelho do arquivo do repositório.

Ouvi dizer que o Slackware e o Arch linux são muito vulneráveis ​​porque não possuem assinatura de pacote. Isso é verdade? Existem outras grandes distribuições linux vulneráveis ​​a ataques simples do tipo man-in-middle?

grm
fonte
se o site da distribuição é de texto não criptografado http ou ftp e a distribuição é obtida como uma iso dessa conexão e essa conexão básica é MITM 'do que o valor de qualquer pacote' post-mortem 'assinado nos pacotes de atualização?
N611x007

Respostas:

7

Esta não é uma resposta direta à sua pergunta, mas há várias coisas que você pode fazer para atenuar esse risco. O mais simples é verificar os pacotes baixados contra as somas de verificação de um espelho diferente do que você baixou.

Quando o meu gerenciador de pacotes ( poldek) baixa um pacote, eu o configuro para manter uma cópia das rpm baixadas em uma pasta de cache. Ele verifica automaticamente a soma de verificação do download no repositório de pacotes e avisa / interrompe uma incompatibilidade, mas se você estava preocupado com o ataque do intermediário ao repositório de distribuição, seria fácil escrever um script secundário que navegasse pelo todos os seus pacotes baixados e verifique-os nas somas de verificação que você baixa de um espelho diferente. Você pode até executar sua primeira instalação como uma execução a seco, para que os pacotes sejam baixados, mas não instalados, execute o script de verificação e faça a instalação real.

Isso não impede que um pacote comprometido entre no repositório da distribuição, mas a maioria tem outras maneiras de atenuar isso, e mesmo pacotes assinados não garantem que isso nunca foi um problema. O que ele faz é reprimir o vetor alvo de ataque do homem do meio. Ao usar uma fonte separada e fazer o download em um canal separado, você reduz a facilidade com que um pacote comprometido pode ser descartado em uma linha derivada.

Caleb
fonte
1
Existe um pacote para o Arch chamado paccheckque faz isso, compara pacotes com diferentes espelhos antes da instalação e avisa sobre quaisquer discrepâncias.
Wolf
As listas de espelhos provavelmente são públicas; portanto, um invasor não pode teoricamente traçar para o MITM todas elas por padrão? Se um invasor segmenta especificamente seu servidor, isso não parece ainda mais provável? No entanto, isso provavelmente é mais do que o que a maioria do Linux faz.
N611x007
10

Os pacotes Debian têm soma de verificação e as somas de verificação são assinadas por uma chave no chaveiro Debian. O aptgerenciador de pacotes garante que o pacote baixado tenha a soma de verificação correta e que o arquivo de soma de verificação tenha sido assinado corretamente.

jmtd
fonte
5

Pacotes do Fedora são assinados e soma de verificação. Mesmo repositórios de terceiros, como o rpmfusion, assinam seus pacotes.

Yum (o gerenciador de pacotes) requer um sinalizador especial ( --nogpgcheck) para instalar pacotes que não foram assinados.

kanak
fonte
e assim faz pacotes águas abaixo, ou seja, Red Hat e CentOS
fpmurphy
3

Todos os pacotes do Arch Linux usam uma soma md5 ou sha1 para verificar se todos os bits estão no lugar. Cabe ao mantenedor do pacote escolher o algoritmo de hash. Pacotes instalados do AUR (geralmente apenas um pequeno arquivo de texto PKGBUILD) devem ser verificados pelo installee antes de serem instalados. Os repositórios que contêm os pacotes binários oficiais são supervisionados por usuários confiáveis ​​(TUs).

Atualização : o Arch introduziu a assinatura de pacotes com o pacman 4

Alexander
fonte
2
Tudo verdade, mas os pacotes não são assinados e, portanto, permanecem vulneráveis ​​a ataques de comprometimento e espelhamento, por mais remota que seja a possibilidade. Tem sido um recurso solicitado há muito tempo e o principal motivo pelo qual parei de má vontade usando o Arch. Dito isto, há uma discussão em andamento nos fóruns e wiki do Arch and Pacman - é um problema difícil de resolver. Além dessa questão, Arch é uma distribuição fantástica.
Eli Heady
@ Eli: Eu não estou debatendo a verdade disso - eu não tenho idéia do estado das coisas - mas não seria um mercado extremamente baixo para atacar. Concedido, Arch é uma distribuição bastante popular, mas todos esses tipos de travessuras geralmente não se baseiam em poder ganhar dinheiro?
boehj
1
Claro, afinal, esse é o motivo pelo qual a base de usuários do Windows é mais direcionada do que a do Linux, certo? O problema é que o que se aplica ao agregado geralmente não se aplica exatamente ao indivíduo. O que quero dizer é que o modelo de ameaças de todos é diferente - se você tem motivos para temer ser escolhido para um ataque, deve tomar as medidas necessárias para diminuir o risco. A falta de assinatura de pacotes apresenta vetores de ataque que não são tão difíceis de explorar. Se você tem bits valiosos para proteger, esse problema deve ser levado em consideração na sua estratégia de mitigação de ameaças.
Eli Heady
Você pode instalar o Arch a partir de um CD / DVD e, em seguida, apenas verifique se as somas md5 / sha1 dos pacotes binários correspondem às somas de vários espelhos antes da instalação, semelhante ao que Caleb sugeriu. Nunca há 100% de segurança em nenhum caso, mesmo que eu veja o ponto da assinatura do pacote e deseje que Arch o tenha.
Alexander
Então, como é possível obter a soma de verificação de maneira mais segura que o http ou ftp em texto não criptografado? a verificação de assinaturas deve estar implementada de que maneira isso acontece exatamente no arco?
N611x007
1

Quem disse que o Slackware não tem assinatura de pacote?

Pacotes do Slackware são assinados com uma chave pública do Slackware. Portanto, todo pacote tem sua assinatura com extensão .asc. Não apenas os pacotes, mas outros arquivos também são assinados, como CHECKSUMS.MD5. Isso contém uma lista de somas de verificação dos pacotes.

A distribuição tem uma ferramenta oficial chamada slackpkgpara baixar / instalar pacotes a partir de um espelho. Após atualizar o banco de dados do repositório local com slackpkg updatea ferramenta, verifica a validade da assinatura do novo arquivo MD5 e do log de alterações, etc ...

Após o download de um pacote (mas antes da instalação), a assinatura e o MD5 do pacote são verificados.

Pode-se obter a chave pública com slackpkg update gpgou simplesmente importá-la do CD de instalação comgpg --import GPG-KEY

Existe outra ferramenta não oficial slapt-getpara o Slackware. Também suporta verificações de GPG! De maneira semelhante a slackpkg.

preguiçoso
fonte
-2

OpenBSD de longe. Todo o projeto é dedicado à segurança, a equipe até colocou um patch de mais de 5.000 linhas no apache original, porque eles não acharam que fosse seguro o suficiente para ser usado. Isso é via pkg_add, mas nunca tive problemas com isso.

baweaver
fonte
4
Você não está respondendo à pergunta: trata-se especificamente de verificar assinaturas de pacotes baixados (e portas, no caso de * BSD).
Gilles 'SO- stop be evil'
1
Eu concordo com @Gilles; O OpenBSD é um ótimo sistema operacional, mas o @grm perguntou sobre a segurança da distribuição de pacotes do Linux.
#Studyttps