O Fim e a Volta dos Virus de Macros

O fim dos virus de macro é uma das maiores histórias de sucesso no combate às ameaças digitais, ainda que uma das menos contadas. Vamos ver aqui como isso ocorreu, e um breve comentário sobre o que acontece quando não se aprende com a história.

Muitos aqui devem se lembrar dos chamados virus de macro. São virus que, ao invés de serem escritos diretamente em codigo executável, são feitos em linguagem de macro de aplicativos como o Office. Ao abrir um arquivo do Word ou Excel, ou um email do Outlook, a macro é executada e permite que o virus se espalhe sem seguida para os demais arquivos ou enviando novos emails.

De 1995 a 2001 os virus de macro se tornaram o tipo de virus mais comum a infectar os PCs. Mas desde então eles praticamente sumiram e nenhum virus de macro é hoje considerado uma ameaça relevante. Como isso aconteceu? A guerra foi ganha com duas mudanças implementadas no Microsoft Office:

  • Introdução de assinatura digital nas macros, garantindo a origem e a integridade das macros legítimas que podem existir dentro de um arquivo. Mais do que isso, por default o Office só executa macros assinadas digitalmente com um certificado de uma fonte confiável. As demais macros são bloqueadas automaticamente sem perguntar ao usuário.

  • Proteção do Address Book, impedindo que macros possam acessar a lista de endereços cadastrados no Outlook, e também impedindo que se possa enviar emails automaticamente via macro - os dois componentes que eram usados por virus como o Melissa e o ILOVEYOU para se propagar.

Um modelo de confiança baseado em autenticação forte, junto com o bloqueio das funções usadas para propagação dos virus, formaram uma combinação letal que dizimaram os virus de macro. E o melhor é que assinar uma macro não é uma tarefa complexa, e pode ser feita mesmo para macros criadas para uso caseiro. Para mim é um exemplo perfeito de equilíbrio entre segurança e usabilidade.

Me lembrei dessa história acima ao ler a notícia que a Diretoria de Sinais do Ministério da Defesa da França fez um estudo condenando a segurança do OpenOffice. Se você tiver tempo leia o estudo, em especial o capítulo 4 sobre virus de macro - é extremamente cuidadoso e bem feito. Alguns pontos em especial me chamaram a atenção:

  • Ao ver uma macro não-confiável, o OpenOffice pergunta ao usuário se quer executá-la. Meu Deus! Nós sabemos o quão bem isso funcionou contra o Melissa... Se a distância entre um sistema seguro e um infectado depender de um click do usuário, o seu sistema é inseguro.

  • O OpenOffice implementa o conceito de "diretórios seguros", ou seja, confia e abre automaticamente as macros dos documentos que estejam naquelas pastas de arquivos. Usar um atributo do sistema (a pasta onde o arquivo está) ao invés de um atributo do arquivo (a assinatura digital) é enorme passo para trás em relação a segurança. É trivial copiar um arquivo malicioso para uma pasta e torná-lo "seguro", enquanto é praticamente impensável criar uma assinatura digital maliciosa.

  • Algumas macros de sistema são consideradas sempre confiáveis, como o DicOOo e o FontOOo, mesmo sem estarem assinadas! Basta um atacante modificar estas macros - via um email com um phishing por exemplo - e o OpenOffice estará infectado. Este ataque é demonstrado no item 4.3.4 do estudo francês e torna trivialmente possível um novo Melissa ou ILOVEYOU no OfficeOffice.

O que mais me impressionou no entanto não foram estas fragilidades terem sido encontradas no OpenOffice, por mais sérias que elas sejam. Impressionou mesmo foi a reação da equipe do projeto:

"The one real flaw in the programming logic has been fixed," said Louis Suarez-Potts, an OpenOffice.org community manager. "The others are theoretical."

Sim, caro Louis, elas são teóricas até alguém usá-las para te invadir. O mundo open source continua em estado de negação da realidade em relação à segurança.