Foi detectada uma vulnerabilidade no APT que permite a você substituir um pacote para download

vulnerabilidade apt

Foi identificado uma vulnerabilidade no gerenciador de pacotes APT (CVE-2019-3462), do que permite que um invasor inicie uma falsificação do pacote instalado se o invasor tem controle do espelho do repositório ou pode interromper o tráfego de trânsito entre o usuário e o repositório (ataque MITM).

O problema foi identificado pelo pesquisador de segurança Max Justicz, conhecido por detectar vulnerabilidades no gerenciador de pacotes APK (Alpine) e nos repositórios Packagist, NPM e RubyGems.

O problema É devido à verificação incorreta dos campos no código de processamento de redirecionamento HTTP.

Qual é o problema?

Esta vulnerabilidade permite que um invasor substitua seu próprio conteúdo nos dados transmitidos na sessão HTTP (Debian e Ubuntu usam HTTP e não HTTPS para acessar o repositório, assumindo que a assinatura digital é suficiente com metadados e tamanho de pacote correspondentes).

A vulnerabilidade identificada permite ao atacante poder substitua o pacote transmitido, após o que o APT o perceberá como recebido do espelho oficial e iniciará o processo de instalação.

Por meio da inclusão no pacote malicioso de scripts lançados durante a instalação, um invasor pode realizar a execução de seu código em um sistema com privilégios de root.

Para baixar os dados do repositório, o APT inicia um processo filho com a implementação de um transporte específico e organiza a interação com este processo usando um protocolo de texto simples com a divisão dos comandos por uma linha em branco.

Como posso detectar o problema?

A essência do problema é que o manipulador de transporte HTTPAo receber uma resposta do servidor HTTP com o cabeçalho "Location:", solicita a confirmação do redirecionamento do processo principal.

Transferindo completamente o conteúdo deste cabeçalho. Devido à falta de limpeza dos caracteres especiais transmitidos, um invasor pode especificar uma quebra de linha no campo "Local:"

Como esse valor será decodificado e transmitido pelo canal de comunicação com o processo principal, o invasor pode simular uma resposta diferente do manipulador de transporte HTTP e substituir o bloco 201 URI fictício.

Por exemplo, se, ao solicitar um pacote, o atacante substituir a resposta, essa substituição resultará na transferência do próximo bloco de dados para o processo principal.

O cálculo de hashes para os arquivos baixados é feito e o processo principal simplesmente verifica esses dados com hashes do banco de dados de pacotes assinados.

Entre os metadados, um invasor pode especificar qualquer valor de hashes de teste vinculados no banco de dados a pacotes assinados reais, mas na verdade não corresponde aos hashes do arquivo transferido.

O processo principal irá aceitar o código de resposta substituído pelo ataque, procurar o hash na base de dados e considerar que o pacote para o qual existe a assinatura digital correta está carregado, embora na realidade o valor do campo com o hash seja substituído em o canal de comunicação com o processo principal usando o ataque e o arquivo especificado nos metadados substituídos.

O download de um pacote malicioso é feito anexando o pacote ao arquivo Release.gpg, durante a transferência.

Esse arquivo tem uma localização previsível no sistema de arquivos e anexar um pacote à sua inicialização não afeta a extração da assinatura digital do repositório.

Ao obter dados, o apt desabilita os processos de trabalho que se especializam nos vários protocolos que serão usados ​​para a transferência de dados.

O processo principal então se comunica com esses trabalhadores via stdin / stdout para dizer a eles o que baixar e onde colocá-lo no sistema de arquivos usando um protocolo que se parece um pouco com HTTP.

O processo principal enviará sua configuração e solicitará um recurso e o processo de trabalho responderá.

Quando o servidor HTTP responde com um redirecionamento, o processo de trabalho retorna um Redirecionamento 103 em vez de um URI 201 Concluído, e o processo principal usa essa resposta para descobrir qual recurso solicitar em seguida.


Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: Miguel Ángel Gatón
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.