Web Spoofing:
Aqui iremos descrever um ataque que pode por em perigo a privacidade dos
utilizadores da World Wide Web.
O ataque, designado por Web Spoofing, consiste em criar uma "cópia sombra"
de toda a WWW. Os acessos à WWW sombra são transmitidos através da maquina de
onde está a ser lançado o ataque, permitindo ao hacker observar todas as
actividades da vítima, incluindo quaisquer passwords ou números de conta que a
vítima envie através da WWW. O hacker pode também modificar quaisquer
informações que sejam enviadas da vítima para o server ou vice-versa. Em
resumo, o hacker observa e controla tudo o que a vítima faz na Web.
A falsa WWW é criada pelo hacker de forma a que seja igual à verdadeira
WWW: ela contem exactamente as mesmas páginas e links; no entanto, o hacker
controla tudo o que se passa entre o browser da vítima e a Web.
O hacker pode actuar de duas maneiras, ao usar a técnica de web spoofing:
pode ser apenas um observador (observação passiva) ou pode alterar os dados
que circulam entre a vitima e a verdadeira Web (manipulação).
Observação passiva: O hacker pode passivamente observar o tráfico, gravando
as páginas que a vítima visita e os conteúdos dessas mesmas páginas. Quando a
vítima preenche um formulário (form), os dados inseridos são transmitidos para
o servidor da Web, portanto o hacker pode gravar isso também, assim como a
resposta enviada pelo servidor. Como a maioria do comercio on-line é feito por
intermédio de formulários, significa que o hacker pode observar quaisquer
numeros de conta ou passwords que a vítima envie para o servidor da Web. Como
iremos ver mais à frente, o hacker pode observar os dados enviados pela vítima
mesmo que esta tenha uma ligaçao segura (normalmente por intermédio de Secure
Sockets Layer) ao server, ou seja, mesmo que no browser da vítima apareça o
ícone indicador de uma ligação segura (normalmente a imagem de uma fechadura
ou de uma chave).
Manipulação: O hacker pode tambem modificar quaisquer dados que viagem em
qualquer direcção entre a vítima e a Web. Pode modificar os dados de um
formulário preenchido pela vítima, mudando, por exemplo, o endereço para o
qual um determinado produto deve ser enviado. Pode também modificar a
resposta ao formulário (ou outra coisa qualquer) enviada pelo servidor da
Web.
Ao contrário do que se possa pensar, spoofar toda a WWW não constitui
grande dificuldade. O hacker não precisa de armazenar todo o conteúdo da
Web, uma vez que esta se encontra disponível on-line; o servidor que o hacker
usa para o ataque apenas necessita de trazer as páginas da verdadeira Web
quando precisa de providencia-la à vítima na falsa Web.
Como funciona o ataque...
A chave para este ataque é o server de Web do hacker ficar entre a vítima
e o resto da Web. Chama-se a isto "homem no meio do ataque"
("man in the middle attack") na giria de segurança.
Em primeiro lugar deve proceder-se à reescrita de todos os URLs numa página
da Web, de modo a que elas apontem para o server do hacker em vez de um
qualquer servidor real. Assumindo que o server do hacker está na maquina
www.hacker.pt, o hacker reescreve uma URL adicionando http://www.hacker.pt à
frente do URL. Por exemplo, http://free.east.timor.id fica
http://www.hacker.pt/http://free.east.timor.id
(a técnica de reescrita de URLs foi usada por outras razões em vários sites da
Web, incluindo o Anonymizer - http://www.anonymizer.com - e o
Zippy filter - http://www.metahtml.com/apps/zippy/welcome.mhtml)
Quando a vítima pede uma página da Web, os seguintes passos ocorrem:
Como todos os URLs na página reescrita apontam agora para
http://www.hacker.pt, se a vítima seguir um link na nova página, a página será
trazida outra vez através do servidor do hacker. A vítima continua presa na
falsa Web do hacker e pode seguir links para sempre sem dela sair.
Também os formulários (forms) podem ser alterados, uma vez que estes se
encontram integrados nos protocolos básicos da Web: as submissões dos
formulários são codificadas nos pedidos da Web e as respostas são em vulgar
HTML; como qualquer URL pode ser spoofado, então os formulários tambem podem.
O hacker pode assim modificar quaisquer dados enviados num formulário para o
verdadeiro servidor da Web e também alterar a resposta do servidor à submissão
do formulário.
As ligações "seguras" não servem de nada...
Mesmo que a vítima traga uma página por intermédio de uma ligação "segura"
(usando normalmente o Secure Sockets Layer), o ataque funciona na perfeição e
tudo parece normal à vítima. Isto acontece porque, na verdade, existe uma
ligação "segura"; no entanto, essa ligação é ao servidor do hacker
(http://www.hacker.pt) e não ao local a que a vítima pensa que é.
O browser da vítima pensa que tudo está bem: foi-lhe indicado que acedesse a
um URL em http://www.hacker.pt, portanto ele fez uma ligação "segura" a
http://www.hacker.pt. O indicador de ligação-segura (a chave ou a fechadura) da
à vítima apenas um falso juizo de segurança.
Começando o ataque...
Para começar um ataque, o hacker tem que, de algum modo, atrair a vítima
para a sua falsa Web. Existem diversas maneiras de fazer isso: o hacker pode
por um link para a falsa Web numa página popular da WWW; pode mandar um e-mail
à vítima com um link para a falsa Web, ou mesmo com os conteúdos da página da
falsa Web; pode, também, fazer com que um mecanismo de busca da Web indicie
parte da falsa Web.
A linha de status - esta linha aparece no fundo do browser e exibe varias
mensages, normalmente estatísticas de transferências da Web que estão a
ocorrer. O ataque descrito até agora deixa dois tipos de marcas na linha de
status: primeiro, quando o ponteiro do mouse é levado para cima de um link, a
linha de status mostra o URL para que esta a apontar - logo, a vítima
pode verificar que o URL foi reescrito; segundo, quando a página está a ser
trazida, a linha de status indica resumidamente o servidor que está a ser
contactado - assim, a vítima pode verificar que www.hacker.pt é o que aparece
quando outro nome era esperado.
Não é difícil esconder estas marcas - basta adicionar um programa em
JavaScript a cada página reescrita. Isto porque os programas em JavaScript
são capazes de escrever na linha de status, permitindo ao hacker que a linha
de status mostre à vítima o que deveria aparecer na linha de status se esta
estivesse na verdadeira Web. A linha de localização - esta linha indica o URL
da página que está a ser vista. A vítima pode também escrever o URL na
linha de localização (location line), enviando o browser para esse URL. O
ataque descrito até agora faz com que o URL reescrito apareça na linha de
localização, dando possivelmente à vitima a indicação de que um ataque está em
progresso.
Esta marca pode ser escondida usando também o JavaScript. Um programa em
JavaScript pode esconder a verdadeira linha de localização, repondo-a por uma
falsa que parece verdadeira e que está exactamente no mesmo local. A falsa
linha de localização pode mostrar o URL que a vítima espera ver, para alem de
aceitar input do teclado, permitindo à vítima escrever URL's normalmente. O
programa em JavaScript pode reescrever as URL's que a vítima inseriu antes de
elas serem acedidas, "trancando" completamente a vítima na falsa Web.
A fonte do documento (document source) - os browsers mais populares oferecem
um item no menu que permite ao utilizador examinar o código de HTML da página
que está a ser vista. Deste modo, o utilizador pode procurar URLs reescritas
no código de HTML e descobrir o ataque.
Mais uma vez, pode-se eliminar esta marca usando o JavaScript para esconder
a barra do menu, substituindo-a por outra parecida com a original. Se a vítima
escolher a opção "view document source" da barra de menu spoofada, o hacker
pode abrir uma nova janela para mostrar o código original (não reescrito) de
HTML. A informaçao do documento - relacionado com o anterior esta a opção do
menu do browser "view document information". Esta mostra a informação incluindo
o URL do documento. Esta marca pode ser spoofada como a anterior, repondo a
barra do menu do browser.
Fica assim explicado como fazer um Web Spoofing limpo, sem deixar quaisquer
marcas que possam permitir à vítima descobrir o ataque.
Deve-se ainda referir que, como é obvio, não deve ser usado o computador do
hacker (o vosso), pois uma eventual detecção do ataque poderia trazer algumas
consequências indesejadas...
----------------------
Documento traduzido e adaptado por Mag00
Fonte: Web Spoofing: An Internet Con Game
por Edward W. Felten, Dirk Balfanz, Drew Dean e Dan S. Wallach
No entanto, o ataque descrito até agora está ainda longe de ser perfeito.
É necessário "disfarça-lo", para que a vítima não descubra que esta a "passear"
na falsa Web.
O hacker pode, virtualmente, eliminar todas as pistas que restam da
existência do ataque. Isso é conseguido devido aos browsers mais modernos serem
altamente customizaveis, sobretudo depois da inclusão do Java nestes.