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?
Respostas:
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.
fonte
paccheck
que faz isso, compara pacotes com diferentes espelhos antes da instalação e avisa sobre quaisquer discrepâncias.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
apt
gerenciador 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.fonte
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.fonte
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
fonte
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, comoCHECKSUMS.MD5
. Isso contém uma lista de somas de verificação dos pacotes.A distribuição tem uma ferramenta oficial chamada
slackpkg
para baixar / instalar pacotes a partir de um espelho. Após atualizar o banco de dados do repositório local comslackpkg update
a 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 gpg
ou simplesmente importá-la do CD de instalação comgpg --import GPG-KEY
Existe outra ferramenta não oficial
slapt-get
para o Slackware. Também suporta verificações de GPG! De maneira semelhante aslackpkg
.fonte
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.
fonte