[SECURITY-L] Existem codigos maliciosos beneficos?

Security Team - UNICAMP security em unicamp.br
Qua Ago 27 10:46:33 -03 2003


----- Forwarded message from Caio Souza Mendes <caio_sm em yahoo.com.br> -----

From: Caio Souza Mendes <caio_sm em yahoo.com.br>
Subject: Existem cXdigos maliciosos benXficos?
To: security em unicamp.br
Date: Tue, 26 Aug 2003 18:46:32 -0300 (ART)

Existem códigos maliciosos benéficos?

26/8/2003 - 16:06 Divulgação 

www.infoguerra.com.br

Na semana passada, surgiu um worm, batizado de
MSBlast.D pela Trend Micro, e de Welchia ou Nachi por
outras empresas antivírus. A característica que mais
chamava a atenção para o worm era sua capacidade de
explorar a mesma vulnerabilidade do Windows que
possibilitou, poucos dias antes, a rápida disseminação
do Blaster, porém com um detalhe: o MSBlast.D não só
eliminava o Blaster de sistemas contaminados, como
aplicava as correções de segurança disponibilizadas
pela Microsoft no mês passado, de modo a evitar novas
reinfecções do sistema. Por isso, ele foi chamado de
"vírus do bem" por alguns sites. Mas seus efeitos
colaterais não tardaram a aparecer, entre eles a
enorme quantidade de tráfego gerado pela praga com o
objetivo de baixar as correções necessárias, o que fez
com que algumas redes se tornassem extremamente
lentas. A cura parecia ser pior do que a doença e o
surgimento do MSBlast.D reacendeu uma velha discussão
entre a comunidade de segurança: o uso de vírus para
automatizar a execução de tarefas benéficas. Houve
quem defendesse essa prática, mas muitos se mostraram
radicalmente contra. Para esclarecer esta questão, o
diretor da Trend Micro do Brasil, Miguel Macedo,
enviou, hoje, o artigo abaixo:


O conceito de um código malicioso "benéfico" tem sido
discutido há anos na comunidade de segurança. Alguns
de seus partidários defendem isto como uma forma de
empurrar aplicativos remediadores para usuários que
demoram a reagir ou para conquistar uma posição
dominante na luta contra códigos maliciosos. Antes do
recente ataque do vírus MS_Blast.D, surgiram vários
candidatos ao posto de primeiro "código malicioso
benéfico". Vejamos alguns exemplos:

Durante o surto do Code Red em 2001, um worm chamado
Code Green procurou defender os servidores da Web
contra a infecção. Ainda antes, em 2001, o worm
conhecido como Cheese procurou reparar os sistemas
Linux infectados pelo vírus Li0n. Entretanto, a maior
parte da comunidade de tecnologia de informação (TI)
continua a apoiar a idéia de que um código malicioso
"benéfico" constitui uma contradição e que não há
nenhuma tarefa legítima que exija um código malicioso.

Se você fosse um administrador de TI, lutando para
instalar o patch mais recente da Microsoft, sem dúvida
um código malicioso para sua instalação lhe pareceria
ser uma idéia tentadora. Não seria necessário educar,
incentivar ou convencer os usuários da necessidade de
instalar o patch mais recente ou uma versão aprimorada
do sistema. Se os usuários mais teimosos ou inaptos
não quisessem participar do programa e seguir as suas
sugestões, não haveria problema. Seria questão de só
soltar o worm instalador do patch para resolver a
questão e os sistemas destes usuários rapidamente
entrariam em linha, querendo ou não.
Embora esta seja uma agradável fantasia, perceba que
ela não é muito compatível com os mais altos ideais de
bom desenvolvimento e distribuição de software. Quais
são algumas das virtudes da boa distribuição de
software? Muitos listariam o seguinte:

- Permitir que os usuários escolham entre diferentes
alternativas.

- Adaptação da instalação ao host.

- Possibilidade de se abortar a instalação,
desinstalar o programa ou reverter a instalação com
facilidade.

- Revelar claramente o que foi instalado e onde.

Seriam também estas as qualidades de um código
malicioso bem-sucedido? Não, elas passam longe. Na
realidade, constituem o seu oposto. Um código
malicioso típico se instala sem o conhecimento ou
consentimento do usuário, portanto, escolhas e
alternativas não vêm ao caso. É um programa
inflexível, que se reproduz continuamente em uma
autopropagação cega, escapando de ambientes confinados
até que finalmente se consiga detê-lo.

Poderíamos argumentar que um código malicioso é capaz
de instalar um patch ou eliminar um outro código
malicioso discretamente, sem incomodar o usuário.
Entretanto, há uma diferença entre não incomodá-lo e
não informá-lo. Mesmo quando os códigos maliciosos se
fazem sentir, ainda assim não solicitam o
consentimento do usuário. Pergunte às pessoas cujo
equipamento foi reinicializado de repente, sem
advertência, pelo worm Blaster. Se você comparar o
comportamento dos códigos maliciosos, sejam eles
benéficos ou maléficos, com as melhores práticas
habituais de desenvolvimento e distribuição de
software, torna-se cada vez mais evidente que há
contradições fundamentais entre os dois.

