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 delas. 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 poderia copiar um código malicioso”benéfico competentemente desenvolvido e utilizá-lo para fins criminais.
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.
A Trend Micro, Inc. é líder em produtos e serviços de antivírus e filtros de conteúdo para redes corporativas. Com sede em Tóquio – Japão, a empresa possui unidades de negócios em 23 países, totalizando mais de 1800 funcionários, com uma grande equipe técnica trabalhando em pesquisa e desenvolvimento de suas soluções de segurança. O laboratório central de vírus da Trend Micro, localizado em Manila – Filipinas, é o único com certificação ISO 9002.