Browsers vivem jogo de gato e rato com hackers

 

Apenas alguns dias depois do lançamento de seu novo navegador, o Internet Explorer 9, a Microsoft convidou jornalistas e especialistas para uma mesa-redonda sobre segurança dos browsers. Encabeçando a mesa onde foi discutida a segurança do IE9 em relação aos seus concorrentes estava Chema Alonso – MVP (Most Valuable Person) da Microsoft Espanha e Especialista em Segurança Empresarial. Chema já esteve no Brasil para compartilhar seus conhecimentos em segurança de emails.

Chema abriu sua reunião com uma crítica aos hackers e aos grandes críticos do browser da Microsoft e se disse um defensor do Explorer: “Fico chateado quando ouço que tudo o que vem da Microsoft é ruim. Não é verdade”, afirmou. Sua militância lhe valeu a alcunha de El Maligno no mundo hacker.

 

 

Em termos de segurança, a mesa redonda serviu para mostra que falar de proteção nos navegadores é tão – ou mais – espinhoso do que falar de segurança de emails. A cada novidade para deixar a navegação mais segura desenvolvida pelas empresas, hackers do mundo inteiro se mobilizam para buscar novos “furos”. Ou seja, o ataque é constante, mas também é constante o movimento dos desenvolvedores para manterem você seguro.

Nesse cenário, duas coisas são importantes: informação e ação. É bom que você conheça as ferramentas de segurança à sua disposição, mas é ainda mais importante que você saiba usá-las e configurá-las.

Este especial traz uma boa parte do que você precisa saber sobre segurança em browsers. Como as novidades foram transformadas em ameaça e o que os desenvolvedores fizeram para tornar sua navegação mais segura.

Muitos dos termos que você vai ler parecem uma “sopa de letrinhas técnica”, mas não se assuste e vá em frente. Fizemos tudo para você ficar por dentro!

Um pouco de história

 

Nos primórdios da navegação na internet – quando no mercado haviam somente o Internet Explorer e o Netscape – já se discutia qual seria o melhor padrão para linguagem na internet e qual a melhor forma de padronizar as regras e estruturas de segurança dos navegadores.

Com o tempo, chegaram ao mercado os defensores dos códigos abertos. Pouco tempo depois, para aumentar a confusão, novas linguagens (Java, XML...) e novos desenvolvedores (Mozilla, Google) entraram em cena.

Chema contou uma história para ilustrar essa confusão.

Você provavelmente nunca ouviu falar em uma coisa chamada ECMAScript. Basta dizer que ele é o código que move o Java, uma linguagem de programação bastante comum na internet.

Até a sua terceira versão, o padrão era mais ou menos aceito por todos. Até que começou o desenvolvimento da versão 4.

 

 

A Mozilla (desenvolvedora do Firefox) e outros players insistiam que era hora de uma mudança radical no código do programa. O problema é que essa mudança faria com que a maioria dos desenvolvedores de site tivesse que rever completamente suas páginas. O novo código seria absolutamente incompatível com a web existente até o momento. A briga esquentou quando a Microsoft e a Yahoo argumentaram isso, dizendo que seria melhor fazer mudanças menores e graduais, para que os desenvolvedores aumentassem a segurança dos seus sites.

Como se vê, criar um padrão para que todos se adaptem não é uma tarefa fácil.

Mesmo assim, grandes ideias começaram a ser desenvolvidas.

Algumas novas ideias começaram a pegar

 

Um exemplo: quando engenheiros perceberam que dados armazenados no computador eram um dos alvos preferidos dos hackers – isso mudou muito como veremos mais adiante – tornou-se um padrão dividir a memória em duas partes: uma para aplicações (o sistema operacional incluso), outra para dados salvos.

Uma ferramenta chamada DATA EXECUTION PROTECTION (DEP) foi desenvolvida para que sempre que um programa malicioso tentasse chegar à memória de programas – via broswser – o navegador travasse.

Ao mesmo tempo, na época do Windows Vista, foi criado o ADDRESS SPACE LAYOUT RANDOMIZATION (ASLR), função de segurança que permite que as posições mais importantes dos dados fossem organizadas de forma randômica.

 

Finalmente tivemos o MANDATORY INTEGRITY CONTROL (MIC) que diz que todo programa sendo rodado tem um “nível de importância”, mais alto ou mais baixo. O MIC também define que processos de prioridade mais baixa não podem interferir em processos “mais altos. O USER INTERFACE ISOLATION – que bloqueia aplicações de níveis diferentes de MIC e os VIRTUAL STORES, que merecem um capítulo à parte.

 

Virtualizando a sessão

 

 

