Sidrolandia
Conheça os diferentes tipos de vulnerabilidades e ataques de hackers
Colunista preparou um "dicionário" em linguagem simples. Deixe suas dúvidas na seção de comentários.
Redação de Noticia
03 de Maio de 2010 - 15:02
Segurança da informação pode ser um assunto complicado. São muitos termos diferentes. Para elucidar um pouco como ataques e vulnerabilidades funcionam, a coluna Segurança para o PC preparou um dicionário em uma linguagem simples para que você possa entender o funcionamento de algumas brechas e saber como hackers ganham acesso não autorizado a diversos sistemas. Confira.
Se você tem alguma dúvida sobre segurança da informação (antivírus, invasões, cibercrime, roubo de dados etc.), vá até o fim da reportagem e utilize a seção de comentários. A coluna responde perguntas deixadas por leitores todas as quartas-feiras.
Buffer overflow
É quando dado vira código. Programas de computador processam dados a todo o momento. Por exemplo, um programa de mensagem instantânea processa dados quando recebe uma mensagem. Um processador de texto processa dados quando você digita ou quando insere uma imagem. Um reprodutor de mídia processa dados quando você abre um arquivo MP3 e assim por diante.
Para processar tudo isso, os programas precisam reservar um espaço de memória para armazenar os dados a serem processados. Um hacker pode fazer com que o programa reserve menos espaço de memória do que o necessário e tente colocar os dados naquele espaço mesmo assim. O resultado é um problema grave, pois aquilo que não couber vai vazar no resto da memória.
Há diversos truques que os hackers usam para fazer com que os dados acabem caindo em um espaço de memória usado por códigos. Código é aquilo que o CPU do computador vai processar, ou seja, é programa. Com isso, os dados se transformam em código. E código pode fazer qualquer coisa no sistema. É o tipo de brecha mais grave que existe nos programas de computador. Tecnologias como Prevenção de Execução de Dados (DEP) tentam prevenir justamente que esse tipo de erro resulte em dado se transformar em código executável, como o próprio nome sugere.
Se você não consegue visualizar o problema, é o mesmo que acontece quando você coloca mais água do que cabe em uma garrafa. O líquido cai onde não devia. O líquido, nesse caso, são dados. E ele espirra e cai na garrafa dos códigos, que vai ser levada pelo processador.
Brechas que permitem que arquivos de dados como imagens, vídeos e texto instalem vírus no PC são geralmente buffer overflows.
Clickjacking
Uma página maliciosa pode fazer o navegador carregar páginas legítimas de modo invisível. Botões nessa página maliciosa na verdade escondem botões na página verdadeira. Se o usuário clicar no botão, na verdade o botão na página carregada por baixo é que será clicado. Com isso, é possível, por exemplo, que alguém envie mensagens no Twitter ou envie links no Facebook ou no Orkut como se fosse você.
O ataque é possível porque o usuário faz login nesses sites e geralmente fica logado enquanto navega por outras páginas.
Condição de corrida
O que acontece quando dois usuários tentam comprar a última unidade da mesma mercadoria em um site de comércio eletrônico? Se o evento realmente ocorrer ao mesmo tempo, ambos os usuários podem acabar recebendo a mensagem de que o item está disponível, embora só um cliente possa ser atendido. Esse tipo de erro é chamado de condição de corrida.
Condições de corrida costumam resultar em dados corrompidos. Em alguns casos, uma condição de corrida pode resultar em problemas de segurança. Por exemplo, um jogo de computador tinha um problema em que uma condição de corrida fazia com que o sistema antipirataria do jogo multiplayer não funcionasse corretamente.
Cross-site Scripting (XSS)
Trata-se de uma falha em sites web. XSS permite que um indivíduo malicioso execute código Javascript no site alvo no contexto do usuário. Em muitos casos, é uma falha sem graves consequências. Em outros, pode permitir roubo de credenciais de acesso ou até execução de comando em nome de um administrador.
XSS persistente é aquele existente em itens de formulário (como recados no Orkut), que são armazenados no banco de dados do site e carregados com a página toda vez que ela for acessada.
XSS ficou em segundo lugar no top 10 da OWASP para 2010, uma lista que busca identificar quais são as brechas mais graves em sites de internet.
Cross-site Request Forgery (XSRF)
Semelhante ao clickjacking, porém mais grave. O XSRF não depende que o usuário clique em um link, pois o site alvo tem uma falha que permite ao criminoso executar o comando diretamente. Ataques de XSRF são muitos simples de serem realizados, porque podem estar escondidos em um carregamento de imagem. Por exemplo, recados em redes sociais que permitem imagens ou posts em fóruns podem criar um ataque XSRF a sites que tiverem a vulnerabilidades.
XSRF ficou em quinto lugar no top 10 da OWASP da 2010, uma lista com os tipos de brechas considerados mais graves em sites de internet.
Denial of Service
Ver negação de serviço.
Directory Traversal
É quando um site ou aplicativo lê algum arquivo do servidor ou do computador, mas permite que o usuário identifique qual o arquivo será lido. O programa ou site deveria realizar uma verificação para saber se o usuário tem permissão para ler aquele arquivo, mas não o faz, permitindo que o arquivo seja lido.
A falha recebe esse nome porque, na maioria dos casos, o programa ou site quer ler apenas arquivos de um determinado diretório, mas permite que o usuário coloque ../ no caminho do arquivo. ../ ou .. significa diretório acima. Com ../ suficientes, o programa estará lendo arquivos na raiz do disco.
Tente acessar o arquivo C:Arquivos de Programas.., por exemplo.
O site de uma operadora de telefonia brasileira apresentou uma brecha desse tipo que permitia ler o arquivo do servidor onde eram armazenadas as senhas de acesso.
Drive-by download
Drive-by download é um tipo de ataque em que uma página web tenta fazer com que o usuário baixe arquivos de uma forma simplificada ou diferente da padrão. Normalmente, a página maliciosa faz isso utilizando brechas no navegador do internauta.
Outros tipos de drive-by download são applets do Java elevados, ClickOnce e ActiveX. Todos permitem a execução de programas no PC com apenas um clique do usuário, quando o normal seriam pelo menos dois (um para o download, outro para executar o programa) ou três (um adicional para confirmar a execução de software, que existe em navegadores atuais).
ActiveX é pouco usado por criminosos, porque recebeu modificações. Vários cliques são necessários para instalar um ActiveX em versões atuais do Internet Explorer.
Elevação de Privilégio
Acontece quando um programa consegue ler arquivos ou executar comandos sem autorização adequada. São falhas que existem em componentes importantes do sistema operacional.
O Windows teve uma falha muito grave desse tipo que recebeu o nome de shatter. O problema foi resolvido no Windows Vista, mas programas que dependem do comportamento que permitia o ataque shatter apresentam um funcionamento diferente; o Windows exibe um aviso e depois a área de trabalho some para proteger o PC da possível exploração da falha.
Envenenamento do cache DNS
Ataque complexo que consiste em enviar uma resposta falsa para um servidor de DNS. Depende de uma série de fatores. A coluna explicou em detalhes como funciona o envenenamento de cache.
Man in the Middle (MITM)
Dá-se o nome de man in the middle (homem no meio) a um ataque em que o hacker fica entre a conexão do usuário com o site legítimo que ele quer acessar. Com isso, ele consegue alterar ou ler as informações que o usuário envia.
Ataques de homem no meio são usados para inutilizar dicas de proteção como aquela que sugere digitar uma senha errada em sites falsos de banco. Se o site falso ficar entre o site legítimo e o usuário, uma senha errada vai retornar erro como no site legítimo.
Negação de Serviço
Um hacker tenta sobrecarregar o computador com informações ou conexões inúteis para impedir que as conexões verdadeiras sejam processadas. A coluna fez uma explicação completa sobre como funciona um desses ataques.
Se acontecesse no mundo real, um ataque de negação de serviço seria como encher uma loja de pessoas que não vão comprar nenhum produto para impedir que os clientes de verdade possam entrar.
Também é chamado de negação de serviço um tipo de problema em programas que permite a um invasor travar o software facilmente.
Pharming
Redirecionar um site para outro. Depende de algum outro ataque, normalmente envenenamento de cache DNS ou alteração do arquivo hosts da vítima.
Existe também o ataque de drive-by pharming. É o uso de erros de configurações em modems ADSL e roteadores para alterar a configuração de servidores DNS a partir de uma página web por meio de ataques de XSRF e clickjacking.
Phishing
Fraude virtual que chega por e-mail. Tenta convencer o usuário de que ele precisa preencher um formulário com seus dados ou clicar em um determinado link para baixar um arquivo. O arquivo, é claro, será um vírus. E o site, se acessado, roubará todos os dados digitados.
Variações incluem Vishing (golpes por telefone; o v é de voz) e fraudes nigerianas.
Remote File Inclusion/Injection (RFI)
Uma vulnerabilidade gravíssima em sites. Páginas de internet costumam resultar de um conjunto de arquivos diferentes. Por exemplo, o cabeçalho, o menu e o rodapé são armazenados em arquivos separados e, quando a página é construída pelo servidor, esses arquivos são colocados juntos e enviados como um só ao navegador do internauta.
Quando o site é vulnerável a um ataque de RFI, o indivíduo malicioso pode indicar algum arquivo para ser incluído remotamente, ou seja, de fora do servidor e sob seu próprio controle. O que acontece é o mesmo do buffer overflow hacker pode executar comandos no servidor, permitindo a invasão completa do equipamento.
Sniffing
Grampo eletrônico. É quando o hacker pode ver tudo o que está trafegando na rede. É um verbo: snifar, snifou, snifando.
Spoof
Spoof é fingir ou falsificar. Também é verbo. Spoofado, spoofar. MAC, ARP e IP spoof são os mais comuns, e trata-se de, respectivamente, forjar endereços MAC, ARP e IP falsos.
O MAC Spoof é muito fácil de fazer e, às vezes, é necessário por causa de alguma incompatibilidade da rede. MAC (Media Access Control) é o endereço físico dos equipamentos de rede, como modems, roteadores e placas. Alguns equipamentos têm no painel de administração uma opção que permite alterar o endereço MAC para qualquer outro.
IP Spoof é o uso de um IP falsificado. Na maioria das vezes só pode ser realizado via UDP, porque o protocolo TCP faz uma verificação (chamada de handshake). É o IP Spoof que permite ataques como o envenenamento de cache do DNS.
ARP Spoof ou ARP poisoning permite ataques de homem no meio ou sniffing porque muda a maneira como uma rede direciona suas conexões.
SQL Injection
Outra brecha em sites de internet. SQL é a linguagem usada por bancos de dados para realizar consultas e alterar dados. Um ataque de SQL Injection permite que o hacker altere de forma maliciosa os comandos que são passados ao banco de dados. Com isso, é possível ler ou alterar dados que normalmente não poderiam ser lidos e alterados. Em muitos casos, é possível ler ou alterar as senhas que estão armazenadas no banco de dados, o que resulta em uma invasão completa do site.
E aqui termina mais uma coluna Segurança para o PC. Se algum termo ainda não ficou claro ou você leu sobre algum outro tipo de ataque que não foi explicado, deixe sua observação na seção de comentários. Quarta-feira (5) é o pacotão de respostas e sua dúvida poderá ser respondida na coluna. Até lá!
*Altieres Rohr é especialista em segurança de computadores e, nesta coluna, vai responder dúvidas, explicar conceitos e dar dicas e esclarecimentos sobre antivírus, firewalls, crimes virtuais, proteção de dados e outros. Ele criou e edita o Linha Defensiva, site e fórum de segurança que oferece um serviço gratuito de remoção de pragas digitais, entre outras atividades. Na coluna Segurança para o PC, o especialista também vai tirar dúvidas deixadas pelos leitores na seção de comentários