• Nenhum resultado encontrado

Exemplo de um Web Bug em HTML

No documento User tracking through web sessions (páginas 37-39)

3.3 – Identificação do Browser

Código 3.2 Exemplo de um Web Bug em HTML

Como já foi mencionado anteriormente, é exequível a utilização conjunta de Web bugs e cookies. O método é simples mas bastante eficaz: o website visitado pode estar a implementar cookies, o que atribui ao utilizador um identificador único para aquele domínio. Quando o Web bug redirecciona o utilizador para fazer um pedido ao servidor de monitorização também este pode retornar um cookie na resposta que será guardado de forma independente, uma vez que o domínio é diferente. Assim são distribuídos os chamados third party cookies. Os Web bugs permitem ainda centralizar o esforço de identificação de utilizadores. Imaginando um cenário em que se quer monitorizar todos os utilizadores que visualizam páginas num conjunto de websites, podemos colocar Web bugs em cada uma das páginas de cada servidor direccionado para o mesmo servidor de monitorização. Este método permite a manutenção do cookie do servidor de monitorização uma vez que o domínio é sempre o mesmo. Assim, todas as ligações para este servidor levarão acopladas este cookie, permitindo a identificação de um utilizador único em todos os domínios monitorizados. Poderão ainda ser implementadas relações entre os cookies dos servidores das páginas e o cookie do servidor de monitorização para que se, alguns deles forem apagados, se consiga continuar a identificar o mesmo utilizador e repor os valores dos cookies já definidos para ele [9,10].

Parâmetros passados por URL — Existe ainda outra técnica que pode tornar o uso de Web

bugs mais eficaz em termos de capacidade de identificação de utilizadores: pode ser passada informação para o servidor de monitorização no próprio URL [23]. No exemplo de Código 3.2, é visível a inclusão no URL de um campo de origem (src=mysite), possivelmente para que o

servidor de monitorização possa registar em que website o utilizador está, um campo com um identificador único (id=123) e ainda um campo com a hora actual (time=<Time>). Mais, uma

vez que estes parâmetros são incluídos pelo código do domínio do site que o utilizador está a <img src=”http://www.tracking.com/src=mysite;id=123;time=<Time>” width=”1” heigth=”1” border=”0”>

20 User Tracking

navegar, é possível incluir informações obtidas através dos cookies desse site e enviá-las para o servidor de monitorização através deste método.

Esta abordagem pode ser ainda utilizada em websites com estruturas de páginas dinâmicas [11]. Existem propostas para user tracking utilizando a própria semântica da arquitectura dos websites [26]. Isto é conseguido através do mapeamento de cada URL, registando os pedidos do utilizador à medida que ele navega no site e depois analisando a sua sequência, permitindo perceber as suas acções. Outra abordagem semelhante recorre ao campo referer do cabeçalho HTTP para construir o mapa da visita do utilizador, ligando as páginas visitadas. Este método baseia-se também no facto de que, se o utilizador recuar nas páginas visitadas, caso em que não existe referer, o browser deverá ter essas páginas em cache e dessa forma não deverão ser feitos pedidos ao servidor sem referer. Estas abordagens apenas permitem seguir o utilizador dentro do site e não identificá-lo. No entanto, poderão ser úteis para a reconstrução de sessões de utilizador que é um tópico que será abordado mais à frente na Secção 3.5. Esta técnica é utilizada para a passagem da informação extraída pelo JIC no browser para o AuditService, utilizando-se ainda uma cifra para que os dados sejam ininteligíveis mesmo se observados pelo utilizador com uma ferramenta de monitorização de tráfego Web.

Histórico de Navegação — Grande parte dos websites disponíveis na Web actualmente

implementa uma funcionalidade que permite ao utilizador distinguir os links para páginas que já foram visitados daqueles que ainda não foram acedidos através da cor com que são representados. Esta ajuda gráfica à navegação é possível uma vez que cada browser guarda por omissão um histórico das páginas visitadas pelo utilizador e também graças ao emprego de regras de CSS8. Apesar da informação do histórico não ser disponibilizada pelo browser,

existem métodos que permitem a sua extracção. A cor dos links apresentados na página ao utilizador pode ser lida através de JavaScript ou recorrendo a técnicas que usam exclusivamente o CSS e à forma de construção da própria página HTML. Estas abordagens são válidas tanto para links dentro do site como para links externos, ou seja, para outros websites. Se no código HTML da página constar uma lista de links invisível para o utilizador, isto é, que não é exposta pelo browser, é possível analisar através de JavaScript as cores atribuídas pelo browser a cada um e registar se o utilizador já visitou aqueles sites. Outra possibilidade é colocar uma lista de links com identificadores de utilizador no URL, tal como foi descrito na secção anterior, e perceber com que identificador o utilizador visitou o site [7]. No entanto, deve ser referido que o histórico de navegação pode ser facilmente eliminado sem qualquer prejuízo para o utilizador, o que torna estas técnicas infrutíferas.

8 Cascading Style Sheets, são uma forma de definir o modo de apresentação de uma página HTML. Permitem dividir o conteúdo de uma página e definir tamanhos, alinhamentos, fontes, cores, etc.

21

Ataques à Cache — Para reduzir o número de transferências dos servidores e tornar a

navegação mais rápida, os Web browsers guardam em cache os ficheiros transferidos recentemente. Um conjunto de ataques à cache dos browsers foi proposto em [7] com o objectivo de identificar utilizadores em múltiplas visitas e determinar se já tinham visitado o site anteriormente. Podem ser efectuados ataques de timing, em que é medido o tempo que um determinado elemento estático da página demora a ser descarregado e é comparado com o tempo de download de outro elemento de teste, por exemplo com um nome dinâmico para forçar sempre o download, com tamanho idêntico. Se o tempo de transferência do elemento permanente na página for menor indica que já estava em cache e que a página já tinha sido visitada. Um ataque de timing semelhante pode ser efectuado à cache do serviço DNS9, no

sentido de tentar perceber se um determinado nome de domínio foi resolvido recentemente e se encontra em cache. No entanto, este ataque é reconhecido como sendo menos fiável do que o anterior [7]. Outro ataque à cache do browser pode ser realizado recorrendo às Entity Tags, ou ETags, que estão definidas como uma opção no cabeçalho HTTP. Este campo é preenchido pelo servidor dos conteúdos para indicar qual a versão do elemento que está a ser enviada para o cliente. Nos pedidos seguintes, o utilizador, no seu pedido HTTP, irá indicar que versão é que tem do elemento enviando de volta o valor da ETag. Ainda outra opção é a de incluir informação que possa identificar o utilizador no próprio conteúdo. Enquanto o conteúdo ficar em cache poderá ser lido pelo servidor do domínio, podendo este método ser entendido como semelhante a um cookie de cache. Também a cache de um browser é facilmente apagada o que frustraria estes ataques.

No documento User tracking through web sessions (páginas 37-39)