Uma das coisas mais comuns atualmente é a virtualização de processos que nada mais é do que “fazer de conta” que está se usando a máquina. Hoje é possível até rodar sistemas operacionais diferentes em uma “máquina virtual”. Um exemplo: você tem Windows instalado, mas quer testar uma versão de um sistema operacional de código aberto como uma versão do Linux, sem precisar desinstalar seu Windows. Para fazer isso, basta criar uma máquina virtual.

O problema é que ao fazer isso você tem acesso a arquivos importantes do seu sistema – mesmo que o esteja usando virtualmente.

Os VIRTUAL STORES criam “cópias virtuais” desses arquivos importantes que podem ser acessados e modificados sem necessariamente fazer alterações nos arquivos reais. Segurança nunca é demais.

Os ADD-INS

 

 

Uma das novidades mais bacanas dos últimos tempos é a possibilidade de turbinar seu navegador com add-ins, ou extensões – programinhas que permitem de tudo, desde baixar um vídeo do youtube a coisas mais prosaicas como ler um documento PDF sem precisar baixar nada.

Mas além de permitir extensões para tornar sua navegação mais divertida, os desenvolvedores de browsers têm que se preocupar com programas maliciosos embutidos nesses programas de extensão.

Um exemplo prático: imagine que na empresa onde você trabalha comecem a surgir muitos programas maliciosos. O pessoal de TI descobre que esses programas estão vindo a partir de documentos PDF. A saída lógica é simplesmente bloquear o uso de documentos nesse formato, certo?

Só tem um problema, a matriz da sua empresa – e outros parceiros – costumam enviar documentos via PDF. Como fazer para ler documentos PDF apenas de fontes confiáveis?

Com o IE9 isso é possível com o gerenciamento de extensões, que permite – além de bloquear um add-in – permitir que ele seja executado apenas para determinados usuários, ou determinadas fontes. Uma mão na roda, sem dúvida.

Para acessar essa função, basta ir na área de configurações (Alt+X) e selecionar o Gerenciador de Complementos. Além disso, sempre que um novo plugin ou add-in for necessário em uma página você poderá controlar se irá usá-lo sempre ou apenas aquela única vez.

Validação Extendida

 

Faça um exercício de observação. Digite um endereço conhecido na sua caixa de endereços, pode o site do seu email, do seu banco, ou do jornal que você costuma ler. Repare que em alguns browsers vai acontecer uma variação de cores e de fontes dependendo do tipo de site que você acessa. Isso se chama validação.

 

 

Repare que em alguns casos – especialmente nos sites que precisam de algum tipo de validação como senha – parte do endereço fica mais destacada. Essa parte do endereço é o domínio. Quando o site está hospedado em um domínio suspeito você será avisado de que o site é...suspeito. Domínio destacado significa que o site foi validado e – de certa forma – você pode seguir adiante.

De certa forma, porque até o IE9 os navegadores não conseguiam ver domínios ocultos no endereço.

Chema mostrou o seguinte exemplo.

“Se alguém criar um site com o seguinte endereço www.paypal.com%00.mydomain.com, os navegadores iriam entender que apenas paypal.com é o domínio – um domínio muito conhecido aliás – e ignorar o restante do endereço, permitindo que você acesse um site não-seguro (no caso o mydomain.com), disfarçado de paypal”.

O IE9 mudou essa história, e é capaz de verificar domínios “secundários” com a validação extendida.

 

Internet Explorer é o navegador mais seguro do mercado

 

 

Em uma palestra para profissionais de segurança, Chema propôs um desafio. Os participantes fariam parte de uma “escola de hackers” fictícia. O teste envolveria três ataques aos principais browsers. Todos eles envolviam a nota dos testes finais: no site criado por Chema, o professor dessa escola fictícia teria que logar e clicar em um dos botões para definir se o aluno “passou” ou “falhou”.

Na brincadeira, os alunos teriam que hackear o site para que – independente do que o professor fizesse – eles passassem de ano.

No primeiro teste, eles tinham que modificar o site para que ele entendesse que o clique no botão “falhou” fosse interpretador como “passou.

No segundo, um pouco mais complexo, o professor tinha que – além de clicar – escrever um comentário. Isso significa que também era necessário modificar os comentários.

Em ambos os testes, dos dez primeiros alunos (eram 40 ao todo), apenas os cinco primeiros conseguiram passar pelos dois testes no IE9. No segundo, apenas os dois primeiros.

Outro teste, conduzido pela empresa especializada em segurança de informação empresarial Bit9 levantou as vulnerabilidades de doze das maiores aplicações rodadas através do mundo, incluindo os navegadores.

O IE foi considerado o mais seguro dentre os navegadores com 32 vulnerabilidades (ficando em 8º na lista). O Firefox ficou em 5º entre os mais vulneráveis (54 vulnerabilidades) e o Google Chrome foi considerado o software mais vulnerável (76 vulnerabilidades).

Os dados são de 2010 e podem ser encontrados neste site.