17 setembro 2012
Os perigos dos exploits e dias zero e como preveni-los
Não é preciso ser eu a dizer que a Internet é um fenômeno interessante e muito útil para todos os que a usam. Mas o fato de a Internet ser tão aberta e incontrolável pode trazer uma série de problemas desagradáveis aos seus usuários – e não falo só dos sites pornô duvidosos, mas também de sites completamente legítimos, sites que parecem “não fazer mal a uma mosca”. E já faz alguns anos que a Internet está no topo da lista das principais fontes de ciberinfecções: de acordo com os nossos dados, em 2012, 33% dos usuários já tinham sido atacados pelo menos uma vez através da Internet.
Se pesquisarmos a fundo as principais “chatices” da Internet, sempre aparecem três categorias principais de ameaças: Trojans, exploits, e ferramentas maliciosas. De acordo com o sistema baseado na nuvem Kaspersksy Security Network (KSN) (vídeo, detalhes), o cenário é este:
A fatia dos 10% que veem no gráfico acima pertence aos chamados exploits (na realidade, a porcentagem é ainda maior, uma vez que muitos Trojans têm um fraquinho por explorar… exploits). Os exploits são, na sua maioria, um pouco “exóticos” para os leigos – e uma verdadeira dor de cabeça para os especialistas em segurança. Quem pertence a esta última categoria pode ir diretamente para aqui. Para todos os outros, aqui fica uma miniaula sobre exploits…
O software é criado por humanos, e os humanos se esquecem de coisas e cometem erros. E mais, até hoje ainda não foi inventado o método “perfeito” de programação. Por causa disso, praticamente cada parte de um software contém vulnerabilidades – ou seja, erros no código de programação através dos quais os atacantes podem controlar um sistema, “desarrumá-lo”, etc. E ao código que explora vulnerabilidades em programas chamamos… surpresa das surpresas – um exploit.
Dito isso, que programas são os mais atacados por exploits? Aqui estão as nossas estatísticas de 2011:
(Tantos problemas causados pelo Adobe, não é? E tudo o que ele faz é ler PDFs, como muitos outros programas fazem… Ahh! As máquinas!)
As vulnerabilidades podem ser usadas pelos exploits, ou permanecerem inexploradas, dependendo da popularidade e funcionalidade de cada programa e, consequentemente, do nível de atenção que lhe é dado pelos cibercriminosos. Exemplos típicos são o recente incidente ocorrido no último mês com o Trojan Flashback para Mac. A vulnerabilidade existia no Java e tinha sido descoberta no início do ano, mas o exploit para Mac só apareceu um mês depois. O que é importante entender é que se uma vulnerabilidade num programa específico não for descoberta, isso não significa que ela não existe. Significa apenas que (i) o programa é utilizado por tão pouca gente que é difícil que alguém encontre uma vulnerabilidade por engano, ou (ii) o programa é tão insignificante que, para os cibercriminosos, não vale a pena ter trabalho a procurar os erros.
Este é um cenário típico: uma vulnerabilidade é descoberta por um investigador que a reporta ao desenvolvedor. Então, o desenvolvedor corrige urgentemente a vulnerabilidade com uma atualização. Só aí é que o submundo cibernético junta as peças, cria um exploit e tenta atacar os usuários que ainda não tenham instalado a atualização.
Digo que este é o cenário típico, mas talvez fosse melhor dizer que este é o cenário ideal (com um intervalo de tempo entre a descoberta da vulnerabilidade e o aparecimento do exploit). Isto porque, na realidade, o que costuma acontecer é que o exploit aparece ao mesmo tempo em que saem as primeiras notícias sobre a vulnerabilidade; ou pior, o desenvolvedor (por exemplo, a Apple no incidente do Flashback) se atrasa no lançamento da atualização e, como consequência, o exploit é lançado antes da atualização ficar disponível. Chamamos um exploit para o qual ainda não há uma atualização de exploit de dia zero (zero dias depois, isto é, antes!, da atualização). E estes exploits/ataques de dia zero são, exatamente, os mais perigosos.
Aqui temos alguma informação interessante sobre a distribuição geográfica de fontes de ataques através da Internet, a maioria com recurso a exploits:
A localização de um site atacante não significa necessariamente que o autor do ataque também seja daí. Longe disso. Os cibercriminosos podem facilmente registrar um site de uma empresa em outro país que não seja o dele e conduzir a sua atividade maliciosa a partir daí.
Os dois dos métodos mais comuns para lançar ataques com recurso a exploits são:
- Os drive-by downloads (85% dos ataques através da Internet). O usuário é convencido a entrar num site que, com a ajuda de um exploit kit, verifica o navegador em busca de vulnerabilidades e, caso encontre alguma, infecta o computador sem que seja notado. Este método é muito usado em ataques em massa, para atingir um resultado destrutivo máximo. Em aproximadamente um terço dos casos, o site atacado acaba por ser um site legítimo, ou uma organização respeitada, que foi hackeado e infectado com um código malicioso especial.
- Os ataques dirigidos. Neste caso, um usuário, sem suspeitar, abre um arquivo infectado (por exemplo, um PDF), que varre o software instalado em que é executado (no PDF de exemplo, Adobe Reader) em busca de vulnerabilidades e, se as encontra, infecta o computador. O arquivo pode ser distribuído por todo o tipo de meios – e-mail, nuvem, memórias USB, etc. Os ataques dirigidos são ataques precisos com um alvo bem definido – como aqueles mísseis que dão cabo dos Range Rovers no final do filme Syriana – não são ataques em massa que atacam tudo e todos (como os bombardeamentos). Os ataques dirigidos são também muitas vezes chamados de Ameaças Avançadas Persistentes (APT). Têm como alvo pessoas ou organizações específicas e distinguem-se de demais malwares por utilizarem sofisticadas técnicas de engenharia social.
Este é o fato: os 10% de ameaças na Internet que recorrem a exploits, representados nas nossas estatísticas (primeiro gráfico – acima), na verdade, são um problema tão grande como os 83% que recorrem a Trojans! Por exemplo, até ao momento, o exploit kit mais difundido é o Blackhole, que é capaz de infectar 30% dos computadores que visitem um site comprometido (dependendo do tráfego, do software instalado e da segurança). Nem um único Trojan poderia chegar sequer perto destes valores!
Estamos combatendo os exploits já faz alguns anos e com uma impressionante taxa de sucesso. Os nossos produtos têm uma base de dados dedicada que contém as assinaturas dos exploits conhecidos, das URLs maliciosas através das quais as infecções são feitas, e ainda uma heurística especial e tecnologia preventiva para detectar futuros desafios colocados por este tipo de ameaça. Se este tipo de código malicioso for encontrado, o programa é bloqueado, o utilizador e o administrador do sistema são avisados, e os efeitos do ataque são revertidos. Também disponibilizamos uma ferramenta muito útil para detectar a presença de vulnerabilidades:
Agora apresento uma das funcionalidades presentes nas novas versões do KIS/KAV. Com o lançamento da nova versão do nosso Endpoint Security, no início do próximo ano, esta funcionalidade vai estar também disponível para os usuários corporativos. Como já devem ter imaginado, ela está relacionada com a proteção contra exploits. Para ser mais preciso – contra exploits desconhecidos, ou seja, os tais exploits de dia zero!
Perguntam-me muitas vezes como é que é possível disponibilizar proteção contra algo que é desconhecido. A minha resposta é sempre a mesma: observando de perto a evolução das ameaças. Temos cerca de 100 especialistas sênior em todo o mundo que estudam as ameaças, investigam as tendências, e que refletem sobre o futuro da segurança informática, nas suas múltiplas vertentes.
Em primeiro lugar, temos um dos melhores arsenais multinível para combater ameaças futuras – emulação, análise heurística, HIPS, bloqueadores de comportamento, serviços de reputação baseados na nuvem, whitelisting, controle de aplicações e uma série de outras tecnologias proativas. Em segundo lugar, o termo “desconhecido”, na linguagem da segurança informática, não descreve uma coisa tão misteriosa nem tão inconcebível como acontece na vida real!
É claro que há sempre a possibilidade de aparecer um tipo de ameaça completamente nova, que dificilmente consegue ser prevista e contra a qual não podemos aplicar uma proteção proativa. Mas, na maioria dos casos, os programas maliciosos atuam de acordo com um certo padrão de conduta e utilizam algumas ferramentas específicas. É assim que as descobrimos. E com sucesso, diz-nos a experiência.
Como funciona a proteção contra exploits desconhecidos presente nas versões 2013 do Kaspersky Internet Security e do Kaspersky Anti-Virus?
Então é assim: melhoramos significativamente o módulo System Watcher (que monitora a atividade dos programas) com uma nova tecnologia de Prevenção Automática de Exploits (AEP). O nome da tecnologia já diz muito sobre ela, mas passo explicar como funciona.
Na verdade, a AEP é um nome genérico para toda uma gama de funcionalidades anti-exploits. Primeiro, adicionamos à nossa base de dados padrões de comportamento específicos dos exploits. O System Watcher usa estes modelos para controlar as ações das aplicações (por exemplo, dos navegadores), para detectar atividade suspeita e bloqueá-la. Em segundo lugar, o sistema localiza a fonte dos arquivos e neutraliza os drive-by downloads. E ainda estamos integrando o Attachment Execution Service (AES) e distinguindo os arquivos criados com e sem conhecimento do usuário. Em terceiro lugar, para os programas mais críticos e módulos extra (por exemplo, plugins para navegadores), aplicamos a tecnologia ASLR. Cada vez que é utilizada, esta tecnologia altera de forma aleatória a estrutura da localização dos programas utilizados. Assim, mesmo que um exploit consiga explorar uma vulnerabilidade, não será capaz de lançar o código malicioso, uma vez que não sabe a sua localização exata!
A tecnologia AEP está neste momento sendo testada e os resultados são impressionantes. A AEP foi exposta a uma grande quantidade de exploits para Flash Player, QuickTime, Adobe Reader, Java e outros programas – e estamos tendo uma porcentagem de detecção de 100%! O mais impressionante foi a detecção bem-sucedida de um exploit para a recente e tão falada vulnerabilidade do Windows Media Player: o exploit possibilitava a infecção de um computador através de um arquivo de música MIDI, e funcionava em todas as versões do Windows, do XP em diante. O que é importante destacar é que, com a tecnologia AEP, detectamos 100% dos exploits presentes no exploit kit Blackhole, enquanto que a média de resultados da indústria é de apenas 94%.
Para concluir, ficam aqui algumas dicas de medidas preventivas que devem ser somadas às tecnologias descritas acima.
Como gostamos de dizer, confiem no antivírus, mas não estraguem tudo. Com isto quero dizer que a chave da prevenção é respeitar regras tão simples como “lavar as mãos antes das refeições”. Um ataque de malware ou de um exploit, como os que acabei de descrever, pode acontecer através de todo o tipo de sites suspeitos. Pensem duas vezes antes de visitar estes tipos de sites, como os sites pornô – vale a pena o risco? E claro, nunca se esqueça da regra de ouro da “higiene” informática: nunca, em nenhuma circunstância, abra um anexo suspeito.