Publicado Revista Wired 30 Maio 2012
Kim Zetter – Wired
Um enorme e altamente sofisticado malware foi recentemente encontrado infectando sistemas no Irã e alguns outros lugares. Acredita-se que seja parte de uma operação de cyber espionagem em curso, bem coordenada e estatal.
O malware, descoberto pela empresa de anti-vírus com sede na Rússia, Kaspersky Lab, é uma ferramenta de espionagem que tem infectado sistemas no Irã, Libano, Síria, Súdão, os Territórios Ocupados por Israel e outros países no Oriente médio e Norte da África por pelo menos dois anos.
Chamado de “Flame” pela Kaspersky, o código malicioso é bem maior que o Stuxnet – o malware inovador de sabotagem de infraestrutura que acredita-se que tenha feito um estrago no programa nuclear do Irã em 2009 e 2010. Apesar do Flame ter um propósito e uma composição diferente do Stuxnet, e parecer ter sido escrito por um programador diferente, sua complexidade, o alcance geográfico de suas infecções e seu comportamento são fortes indícios de que um Estado-nação esteja por trás dele, ao invés de cyber criminosos comuns – marcando-o como outra ferramenta no crescente arsenal de cyber armamentos.
Os pesquisadores dizem que Flame pode ser parte de um projeto paralelo criado por empreiteiras que foram contratadas pela mesma equipe do Estado-nação que estava por trás do Stuxnet e seu malware irmão, DuQu.
“Stuxnet e DuQu pertenciam a um único ataque em cadeira, que levantou preocupações em relação à uma cyberguerra no mundo inteiro,” disse Eugene Kaspersky, CEO e co-fundador do Kaspersky Lab, em uma declaração. “O malware Flame parece ser outra fase nesta guerra e é importante entender que tais cyber armas podem ser facilmente usadas contra qualquer país.”
Uma análise inicial do Flame pelo Kaspersky Lab indica que ele foi projetado principalmente para espionar os usuários dos computadores infectados e roubar dados deles, incluindo documentos, conversações gravadas e teclas pressionadas. Ele também deixa uma porta aberta nos sistemas infectados que permite modificar o toolkit e adicionar novas funcionalidades.
O malware, que tem 20 megabytes quando todos os seus módulos são instalados, contém várias bibliotecas, bases de dados SQLite3, vários níveis de criptografia – alguns fortes, outros fracos – e 20 plug-ins que podem ser trocados para fornecer várias funcionalidades a quem está atacando. Ele até mesmo contém alguns códigos escritos em LUA – uma escolha incomum para um malware.
O Kaspersky Lab está dizendo que ele é “uma das ameaças mais complexas já descobertas.”
“Ele é fantástico e tem uma complexidade incrível”, disse Alexander Gostev, chefe dos especialistas de segurança no Kaspersky Lab.
O Flame aparentemente tem agido pelo menos desde Março de 2010, apesar de ter passado despercebido pelas empresas de antivírus.
“É um pedaço de código bem grande. E por isso é bem interessante que ele tenha passado despercebido por pelo menos dois anos”, Gostev disse. Ele ressaltou que algumas pistas no malware que podem na verdade datar de 2007, mais ou menos no mesmo período que o Stuxnet e o DuQu supostamente foram criados.
Gostev disse que devido ao seu tamanho e complexidade, uma análise completa do código pode levar anos.
“Nos tomou metade de um ano para analisar o Stuxnet”, ele disse. “este é 20 vezes mais complicado, vai levar uns 10 anos para compreendê-lo por completo.”
Kaspersky descobriu o malware cerca de duas semanas atrás depois que a União Internacional de Telecomunicações das Nações Unidas pediu ao Kaspersky Lab para observar relatos de abril de que os computadores pertencentes ao Ministério do Petróleo do Irã e a Companhia Nacional de Petróleo iraniano foram afetadas por malware que estava roubando e apagando informações dos sistemas. O malware foi chamado nos notíciarios de “Wiper” e também de “Viper”, uma discrepância que pode se atribuir a uma confusão na tradução.
Os pesquisadores da Kaspersky pesquisaram através do seu arquivo de relatos, que contém nomes de arquivos suspeitos enviados automaticamente de computadores de consumidores para que os nomes possam ser comparados com listas de malwares conhecidos, e encontraram um algoritmo hash MD5 e um nome de arquivo que pareciam ter sido implementados apenas em computadores do Irã e outros países do Oriente Médio. Conforme os pesquisadores procuravam mais, eles encontraram outros componentes infectando as máquinas na região, o que eles relacionaram como sendo partes do Flame.
Entretanto, a Kaspersky está atualmente tratando o Flame como se não estivesse ligado ao Wiper/Viper, e acredita que é uma infecção completamente diferente. Os pesquisadores apelidaram o toolkit de “Flame” por causa do nome de um módulo dentro dele.
Entre os muitos módulos do Flame, existe um que liga o microfone interno de uma máquina infectada para gravar secretamente conversações que ocorrem no Skype ou nas proximidades do computador; um módulo que transforma os computadores com Bluetooth em um farol Bluetooth, que procura por outros dispositivos com Bluetooth ligado nas proximidades para extrair nomes e números de telefones da pasta de contatos; e um módulo que pega e armazena screenshots frequentes de atividade na máquina, tais quais comunicações através de e-mail ou mensagens instantâneas e as envias através de um canal SLL secreto para os servidores de comando e controle das pessoas que estão por trás do ataque.
O malware também tinha um componente localizador que podia examinar todo o tráfego em na rede local de uma máquina infectada e coletar nomes de usuário e senhas que são transmitidas através da rede. Os intrusos aparentemente usavam este componente para roubar contas de administrador e ter privilégios em outras máquinas ou partes da rede.
O Flame também contém um módulo chamado Viper, adicionando ainda mais confusão na questão do Wiper/Viper, mas este componente é usado para transferir dados roubados de máquinas infectadas para servidores de comando e controle. Relatos de notícias de fora do Irã indicam que o programa Wiper/Viper que infectou o Ministério do Petróleo foi projetado para deletar grandes quantidades de dados dos sistemas infectados.
Os pesquisadores examinaram um sistema que foi destruído pelo Wiper/Viper e não encontraram traços desse malware nele, impedindo-os de compará-lo aos arquivos do Flame. O disco destruído pelo Wiper/Viper estava repleto principalmente de lixo aleatório, e quase nada pode ser recuperado dele, Gostev disse. “Nós não vimos nenhum sinal do Flame naquele disco.”
Como o Flame é muito grande, ele é carregado no sistema por partes. A máquina primeiro é atingida por um componente de 6 megabytes, que contém cerca de meia dúzia de módulos compactados. O componente principal extrai, descompacta e descriptografa estes módulos e grava-os em vários locais do disco. O número de módulos em uma infecção depende do que os invasores querem fazer em uma máquina em particular.
Uma vez que os módulos estão descompactados e carregados, o malware se conecta e um dos cerca de 80 domínios de comando e controle para enviar informações sobre as máquinas infectadas para os invasores e ficam aguardando mais instruções. O malware contém uma lista de cerca de cinco domínios, mas também tem uma lista atualizável, na qual as pessoas responsáveis pelo ataque podem adicionar novos domínios se os outros tiverem sido derrubados ou abandonados.
Apesar do malware aguardar mais instruções, os vários módulos nele podem tirar screenshots e fuçar a rede. O módulo de screenshots grava imagens da tela a cada 15 segundos quando um aplicativo de comunicação de alto valor está sendo usado, como por exemplo mensagens instantâneas ou Outlook, e uma vez a cada 60 segundo quando outros aplicativos estão sendo usados.
Embora o toolkit do Flame não parecer ter sido escrito pelos mesmos programadores que escreveram o Stuxnet e DuQu, ele compartilha algumas coisas interessantes com o Stuxnet.
Acredita-se que o Stuxnet tenha sido escrito através de uma parceria entre Israel e os Estados Unidos, e foi lançado pela primeira vez em Junho de 2009. Acredita-se que ele foi projetado para sabotar as centrífugas usadas no programa de enriquecimento de urânio do Irã. DuQu foi uma ferramenta de espionagem descoberta em máquinas no Irã, Sudão, e alguns outros lugares em 2011 que foi projetada para roubar documentos e outros dados de máquinas. Stuxnet e Duqu aparentemente foram feitos no mesmo framework, usando partes idênticas e técnicas similares.
Mas o Flame não lembra nenhum dos dois nem no framework, design ou funcionalidade.
Stuxnet e DuQu foram feitos de códigos compactos e eficientes, que foram reduzidos ao básico. O Flame tem 20 megabytes de tamanho, comparado com os 500 kilobytes do Stuxnet, e contém um monte de componentes que não são usados pelo código por padrão, mas parecem estar lá para fornecer aos atacantes opções para ativar depois da instalação.
“Era óbvio que o DuQu tinha a mesma fonte do Stuxnet, mas não importa quanto procurássemos por similaridades [no Flame], não havia nenhuma,” Gostev disse. “Tudo é completamente diferente, com exceção de duas coisas específicas.”
Uma delas é uma interessante função de exportação tanto no Stuxnet, quanto no Flame, que pode acabar ligando os dois malwares em uma análise mais aprofundada, disse Gostev. A função de exportação permite que o malware seja executado no sistema.
Além disso, assim como o Stuxnet, o Flame tem a habilidade de se espalhar infectando dispositivos USB usando o autorun e vulnerabilidades .lnk que o Stuxnet usou. Ele também usa a mesma vulnerabilidade no serviço spooler de impressão que o Stuxnet usou para se espalhar em computadores em uma rede local. Isso sugere que os autores do Flame podem ter tido acesso ao mesmo menu de exploits que os criadores do Stuxnet usaram.
Entretanto, diferente do Stuxnet, o Flame não se replica automaticamente sozinho. Os mecanismos de difusão estão desligados por padrão e precisam ser ligados pelos invasores antes do malware se espalhar. Uma vez que ele infecta um dispositivo USB inserido em uma máquina infectada, o exploit USB é desabilitado imediatamente.
Isso é provavelmente destinado a controlar a propagação do malware e diminuir a possibilidade dele ser detectado. Isso pode ser a resposta dos invasores para a contaminação fora de controle que ocorreu com o Stuxnet e que acelerou a descoberta daquele malware.
É possível que os exploits estivessem ativados nas primeiras versões do malware que permitiram a ele se espalhar automaticamente, mas foram desabilitadas depois que o Stuxnet se tornou público em Julho de 2010 e depois das vulnerabilidades .lnk e spooler de impressão terem sido corrigidas. O Flame foi lançado antes da descoberta do Stuxnet, e a Microsoft corrigiu as vulnerabilidade .lnk e no spooler de impressão em agosto e setembro de 2010. Qualquer malware tentando usar as vulnerabilidades agora seria detectado se as máquinas infectadas estivessem rodando versões atualizadas de programas antivírus. O Flame, na verdade, verifica a presença de versões atualizadas destes programas em uma máquina e, baseado no que encontra, determina se um ambiente contribui para usar os exploits para se espalhar.
Os pesquisadores dizem não saber ainda como a infecção inicial do Flame ocorre em uma máquina antes de começar a se espalhar. O malware tem a habilidade de infectar um computador com Windows 7 totalmente atualizado, o que sugere que pode existir um exploit zero-day no código que os pesquisadores ainda não encontraram.
O primeiro sinal do Flame que a Kaspersky encontrou em sistemas de clientes foi um nome de arquivo pertencente ao Flame que apareceu no computador de um cliente no Líbano em 23 de agosto de 2010. Uma pesquisa de internet no nome do arquivo mostrou que a empresa de segurança Webroot tinha relatado o mesmo arquivo aparecendo em um computador no Irã em 1º de março de 2010. Mas buscas online pelo nome de outros arquivos únicos encontrados no Flame mostram que eles podem ter estado por aí até antes dessa data. Pelo menos um componente do Flame parece ter aparecido em máquinas na Europa em 5 de dezembro de 2007 em em Dubai em 28 de abril de 2008.
Kaspersky estima que o Flame infectou cerca de 1000 máquinas. Os pesquisadores chegaram a este número calculando a quantidade de clientes que foram infectados e estimando o número de máquinas infectadas que pertencem a clientes de outras empresas de anti-vírus.
Todas as infecções que os clientes da Kaspersky parecem ter sofrido não mostram indicações de que uma indústria específica, tal qual a de energia, ou sistemas específicos, tais quais sistemas de controle industrial foram escolhidos. Ao invés disso, os pesquisadores acreditam que o Flame foi projetado para ser uma ferramenta versátil que até agora infectou uma grande variedade de vítimas. Entre os atingidos estão indivíduos, empresas privadas, instituições educacionais e organizações governamentais.
Symantec, que também começou a analisar o Flame (que ela chama de “Flamer”), diz que a maioria de seus clientes que foram afetados pelo vírus residem na Cisjordânia Palestina, Hungria, Irã e Líbano. Eles receberam relatórios adicionais de máquinas de clientes na Áustria, Rússia, Hong Kong e Emirados Árabes Unidos.
Pesquisadores dizem que a data de compilação dos módulos do Flame parece ter sido manipulada pelos criadores, talvez numa tentativa de impedir que os pesquisadores determinassem quando os arquivos foram criados.
“Quem quer que tenha criado foi cuidadoso o suficiente para bagunçar as datas de compilação em cada um dos módulos”, disse Gostev. “Os módulos parecem ter sido compilados em 1994 e 1995, mas eles estão usando um código que foi lançado apenas em 2010.”
O malware não tinha uma data de validade, apesar dos operadores poderem enviar um módulo de auto-destruição se necessário. O módulo, chamado browse32, procura por todos os traços do malware no sistema, incluindo arquivos guardados repletos de screenshots e dados roubados pelo malware, e os elimina, apagando qualquer vestígio que possa ter ficado.
“Quando o modulo de auto-destruição é ativado, não sobra absolutamente nada”, disse Gostev.
ATUALIZAÇÃO: A Equipe de Reação de Emergência de Computadores do Irã anunciou na segunda-feira que havia desenvolvido um detector para descobrir o que ela chama de malware “Flamer” em máquinas infectadas e entregou a organizações selecionadas no começo de maio. Ela também desenvolveu uma ferramenta de remoção do malware. Kaspersky acredita que o malware “Flamer” é o mesmo Flame que seus pesquisadores analisaram.