Os problemas surgem da própria natureza da propagação
virótica. Independentemente dos argumentos
desenvolvidos a favor do mais recente código malicioso
"benéfico", muitos especialistas em segurança
continuarão a insistir que os códigos maliciosos não
constituem uma ferramenta de TI apropriada. Abaixo,
discutimos apenas uma parcela das questões levantadas.

Um dos problemas mais elementares de todos os códigos
maliciosos é que eles funcionam nos computadores das
pessoas sem sua permissão. Um código malicioso
supostamente benéfico também se propaga e se
auto-executa sem permissão, além de consumir largura
de banda de rede, ciclos de processador, memória e
espaço em disco. Ele impede que o proprietário do
sistema possa fazer uso desses recursos, exatamente da
mesma forma que um ataque DDoS (Distributed Denial Of
Service) faz. A maioria dos usuários acredita ter o
direito de controlar totalmente tudo que se passa em
seu equipamento.

Um outro problema é o controle de qualidade -­-
basicamente, este não existiria. Como ninguém se
responsabiliza por um código malicioso, não se pode
imputar responsabilidade a ninguém quando o código não
se desempenha da forma planejada ou apresenta efeitos
colaterais inesperados e nocivos. Ainda que o
desenvolvedor do código se responsabilize por ele, tão
logo um programa começa a propagar-se de forma
virótica, torna-se impossível manter controle de sua
área de propagação, daquilo que ele faz, ou do que
acontece com o código. Um código malicioso que se
propague livremente encontrará muitos sistemas e
configurações diferentes. O volume destas será grande
demais para que se possam fazer previsões ou testes
antecipadamente. Os efeitos da interação do código
malicioso com vários sistemas são desconhecidos,
portanto um desenvolvedor de código malicioso não pode
argumentar que o código não causará danos.

Para que um código malicioso se mantivesse "benéfico",
teria que operar de forma quase perfeita ao longo do
seu ciclo de vida. Um código malicioso desenvolvido
para deletar outros códigos maliciosos, por exemplo,
não poderia se equivocar, confundindo aplicativos
legítimos com seus objetivos. E se ele excluísse novos
softwares de jogos, ou o Word da Microsoft? Um código
malicioso pode ser facilmente seqüestrado ou mal
utilizado. Um atacante, por exemplo, poderia empregar
um deles para obter acesso a algum sistema, ou como
veículo de propagação de algum outro código malicioso,
etc.

Mutações podem ocorrer como resultado de corrupção ou
de modificações deliberadas voltadas à produção de
variantes. Um desenvolvedor amador de códigos
maliciosos ou um script kid poderiam copiar um código
malicioso "benéfico" competentemente desenvolvido e
utilizá-lo para fins criminosos.

O reconhecimento é difícil. Como um usuário consegue
distinguir um código malicioso "benéfico" de um
"maléfico"? Como os aplicativos antivírus e outros
aplicativos de segurança farão esta diferenciação?
Defesas genéricas antivírus registrarão alarmes
falso-positivos ao detectar tais códigos maliciosos.

Finalmente, algumas pessoas argumentam que alguns
códigos maliciosos "benéficos" geram uma desculpa para
comportamentos irresponsáveis. Os desenvolvedores de
códigos maléficos podem tentar justificar suas
atividades argumentando que estão realizando algum
tipo de "pesquisa".

Ao final das contas, seria suficiente que os códigos
maliciosos simplesmente realizassem algo de benéfico?
Não resta dúvidas de que alguns deles atendem a este
critério. Mas serão eles a melhor ferramenta para o
problema? Se uma tarefa pode ser realizada com o mesmo
padrão de qualidade ou ainda melhor, de outra forma,
com menor risco de efeitos negativos, então os códigos
maliciosos realmente ainda não foram legitimados.

No caso da instalação de patches, há uma variedade de
soluções profissionais no mercado, conhecidas pela sua
facilidade de utilização, flexibilidade e automação,
que permitem aos administradores criarem pacotes de
instalação com facilidade. Uma rápida busca na
Internet apresentará alguns destes. E a Microsoft com
certeza vai se esforçar para tornar o processo de
instalação de patches cada vez mais fácil e simples. É
difícil acreditarmos que um código malicioso
imprevisível possa oferecer uma alternativa
responsável ou constituir uma parte indispensável do
processo.

No dia em que um desenvolvedor de códigos maliciosos
conseguir identificar uma tarefa legítima que só possa
ser realizada por meio de um código malicioso, a
comunidade de segurança talvez venha a reconsiderar
sua opinião sobre os códigos maliciosos "benéficos".
Mas, ao observar o impacto do MSBlast.D, é melhor
esperar sentado.

Por Miguel Macedo, diretor da Trend Micro do Brasil


----- End forwarded message -----



Mais detalhes sobre a lista de discussão SECURITY-L