você está aqui: Home → Colunistas → Cantinho do Shell
Por Rogério Reis
Data de Publicação: 26 de Julho de 2008
Apesar de toda a estrutura existência para evitar vírus na rede, especialmente os appliances e regras nos MTAs, usuário é usuário em qualquer lugar e sempre consegue um jeitinho de se infectar, ultimamente pelos falsos cartões virtuais.
Segue um script que fiz e coloquei no cron para rodar uma vez por dia, ele busca por arquivos com extensões perigosas (.com, .vbs, .scr, .pif) e mais podem ser adicionadas, se ele encontrar algum arquivo deste tipo, ele envia um e-mail reportando quais arquivos estão nesta condicão.
Achei útil escrever este script para o servidor de arquivos, deste modo, se algum usuário se infectar, posso identificar rapidamente quem é o mesmo, verificando o dono do arquivo.
Depende do programa sendEmail, pois alguns servidores de arquivos não possuem acesso a internet para enviar mensagens pelo comando mail. Pode ser encontrado em http://caspian.dotconf.net/menu/Software/SendEmail/
Sei que o código pode ser melhorado, quem quiser sugerir, fique à vontade.
#!/bin/bash
# Anexex - script para monitorar o servidor de arquivos na busca de anexos que podem ser virus
# Autor Rogerio Reis rogerio-reis@bol.com.br
# Data 29/07/05
# Arquivos temporarios
cabecalho="/tmp/anexex-cab.txt"
relat="/tmp/relat-anexex.txt"
comp="/tmp/anexex.txt"
relatcab="/tmp/relatcab.txt"
# Cria arquivos de tempo de execucao
> $cabecalho
> $relat
> $relatcab
# Data
hoje=`date`
# Atualiza a base de arquivos
#updatedb
#Cabecalho do relatorio
echo "Relatorio Anexex ---- Verifica possiveis virus na rede" >> $cabecalho
echo "Data: $hoje" >> $cabecalho
echo "" >> $cabecalho
echo "" >> $cabecalho
# E-mail para reportar os fatos
email=email@dominio.com.br
servidor=10.0.0.1 #ip do servidor de e-mails
qtdpif=`locate *.pif > /tmp/qtdpif && cat /tmp/qtdpif | wc -l`
if [ 0 -ne $qtdpif ]
then
echo "Encontrado arquivo com extensao .pif" >> $relat
echo "Quantidade encontrada: $qtdpif" >> $relat
cat /tmp/qtdpif >> $relat
echo "" >> $relat
fi
qtdvbs=`locate *.vbs > /tmp/qtdvbs && cat /tmp/qtdvbs | wc -l`
if [ 0 -ne $qtdvbs ]
then
echo "Encontrado arquivo com extensao .vbs" >> $relat
echo "Quantidade encontrada: $qtdvbs" >> $relat
cat /tmp/qtdvbs >> $relat
echo "" >> $relat
fi
qtdcom=`locate *.com > /tmp/qtdcom && cat /tmp/qtdcom | wc -l`
if [ 0 -ne $qtdcom ]
then
echo "Encontrado arquivo com extensao .com" >> $relat
echo "Quantidade encontrada: $qtdcom" >> $relat
cat /tmp/qtdcom >> $relat
echo "" >> $relat
fi
qtdscr=`locate *.scr > /tmp/qtdscr && cat /tmp/qtdscr | wc -l`
if [ 0 -ne $qtdscr ]
then
echo "Encontrado arquivo com extensao .scr" >> $relat
echo "Quantidade encontrada: $qtdscr" >> $relat
cat /tmp/qtdscr >> $relat
echo "" >> $relat
fi
if diff $comp $relat
then
exit 0
else
# Envia e-mail reportando
cat $cabecalho $relat > $relatcab
cat $relatcab | /usr/local/sendEmail-v1.42/sendEmail -f anexex@dominio.com.br -t $email -s $servidor -u "Anexo Executavel"
# Atualiza arquivo de comparacao
cp -f $relat $comp
fi