biblioteca digital de teses e dissertações da usp - seguranÇa … · 2006. 9. 13. · • de...
TRANSCRIPT
ARTHUR WONGTSCHOWSKI
SEGURANÇA EM APLICAÇÕES TRANSACIONAISNA INTERNET: O ELO MAIS FRACO
Dissertação apresentada à Escola Politécnica
da Universidade de São Paulo para obtenção
do Título de Mestre em Engenharia.
São Paulo2005
ARTHUR WONGTSCHOWSKI
SEGURANÇA EM APLICAÇÕES TRANSACIONAISNA INTERNET: O ELO MAIS FRACO
Dissertação apresentada à Escola Politécnica
da Universidade de São Paulo para obtenção
do Título de Mestre em Engenharia.
Área de Concentração:
Sistemas Digitais
Orientador:
Wilson V. Ruggiero
São Paulo2005
Este exemplar foi revisado e alterado em relação à versão original, sobresponsabilidade única do autor e com a anuência de seu orientador.
São Paulo, 16 de maio de 2006.
Assinatura do autor
Assinatura do orientador
FICHA CATALOGRÁFICA
Wongtschowski, ArthurSegurança em aplicações transacionais na Internet: o elo mais
fraco/ A. Wongtschowski. – ed. rev. – São Paulo, 2005.108 p.
Dissertação (Mestrado) — Escola Politécnica da Universidadede São Paulo. Departamento de Engenharia de Computação e Sis-temas Digitais.
1. Redes de computadores (Segurança). 2. INTERNET. I.Universidade de São Paulo. Escola Politécnica. Departamento deEngenharia de Computação e Sistemas Digitais. II. t.
AGRADECIMENTOS
Agradeço ao meu orientador, Wilson Ruggiero, pelos conselhos valiosos que sem-pre me direcionaram para o melhor caminho. Agradeço também ao amigo e mestrePaulo Barreto, um exemplo de pessoa e de profissional a ser seguido.
RESUMO
O problema das fraudes virtuais em serviços deInternet Bankinge comércio ele-trônico vem crescendo a cada dia. Em 2005, as fraudes virtuais representaram, noBrasil, uma perda de 300 milhões de reais. Neste trabalho, apresentamos inicialmenteo cenário atual das fraudes, especificando quais ataques elas utilizam, como são hojeexecutadas e quais vulnerabilidades exploram. Cada ataque éclassificado conformeuma nova taxonomia criada. São também apresentadas possíveis defesas contra essesataques, indicando a efetividade de cada uma. Analisamos também o ponto de vistada privacidade do usuário para cada uma dessas soluções. Comocontribuição original,esse trabalho apresenta uma solução de curto prazo, que opera sobre a infra-estrutura jáexistente, que visa reduzir o problema das fraudes. São feitas também consideraçõessobre possíveis soluções de longo prazo de maior efetividade e que promovam umadefesa mais estrutural.
ABSTRACT
The problem of virtual frauds in Internet Banking and electronic commerce ser-vices is growing each day. In 2005, the virtual frauds represented a damage of 300million reais in Brazil. In this work, we present initially the current scenario of virtualfrauds, specifying what attacks are used, how they are executed and which vulnerabi-lities they exploit. Each attack will be classified in accordance to a new methodology.We also present defenses against these attacks, indicatingthe effectiveness and intru-sion of each one of them. In the end, a short term and defensivesolution is presented toreduce the problem of virtual frauds. We also consider long term solutions that couldbe used in the future to accomplish structural defenses.
SUMÁRIO
Lista de Figuras
Lista de Tabelas
1 Introdução 13
1.1 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.2 Motivação. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.3 Contribuições. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.4 Estrutura do trabalho. . . . . . . . . . . . . . . . . . . . . . . . . . 18
2 Definição do problema 19
2.1 Resumo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.2 Especificação dos Ataques. . . . . . . . . . . . . . . . . . . . . . . 19
2.2.1 Tipos de ataque. . . . . . . . . . . . . . . . . . . . . . . . . 20
2.2.1.1 Roubo de dados. . . . . . . . . . . . . . . . . . . 20
2.2.1.2 Roubo de sessão. . . . . . . . . . . . . . . . . . . 20
2.2.1.3 Modificação de transações. . . . . . . . . . . . . . 20
2.2.1.4 Man-in-the-middle. . . . . . . . . . . . . . . . . . 21
2.3 Proteção. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.3.1 Tipos de proteção. . . . . . . . . . . . . . . . . . . . . . . . 22
2.3.1.1 Prevenir contra captura de dados. . . . . . . . . . 22
2.3.1.2 Modificar os dados da autenticação. . . . . . . . . 23
2.3.1.3 Assinatura individual de transações. . . . . . . . . 23
2.4 Foco do trabalho . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.5 Trabalhos relacionados. . . . . . . . . . . . . . . . . . . . . . . . . 25
2.6 Taxonomia dos ataques. . . . . . . . . . . . . . . . . . . . . . . . . 26
2.6.1 Tipo do ataque. . . . . . . . . . . . . . . . . . . . . . . . . 27
2.6.2 Objetivo imediato do ataque. . . . . . . . . . . . . . . . . . 27
2.6.3 Local do ataque. . . . . . . . . . . . . . . . . . . . . . . . . 28
2.6.4 Vulnerabilidade explorada pelo ataque. . . . . . . . . . . . . 28
2.6.5 Complexidade técnica do ataque. . . . . . . . . . . . . . . . 29
2.6.6 Transparência do ataque. . . . . . . . . . . . . . . . . . . . 30
2.7 Ataques mais relevantes. . . . . . . . . . . . . . . . . . . . . . . . . 31
3 Cenário Cliente/Servidor 33
3.1 Preocupações atuais com segurança: Servidor. . . . . . . . . . . . . 33
3.1.1 SSL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.1.2 IDS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.1.3 Firewall . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.1.4 Atualizações de segurança. . . . . . . . . . . . . . . . . . . 35
3.2 Preocupações atuais com segurança: Cliente. . . . . . . . . . . . . . 36
4 Métodos de ataque ao cliente 37
4.1 Resumo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.2 Advertência ética. . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.3 Modo de instalação. . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.3.1 Trojans . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
4.3.2 Vulnerabilidades. . . . . . . . . . . . . . . . . . . . . . . . 40
4.4 Modo de captura. . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.4.1 Linksfalsos . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4.4.2 Keyloggers . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4.4.2.1 Hooks . . . . . . . . . . . . . . . . . . . . . . . . 42
4.4.2.2 Funções estáticas do teclado. . . . . . . . . . . . . 44
4.4.2.3 Captura de campos de texto. . . . . . . . . . . . . 46
4.4.2.4 Drivers . . . . . . . . . . . . . . . . . . . . . . . . 47
4.4.2.5 DLL Injection . . . . . . . . . . . . . . . . . . . . 50
4.4.3 Telas falsas. . . . . . . . . . . . . . . . . . . . . . . . . . . 52
4.4.4 Ataque de redirecionamento. . . . . . . . . . . . . . . . . . 55
4.4.5 Ataque à máquina virtualJava . . . . . . . . . . . . . . . . . 58
4.5 Considerações finais. . . . . . . . . . . . . . . . . . . . . . . . . . 61
5 Métodos de proteção ao cliente 62
5.1 Resumo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
5.2 Considerações iniciais. . . . . . . . . . . . . . . . . . . . . . . . . 62
5.2.1 Batalhas em uma guerra injusta. . . . . . . . . . . . . . . . 63
5.2.2 Prevenindo a desinstalação. . . . . . . . . . . . . . . . . . . 66
5.3 Modos de proteção. . . . . . . . . . . . . . . . . . . . . . . . . . . 68
5.3.1 Sistemas que operam como antivírus. . . . . . . . . . . . . . 68
5.3.2 Firewall . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
5.3.3 Atualizações de segurança. . . . . . . . . . . . . . . . . . . 72
5.3.4 Antikeylogger. . . . . . . . . . . . . . . . . . . . . . . . . . 72
5.3.4.1 Hooks . . . . . . . . . . . . . . . . . . . . . . . . 73
5.3.4.2 Captura de campos. . . . . . . . . . . . . . . . . 75
5.3.4.3 Drivers . . . . . . . . . . . . . . . . . . . . . . . . 77
5.3.4.4 DLL Injection . . . . . . . . . . . . . . . . . . . . 79
5.3.5 BHO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
5.3.6 Proteção contra redirecionamento. . . . . . . . . . . . . . . 81
5.3.7 Detecção de janelas suspeitas. . . . . . . . . . . . . . . . . 83
5.3.8 Proteção da máquina virtualJava . . . . . . . . . . . . . . . 86
5.4 Sugestão de uma solução de curto prazo. . . . . . . . . . . . . . . . 88
5.5 A questão da privacidade. . . . . . . . . . . . . . . . . . . . . . . . 91
6 Considerações sobre soluções estruturais 94
7 Conclusões 97
Referências 99
Apêndice A -- Exemplo dee-mails 103
LISTA DE FIGURAS
1.1 CERT: incidentes reportados.. . . . . . . . . . . . . . . . . . . . . . 15
4.1 Exemplo de e-mail contendotrojan. . . . . . . . . . . . . . . . . . . 39
4.2 Hooks: caminho percorrido por uma tecla.. . . . . . . . . . . . . . . 43
4.3 Exemplo de captura de clique demouseutilizandohooks . . . . . . . 44
4.4 Funções estáticas: caminho percorrido por uma tecla.. . . . . . . . . 45
4.5 Tela para entrada de senha. . . . . . . . . . . . . . . . . . . . . . . 46
4.6 Captura da senha do usuário. . . . . . . . . . . . . . . . . . . . . . 47
4.7 Relação entre os vários tipos dedrivers. . . . . . . . . . . . . . . . . 48
4.8 Drivers: caminho percorrido por uma tecla.. . . . . . . . . . . . . . 51
4.9 Siteoficial do banco teste. . . . . . . . . . . . . . . . . . . . . . . . 53
4.10 Tela falsa simples atacando um banco teste.. . . . . . . . . . . . . . 53
4.11 Tela falsa de média complexidade atacando o banco teste. . . . . . . . 54
4.12 Tela falsa de maior complexidade atacando o banco teste. . . . . . . . 54
5.1 Validação do módulo de segurança.. . . . . . . . . . . . . . . . . . . 67
5.2 Proteção contra captura utilizandohooks. . . . . . . . . . . . . . . . 74
5.3 Proteção contra captura utilizandodriver. . . . . . . . . . . . . . . . 77
5.4 Página oficial da instituição.. . . . . . . . . . . . . . . . . . . . . . 85
5.5 Tela falsa atacando ositeoficial da instituição.. . . . . . . . . . . . . 86
A.1 Exemplo dee-mailcontendotrojan. . . . . . . . . . . . . . . . . . . 103
A.2 Exemplo dee-mailcontendotrojan. . . . . . . . . . . . . . . . . . . 104
A.3 Exemplo dee-mailcontendotrojan. . . . . . . . . . . . . . . . . . . 105
A.4 Exemplo dee-mailcontendotrojan. . . . . . . . . . . . . . . . . . . 106
LISTA DE TABELAS
4.1 Classificação do ataquetrojans. . . . . . . . . . . . . . . . . . . . . . 38
4.2 Classificação do ataque vulnerabilidades.. . . . . . . . . . . . . . . 40
4.3 Classificação do ataquelinks falsos. . . . . . . . . . . . . . . . . . . 41
4.4 Classificação do ataquekeyloggers. . . . . . . . . . . . . . . . . . . . 42
4.5 Classificação do ataque telas falsas.. . . . . . . . . . . . . . . . . . 52
4.6 Classificação do ataque de redirecionamento.. . . . . . . . . . . . . 55
4.7 Classificação do ataque à máquina virtualJava. . . . . . . . . . . . . 58
5.1 Ataques propostos e melhores defesas.. . . . . . . . . . . . . . . . . 88
13
1 INTRODUÇÃO
“Only the Paranoid Survive”
Andrew S. Grove
Segurança é um tópico que vem sendo considerado mais importante a cada dia. Bi-
lhões de dólares são gastos todo ano em sistemas que visam garantir o perfeito funcio-
namento de sistemason-line, como páginas de comércio eletrônico,Internet Bankinge
muitos outros serviços. Servidores mais robustos e confiáveis são comprados, sistemas
defirewall são instalados, certificados digitais e dados criptografados são transmitidos
incessantemente para garantir a completa proteção do sistema. Mas aparentemente, até
agora, um ponto importante foi esquecido e deixado de lado: ocliente.
A relevância desse problema se torna simples de ser entendida se pensarmos na
metáfora de uma corrente constituída de inúmeros elos. Um sistema de segurança
completo é composto por vários desses elos. Exemplificando,podemos pensar em
um sistema deInternet Bankingapresentando os seguintes elos: servidor de base de
dados, servidorweb, firewall, sistema deIDS (Intrusion Detection System), canal de
comunicação,Internet, e na ponta, a máquina do cliente. Imagine que nesse exemplo
todo o sistema do servidor (desde a base de dados até o canal decomunicação) esteja
muito bem configurado, sendo a segurança desse considerada perfeita (até utópica).
Mesmo com todos esses aparatos de segurança funcionando corretamente, se, na ponta,
na máquina do cliente, o elo estiver fraco, a corrente inteira poderá ser rompida. Pode
1.1 Objetivos 14
parecer exagero, mas no decorrer deste trabalho serão apresentadas diversas maneiras
reais e efetivas de ataque à máquina do cliente. Algumas exploram a ignorância e
desconhecimento do cliente, outras utilizam técnicas maisavançadas de invasão, mas
todas têm o intuito de capturar informações críticas e secretas na própria máquina do
cliente.
Como podemos então fortalecer o elo mais fraco, o do cliente? Já existem hoje
alguns métodos para realizar essa tarefa, que serão expostos durante o decorrer deste
trabalho. Mas, para fins de entendimento, imaginemos um casoextremo: para evitar a
fraude em seu serviço deInternet Banking, um banco qualquer instala um certosoft-
warena máquina de seus clientes que passa a monitorar tudo o que por lá ocorre. Para
o banco, esse pode parecer um excelente método, já que provavelmente seu número de
fraudes irá reduzir consideravelmente. Mas, e quanto à privacidade do cliente? O que
ele irá pensar ao verificar que agora umsoftwareem sua máquina pode ter acesso a
todos os seus dados pessoais?
Esse é basicamente o problema que estamos tentando resolver: encontrar um meio-
termo entre proteção e privacidade relativo à segurança na máquina do cliente.
1.1 Objetivos
Este trabalho tem como objetivo principal identificar, analisar e propor soluções
para vulnerabilidades de segurança no ambiente cliente de um sistema Cliente-Servidor
para evitar fraudes em instituições que operam sistemas transacionais naInternet, pro-
curando preservar a privacidade do usuário final.
O termo “instituição transacional” será empregado neste trabalho para referenciar
qualquer instituição que realize operações utilizando informações sigilosas de usuá-
rios.
1.2 Motivação 15
1.2 Motivação
A importância de mecanismos de proteção ao cliente vem crescendo a cada dia.
Podemos observar pela Figura1.1que o número de incidentes reportados praticamente
dobra a cada ano (CERT, 2005). Sendo assim, é altamente provável que a ameaça de
malwares(trojans, worms, vírus espywares) continuará a crescer.
Figura 1.1: CERT: incidentes reportados.
De acordo com a Figura1.1, podemos verificar um crescimento exponencial nas
fraudes ocorridas. Sendo assim, fica claro que uma solução decurto prazo para esse
problema deve ser rapidamente implementada.
Para ilustrar bem o fato, seguem abaixo algumas estatísticas extraídas de notícias
publicadas em jornais e revistas do Brasil nos meses de março até julho de 2005 (IDG-
NOW, 2005; FOLHA, 2005).
• As fraudes virtuais cresceram 1313% no Brasil no segundo trimestre de 2005, se
comparadas com o mesmo período de 2004.
1.2 Motivação 16
• Os golpes pore-mail cresceram 226% em maio de 2005 em relação ao mês
anterior.
• De cada 10e-mailsenviados no mês de maio de 2005, mais de 3 continham
vírus.
• Em março de 2005, policiais prenderam pirata brasileiro queteria desviado até
US$ 37 mi.
• Osscamscresceram 26% por mês entre julho de 2004 e fevereiro de 2005.
• Em março de 2005, o Brasil era o quinto país em ranking dephishing scam.
Além disso, novas vulnerabilidades e falhas de segurança vêm sendo encontradas
freqüentemente em todos os tipos de aplicativos. Também estão sendo criadas a cada
dia novas maneiras de ataque aos clientes.
O conjunto de todos esses fatores tem levado pessoas de todo omundo a ficarem
preocupadas e receosas ao utilizar sistemas críticos a partir da Internet, como mostra a
notícia abaixo:
IDG Now, 30 março de 2005:Temor com segurança afasta europeu de e-banking
A preocupação com ameaças de segurança como phishing, captura de
teclado ( keystroke logging) e outros tipos de scams está crescendo
de maneira notável entre os usuários de internet banking na
Europa ...Apenas 30% dos 22.907 usuários europeus entrevis tados
...declararam confiar na segurança de suas informações fin anceiras
pessoais quando fazem transações via internet ...
Como se pode verificar, os ataques específicos a clientes deInternet Bankingvêm
crescendo de forma assustadora. Com os dados apresentados acima, podemos conjec-
turar os seguintes pontos:
1.3 Contribuições 17
• Em nossos dias, ataques específicos ao cliente ocorrem em larga escala, pois a
dificuldade técnica de sua execução é pequena (como será mostrado mais adi-
ante), e o retorno financeiro é muito grande.
• Esses tipos de ataque continuarão a existir enquanto proverem bom retorno fi-
nanceiro, mesmo que a dificuldade técnica em sua implementação aumente.
• Atualmente não é possível garantir a integridade da máquinado cliente.
• Se nada for feito, o número de fraudes tenderá a aumentar e o prejuízo das em-
presas e possoas tenderá a crescer.
• Existe também a propensão de os clientes abandonarem os serviços viaInternet
por preocupação com segurança.
Baseado nos pontos colocados acima, deve ficar claro que algo deve ser feito para
a tentativa de preservação da segurança na máquina do cliente.
1.3 Contribuições
As contribuições apresentadas neste trabalho são as seguintes:
• Estudo de segurança de sistemas sob uma nova perspectiva: a máquina do cli-
ente.
• Exposição de novos métodos de ataque baseados em técnicas deintrusão e seus
riscos pouco conhecidos para o público em geral.
• Apresentação de métodos de proteção capazes de detectar e prevenir tais situa-
ções, minimizando o risco associado.
• Avaliação do balanceamento entre proteção e privacidade naperspectiva do cli-
ente.
1.4 Estrutura do trabalho 18
• Criação de uma nova taxonomia para os ataques direcionados aocliente.
1.4 Estrutura do trabalho
No Capítulo2, iremos definir uma métrica de classificação para ataques aqui ex-
plicados. O objetivo é ajudar a classificar e organizar os ataques para posteriormente
facilitar a sua análise.
Já no Capítulo3, apresentaremos as funcionalidades de segurança atuais com as
quais a maioria dos sistemas se preocupa. Iremos descrever brevemente cada uma
dessas funções em termos do que cada uma pretende proteger.
No Capítulo4, serão apresentados uma variedade de métodos conhecidos para
ataque direto ao cliente. Para cada um dos métodos, será citada sua complexidade
técnica e efetividade de ataque.
Em seguida, no Capítulo5, serão expostas as diferentes maneiras de proteção do
cliente. Para cada uma dessas maneiras, será apresentada sua eficiência em relação
aos ataques propostos, além de sua dificuldade de implementação. Além disso, será
mostrado o nível de intrusão que cada um desses métodos preventivos pode vir a causar.
Ao final desse Capítulo, na seção5.4, será apresentado um esboço de solução que
englobe os melhores métodos de proteção apresentados e que possa ser implantado
rapidamente.
Será, então, discutido no Capítulo6 quais as medidas futuras que podem ser toma-
das para garantir, a longo prazo, a segurança dos clientes.
19
2 DEFINIÇÃO DO PROBLEMA
“Only two things are infinite, the universe and human stupidity, and I’m
not sure about the former. ”
Albert Einstein
2.1 Resumo
Neste capítulo, iremos definir exatamente o problema a ser tratado neste traba-
lho. Vamos definir também a abordagem utilizada no estudo do problema, além de
estabelecer o foco mais preciso dos ataques e defesas estudados.
2.2 Especificação dos Ataques
O objetivo principal dos realizadores de ataques estudadosneste trabalho é co-
meter fraudes virtuais. Isso significa basicamente tentar roubar dinheiro dos clientes
de um serviço deInternet Bankingou comércio eletrônico. Além disso, os ataques
a serem apresentados aqui são os realizados apenas na máquina do cliente, ou seja,
não requerem nenhum tipo de atuação fraudulenta no servidorlegítimo da instituição
atacada.
2.2 Especificação dos Ataques 20
2.2.1 Tipos de ataque
Existem vários tipos de ataque direcionados ao cliente. Abaixo encontra-se uma
classificação geral de cada um desse tipos.
2.2.1.1 Roubo de dados
Esse ataque tem como objetivo roubar os dados críticos de autenticação do cliente.
Com essas informações, o atacante pode, de formaoff-line, reproduzir o processo de
autenticação, passando-se, então, pelo cliente. Isso também é chamado de ataque de
personificação. O roubo dos dados pode ocorrer de vários modos, como captura de
teclado, telas falsas,e-mailsfalsos, e muitos outros, como será explicado nos capítulos
seguintes.
2.2.1.2 Roubo de sessão
Algumas vezes, o roubo dos dados de autenticação do cliente não é suficiente para
reproduzir sua autenticação. Por exemplo, sistemas que utilizam senhas diferentes a
cada autenticação impedem que o atacante possa realizar a fraude apenas com a sim-
ples captura dos dados digitados. Nesse caso, pode ser utilizado um outro método de
ataque chamado roubo de sessão. Aqui o atacante espera o cliente realizar a autentica-
ção e após isso utiliza o número de sessão do usuário para realizar transaçõeson-line.
Caso cada transação também exija uma senha diferente a cada vez, o atacante pode
esperar o cliente realizar uma transação para então capturar a senha daquele momento
e utilizá-la na hora para realizar a fraude.
2.2.1.3 Modificação de transações
Semelhante ao ataque acima, o ataque de modificação de transações ocorreon-line
na máquina do cliente. Nesse ataque, um aplicativo malicioso localmente instalado fi-
caria esperando o cliente realizar alguma transação. Nessemomento, após o cliente ter
2.3 Proteção 21
digitado todos os dados da transação mais os seus dados de autenticação, o aplicativo
malicioso poderia modificar os dados da transação e enviar esse pacote modificado.
Assim, o atacante estaria apenas adulterando os dados da transação que o cliente esti-
vesse realizando.
2.2.1.4 Man-in-the-middle
Os ataques deman-in-the-middle(ou homem-no-meio) se baseiam na idéia de in-
terceptação dos dados durante seu tráfego entre o cliente e oservidor. Nesse tipo de
ataque, o atacante consegue ler, inserir e modificar à vontade as mensagens trocadas.
Esse ataque é muito importante no meio criptográfico, pois implica em grandes cuida-
dos, principalmente em protocolos de troca de chaves. Aplicado a fraudes naInternet,
esse ataque poderia ser utilizado para interceptar ou modificar os dados críticos trafe-
gados entre o cliente e o servidor da instituição.
2.3 Proteção
O objetivo da proteção apresentada neste trabalho é prevenir ou ao menos reduzir
a fraude. Como os ataques estudados são referentes ao lado cliente, a proteção também
será apresentada na perspectiva do cliente. Nesse ponto encontramos dificuldades que
não existiam no ambiente servidor, tais como:
• Como garantir a segurança em um sistema quando não se tem o controle absoluto
do mesmo?
Como a máquina do cliente não faz parte do sistema sob controleda instituição,
é extremamente complexo responder à pergunta acima. Um banco, por exemplo, tem
total controle sobre seus servidores. Assim, é possível instalar atualizações de seguran-
ças, aplicativos de antivírus,firewalls e muitas outras ferramentas de segurança para
proteger esse servidor. Contudo, essa instituição não tem controle sobre a situação
2.3 Proteção 22
das máquinas de seus clientes. Alguns clientes podem possuir antivírus, outros não.
Alguns clientes têm conhecimento sobre navegação segura naInternet, outros não, e
assim por diante.
Mesmo se a instituição instalar umsoftwareproprietário de segurança em cada um
de seus clientes, essesoftwaretem que levar em conta os diversos ambientes hetero-
gêneos dos clientes e os diversos perfis de usuários caso participem das decisões de
segurança a serem tomadas.
• Como interagir com o usuário de forma segura, ou seja, essa interação não pode
ser utilizada para violar o ambiente do próprio cliente?
A instalação de umsoftwarede segurança pela instituição muitas vezes pode ser
usada como porta de entrada por atacantes. Da mesma maneira que a instituição oficial
explica aos usuários os problemas de segurança e pede então sua autorização para a
instalação dessesoftware, o atacante pode usar o mesmo método para tentar persuadir
o usuário a instalar aplicativos maliciosos. A criação dessa interação de instalação pela
instituição pode criar no usuário o hábito de permitir instalações de outrossoftwares
possivelmente ilícitos.
2.3.1 Tipos de proteção
Mesmo com os problemas apresentados acima, algumas proteções ainda são pos-
síveis e muitas vezes necessárias na máquina do cliente. Abaixo encontra-se uma
classificação dos tipos gerais de proteção aos quais uma instituição pode recorrer com
o objetivo de tentar reduzir as fraudes:
2.3.1.1 Prevenir contra captura de dados
O primeiro método é relativamente simples de ser entendido:prevenindo que o
atacante roube as senhas do cliente, esse não poderá reproduzir o processo de autenti-
2.3 Proteção 23
cação. Note que esse método de proteção só previne os ataquesdo tipo roubo de dados,
sendo que os outros ataques apresentados (roubo de sessão, modificação de transações
eman-in-the-middle) não estão cobertos por essa proteção.
2.3.1.2 Modificar os dados da autenticação
O segundo tipo de proteção requer algum tipo de senha que mudede forma impre-
visível a cada operação de autenticação. Isso também é chamado deOTP (One Time
Password). Nesse caso, mesmo que o atacante capture os dados críticosdo cliente, esse
não poderá repetir o processo de autenticação, pois no próximo processo de autentica-
ção será requisitada outra senha. Esse método de proteção cobre somente os ataques
do tipo roubo de dados, não protegendo contra os outros tiposde ataque apresentados.
2.3.1.3 Assinatura individual de transações
Nesse método de proteção, o cliente assina digitalmente os dados da transação
sendo efetivada. A instituição então verifica a assinatura dos dados e só então libera a
transação. Esse método de proteção é muito interessante e eficiente, porém muitos cui-
dados devem ser tomados durante sua implementação, como porexemplo, assinatura
às cegas, validação visual dos dados assinados, local onde será realizada a assinatura,
e muitos outros. Esse tópico é extremamente extenso e seria provavelmente fruto de
outro trabalho completo. Esse tipo de proteção não será discutida em profundidade
aqui.
É interessante notar que normalmente nenhuma das proteçõescitadas acima pro-
tegem totalmente o cliente contra a chamada engenharia social. O atacante sempre
pode encontrar algum modo de tentar convencer o cliente a fazer o que ele deseja. Por
exemplo, para um sistema que utilize uma tabela contendo diversas senhas diferentes
a serem usadas na autenticação, ele poderia pedir ao clientesua tabela completa de
senhas. Neste caso, a segurança ficaria toda a cargo do cliente.
2.4 Foco do trabalho 24
2.4 Foco do trabalho
Neste trabalho será estudado a fundo apenas um tipo de ataquee um tipo de defesa:
roubo de dados e prevenção de captura, respectivamente. Os motivos para essa escolha
são os seguintes:
• Atualmente, os ataques mais freqüentes são os de roubo de dados.
• O método de prevenção de captura, apesar de não ser o mais eficiente, é o mais
prático e simples de ser implantado. Distribuir milhões de senhas ou dispositivos
externos para cada cliente nem sempre é uma alternativa viável, principalmente
pelo custo e logística envolvida. Além disso, nem todos os clientes possuem
dispositivos como celulares ouhandheldsque poderiam ser utilizados como fer-
ramentas de autenticação.
• O cliente muitas vezes não está interessado nem disposto a complicar seu mé-
todo de autenticação para melhorar sua segurança. Muitas vezes, clientes de
instituições transacionais consideram que segurança é problema da instituição,
não do cliente. Nem sempre é possível obrigar um cliente a carregar uma tabela
de senhas ou umtoken OTP.
• Muitos clientes de instituições transacionais são leigos em relação à informá-
tica e segurança. O uso de dispositivos complexos ou métodosde autenticação
complicados nem sempre é aplicável a todos os clientes. Usuários já estão acos-
tumados com o seu esquema atual de autenticação e normalmente não vêem
razão para que isso complique, atrapalhando seu uso do sistema.
Por esses motivos, a maioria dos sistemas de autenticação atual ainda se baseia na
entrada de um simples par usuário/senha. Além disso, por experiência pode ser consta-
tado que a grande maioria dos ataques atuais só se baseia na técnica de roubo de dados.
Sendo assim, este trabalho será focado no estudo dos ataquesde roubo de dados e nas
2.5 Trabalhos relacionados 25
possíveis proteções que impeçam esse roubo. Isso obviamente não descarta a impor-
tância ou eficiência dos outros tipos de ataques e proteções anteriormente citados, mas
isso seria assunto para outro trabalho.
Iremos também focar esse trabalho no sistema operacionalWindows, pois sua uti-
lização hoje é maioria absoluta, tornando-se assim o principal alvo de ataques.
2.5 Trabalhos relacionados
Alguns outros trabalhos já foram escritos sobre classificação e taxonomia de ata-
ques. Em (LANDWEHR ALAN R. BULL; CHOI , 1994), os autores descrevem uma taxono-
mia completa para falhas de segurança de computadores. Em (HOWARD, 1997), é des-
crita uma taxonomia de ataques a redes de computadores. Em (WARKENTIN XIN LUO ,
2005), é descrito um arcabolço para classificação despywares.
Existem muitas publicações sobre o tópico de fraudes em sistemas transacionais
na Internet. Recentemente, várias publicações tem abordado esse assunto de formas
diferentes. Alguns exemplos: em (DHAMIJA , 2005), os autores propõem uma solução
para dificultar os ataques dephishing. Em (GIBSON, 2005), o autor apresenta o pro-
blema atual dosspywarese o porque do seu grande crescimento. Em (LEE, 2005), os
autores expõe os fatores mais relevantes na escolha de um sistema de proteção contra
spywares.
Vários outros trabalhos citados no texto explicam o problema de segurança envol-
vido nesse ambiente transacional e tentam identificar algumas soluções mais estrutu-
rais.
Apesar disso, a área de publicações ainda é vaga quanto à parte mais técnica de
descrição dos ataques e proteções aqui apresentadas. Muitas referências mais abran-
gentes sobre codificação existem espalhadas pelaInternet ou em documentações da
própria Microsoft, mas em nenhum ponto foi encontrada a apresentação do perigo
2.6 Taxonomia dos ataques 26
na utilização maliciosa de certas técnicas de programação,nem na utilização dessas
mesmas técnicas com o intuito de prevenção. O conhecimento ea utilização dessas
técnicas existem mais pela necessidade de atacantes e instituições. O conhecimento
empírico de alguns profissionais, obtido através de experiência nessa área, é normal-
mente a única fonte de informação acessível.
2.6 Taxonomia dos ataques
Como já foi dito, o objetivo final dos realizadores dos ataquesaqui apresentados é
cometer uma fraude virtual. No caso mais específico dos ataques de roubo de dados,
seu objetivo é capturar de alguma maneira os dados críticos do cliente (como suas
senhas) para poder num futuro replicar o processo de autenticação.
Os ataques de captura normalmente devem seguir os seguintespassos para serem
bem-sucedidos:
1. Instalação - O atacante deve de alguma maneira instalar umsoftwaremalicioso
ou modificar de alguma forma a máquina do cliente.
2. Captura - Com acesso à maquina do cliente, o atacante deve agoracapturar os
dados críticos da vítima.
3. Envio dos dados roubados - O atacante deve então enviar os dados capturados
para conseguir ter acesso aos mesmos.
4. Fraude - O atacante utiliza os dados capturados para realizar a fraude.
Nem todos os ataques aqui descritos seguem todos os passos citados cima. Alguns
não precisam de instalação local desoftware, outros não precisam enviar os dados para
o atacante. Mas, de forma genérica, a maioria dos ataques realiza os passos acima.
Neste trabalho não serão descritos o terceiro e o quarto passos citados acima, por sua
relativa simplicidade.
2.6 Taxonomia dos ataques 27
A seguir apresentaremos uma proposta de taxonomia para classificação desses ata-
ques ao cliente. Cada ataque será classificado quanto às suas características principais
e mecanismos de ação.
2.6.1 Tipo do ataque
Inicialmente, definiremos qual o tipo do ataque. Conforme explicado acima, um
atacante deve normalmente seguir alguns passos para conseguir realizar a fraude. Al-
guns ataques estão focados em apenas um dos passos citados. Outros podem ser ata-
ques completos, que sozinhos já conseguem realizar totalmente seu objetivo.
Os ataques deste trabalho terão seus tipos classificados da seguinte maneira:
• Ataque completo: ataque que, sozinho, já realiza por completo seu objetivo. Não
requer o auxílio de nenhum outro ataque.
• Ataque parcial: ataque que realiza apenas um ou alguns dos passos necessários
para completar totalmente o objetivo do atacante. Sozinho,não realiza a fraude,
mas pode ser utilizado em conjunto com outros ataques.
Um ataque completo de captura pode ser constituído de váriosataques parciais que
somados resultam na fraude.
2.6.2 Objetivo imediato do ataque
O objetivo final dos ataques aqui descritos é sempre o de propiciar aos realizadores
de ataques a chance de realizar uma fraude. Contudo, cada ataque parcial possui seu
objetivo individual. O objetivo imediato dos ataques parciais aqui apresentados serão
classificados da seguinte maneira:
• Instalação: ataque cujo objetivo é instalar algo na máquinado cliente.
• Captura de dados: ataque cujo objetivo é obter os dados críticos do cliente.
2.6 Taxonomia dos ataques 28
2.6.3 Local do ataque
Nessa etapa, especificaremos o local onde o ataque ocorre, ouseja, o módulo uti-
lizado para a realização do ataque apresentado. Esses locais podem ser os seguintes:
• Aplicativos gerais: aplicativos de terceiros, não fundamentais ao sistema, utiliza-
dos pelo usuário (exemplos: aplicativo de gerenciamento financeiro, aplicativo
de edição de texto).
• Aplicativos de sistema: aplicativos do próprio sistema, fundamentais para o dia-
a-dia (exemplos:e-mail, navegadorweb).
• Sistema operacional: código do próprio sistema operacional, obrigatório para
o correto funcionamento do sistema (exemplos: serviços do sistema,DLLs do
sistema);
• Núcleo do sistema: parte central do sistema operacional também conhecida
comokernel(exemplo:driversde periféricos).
Quanto mais baixo o nível do ataque, normalmente mais complicada é sua imple-
mentação.
2.6.4 Vulnerabilidade explorada pelo ataque
Aqui classificaremos qual vulnerabilidade específica é utilizada pelo atacante para
realizar o ataque, ou seja, qual falha está sendo explorada pelo atacante para que o
ataque seja bem sucedido. As vulnerabilidades podem ser classificadas conforme a
lista abaixo:
• Falha de implementação: o sistema atacado possui umbug, ou seja, a imple-
mentação do sistema possui um defeito que pode ser exploradopara a execução
2.6 Taxonomia dos ataques 29
do ataque. Exemplo: vulnerabilidades do sistema operacional exploradas pelos
worms SassereBlaster(apresentados mais a frente).
• Defeito de especificação: o sistema foi especificado de maneira a deixar uma
brecha de segurança que pode ser explorada por atacantes. Isso não quer ne-
cessariamente dizer que o sistema foi mal implementado ou que possui umbug.
Isso simplesmente quer dizer que o sistema foi mal arquitetado. Exemplo: fun-
ções desnecessárias disponibilizadas pelo sistema operacional que auxiliam na
captura de dados.
• Inexperiência do usuário: fator humano, vítima da engenharia social. Um usuá-
rio inexperiente tem maior chance de ser vítima de um ataque que um usuário
mais experiente. Exemplo:e-mailsfalsos comlinks contendo programas mali-
ciosos.
2.6.5 Complexidade técnica do ataque
Como normalmente o ataque apresentado envolve codificação (programação), ou
pelo menos algum conhecimento técnico sobre a área, podemosclassificar os ataques
pela sua dificuldade de implementação. Esse ítem é de extremaimportância, pois
está ligado diretamente à escolha do ataque a ser utilizado pelo atacante. Inicialmente,
atacantes procurarão ataques de menor complexidade técnica, pois sua execução é mais
simples. Conforme as proteções e dificuldades para os ataquesforem aumentando,
atacantes começarão a migrar para ataques mais complexos.
Neste trabalho iremos classificar os ataques conforme sua dificuldade técnica, uti-
lizando a seguinte escala:
• Ataque simples: não requer conhecimento técnico profundo nem grandes tra-
balhos de programação. Esses ataques muitas vezes podem serrealizados sem
2.6 Taxonomia dos ataques 30
programação nenhuma, pois o atacante procura naInternetprogramas já prontos
e apenas os modifica superficialmente.
• Ataque mediano: requer razoável conhecimento técnico sobre o assunto, in-
cluindo os mecanismos internos do sistema operacional. Nãorequer necessa-
riamente grandes quantidades de programação e muitas vezespode ser realizado
apenas com linguagens de alto nível.
• Ataque complexo: requer conhecimento técnico profundo e extenso trabalho de
programação. É necessário conhecer detalhes do sistema operacional, incluindo
funcionalidades raramente utilizadas ou até não documentadas. Pode inclusive
requisitar programação em linguagem de máquina.
De uma maneira geral, ataques mais técnicos que exijam conhecimento profundo
sobre o funcionamento do sistema operacional serão mais complexos do que ataques
que possam ser realizados apenas com linguagens visuais de programação. Ataques
que exijam modificação no núcleo do sistema também serão maiscomplicados. Códi-
gos disponíveis naInternete facilmente adaptáveis serão mais simples.
2.6.6 Transparência do ataque
Para o cliente, alguns ataques ocorrem de forma mais transparente que outros.
Ataques que utilizam programas escondidos que capturam as informações digitadas
de forma furtiva são mais transparentes que aqueles que mostram janelas na tela do
usuário pedindo todos os seus dados. Usuários mais leigos podem ser vítimas dos dois
ataques citados, mas provavelmente usuários mais experientes perceberiam a presença
do segundo ataque. Nesse sentido, apresentamos a classificação da transparência dos
ataques conforme abaixo:
• Baixa transparência: o ataque modifica bastante a forma normal esperada da
aplicação original.
2.7 Ataques mais relevantes 31
• Média transparência: o ataque modifica pouco a forma normal esperada da apli-
cação original.
• Alta transparência: o ataque modifica muito pouco ou nada da forma normal
esperada da aplicação original.
Essa classificação indica basicamente quão simples (ou quãocomplicado) é a de-
tecção pelo usuário de que este está sendo atacado num dado instante. Quanto mais
transparente um ataque, mais complexa é sua detecção pelo usuário.
Esse item é utilizado apenas para ataques de captura de dados, não sendo relevante
para os ataques com o objetivo de instalação.
2.7 Ataques mais relevantes
O estudo de todos os tipos de ataques a clientes é extremamente extenso e foge
do escopo deste trabalho. Aqui, decidimos estudar a fundo alguns dos mais relevantes
ataques, a saber:
• Trojans
• Links falsos
• Exploração de vulnerabilidades
• Keyloggers
• Telas falsas
• Ataque de redirecionamento
• Ataque à máquina virtualJava
2.7 Ataques mais relevantes 32
O motivo principal da escolha desses ataques é que, com exceção do último, esses
são hoje os ataques mais freqüentes realizados a sistemas deInternet Banking(CERT,
2005). Além disso, esses ataques são também muito efetivos hoje na captura dos da-
dos do cliente. Também é relevante o fato de esses ataques serem tecnicamente mais
simples, o que aumenta bastante sua atratividade para os atacantes.
O ataque à máquina virtualJava foi também selecionado, pois utiliza uma nova
técnica de captura que será explicada mais à frente. Essa nova técnica é extremamente
poderosa e pode potencialmente ser utilizada para investircontra outros tipos de má-
quinas virtuais. Além disso, o ambienteJavaé muito utilizado hoje por instituições
durante o processo de autenticação de seus usuários, e é exatamente nesse ponto que
os atacantes irão atacar para capturar os dados do cliente.
33
3 CENÁRIO CLIENTE/SERVIDOR
3.1 Preocupações atuais com segurança: Servidor
Neste capítulo apresentaremos resumidamente algumas preocupações atuais com
segurança no ambiente cliente-servidor. Citaremos algumasproteções usadas princi-
palmente no lado servidor e especificaremos em que ponto se encontra a proteção dos
clientes.
3.1.1 SSL
As preocupações com a confidencialidade das informações trafegadas pelaInter-
net vem de velha data. OSSL(Secure Sockets Layer) é um protocolo desenvolvido
pelaNetscapepara transmissão de documentos pelaInternet. Esse protocolo utiliza
em conjunto criptografia de chave simétrica e criptografia dechave assimétrica para
garantir a integridade e confidencialidade, fim a fim, dos dados transportados.
O SSLé muito utilizado por páginas que obtêm informações confidenciais de cli-
entes, como número de cartões de crédito ou senhas deInternet Banking. Atualmente
a utilização deSSLé quase obrigatória em todos os serviços que exijam confidenciali-
dade nas informações transmitidas.
Como já foi dito, oSSLgarante a comunicação fim a fim. Apesar disso, na versão
2.0 doSSL(a mais amplamente utilizada atualmente) não existe identificação do cliente
perante o servidor, ou seja, apesar de o cliente conseguir validar a autenticidade do
3.1 Preocupações atuais com segurança: Servidor 34
servidor, o contrário não é verdade. Além disso, oSSLsó protege os dados a partir
do momento em que são enviados pelo navegador através da rede, sendo que entre a
digitação e o momento do envio, os dados permanecem em claro.
3.1.2 IDS
Para evitar ataques ou invasões de sistemas, foram criados os chamadosIDS (In-
trusion Detection System). O trabalho desse sistema é inspecionar toda a atividade da
rede (tanto os dados de entrada quanto os dados de saída) e identificar padrões sus-
peitos que possam indicar a ocorrência de um ataque. Os sistemas deIDS podem ser
classificados como:
• Detecção por ataques conhecidos ou por anomalia: No primeiro caso, oIDS
possui uma base de dados de ataques conhecidos, e portanto consegue procurar
dentro do tráfego de rede ataques semelhantes aos cadastrados, representando
um sistema semelhante a um antivírus. No segundo caso (detecção por anoma-
lia), o sistema passa um tempo em modo aprendizado, em que deve aprender
qual o comportamento normal daquela rede. Depois de um certotempo, o sis-
tema consegue detectar anomalias na rede a partir da base de dados criada.
• Baseado em rede ou emhost: IDS baseados em rede monitoram cada pacote de
comunicação individualmente.IDSbaseados emhostmonitoram a atividade em
cada máquina individualmente.
• Passivo ou reativo:IDSpassivos, ao detectar um possível ataque, gravam a infor-
mação e ativam algum tipo de alerta. Em um sistema reativo, o sistema deIDS
exerce uma ação no caso de uma anomalia, como, por exemplo, derrubar algum
usuário ou passar a bloquear todos os pacotes vindos do endereço suspeito.
Sistemas de detecção de intrusão são muito importantes parao ambiente servidor,
pois evitam ataques que poderiam provavelmente derrubar umsistema inteiro. Mesmo
3.1 Preocupações atuais com segurança: Servidor 35
assim, esses sistemas só são interessantes para o ambiente servidor, sendo inviável a
sua instalação em clientes individuais.
3.1.3 Firewall
O objetivo de umafirewall é prevenir acesso não autorizado a uma rede privada.
Firewallspodem ser implementadas tanto emsoftwarequanto emhardware, ou mesmo
em uma combinação dos dois. O objetivo mais comum de umafirewall é impedir
que usuários não autorizados daInternet acessem redes privadas (intranets). Uma
firewall pode, por exemplo, filtrar os pacotes de uma rede, examinandopacote por
pacote entrando ou saindo, podendo então aceitar ou rejeitar o tráfego baseado em
regras definidas pelo usuário. Os sistemas defirewall são considerados a primeira
linha de defesa na proteção de redes privadas.
Apesar de relacionados com segurança de redes, umIDSdifere de umafirewall no
sentido que afirewall limita o acesso de usuários para prevenir intrusões, além denão
proteger contra ataques internos da rede. UmIDS, por sua vez, verifica uma possível
intrusão depois que ela já ocorreu, e sinaliza algum alarme.Um IDS também pode
detectar ataques oriundos da rede interna.
3.1.4 Atualizações de segurança
Novas vulnerabilidades de segurança são encontradas em todos os tipos de produ-
tos a cada dia. Só em abril de 2005, foram lançados vinte atualizações de segurança
pelaMicrosoftpara corrigir falhas encontradas em seus produtos. Apesar de o número
de falhas de segurança em produtos tender a diminuir, elas sempre existirão e portanto
serão exploradas por atacantes.
A instalação de atualizações críticas de segurança deveriaocorrer com freqüência,
mas para a maioria dos clientes isso não ocorre. Seja por meroesquecimento, seja
pelo número elevado de atualizações de segurança ou qualquer outro motivo, usuários
3.2 Preocupações atuais com segurança: Cliente 36
comuns normalmente não aplicam essas correções em suas máquinas, ficando assim
vulneráveis a ataques já conhecidos e corrigidos.
Dois exemplos impressionantes podem ser dados para ilustrar essa situação: o
worm Sassere oworm Blaster. OBlasterexplora a vulnerabilidade deDCOMdoRPC
no Windows 2000. A Microsoft estima que pelo menos 8 milhões de computadores
comWindowsforam infectados peloBlaster. Já oSasserexplora uma vulnerabilidade
mais recente noWindows, espalhando-se de máquina em máquina sem a intervenção
do usuário. AMicrosoft reportou que mais de 1.5 milhões de clientes baixaram o
programa de remoção doSassernos primeiros dois dias após sua disponibilização.
Até hoje, mesmo após meses da liberação dopatch de correção pelaMicrosoft, se
um usuário conectar um micro semfirewall e sem as atualizações críticas naInternet,
é quase certo que após alguns minutos sua máquina será infectada por algum desses
wormscitados.
3.2 Preocupações atuais com segurança: Cliente
Atualmente, a preocupação de segurança com o cliente ainda émuito pequena.
Apesar de a segurança dos servidores daInternetnormalmente já estar bem evoluída
e consolidada, o lado cliente permanece esquecido. De qualquer maneira, já existem
algumas poucas investidas na tentativa de proteção ao cliente, principalmente em pá-
ginas deInternet Banking.
37
4 MÉTODOS DE ATAQUE AO CLIENTE
4.1 Resumo
Neste capítulo serão apresentados os ataques mais relevantes realizados contra a
máquina do cliente. Cada ataque será classificado conforme a metodologia estabe-
lecida em capítulos anteriores. Também será apresentada uma explicação técnica da
implementação de cada um dos ataques. As propostas de defesapara esses ataques
serão apresentadas no Capítulo5.
4.2 Advertência ética
As informações sobre os métodos de ataque estão aqui apresentadas somente para
fins didáticos. Não é o intuito deste trabalho ensinar como sepode atacar um sistema
transacional. O objetivo aqui é apresentar de forma resumida os ataques mais conhe-
cidos, tornando mais simples a implementação de suas respectivas defesas. É sempre
necessário entender como podemos ser atacados antes de tentarmos nos defender.
4.3 Modo de instalação
Nesta seção são apresentados alguns exemplos de ataques quetêm como objetivo
a instalação de um programa malicioso na máquina do cliente sem que este perceba.
4.3 Modo de instalação 38
4.3.1 Trojans
Na tabela4.1, apresentamos a classificação do ataquetrojansconforme a taxono-
mia criada. Nesse caso, o item “transparência” não foi apresentado, pois só se aplica
para métodos diretos de ataque (e não para métodos de instalação).
TrojansTipo parcialObjetivo instalaçãoLocal aplicativo de sistema (e-mail)Vulnerabilidade inexperiênciaComplexidade simples
Tabela 4.1: Classificação do ataquetrojans.
Inicialmente, vamos definir o que é umtrojan (ou cavalo de Tróia).Trojanssão
programas malignos disfarçados de programas benignos. Otrojan se utiliza da igno-
rância, curiosidade ou falta de informação do cliente para conseguir se instalar em sua
máquina (AARONSON, 2005). A partir do momento em que otrojan consegue se ins-
talar no sistema, ele passa a ter total controle sobre a máquina e pode então monitorar
todas as atividades do usuário.1
Atualmente, o modo mais comum de instalação de umtrojan é a partir dee-mails.
O método é o seguinte: o atacante monta ume-mailque incita a curiosidade ou atenção
do cliente. Essee-mail é fabricado de forma a induzir o cliente a, inadvertidamente,
instalar otrojan em sua máquina.
Na Figura4.1, o atacante tenta se utilizar da curiosidade do usuário paraque este
clique nolink esperando fotos interessantes, quando na verdade olink leva a um exe-
cutável que instalará umtrojan na máquina desse usuário.
1Para simplificação da terminologia, o nometrojan será também utilizado neste trabalho para refe-renciar genericamente qualquersoftwaremalicioso instalado localmente na máquina do cliente
4.3 Modo de instalação 39
Figura 4.1: Exemplo de e-mail contendotrojan.
Outros exemplos dee-mailscontendotrojanspodem ser vistos no Apêndice, nas
FigurasA.1, A.2, A.3 e A.4. Todos essese-mailslá apresentados são reais e foram
recebidos sem nenhuma autorização prévia. Pode não parecer, mas todos eles são
falsos e levam à baixa de umtrojan.
Depois de instalado, otrojan utilizará uma das técnicas descritas na seção4.4para
capturar as informações do usuário. Após isso, os dados capturados serão enviados
a algum servidor, provavelmente porFTP (File Transfer Protocol), HTTP (Hypertext
Transfer Protocol) ou SMTP(Simple Mail Transfer Protocol), onde o atacante poderá
coletá-los.
Além do uso doe-mail como veículo de transmissão dotrojan, outros métodos
4.4 Modo de captura 40
ainda podem ser usados. Um exemplo seria anexar otrojan a algum programa lícito,
como jogos ou aplicativos de transmissão de arquivos (pear to pear).
4.3.2 Vulnerabilidades
Na tabela4.2, apresentamos a classificação do ataque vulnerabilidades conforme
a taxonomia criada. Nesse caso, o item “transparência” não foi apresentado, pois só se
aplica para métodos diretos de ataque (e não para métodos de instalação).
VulnerabilidadesTipo parcialObjetivo instalaçãoLocal sistema operacionalVulnerabilidade erros de implementaçãoComplexidade média
Tabela 4.2: Classificação do ataque vulnerabilidades.
Como já foi citado em seções anteriores (3.1.4), a exploração de vulnerabilidades
do sistema operacional e aplicativos é um modo comum para instalação desoftwarede
forma ilícita na máquina do cliente. Como explicado para osworms Sassere Blaster,
um aplicativo malicioso pode explorar essas vulnerabilidades para instalar um remota-
mentetrojan na máquina da vítima.
Atualmente, esse método ainda não é muito utilizado para a instalação detrojans
específicos para ataques, provavelmente pela complexidadetécnica em sua execução.
4.4 Modo de captura
Nesta seção serão apresentados algum métodos mais comuns para executar a cap-
tura das informações críticas de clientes. As possíveis defesas contra esses ataques
serão apresentadas no Capítulo5.
4.4 Modo de captura 41
4.4.1 Links falsos
Na tabela4.3, apresentamos a classificação do ataqueLinks falsos conforme a
taxonomia criada.
Links falsosTipo completoObjetivo fraudeLocal aplicativo de sistema (e-mail)Vulnerabilidade vulnerabilidade de especificação e inexperiência do usuárioComplexidade simplesTransparência baixa
Tabela 4.3: Classificação do ataquelinks falsos.
Outra maneira muito comum de ataque ao cliente é o envio dee-mailsem nome de
alguma instituição transacional, contendo umlink para umsitefalso muito semelhante
ao da instituição real. Oe-mailnormalmente contém alguma informação sobre débitos
a sanar, ou mesmo sobre promoções mirabolantes da instituição. Ao clicar nolink den-
tro doe-mail, o usuário é levado a umsitefalso onde serão pedidos seus dados críticos,
como agência, conta e senhas. Ao final, osite falso pode simplesmente apresentar um
erro ou mesmo redirecionar o usuário aositeverdadeiro, tornando assim o ataque mais
transparente.
4.4.2 Keyloggers
Na tabela4.4, apresentamos a classificação do ataqueKeyloggersconforme a ta-
xonomia criada.
Keyloggerssão programas que capturam os dados provindos do teclado,mousee
tela. A maioria doskeyloggerscapturam tudo o que é digitado pelo cliente durante
seu acesso a algumsite de Internet Banking. Além disso, com o número crescente
de bancos utilizando teclados virtuais para realizar a autenticação de seus usuários, os
keyloggerstambém são projetados para capturar pedaços de tela ao redordo cursor do
4.4 Modo de captura 42
KeyloggersTipo parcialObjetivo capturaLocal sistema operacionalVulnerabilidade vulnerabilidade de especificação
Complexidade
Hooks médiaFunções estáticas média
Captura de campos médiaDrivers alta
DLL injection altaTransparência alta
Tabela 4.4: Classificação do ataquekeyloggers.
mousedurante oscliques, sendo assim possível a recuperação da senha do cliente.
A seguir são expostos alguns possíveis métodos de captura deteclas ecliques,
focando em sistema operacionalWindows.
4.4.2.1 Hooks
Hooks(ganchos) do sistema operacional podem ser utilizados tanto para a cap-
tura demousequanto para a captura de teclado. Em termos técnicos, oshookssão
pontos dentro do sistema de tratamento de mensagens doWindows(MSDN, 2005) em
que um aplicativo pode instalar uma sub-rotina para monitorar o tráfego de mensagens
no sistema ou processar certos tipos de mensagens antes de estas chegarem à sua ja-
nela destino. Em termos mais simples: a comunicação de eventos entre processos do
sistema operacionalWindows(por exemplo, um clique em um botão, a digitação de
uma tecla, o fechamento de uma janela) funciona por meio de troca de mensagens.
Quando um usuário clica no botãoOK de uma aplicação, o sistema operacional envia
uma mensagem para aquela aplicação avisando o evento do clique. A aplicação recebe
então essa mensagem e a trata conforme necessário.Hookssão pontos intermediários
que um aplicativo pode registrar junto ao sistema operacional para receber algum tipo
de mensagem antes que ela seja entregue à janela correta.
4.4 Modo de captura 43
O mesmo tipo dehookpode ser registrado por várias aplicações diferentes. Nesse
caso, o sistema operacional passa a mensagem para o primeirohookna fila, que, por
sua vez, deve repassá-lo para o segundohook, e assim por diante, conforme a Fi-
gura4.2, onde se pode verificar também que ohookfica alojado entre o sistema ope-
racional e a aplicação final que receberá a tecla.
Figura 4.2: Hooks: caminho percorrido por uma tecla.
Dentro de uma rotina dehook, o sistema operacional repassa alguns parâmetros
importantes, como as coordenadas do clique domouse. Nesse instante, fica simples
realizar a captura desse clique. Por exemplo, caso o usuárioesteja clicando em um
teclado virtual para a entrada de sua senha no banco, a rotinadehookpoderia utilizar
as coordenadas do clique para tirar uma foto do pedaço da telaonde ocorreu o clique,
roubando assim a senha do usuário, conforme Figura4.3 (teclado virtual extraído de
(SMARTLINK , 2005)).
É interessante notar que nesse momento a janela final que efetivamente recebeu
4.4 Modo de captura 44
(a) Teclado virtual para entrada de dados (b) Tela capturada ao clicar na letrai
Figura 4.3: Exemplo de captura de clique demouseutilizandohooks
o clique domouseainda não está a par desse clique, pois a rotina dehook recebe a
mensagem antes de essa ser processada. Portanto, métodos deproteção amplamente
utilizados, como, por exemplo, sumir com os números do teclado virtual no momento
do clique, não protegem contra esse método de captura.
Existem vários tipos dehookque podem ser utilizados para captura de teclas digi-
tadas ou para captura decliquesdemouse, todos baseados no processo descrito anteri-
ormente: monitoração de mensagens enviadas e recebidas porjanelas.
A disponibilização de uma ferramenta como oshookspode ser considerada uma
grave falha na especificação do próprio sistema operacional. Apesar de o mecanismo
dehooksser bastante utilizado por aplicações lícitas, sua concepção leva a crer que o
quesito segurança foi deixado de lado durante seu desenvolvimento. Oshookstornam
extremamente simples a monitoração completa de todas as mensagens trocadas na má-
quina do usuário, e não existe nenhuma maneira de desabilitar esse comportamento.
A simples existência de um mecanismo com essa funcionalidade já pode colocar em
risco a segurança do sistema.
4.4.2.2 Funções estáticas do teclado
Existem noWindowsfunções estáticas que podem ser usadas de forma assíncrona
para o obtenção do estado atual do teclado. Nessas funções deve-se passar um parâme-
tro que especifique o código virtual da tecla que está sendo consultada. Analisando o
retorno dessas funções, é possível saber se a tecla consultada está ou não pressionada
no momento da chamada. Umtrojan pode utilizar esse método para capturar todas
4.4 Modo de captura 45
as teclas digitadas pelo usuário, utilizando essas funçõesestáticas dentro de um laço,
passando por todas as teclas que interessarem. A Figura4.4apresenta de forma gráfica
o funcionamento assíncrono dessas funções.
Figura 4.4: Funções estáticas: caminho percorrido por uma tecla.
A grande vantagem da utilização de funções estáticas em vez das funções dehooké
a maneira assíncrona em que essas funções trabalham. Nas funções dehook, o processo
que recebia o clique domouseou a tecla digitada tinha que esperar a rotina dehook
executar para então poder receber a tecla. Isso podia afetara performance em sistemas
lentos ou carregados. Além disso, era necessário escrever uma rotina dehookexterna
para que essa pudesse funcionar de forma global para todos osprocessos. No caso das
funções estáticas, um simples executável com 15 linhas de código já é suficiente para
realizar a captura. Por outro lado, pela sua natureza assíncrona de captura, não se pode
garantir que otrojan que utiliza essa técnica não perca algumas teclas caso o usuário
4.4 Modo de captura 46
as digite muito rapidamente ou mesmo capture algumas teclasrepetidas caso o usuário
as pressione por muito tempo.
4.4.2.3 Captura de campos de texto
Apesar de não ser tecnicamente umkeylogger, a captura de campos de texto é
muito prática e difundida naInternet. Nesse caso, a idéia não é capturar o que o usuário
digita no momento em que está pressionando o teclado, mas simcapturar os dados
digitados quando já estiverem contidos num campo de texto doaplicativo destino. O
exemplo da Figura4.5mostra uma tela simples de um sistema qualquer que requisita
que o usuário digite sua senha:
Figura 4.5: Tela para entrada de senha
Durante a digitação, os caracteres não aparecem na tela, evidentemente para tentar
proteger a senha. Assim, caso umtrojan tire uma foto da tela nesse momento, ele não
conseguirá descobrir nada a não ser talvez o tamanho da senhado usuário.
Para esconder a senha, o sistema operacionalWindowsutiliza um truque simples
que nada mais é do que trocar o caractere digitado por um caractere fixo, chamado
dePASSWORDCHAR. Por padrão, oPASSWORDCHARutilizado é o asterisco. Caso
um outro aplicativo mande uma mensagem para essa janela pedindo o texto digitado
num campo do tipo senha, o sistema operacional sabe que não deve repassar nada e só
retorna uma mensagem em branco.
Para passar essa proteção, os aplicativos de captura de campos de texto enviam
uma mensagem para a janela-alvo pedindo para que essa troqueseuPASSWORDCHAR
para zero (o número 0). Ao receber essa mensagem, o comportamento-padrão de qual-
4.4 Modo de captura 47
quer janela é verificar que o parâmetro passado é zero e então desabilitar a proteção
da senha. Nesse momento, se o usuário digitar mais alguma coisa no campo, tudo
aparecerá em claro. Para evitar esse problema, os aplicativos de captura mandam logo
em seguida uma mensagem para o campo da senha pedindo o seu valor. Como agora
o PASSWORDCHARé zero, o sistema operacional não acha mais que aquele campo
é restrito, portanto ele repassa a senha completa para quem apedir. Para terminar, o
aplicativo de captura manda uma mensagem final para a janela-alvo pedindo para que
ela retorne seuPASSWORDCHARpara o asterisco. Assim, o usuário não percebe que
o aplicativo de captura conseguiu roubar a senha.
Existe um software muito conhecido e gratuito naInternet, chamadoSnad-
Boy (SNADBOY, 2000), que realiza o processo descrito para a captura de senhas. A
Figura4.6mostra a tela doSnadBoycapturando a senha de um aplicativo de teste.
Figura 4.6: Captura da senha do usuário
4.4.2.4 Drivers
Drivers fazem parte da camada mais baixa que liga ohardwareda máquina com o
sistema operacional. Numa instalação-padrão doWindows, driversde teclado emouse
já vêm instalados e configurados para que possamos utilizar de forma transparente es-
ses periféricos. Mas, internamente, existe uma complexa cadeia de eventos que ocor-
rem entre o bater de uma tecla e a chegada dessa tecla no aplicativo de destino.
O desenvolvimento dedrivers para Windows segue um modelo chamadoWDM
4.4 Modo de captura 48
(Windows Driver Model). Dentro desse modelo, umdriver pode ser construído con-
forme três tipos distintos:Bus drivers, Function Driverse Filter Drivers (ver Fi-
gura4.7)
Figura 4.7: Relação entre os vários tipos dedrivers.
• Bus Drivers: controlam uma via de entrada e saída e provêm funcionalidade para
cada placa conectada a essa via de forma transparente ao dispositivo conectado.
Exemplos:PCI, ISA, AGP
• Function Drivers: controlam um dispositivo específico. Exemplos:driver de
teclado ou demouse.
• Filter Drivers: filtram as requisições pendentes de entrada e saída para um dis-
positivo, uma classe de dispositivos ou mesmo uma via.
Como indicado na Figura4.7, o caminho normal que uma requisição de entrada
4.4 Modo de captura 49
e saída percorre desde sua geração até sua recepção pelo sistema operacional é o se-
guinte:
Bus Drivers→ Bus Filter Drivers→ Lower-level device filter drivers→ Lower-
level class filter drivers→ Function Driver→ Upper-level device filter drivers→
Upper-level class filter driver.
Todos osFilter drivers são opcionais nesse processo. A diferença entre umclass
filter driverse umdevice filter driveré que o primeiro filtra requisições de uma classe
de dispositivos (por exemplo, todos os discos rígidos da máquina) enquanto o segundo
filtra apenas requisições específicas para um dispositivo (por exemplo, um tecladoMi-
crosoftproprietário).
Um teclado normal possui internamente um micro controlador8042 que fica cons-
tantemente varrendo a matriz de linhas e colunas do teclado para verificar se alguma
tecla está pressionada (HYDE, 2003). Quando o usuário aperta uma tecla, o micro con-
trolador detecta e envia o chamadoscan codedessa tecla para o computador. Cada
scan coderepresenta uma tecla diferente do teclado. Também é gerado um scan code
diferente quando a tecla é liberada.
Quando osscan codeschegam ao computador, outro micro controlador realiza a
conversão dessesscan codespara a tecla respectiva, coloca o resultado na porta de
entrada e saída número 60h e então gera uma interrupção, deixando a cargo doISR
(Interrupt Service Request) tratar a tecla a partir desse momento.
Olhando num nível mais alto, o que chega para odriver instalado na máquina já
é o scan codecorretamente convertido. A partir desse momento, é função do driver
tratar essescan codee convertê-lo corretamente para a tecla sendo digitada. Esse
driver deve, por exemplo, verificar o tempo que uma tecla fica pressionada e gerar
a seqüência corretamente; verificar o pressionamento de teclas comoshift, caps-lock,
num-locke tratar o conjunto dessas teclas com o resto do teclado.
4.4 Modo de captura 50
Voltando agora à perspectiva de captura de teclado utilizandodrivers, um atacante
teria as seguintes alternativas:
• Reescrever odevice driver: seria teoricamente possível reescrever odevice dri-
ver de um teclado e substituí-lo na máquina atacada. Mas como a complexi-
dade técnica de umdriver de teclado é razoavelmente grande e como existe uma
grande variedade de layouts e tipos diferentes de teclados,essa opção acaba
sendo pouco prática.
• Escrever umfilter driver: aqui temos várias alternativas defilter drivers: lower-
level, upper-level, class filteroudevice filter. Em qualquer um dos casos, ofilter
driver espião poderia armazenar todas as teclas que passam por seu processa-
mento, e depois apenas repassa-las para o filtro de cima na cadeia, permitindo o
funcionamento correto do teclado da vítima.
O driver mais simples de ser escrito seria umupper-filter class driver. Ou seja, um
driver que é apenas um filtro (não há necessidade de tratar a mensagem), que ficaria
alocado acima dodriver de teclado da máquina (assim as teclas passando pelo filtro já
estariam corretamente tratadas) e que seria genérico para qualquer tipo de teclado (daí
o nomeclass driver).
A implementação de umdriver desse tipo não é de maneira nenhuma trivial. É
necessário trabalhar no nível dokernel (núcleo do sistema operacional) e é preciso
verificar todos os possíveis casos de erro, pois qualquer problema em umdriver pode
causar o travamento total da máquina. A Figura4.8mostra a localização de um possí-
vel filter driver espião dentro do caminho percorrido por uma tecla.
4.4.2.5 DLL Injection
A técnica deDLL injectionpode ser utilizada para diversos fins, benignos ou ma-
lignos. Vamos inicialmente tentar descrever tecnicamenteo queremos dizer porDLL
4.4 Modo de captura 51
Figura 4.8:Drivers: caminho percorrido por uma tecla.
Injection.
A idéia dessa técnica, como o nome já diz, é conseguir carregar umaDLL (Dyna-
mic Link Library) dentro de um processo-alvo. O objetivo é conseguir obter acesso à
memória do processo vítima, algo que um programa externo nãoconseguiria. Caso,
por exemplo, umtrojan tentasse ler algum valor residente na memória de um outro
processo, o sistema operacional detectaria uma violação dememória e finalizaria o
trojan. Por essa razão se faz necessário carregar aDLL atacante dentro da memória
do próprio processo vítima. Se isso for realizado com sucesso, essaDLL terá acesso a
toda a memória daquele processo.
A partir do ponto em que otrojan tenha conseguido injetar umaDLL dentro de um
processo-alvo, ele pode agora ler toda a memória do processo, pode acessar variáveis
internas, sobrescrever funções e muito mais. Otrojan pode, por exemplo, sobrescrever
4.4 Modo de captura 52
a rotina de tratamento de mensagens do aplicativo. Ele poderia assim monitorar todos
os eventos de teclado oumouseque chegam para a janela vítima. Para manter o fun-
cionamento da janela intacto, otrojan pode ainda repassar as mensagens para a rotina
de tratamento original após o seu processamento.
4.4.3 Telas falsas
Na tabela4.5, apresentamos a classificação do ataque Telas falsas conforme a ta-
xonomia criada.
Telas falsasTipo parcialObjetivo capturaLocal aplicativo de sistemaVulnerabilidade inexperiência do usuárioComplexidade simplesTransparência baixa
Tabela 4.5: Classificação do ataque telas falsas.
Um ataque muito comum que não envolve a captura de teclado é o de telas falsas.
O ataque basicamente tenta enganar o usuário mostrando uma tela muito semelhante
à dositeoficial, normalmente no momento em que o cliente está acessando o serviço
correto. Essas telas normalmente se sobrepõem à tela do navegador de forma a parecer
que fazem parte dositeoficial.
Essas telas falsas são altamente disseminadas principalmente pelo fato de sua im-
plementação ser bem mais simples que a implementação de umkeylogger. Apesar de
não ser totalmente transparente, esse tipo de ataque acaba sendo muito efetivo ou pela
pura ignorância do cliente, ou pela refinada implementação da tela falsa.
Nas Figuras4.10, 4.11e 4.12, apresentamos uma simulação de um ataque desse
tipo. A Figura4.9 apresenta osite oficial de um banco de teste, sem nenhuma mo-
dificação. Na Figura4.10, apresentamos um exemplo de tela falsa bem rudimentar
4.4 Modo de captura 53
Figura 4.9:Siteoficial do banco teste.
Figura 4.10: Tela falsa simples atacando um banco teste.
atacando diretamente osite do banco. Na Figura4.11, apresentamos uma tela falsa
um pouco mais refinada que tenta colocar sua tela exatamente em cima da tela origi-
nal, dando a impressão de que nada mudou. Na Figura4.12, apresentamos então uma
tela falsa mais sofisticada que se coloca de forma estratégica exatamente em cima do
campo de senha. Notamos que, mesmo sabendo da existência da tela falsa, é difícil
4.4 Modo de captura 54
descobrir exatamente em qual dos campos de senha a tela se colocou.
Figura 4.11: Tela falsa de média complexidade atacando o banco teste.
Figura 4.12: Tela falsa de maior complexidade atacando o banco teste.
Os ataques de telas falsas estão hoje extremamente disseminados. A complexi-
dade desse tipo de tela vem crescendo a cada dia. Até mesmo um usuário experiente
operando a máquina pode ter dúvidas quanto à legitimidade dosite. Sua detecção é
complexa, pois esse tipo de tela se assemelha muito a aplicativos comuns que a maioria
4.4 Modo de captura 55
dos usuários possui em suas máquinas.
4.4.4 Ataque de redirecionamento
Na tabela4.6, apresentamos a classificação do ataque de redirecionamento con-
forme a taxonomia criada.
Ataque de redirecionamentoAtaque ao servidorDNS Ataque local
Tipo completo parcialObjetivo captura capturaLocal sistema operacional (do servidor deDNS) sistema operacionalVulnerabilidade vulnerabilidade de implementação vulnerabilidade de especificaçãoComplexidade complexa simplesTransparência média média
Tabela 4.6: Classificação do ataque de redirecionamento.
Toda a comunicação na Internet se baseia no protocolo de redeIP (Internet Pro-
tocol). Esse protocolo estabelece um endereço único para cada máquina ligada à rede.
Sendo assim, quando um computador deseja se comunicar com outro, basta saber oIP
do destino e a mensagem será entregue corretamente.
Mas, como endereçosIP não são muito amigáveis para os olhos humanos, foi in-
ventada a técnica de resolução de nomes. Nessa técnica, o usuário final apresenta como
endereço não mais oIP do destino, mas sim o seu nome. Um servidor centralizado fica
responsável por manter uma tabela indicando qualIP pertence a qual nome. Assim,
para o usuário, a tradução entre nome eIP ocorre de forma transparente.
Na Internet, esse servidor de resolução de nomes (chamadosDNS- Domain Name
System) não é uma única máquina. Existem milhares de servidoresDNSespalhados
pela rede, cada um responsável por resolver o nome de alguns servidores específicos.
Por exemplo, um provedor de acesso àInternetpossui um servidorDNSpróprio que
será utilizado apenas por seus clientes.
4.4 Modo de captura 56
Como também é impossível um único servidor deDNSarmazenar todos os no-
mes eIPsexistentes naInternet, esses servidores funcionam dentro de uma hierarquia
vertical. Caso um servidor não conheça um nome específico, elepode perguntar ao
servidorDNSpai se este o conhece, e assim por diante, até que alguém consiga resol-
ver o nome. Por exemplo, quando o usuário digita em seu navegador aURL (Uniform
Resource Locator) www.bancoXXXX.com.br, inicialmente essa requisição será enca-
minhada para oDNS do provedor de acesso desse usuário. Caso esse servidor não
consiga resolver esse nome, ele poderá encaminhar a pergunta para o servidorDNSdo
Banco XXXX.
Aplicando esses conhecimentos, podemos enumerar três possíveis ataques:
1. Ataque direto ao servidor deDNS: caso um atacante consiga acesso privilegiado
a um servidorDNS (provavelmente através da exploração de vulnerabilidades
desse servidor), esse pode modificar as tabelas de resoluçãode nome do próprio
servidor para modificar oIP resolvido para um nome específico. Ou seja, o
atacante pode modificar oIP para qual o nomewww.bancoXXXX.com.brserá
resolvido. EsseIP poderia conter umsite falso, idêntico aositeoficial. Assim
o atacante conseguiria capturar os dados do cliente de formaquase transparente.
Note que esse ataque afetaria todos os clientes que utilizamo servidorDNS
atacado. Além disso, não é necessária a instalação de nenhumtipo detrojan no
cliente atacado. Ou seja, mesmo clientes com sua segurança local intacta podem
estar suscetíveis a esse tipo de ataque.
2. Ataque ao sistema de resolução de nomes da própria máquina dousuário: exis-
tem, dentro do sistema operacionalWindows, alguns módulos e arquivos de con-
figuração que podem armazenar localmente tabelas de resolução de nomes. Du-
rante uma requisição de resolução de nome, o sistema operacional verifica dentro
desses arquivos de configuração se esse nome já não se encontra resolvido. Isso
é feito antes da requisição ser encaminhada para o servidorDNS. Um desses ar-
4.4 Modo de captura 57
quivos de configuração se chamahosts, e nada mais é do que um arquivo texto
contendoIPse respectivos nomes. Segue abaixo um exemplo desse arquivo:
127.0.0.1 localhost
192.168.1.2 www.acme.com.br
Dado que o atacante conseguiu instalar umtrojan localmente na máquina da
vítima, esse poderia inserir uma linha nesse arquivo, impedindo assim que o
sistema consulte o servidorDNSpara a obtenção doIP correto.
127.0.0.1 localhost
192.168.1.2 www.acme.com.br
1.2.3.4 www.bancoXXXX.com.br
Com o arquivohostsconfigurado conforme o código acima, no momento em
que o cliente digitarwww.bancoXXXX.com.br, o sistema automaticamente o re-
direcionará para oIP 1.2.3.4sem nem mesmo consultar o servidorDNS. O lugar
referente a esse endereçoIP poderia conter umsitefalso, semelhante aositeofi-
cial, onde o atacante capturaria as informações criticas docliente. Novamente,
esse ataque pode ser realizado de forma quase transparente para o usuário.
3. Troca deURL no navegador do cliente: esse método de ataque é semelhante
ao anterior, no sentido de que otrojan deve primeiro conseguir se instalar na
máquina do cliente antes de continuar com o ataque. Mas, nesse ataque, não há
modificação nenhuma nos arquivos de configuração do sistema operacional. O
ataque ocorre da seguinte forma:
• O trojan fica escondido, monitorando todas asURLsque o navegador do
usuário acessa.
• Quando o usuário acessar aURL a ser atacada (por exemplo,
www.bancoXXXX.com.br), o trojan redireciona o navegador para uma pá-
gina localmente instalada na própria máquina do cliente. Essa página, que
4.4 Modo de captura 58
provavelmente foi trazida junto com otrojan, é bem semelhante à do banco
sendo atacado.
• Depois que o usuário digita seus dados críticos dentro da página falsa, o
trojan redireciona o cliente novamente para ositeoriginal, tornando assim
o ataque quase transparente.
4.4.5 Ataque à máquina virtualJava
Na tabela4.7, apresentamos a classificação do ataque à máquina virtualJavacon-
forme a taxonomia criada.
Ataque à máquina virtual JavaTipo parcialObjetivo capturaLocal aplicativo geraisVulnerabilidade vulnerabilidade de especificaçãoComplexidade médiaTransparência alta
Tabela 4.7: Classificação do ataque à máquina virtualJava.
A máquina virtualJavaatua como uma camada entre o sistema operacional e os
aplicativosJava. A utilização da máquina virtualJavaé especialmente útil por dois
motivos:
1. O mesmo códigoJavapode ser executado em diferentes plataformas, desde que
exista uma máquina virtualJavacompatível naquele ambiente.
2. A máquina virtualJava tem o poder de controlar completamente o código que
ela executa.
Em termos de segurança, o segundo item citado é o mais importante. Essa funcio-
nalidade de isolamento e restrição de aplicativos em execução é chamada desandbox.
A máquina virtualJavasempre executa aplicativos não confiáveis dentro dasandbox.
4.4 Modo de captura 59
O programa em si pode tentar executar o que bem desejar, mas todas as suas operações
estarão limitadas pelasandbox. AplicativosJavaem execução dentro dasandboxnão
podem realizar as seguintes ações:
• Ler ou escrever arquivos do disco
• Estabelecer conexões através de uma rede
• Criar novos processos
• Carregar dinamicamente novas bibliotecas
• Chamar funções nativas do sistema operacional
Evitando que códigos não confiáveis executem essas operações, o modelo de segu-
rança doJavaprotege o usuário local contra programas maliciosos. Dentro do modelo
de segurança doJava, existe uma classe especialmente importante chamadaSecurity
Manager. O papel doSecurity Manageré controlar quem pode realizar certas opera-
ções. Quando um aplicativoJavatenta utilizar uma função mais perigosa (uma função
que potencialmente poderia levar a um ataque), como por exemplo, uma função de
acesso a disco, a própriaAPI (Application Programming Interface) Javaem execução
pergunta aoSecurity Managerse esse processo pode ou não realizar essa ação. Se
o Security Managerverificar que essa operação não é permitida, ele emite um erroe
a execução dessa função é abortada. Toda a lógica de bloqueiorealizada pelosand-
boxestá implementada dentro da classeSecurity Manager. Essa classe está embutida
dentro das próprias bibliotecas derun-timedoJava.
O ataque descrito a seguir serve como exemplo para demonstrar como é possí-
vel modificar arbitrariamente o comportamento da máquina virtual Java. Os passos
necessários para realizar o ataque são os seguintes:
1. Abrir a biblioteca derun-time do Java (que nada mais é do que um arquivo
compactado) que contém a classeSecurity Manager
4.4 Modo de captura 60
2. Descompilar a classeSecurity Manager
3. Modificar a classeSecurity Manager, retirando algumas validações
4. Recompilar a classeSecurity Manager
5. Compactar novamente a biblioteca derun-timedoJava
6. Substituir a biblioteca derun-timedoJavapela adulterada
Durante o passo 3, podemos retirar alguma verificação de proteção doSecurity
Manager, quebrando osandboxe possibilitando assim que aplicativosJavapossam se
comportar de maneiras anteriormente não permitidas.
O ataque descrito acima pode ser aplicado diretamente para captura de dados críti-
cos de clientes. Muitas páginas deInternet Bankinge comércio eletrônico utilizam os
chamadosapplets de autenticação. Essesappletstêm como objetivo melhorar a segu-
rança do cliente durante seu processo de autenticação. Exemplos dessesappletssão:
appletspara entrada de senhas; teclados virtuais;appletsde criptografia;appletsque
implementam autenticação utilizando certificação digital; appletsque implementam
autenticação por biometria; entre muitos outros possíveis.
Utilizando o ataque descrito, umtrojan localmente instalado na máquina do cliente
pode criar uma maneira relativamente simples e multiplataforma para capturar dados
de usuários. Para atacar umapplet de entrada de senha, otrojan poderia substituir
a classe que recebe a senha do cliente. A nova classe poderia armazenar a senha do
cliente em disco e depois repassar a senha para a classe original, mantendo assim o
ataque totalmente transparente. Paraappletsde criptografia, otrojan poderia trocar
a própria classe que implementa a cifra criptográfica, armazenado a senha em aberto
antes de essa ser encriptada. Para agilizar esse processo, otrojan poderia vir já com as
classes a serem trocadas pré-compiladas. Isso tornaria o ataque mais rápido e prático.
4.5 Considerações finais 61
O ponto forte desse ataque é sua forma totalmente transparente de execução.
Mesmo usuários experientes utilizando a máquina infectadaterão dificuldade em notar
alguma diferença no processo de autenticação.
4.5 Considerações finais
Os ataques aqui apresentados não precisam necessariamenteser utilizados de
forma isolada. É sempre possível, e talvez até mais efetivo,juntar dois ou mais ataques
para torná-los mais fortes. Por exemplo, umkeyloggerpode utilizar a técnica dehooks
junto com a técnica deDLL Injection, tornando assim mais efetiva sua captura dos
dados críticos.
62
5 MÉTODOS DE PROTEÇÃO AO CLIENTE
5.1 Resumo
Neste capítulo são apresentadas as possíveis defesas que devem proteger os clien-
tes dos ataques explicados anteriormente. Para cada técnica de proteção descrita, será
explicado exatamente qual ataque está sendo inibido e quaisas vantagens e desvanta-
gens do uso dessa proteção.
5.2 Considerações iniciais
Não é um trabalho simples tentar defender o cliente dos ataques citados nas seções
precedentes. Como a máquina do cliente está fora do controle da instituição que opera
o sistema transacional, é difícil poder contar com qualquertipo de premissa de segu-
rança nesse ambiente. A máquina do cliente é um campo de batalha desconhecido.
Alguns clientes podem cuidar bem de sua segurança, instalando sistemas de antivírus
efirewalls, enquanto outros podem simplesmente usar o computador exatamente como
ele veio de fábrica.
A criação de umsoftwarea ser executado em um ambiente tão inóspito deve ser
feita com extremo cuidado.
Nos próximos capítulos, o nomemódulo de segurançaserá utilizado para referen-
ciar umsoftwareinstalado localmente na máquina do cliente e que tem como objetivo
bloquear a ação dos atacantes. Esse módulo de segurança podeser também um con-
5.2 Considerações iniciais 63
junto desoftwares, incluindo a configuração adequada de cada um deles.
A instalação local de umsoftwarena máquina do cliente traz consigo sérias ques-
tões de segurança e privacidade. Como um usuário pode estar seguro de que esse
módulo de segurança faz somente o que ele se propõe a fazer? Como garantir que esse
módulo seja originário de uma instituição idônea? Como garantir que a privacidade
do cliente não estará sendo invadida com essesoftwareque pode possivelmente estar
realizando qualquer tipo de monitoração em sua máquina?
A instalação local desse módulo de segurança pode acostumaro cliente mais leigo
a aceitar qualquer tipo de instalação desoftwareem sua máquina. A propaganda da
instalação desse módulo de segurança pode até ser usada portrojans como fonte de
material para realizar umspammais direcionado, ou seja, umtrojan poderia vir disfar-
çado tentando se passar pelo módulo de segurança.
Todas essas questões são mais políticas do que técnicas. As respostas para essas
perguntas fazem parte de um escopo mais global de aquisição de conhecimentos e
conscientização dos clientes quanto à navegação segura e segurança naInternet. Neste
capítulo nos limitaremos a tratar dos aspectos mais técnicos referentes aos ataques e
proteções possíveis. Os tópicos referentes às perguntas acima serão tratados em maior
detalhe no Capítulo6.
5.2.1 Batalhas em uma guerra injusta
A batalha que ocorre na máquina do cliente entre atacantes e os programas de
proteção é extremamente injusta. A proteção sempre foi maiscomplexa que o ataque,
mas nesse caso específico a diferença é ainda maior. Abaixo seguem alguns cuidados
que umsoftwarede proteção deve ter, mas com os quais umsoftwaremalicioso não
precisa necessariamente se preocupar.
• Compatibilidade: como o ambiente de máquinas de clientes é normalmente
5.2 Considerações iniciais 64
muito heterogêneo, umsoftwarede proteção deve estar preparado para funci-
onar perfeitamente em todos esses ambientes. Em nenhum momento osoftware
pode apresentar um erro, ou ainda impossibilitar o cliente de exercer alguma
função em sua máquina. Os programas maliciosos não têm necessariamente
essa preocupação. Um atacante pode confeccionar umtrojan que seja efetivo
somente em um sistema operacional especifico. Clientes que possuam outro sis-
tema operacional não serão afetados. Otrojan pode até mostrar um erro na tela
ao ser instalado nesses outros sistemas operacionais, poiso atacante não precisa
se preocupar com possíveis reclamações de clientes. Além disso, se otrojan não
foi muito bem testado e causar um erro grave em algumas situações, novamente
o atacante não precisa se preocupar com isso. Desde que otrojan tenha bons
resultados em um número razoável de máquinas, o ataque já será bem-sucedido.
• Consumo de recursos: muitas vezes, programas maliciosos baixam e enviam
grande quantidade de dados pelaInternet, consomem grande quantidade deCPU
(Central Processing Unit), memória e até espaço em disco. Umtrojan pode
baixar muitosmegabytesdaInternetsem encontrar problemas. O cliente poderá
até notar que sua conexão está mais lenta, mas mesmo assim elenão terá para
quem reclamar. Muitas vezes, para realizar a captura de teclado do cliente, um
keyloggerpode consumir quase toda aCPU da máquina para garantir que não
irá perder nenhuma tecla. Um programa de proteção não pode fazer nada do
gênero. Um programa de proteção não pode esgotar os recursosda máquina do
cliente, não pode deixar a máquina sobrecarregada e não podedeixar a conexão
com aInternetlenta.
• Identificação do oponente: existem hoje milhares de variantes de programas ma-
liciosos naInternet. O crescimento detrojans está cada vez mais se aproxi-
mando do crescimento de vírus: a cada dia surge um novo. Para um programa
de proteção, é difícil identificar na máquina do cliente quais processos são ma-
5.2 Considerações iniciais 65
liciosos e quais não são. Como um antivírus, esse sistema de proteção terá que
ser constantemente atualizado para tentar manter um nível razoável de proteção.
Por outro lado, umtrojan que ataca uma instituição especifica sabe exatamente
qual o programa de proteção que aquela instituição utiliza.Muitas vezes, os ata-
cantes podem até ser clientes dessa instituição. Dessa maneira, o atacante sabe
qual programa estará executando na máquina do cliente que tentará bloquear seu
acesso. Sendo assim, o atacante tentará provavelmente desinstalar osoftwarede
segurança antes de realizar seu ataque.
• Distribuição: realizar a distribuição em larga escala de umsoftwarede prote-
ção não é tarefa fácil. Clientes muitas vezes podem estranharque a instituição
está querendo instalar umsoftwareem sua máquina. Clientes irão reclamar, ligar
para centrais de atendimento, mandare-mails, e muito mais. E a cada atualização
do software(que com certeza será necessária e freqüente), o cliente novamente
será atrapalhado e advertido. Por outro lado, por mais incrível que pareça, a
distribuição de programas maliciosos é extremamente simples. Caso o atacante
queira distribuir um novo tipo detrojan, ele só tem que criar ume-mailchama-
tivo, colocar umlink nessee-mail para otrojan, e enviá-lo para o máximo de
pessoas possível. Obviamente, muitas das pessoas que receberem essee-mail
irão ignorá-lo, mas os poucos que abrirem e executarem otrojans já estarão in-
fectados. Se posteriormente o atacante resolver mudar de alguma maneira o seu
mecanismo de ataque, basta o envio de outroe-mail. O atacante não almeja que
todos os clientes instalem seusoftware. O atacante não se preocupa com os cli-
entes que irão reclamar doe-mail recebido. Para o atacante, basta que alguns
instalem otrojan que o ataque já será bem-sucedido.
5.2 Considerações iniciais 66
5.2.2 Prevenindo a desinstalação
Como dito anteriormente, caso alguma instituição operadorade um sistema tran-
sacional deseje disponibilizar umsoftwarede proteção para seus clientes, um dos pri-
meiros problemas a serem tratados será a prevenção da desinstalação desse módulo.
Da mesma maneira que muitos vírus tentam desabilitar sistemas conhecidos de anti-
vírus, trojans tentarão desinstalar esse novo módulo de proteção. Normalmente, é até
mais fácil desinstalar um sistema de proteção do que tentar ultrapassar suas proteções.
Inicialmente vamos definir o que é uma desinstalação: basicamente, umtrojan será
bem-sucedido em desinstalar um sistema de proteção se conseguir de alguma maneira
fazer que este pare de executar seus mecanismos de proteção,seja imediatamente ou
mesmo numa próxima sessão (como por exemplo, na próxima reinicialização da má-
quina). De maneira prática, para realizar a desinstalação de um módulo de segurança
um trojan poderá tentar:
1. Apagar os arquivos pertencentes ao módulo
2. Apagar as chamadas de inicialização do módulo (como chaves no registry)
3. Desconfigurar o módulo
Prevenir a desinstalação nada mais é do que impedir que umtrojan realize os
passos acima. Mas essa tarefa é mais árdua do que parece.
Do ponto de vista técnico, existem várias maneiras que um programa pode usar
para tentar prevenir sua desinstalação. É inviável listar extensivamente todos esses
métodos, portanto foram escolhidos apenas os mais simples para apresentar somente a
idéia de prevenção de desinstalação. Esses métodos são:
• Manter os arquivos importantes do módulo sempre em uso, fazendo com que o
próprio sistema operacional impeça a sua remoção.
5.2 Considerações iniciais 67
• Utilizar a técnica de injeção deDLL para anexar asDLLs importantes em proces-
sos de sistema, impedindo quetrojans terminem a execução desses aplicativos.
• Monitorar todas as chamadas do sistema de arquivo e filtrar asoperação de ten-
tativa de deleção dos arquivos do módulo.
• Modificar as listas de acesso e permissão do processo protegido, impedindo as-
sim que outros programas consigam terminá-lo.
Essas são apenas algumas maneiras de tentar impedir a desinstalação de um mó-
dulo. Mas como estamos tratando aqui de um ambiente do qual não possuímos controle
(a máquina do cliente), é quase impossível afirmar que a prevenção da desinstalação
será sempre efetiva. Dessa maneira, além de um mecanismo de prevenção de desinsta-
lação, um módulo de segurança deve possuir também um mecanismo de autenticação
e validação com ositede sua instituição transacional. Assim, no momento em que um
usuário acessar osite, este deve conseguir verificar, com confiança, que o módulo de
segurança necessário não foi desinstalado ou modificado, conforme esquema simplifi-
cado apresentado na Figura5.1.
Figura 5.1: Validação do módulo de segurança.
Realizando as validações apresentadas na Figura5.1, o siteda instituição terá uma
boa garantia de que o módulo de segurança não foi desinstalado nem modificado. Esse
método não é à prova de falhas, mas já provê uma boa melhora de segurança.
5.3 Modos de proteção 68
5.3 Modos de proteção
Nessa seção apresentamos alguns dos métodos que o módulo de segurança pode
utilizar para tentar manter um nível de proteção efetivo contra os ataques apresentados
nos capítulos anteriores.
5.3.1 Sistemas que operam como antivírus
A proteção do tipo antivírus é talvez umas das mais utilizadas. Essa proteção se
baseia no conhecimento prévio dos programas atacantes pararealização do bloqueio,
ou seja, um antivírus normalmente só bloqueia os vírus que ele conhece. Por um lado,
essa proteção pode ser muito efetiva, pois um antivírus recém-atualizado pode bloquear
efetivamente vários ataques. Por outro lado, um antivírus está sempre um passo atrás
do vírus, sendo necessário o aparecimento primeiro do víruspara depois ser criada a
chamada vacina. Além disso, sistemas de antivírus requerematualizações constantes
para manter um nível de efetividade elevado.
Um antivírus funciona a base de assinaturas. Ele verifica dentro de arquivos, pos-
sivelmente infectados, a existência dessas assinaturas oumesmo de um conjunto delas.
Assinaturas nada mais são do que cadeias binárias. Caso essascadeias binárias sejam
encontradas dentro de um arquivo, este arquivo é considerado infectado. Um problema
que os antivírus possuem é a detecção de falsos positivos. Falsos positivos são progra-
mas que possuem alguma assinatura da base de dados do antivírus, mas que na verdade
não estão infectados. Assim, o sistema de antivírus detectaerroneamente esse arquivo
como infectado. No momento de geração das assinaturas do antivírus, é necessário
então tomar cuidado com a detecção excessiva de falsos positivos. Assinaturas muito
genéricas, apesar de detectarem uma grande família de vírus, podem vir a trazer mui-
tos falsos positivos. Assinaturas muito específicas podem diminuir muito o número de
falsos positivos, mas também não detectam tantos vírus diferentes.
5.3 Modos de proteção 69
No caso específico de fraudes em instituições que operam sistemas transacionais,
não estamos falando exatamente de um antivírus, mas sim deantitrojan. Existe uma
grande diferença entre esses dois produtos. Vírus normalmente infectam arquivos exe-
cutáveis, modificando seu comportamento e adulterando seu próprio código binário.
Para remover um vírus, é necessário retirar esse pedaço de código binário de dentro do
executável. Normalmente esse código binário inserido é fixo, e, portanto, simples de
ser encontrado: basta comparar o código inicial com o códigoadulterado. Por outro
lado, a infecção se dá dentro dos próprios arquivos, o que torna necessária a leitura
completa de todos os executáveis da máquina para realizar a desinfecção, o que pode
ser um processo lento e custoso.
Trojansdiferem bastante de vírus.Trojanssão executáveis separados.Trojanstêm
seu próprio código de execução, e normalmente não modificam nenhum aspecto dos
arquivos de sistema. Por um lado, isso os torna simples de serem detectados, pois é
necessário apenas verificar quais processos estão em execução no sistema. Por outro
lado,trojanssão incrivelmente parecidos com aplicativos comuns. A maioria dostro-
jansapenas abre algumas janelas e envia algumas informações pela Internet. Muitos
aplicativos realizam essas tarefas. Portanto, fica difícilencontrar assinaturas que de-
tectem uma grande família detrojans e que não apresentem falsos positivos. Como
novostrojansaparecem a cada dia, assinaturas muito específicas acabam sendo inefi-
cazes. Portanto, é um difícil trabalho achar um meio-termo,encontrando um conjunto
de assinaturas efetivas que detecte uma grande gama detrojanse ao mesmo tempo não
apresente falsos positivos.
Normalmente, umantitrojan atualizado faz parte de qualquer módulo de segu-
rança. Nesse caso, a tarefa do antitrojan é proteger o sistema dostrojansjá conhecidos.
Para isso, ele deve ser constantemente atualizado. Isso requer um trabalho de pesquisa
e evolução contínua, o que pode se tornar custoso do ponto de vista operacional.
Um sistema deantitrojan, dependendo de sua ação, pode ser considerado extre-
5.3 Modos de proteção 70
mamente intrusivo. Como estamos tratando de clientes, que muitas vezes não têm (e
nem desejam ter) conhecimento sobre os aspectos de segurança envolvidos, o sistema
deantitrojanembutido no módulo de segurança deve ter o mínimo, ou talvez nenhuma
interação com o usuário. Ou seja, o sistema deve detectar ostrojanse realizar a ação
necessária sem o conhecimento do usuário.
Esse sistema deantitrojan, portanto, estará varrendo todos os programas que estão
sendo executados na máquina do cliente. Caso ele encontre algum trojan conhecido
sendo executado, temos aqui duas opções:
1. Apagar o executável referente aotrojan encontrado: esse processo, apesar de
extremamente efetivo no aspecto de proteção, pode trazer grandes problemas
para a instituição que opere o sistema transacional, principalmente quando se
trata da detecção de um falso positivo. Apagar um programa erroneamente da
máquina de um cliente pode ser catastrófico.
2. Terminar a execução dotrojan encontrado: esse procedimento é menos intrusivo,
pois estaremos apenas terminando a execução de um processo.Se, por acaso,
esse for um falso positivo, o usuário pode sempre executá-lonovamente num
tempo futuro. De qualquer maneira, se esse processo encontrado for mesmo um
trojan, este poderá ser novamente iniciado na próxima inicialização da máquina,
sendo assim necessária a constante varredura dos processosem execução para
evitar que ostrojansse reiniciem.
Outro aspecto importante quanto a efetividade e intrusão dosistemaantitrojan é
o momento em que essa proteção deve ser ativada. Nesse caso temos novamente duas
alternativas viáveis: iniciar o sistema logo que a máquina for ligada, ou iniciar o sis-
tema somente quando o usuário acessar ositeda instituição transacional. Cada opção
tem suas vantagens e desvantagens. Na primeira opção, a de iniciar o sistema junta-
mente com a máquina, a vantagem é que a proteção estará sempreativa. Não existirá
5.3 Modos de proteção 71
um momento em que umtrojan poderá atacar e que o sistema não esteja protegido.
As desvantagens são duas: primeiro que o sistema estará protegendo o usuário inde-
pendentemente deste estar acessando osite em que necessita de proteção, ou seja, a
proteção estará ocorrendo em qualquersite que esse usuário possa entrar. Isso nem
sempre é uma característica interessante. A outra desvantagem está ligada aos falsos
positivos; a finalização de falsos positivos durante o acesso aosite transacional é bem
menos problemática que a finalização de falsos positivos a qualquer momento. Um
falso positivo, nesse caso, teria uma repercussão muito grande e poderia causar sérios
problemas à instituição.
A segunda opção, a de ligar a proteção somente nositeda instituição, tem a van-
tagem de interferir no funcionamento da máquina do usuário somente quando esse
acessa ositeda instituição, mas por outro lado, deixa o usuário desprotegido nos ou-
tros momentos. Umtrojan poderia explorar essa vulnerabilidade para atacar o sistema.
5.3.2 Firewall
Sistemas defirewall são extremamente úteis em dois casos: impedir que aplicati-
vos maliciosos se instalem remotamente na máquina do usuário (possivelmente explo-
rando vulnerabilidades do sistema operacional); e impedirque aplicativos maliciosos
já instalados localmente consigam enviar os dados capturados para aInternet. Apesar
disso, sistemas defirewall são normalmente complexos de ser operados, não sendo as-
sim muito aconselhados para usuários leigos em informática. Portanto, como estamos
aqui tratando de um módulo de segurança que deve ter o mínimo possível de interface
com o usuário, o sistema defirewall acaba não sendo tão aconselhável para esse ce-
nário. Sistemas defirewall mais simples (como por exemplo afirewall do Windows
XP Service Pack 2), acabam sendo úteis apenas para evitar invasões remotas, oque
normalmente pode também ser impedido mantendo-se o sistemaatualizado com todas
as correções de segurança.
5.3 Modos de proteção 72
Além disso, o nível de intrusão que um sistema defirewall pode causar é muito
grande. Umafirewall deve monitorar todo o tráfego de rede, podendo possivelmente
analisar todas as informações que estão sendo transmitidaspela máquina do usuário.
5.3.3 Atualizações de segurança
Uma das maneiras mais rápidas de se espalhar uma nova praga pela Internet é
explorando-se vulnerabilidades conhecidas de sistemas operacionais ou aplicativos.
Os worms Sassere Blaster, citados no capítulo3 são exemplos disso. Mais recente-
mente, a vulnerabilidade do formatoWMF (Windows Metafile) (MICROSOFT, 2005a),
descoberta em 28 de dezembro de 2005, demorou apenas algumashoras para ser uti-
lizada por atacantes para a disseminação deworms, vírus,spywarese trojans (LABS,
2005). Como muitos usuários não instalam as atualizações necessárias de segurança,
essas brechas podem ser exploradas por um bom tempo com grande efetividade.
A instalação dessas atualizações de segurança não é em si umatarefa que o mó-
dulo de segurança possa executar. Essas atualizações devemacontecer utilizando-se
as ferramentas dos próprios fabricantes dos sistemas operacionais. Nesse caso, a fun-
cionalidade do módulo de segurança se limita a talvez avisarao usuário que alguma
atualização crítica ainda não foi instalada em seu sistema.Esse ponto, como dito no
começo deste capítulo, está mais ligado à conscientização einstrução do usuário sobre
navegação segura do que a um aspecto técnico de implementação. De qualquer ma-
neira, a atualização e a correção do ambiente são fatores críticos para a segurança do
sistema e devem ser tratadas com cuidado.
5.3.4 Antikeylogger
No capítulo4, descrevemos diversas maneiras que poderiam ser utilizadas para
realizar a captura das teclas e doscliquesde mouseexecutados pelo usuário. Nesta
seção, apresentaremos algumas contramedidas que podem seradotadas para bloquear
5.3 Modos de proteção 73
esse tipo de captura.
A utilização deantikeyloggerscomo ferramenta de proteção pode vir a ferir a
privacidade do usuário. Como será apresentado a seguir, umantikeyloggerutiliza a
mesma estratégia para bloquear a captura que umkeyloggerutiliza para roubar os da-
dos. O funcionamento dos dois sistemas são muito semelhantes. Portanto, umantikey-
logger teria a possibilidade de monitorar todas as teclas ecliquesdemouserealizados
pelo usuário, inclusive quando este nem estiver acessando ositeprotegido.
5.3.4.1 Hooks
A técnica de proteção contrahooksé bem semelhante à técnica de captura de teclas
utilizandohooks. Como explicado no capítulo4, o hooké um mecanismo de intercep-
tação que funciona de maneira encadeada: o sistema operacional, ao receber um tecla,
a repassa para o primeirohookda cadeia. Este por sua vez, repassa a mensagem para
o segundohookda cadeia, e assim por diante. Ao final, quanto todos oshooksregis-
trados já receberam a mensagem, o sistema operacional passafinalmente a mensagem
para a janela destino. Esse mecanismo já foi representado naFigura4.2. Uma pos-
sível proteção que o módulo de segurança pode utilizar para prevenir esse método de
captura é o seguinte: o módulo obteria umhookdo sistema operacional. Quando uma
mensagem de teclado ou demousefor enviada para essehook, o módulo não repassa
essa mensagem para os outroshooksinstalados, redirecionando-a diretamente para a
janela destino. Esse mecanismo está exemplificado na Figura5.2.
Utilizando esse método, o módulo de proteção consegue efetivamente enganar os
outroshooksregistrados no sistema. Porém, existem alguns problemas inerentes a esse
tipo de proteção:
1. O módulo de proteção deve garantir que seuhook seja o primeiro na cadeia,
conforme representado na Figura5.2: para realizar essa tarefa, o módulo de
5.3 Modos de proteção 74
Figura 5.2: Proteção contra captura utilizandohooks.
segurança deve voltar constantemente a se registrar como umhook. Caso ele
faça isso muito lentamente, é possível que algumtrojan consiga se registrar no
meio do caminho e seja então bem-sucedido na captura de algumas teclas; caso
ele realize isso muito rapidamente, esse processo pode vir aconsumir grandes
quantidades de processamento da máquina do usuário, deixando todo o sistema
lento.
2. O módulo de proteção estará bloqueando não apenas ostrojansque tenham ins-
taladohooks, mas também todos os outros aplicativos que porventura possam
utilizar hooks: os hooksforam criados como ferramentas para tornar o desen-
volvimento de alguns tipos de aplicações mais simples. Alguns exemplos de
aplicativos que podem utilizarhookssão: aplicações de auxílio a deficientes vi-
suais ou aplicações de leitores de códigos de barras. Nesse caso, essas aplicações
passariam a não funcionar corretamente enquanto a proteçãodehooksestivesse
ativa.
5.3 Modos de proteção 75
Os problemas que acabamos de descrever podem causar grande repercussão e de-
vem ser tratados com cuidado.
5.3.4.2 Captura de campos
Conforme explicado no capítulo4, a captura de campos de texto é um outro método
que um atacante pode utilizar para obter uma senha. Recapitulando rapidamente, esse
ataque funciona da seguinte forma:
1. O atacante envia uma mensagem para a janela vítima pedindo para que esta
troque seu caractere de senha (que por padrão é o asterisco) para o número 0.
2. O atacante então envia uma mensagem para a janela vítima pedindo o valor do
campo de senha.
3. Ao final, o atacante envia uma outra mensagem à janela vítima restaurando o
asterisco como o caractere de senha.
A proteção contra esse processo é relativamente simples. Para evitar a captura da
senha, tudo que o aplicativo vítima deve fazer é ignorar as mensagens que requisitem
seu campo de senha. Apesar de intuitivo, esse comportamentonão é padrão para as
janelas doWindows. Ignorando essa mensagem, o aplicativo evita assim que a captura
dos campos de senha seja bem-sucedida.
A solução apresentada, apesar de simples, não é sempre viável. Muitas vezes
os aplicativos que estão sendo utilizados para a digitação da senha não estão sob o
controle da instituição. Um exemplo muito comum disso é a entrada de senha dentro
de um navegadorweb. Esse navegador é desenvolvido por uma empresa terceira e,
portanto, não é possível modificar seu comportamento conforme explicado. Nesse
caso, será necessário utilizar outro método de proteção para evitar a captura da senha.
5.3 Modos de proteção 76
Dentro de um navegadorweb, existe uma facilidade chamadalinguagens de script.
Essas linguagens possibilitam um comportamento mais dinâmico das páginas, como
a implementação de menus flutuantes ou de validação de formulários. No contexto
desta seção, essas linguagens podem ser utilizadas para ajudar a prevenir a captura
de campos de senha. Para realizar essa tarefa, o desenvolvedor deve implementar a
página de maneira que a senha que será colocada no campo de senha não seja a senha
real, mas sim qualquer outra seqüência aleatória de caracteres. A senha real deverá
ser armazenada em memória e será colocada dentro do formulário apenas na hora do
seu envio ao servidor. Abaixo mostramos passo a passo como seria esse processo de
proteção.
1. Usuário digita um caractere da sua senha no campo de senha
2. Script da página retira esse caractere do campo de senha e o coloca emuma
variável em memória
3. Scriptsubstitui o caractere no campo de senha por um outro caractere aleatório
(um asterisco, por exemplo)
4. Esse processo é repetido até que o usuário digite sua senha completa
5. Ao final, o script coloca a senha digitada pelo usuário dentro de um campo
escondido e a envia junto ao formulário
Seguindo os passos acima, caso um aplicativo malicioso tente enviar uma men-
sagem de captura, ele receberá como resposta uma seqüência qualquer de caracteres
aleatórios, sendo malsucedido assim na captura da senha.
Em termos da privacidade do usuário, não há nenhum problema em utilizar a pro-
teção acima. Como a senha já estaria sendo digitada na aplicação da instituição, nada
foi modificado.
5.3 Modos de proteção 77
5.3.4.3 Drivers
No capítulo4 apresentamos uma maneira na qual umdriver poderia ser utilizado
para capturar as teclas digitadas pelo usuário. Nesta seçãomostraremos que também é
possível, de forma muito semelhante, utilizar umdriver para proteger o sistema contra
a captura de teclas.
A idéia da proteção segue a mesma idéia utilizada no sistema dehooks. O objetivo
aqui é criar umdriver de baixo nível, do tipoupper-filter driver, que possa bloquear to-
das as teclas digitadas. Essedriver passaria as teclas apenas para a aplicação legitima,
que então as apresentaria na tela. Essa situação está ilustrada na Figura5.3.
Figura 5.3: Proteção contra captura utilizandodriver.
Conforme indicado na figura, as teclas digitadas pelo usuáriosão direcionadas
diretamente para a aplicação destino, sem nem mesmo passar pelo sistema operacional.
Essa proteção, apesar de extremamente efetiva, tem diversos problemas envolvi-
dos. Inicialmente, temos o problema do processo de desenvolvimento de umdriver,
que não é muito simples e deve ser feito com muito cuidado, pois qualquer problema
5.3 Modos de proteção 78
em sua implementação pode causar a queda completa do sistemaoperacional. Em se-
gundo lugar, temos aqui um problema semelhante ao problema da proteção dehooks:
outros aplicativos lícitos que estejam na máquina não receberão as teclas digitadas e,
portanto, não funcionarão de forma correta. Isso pode ser umgrande problema quando
tratamos, por exemplo, de aplicativos de ajuda a deficientesvisuais que devem capturar
todas as teclas para que funcionem corretamente.
O problema mais grave que ocorre na utilização de umdriver é transmitir as teclas
digitadas dodriver até a aplicação destino de forma segura. Conforme mostrado na
Figura 5.3, o driver deve repassar diretamente as teclas digitadas para a aplicação
final. Mas, de um ponto de vista técnico, a aplicação final não está esperando as
teclas vindas dodriver, e, portanto, não funcionará corretamente. Como conseqüência
desse problema, junto com odriver é necessário então implementar um aplicativo que
execute em modo usuário e que receba as teclas vindas dodriver. Esse aplicativo, que
chamaremos de módulo de suporte, terá então o trabalho de repassar essas teclas para
o aplicativo lícito. Deve-se tomar muito cuidado na comunicação entre odriver e o
módulo de suporte. Umtrojan poderia tentar explorar essa comunicação para obter as
teclas digitadas. É necessário então utilizar métodos criptográficos de autenticação e
sigilo dos dados para garantir a confidencialidade dos dadostrafegados.
Além disso, dado que o aplicativo de suporte recebeu as teclas corretamente, ainda
precisa repassá-las para o aplicativo no qual o usuário estádigitando. Esse processo,
apesar de simples, pode acabar comprometendo toda a segurança do sistema, pois é
nesse ponto que os dados podem ser mais facilmente capturados. É necessário en-
tão criar um método seguro para transmitir as teclas entre o aplicativo de suporte e o
aplicativo final. Esse pode vir a ser um trabalho muito complexo e extenso.
De qualquer maneira, existem soluções para esse problema. Épossível criar uma
maneira segura para transmitir os dados entre o aplicativo de suporte e o aplicativo
final. As possíveis soluções são extremamente técnicas e fogem do escopo deste tra-
5.3 Modos de proteção 79
balho, e portanto não serão explicadas aqui.
5.3.4.4 DLL Injection
A técnica deDLL Injectionpode também ser utilizada para prevenir a captura de
teclas. A idéia aqui é injetar umaDLL dentro dostrojanse bloquear o uso das funções
do sistema operacional que poderiam ser utilizadas para a captura (como por exemplo
as funções dehookou as funções estáticas de teclado).
Como nem sempre é possível identificar qual processo em execução é otrojan, esse
método acaba tendo que injetar aDLL de proteção em todos os processos na máquina.
Isso acaba sendo muito perigoso, pois estaremos interferindo nos processos de sistema
e poderemos assim estar afetando todo o comportamento da máquina. Além disso, o
processo de injeção deDLL e de redireciomanento deAPI é extremamente agressivo e
pode comprometer a estabilidade da máquina.
De qualquer maneira, esse método pode ser muito eficaz na prevenção da captura
de teclas. Mas é necessário cuidado para utilizá-lo da maneira mais correta possível.
No aspecto de privacidade do usuário, a técnica deDLL Injectioné extremamente
intrusiva. Ao injetar umaDLL em cada processo do sistema, pode-se em teoria moni-
torar o comportamento de todas as aplicações sendo executadas. É possível registrar
de modo completo todas as interações do usuário com o sistema, clique por clique e
tecla por tecla.
5.3.5 BHO
A tecnologia chamadaBHO (Browser Helper Object) prove uma maneira simples
para que um aplicativo monitore todas asURLsnavegadas pelo usuário. Para utilizar
essa tecnologia, um aplicativo deve simplesmente se registrar no sistema operacional
como umBHO. Após esse registro, o sistema operacional informará automaticamente
5.3 Modos de proteção 80
todos os eventos referente à navegaçãowebdo usuário.
Esse método é muito utilizado porspywarespara monitoração dos acessos das ví-
timas. UmBHO também tem a funcionalidade de modificar essa navegação, podendo
redirecionar o usuário para qualquer endereço desejado. Assim,spywarespodem veri-
ficar o que o usuário está acessando e de tempos em tempos redirecioná-lo para algum
site, ou mesmo abrir janelaspop-upcom propagandas.
No contexto de proteção, a tecnologia de BHO pode ser utilizada pelo módulo de
segurança para verificar qual endereço o usuário está acessando. Como esse módulo
de segurança pertence a uma instituição específica, ele deverá proteger somente as
páginas dessa instituição. Assim, utilizando essa tecnologia, o modulo de segurança
pode verificar aURLacessada e a partir dela decidir se deve ou não realizar a proteção
dessa página específica.
A tecnologia deBHO é interessante também por outro motivo: o sistema ope-
racional carrega umBHO assim que o navegadorweb for aberto. Assim, o módulo
de segurança estará em uso desde cedo, dificultando assim a sua remoção (conforme
explicado na seção5.2.2).
Além disso, a tecnologia deBHO permite também que aplicativos tenham com-
pleto acesso ao conteúdo das páginas navegadas. UmBHO pode, por exemplo, ve-
rificar todo o código fonte de uma página acessada. Isso pode ser especialmente útil
quando estamos lidando comsitesfalsos (acessados possivelmente através delinks fal-
sos). O módulo de proteção poderia possuir umBHOque verifica o código de todas as
páginas sendo acessadas. Se oBHO percebe que a página atual é muito semelhante à
da instituição protegida, mas o endereço navegado pelo usuário não é o da instituição,
existe grande chance desse usuário estar acessando uma página falsa.
Em termos de privacidade, as vantagens da tecnologia deBHO tornam-se suas
piores desvantagens. UmBHOpode monitorar completamente a navegação do usuário,
5.3 Modos de proteção 81
inclusive gravando códigos-fonte das páginas acessadas. Isso torna oBHO um espião
perfeito, que possivelmente poderia ser utilizado para criar um histórico de navegação
do usuário.
5.3.6 Proteção contra redirecionamento
Conforme apresentado na seção4.4.4, os ataques de redirecionamento têm como
objetivo modificar o sistema de resolução de nomes para que o cliente acesse umsite
falso da forma mais transparente possível. Esses ataques sebaseiam no comprome-
timento do servidor de resolução de nome (DNS) do usuário ou na modificação dos
próprios arquivos de configuração do sistema operacional.
Utilizando a técnica deBHO explicada na seção5.3.5, o módulo de segurança
pode realizar a proteção contra o ataque de redirecionamento da seguinte forma:
1. O módulo de segurança se instala como umBHO, e passa a monitorar todas as
URLsnavegadas pelo usuário.
2. Ao perceber que o usuário está acessando uma página protegida (a página ini-
cial da instituição protegida, por exemplo), o módulo de segurança realiza uma
validação doIP para o qual essaURL está sendo resolvida.
3. A partir de uma lista deIPs pré-cadastrados considerados válidos para essa pá-
gina, o módulo de segurança verifica se oIP obtido acima está nessa lista.
4. Caso oIP esteja na lista, ele é considerado válido e o usuário pode continuar
com seu acesso.
5. Caso oIP não seja encontrado na lista, o módulo de segurança toma alguma
providência restritiva.
A providência restritiva tomada pelo módulo de segurança pode variar entre algu-
mas opções, entre elas:
5.3 Modos de proteção 82
• Redirecionar o usuário para umIP considerado correto.
• Colocar uma entrada no arquivohostsda máquina, obrigando o sistema operaci-
onal a sempre direcionar uma certaURL para umIP fixo.
Cada uma das soluções mencionadas têm suas vantagens e desvantagens. A idéia
de redirecionar o usuário para umIP correto é extremamente transparente para o usuá-
rio e não implica em nenhuma modificação no seu padrão normal de navegação. Por
outro lado, caso a página acessada seja uma página segura queutilize SSL, redirecionar
o usuário porIP causará a apresentação de um erro quanto ao nome do certificado. Na
criação de um certificadoSSL, é necessário especificar para qualURL esse certificado
será utilizado. Por exemplo, para um banco de teste, o certificado poderia ser emitido
para aURL www.bancoTeste.com.br. Quando o usuário acessa essaURL, o navegador
verifica se o nome digitado bate com o nome do certificado digital. Caso esses no-
mes sejam diferentes, uma mensagem de aviso é mostrada pedindo a confirmação do
acesso. No caso do redirecionamento porIP, esse mesmo erro seria apresentado.
A outra solução apresentada, a da colocação de uma entrada noarquivohostsda
máquina do usuário, também é extremamente transparente e mantém o padrão normal
de navegação do usuário. A desvantagem aqui é que aquela entrada colocada no ar-
quivo ficará lá até que o módulo de segurança a remova. Caso o módulo de segurança
seja desinstalado ou pare de funcionar corretamente, é possível que aquela entrada seja
esquecida e deixada no arquivo. Com o tempo, caso a instituição mude oIP de seu
site, esse cliente específico não conseguirá mais acessar as páginas dessa instituição.
Além disso, existem hoje programas que verificam e protegem oarquivohostscon-
tra modificações. Esses programas poderiam afetar diretamente a efetividade dessa
solução.
Existe uma limitação dessa proteção que ocorre quando o usuário utiliza um ser-
vidor proxy. Um servidorproxyé um serviço de rede que permite que clientes façam
5.3 Modos de proteção 83
conexões de redes indiretas para outros serviços externos.O funcionamento básico de
umproxyé: o cliente conecta no servidorproxypedindo algum serviço de rede especí-
fico (por exemplo, uma páginaweb); o servidor proxy realiza a conexão pedida e então
repassa os dados de resposta para o cliente.
Em um ambiente utilizando um servidorproxy, a resolução de nomes para acessos
a páginas web é realizado pelo próprioproxy. Ou seja, quando um cliente solicita
ao proxy a páginawww.bancoTeste.com.br, é o próprioproxy que obtém oIP dessa
URLe que realiza a conexão. Portanto, um módulo de segurança instalado localmente
na máquina do usuário não consegue saber para qualIP o proxy resolverá o nome,
impedindo assim a proteção local. Nesses casos, a proteção deveria ser colocada no
próprio servidorproxy, o que normalmente não é uma solução prática.
Em relação à privacidade, as técnicas de proteção contra redirecionamento são
muito semelhantes às da tecnologia deBHO, na qual o módulo de segurança pode
teoricamente analisar todas asURLsnavegadas pelo usuário.
5.3.7 Detecção de janelas suspeitas
Na seção4.4.3, mostramos que um dos ataques mais utilizados hoje é o de telas
falsas. Nesse ataque, umtrojan apresenta uma tela semelhante à tela original da insti-
tuição atacada, pedindo os dados críticos do usuário, normalmente durante o acesso ao
siteoficial da instituição.
Uma das formas de realizar a proteção contra esse tipo de ataque é a utilização
de umantitrojan, conforme explicado na seção5.3.1. Nesse caso, o sistema dean-
titrojan detectaria otrojan e finalizaria sua execução antes mesmo de a tela falsa ser
apresentada.
O problema da proteção deantitrojan é o processo contínuo de atualização das
assinaturas. Além disso, a chance de quetrojansnovos (não conhecidos) sejam detec-
5.3 Modos de proteção 84
tados é relativamente pequena. Portanto, algumas vezes se vê necessária a aplicação
de uma proteção extra, que funcione baseada em análise de comportamento em vez de
assinaturas detrojans.
Para tanto, será necessário analisar qual o comportamento-padrão de uma tela falsa
aberta por uma família detrojans. Como exemplo, umtrojan simples que utilize telas
falsas normalmente executa os seguintes passos:
1. Verifica que o usuário está acessando uma página específica dainstituição a ser
atacada
2. Abre uma janela na frente de todas as outras
3. A janela aberta se assemelha muito à da instituição transacional
O módulo de segurança poderia ser configurado para tentar detectar esse compor-
tamento específico e fechar as janelas que forem detectadas por esse método. Nesse
exemplo, o módulo de segurança ficaria monitorando o acesso àinstituição protegida.
Quando esse acesso ocorrer, o módulo verificaria qual janelaestá atualmente com foco.
Se essa janela não for a do navegador, o módulo realizaria umaanálise nessa janela
(agora considerada suspeita) afim de verificar se ela se assemelha ou não à janela ofi-
cial da instituição. Se isso for verdade, essa janela pode ser considerada uma tela falsa
e será então fechada.
Apesar da simples explicação, o método apresentado não é de simples execução.
O problema mais grave que surge durante o processo de desenvolvimento é o seguinte:
como verificar que a janela suspeita se assemelha à janela da instituição?
Pode-se, por exemplo, analisar as palavras que a janela contém e verificar se elas
se encontram em uma lista pré-definida de palavras-chave. O problema aqui é que
algunstrojanspodem utilizar imagens ao invés de texto. Outro problema é que janelas
5.3 Modos de proteção 85
não falsas podem ser facilmente detectadas como janelas suspeitas, resultado em casos
de falsos positivos.
É também possível realizar uma análise da estrutura da janela, no sentido de ve-
rificar se os campos que a janela da instituição contém tambémestão na janela que
está sendo analisada. Imaginemos novamente o exemplo da tela original do banco
apresentada na Figura5.4e da tela falsa apresentada na Figura5.5.
Figura 5.4: Página oficial da instituição.
Podem-se notar diversas semelhanças entre a página original e a tela falsa. Al-
gumas semelhanças seriam: as duas telas possuem três caixasde texto; as três caixas
de texto estão alinhadas verticalmente; as duas telas possuem dois campos de entrada
de senha; a imagem do cadeado está sempre alinhada à esquerda. E assim por diante.
Verificando esse tipo de semelhanças entre as duas janelas, podemos tentar identificar
as telas falsas e assim proteger o usuário.
Novamente, deve-se tomar cuidado com o balanceamento entreproteção e faci-
lidade de uso. Se a verificação da estrutura da janela suspeita for muito simples, a
proteção será muito eficiente, mas o número de falsos positivos pode ser grande. No
outro extremo, se a validação da estrutura da janela suspeita for muito complexa, o
5.3 Modos de proteção 86
Figura 5.5: Tela falsa atacando ositeoficial da instituição.
número de falsos positivos deve ser baixo, mas a efetividadeda proteção também terá
um declínio considerável.
Em termos de privacidade, utilizando essa técnica de verificação de estrutura das
janelas, o módulo de segurança poderia teoricamente verificar todos os aplicativos que
o usuário acessa e armazenar os textos e imagens contidas em cada um deles. Isso
pode ser considerado muito intrusivo pelo usuário final, sendo necessário cuidado ao
realizar a implementação dessa técnica.
5.3.8 Proteção da máquina virtualJava
O ataque descrito na seção4.4.5utiliza a estrutura da máquina virtualJavapara
capturar dados secretos de usuários. No ataque apresentado, as bibliotecas derun-time
do próprioJava eram substituídas, permitindo assim um controle total dosapplets
sendo executados.
O ponto de vulnerabilidade explorado nesse ataque é a falta de validação de inte-
gridade das bibliotecas derun-time. A proteção contra esse ataque então deve basear-se
5.3 Modos de proteção 87
neste fato: é necessário criar uma maneira pela qual um programa consiga verificar se
a máquina virtualJavaestá íntegra.
Fica claro que nenhum programaJavatem a capacidade de verificar a integridade
da máquina virtual. Como todos os programasJavadependem da própria máquina
virtual para executar qualquer função, o atacante pode adulterar essas funções de veri-
ficação e assim enganar o programa.
Uma idéia que pode à primeira vista parecer simples e atrativa é a criação de um
programa externo, escrito em linguagem nativa da máquina (ou seja, não escrito em
Java), que verificaria a integridade da máquina virtual. Porém, essa solução tem várias
desvantagens: escrevendo um programa em linguagem nativa da máquina, estaremos
perdendo a portabilidade doJava; existem muitas máquinas virtuais no mercado, e
cada uma delas tem diferentes versões e diferentes atualizações, ficando, assim, quase
inviável manter uma lista atualizada de todas essas máquinas.
O trabalho de validação da integridade das bibliotecas derun-time da máquina
virtual Javadeveria ser passado para os próprios executáveis da máquinavirtual. Isso
não bloquearia totalmente o ataque, pois os próprios executáveis da máquina virtual
poderiam ser trocados. Mas como os executáveis são escritosem código nativo da
máquina e têm um tamanho considerável, o ataque se tornaria bem mais complexo.
Portanto, uma solução imediata para minimizar o impacto desse ataque seria passar a
responsabilidade de validação diretamente para a máquina virtual.
Do ponto de vista de uma instituição que opera um sistema transacional, a solu-
ção acima não é facilmente aplicável, pois a máquina virtualJavapertence a empresas
terceiras, não havendo assim a possibilidade de modificar seu código. Pensando que
a instituição só possui um módulo de segurança externo à máquina virtual, hoje ainda
não há muito o que fazer. Provavelmente, o mais recomendado seria não utilizarap-
pletsde autenticação, pelo menos até que as máquinas virtuais passem a verificar a
integridade de suas bibliotecas.
5.4 Sugestão de uma solução de curto prazo 88
5.4 Sugestão de uma solução de curto prazo
Juntando as proteções e recomendações apresentadas anteriormente neste capítulo,
podemos agora montar uma solução completa para proteger os clientes de instituições
que operam sistemas transacionais da maioria dos ataques aqui apresentados.
Os ataques aqui apresentados foram:
1. Sitesfalsos
2. Exploração de vulnerabilidades
3. Keyloggers
4. Telas falsas
5. Ataque de redirecionamento
6. Ataque à máquina virtualJava
O único ataque para o qual uma solução direta de curto prazo não foi apresentada
é o ataque à máquina virtualJava.
Levando em conta as defesas apresentadas neste capítulo, a melhor estratégia para
proteção contra cada um desses ataques está apresentada na Tabela5.1.
Ataque Melhor DefesaSitesfalsos BHOExploração de vulnerabilidades Atualizações de segurançaKeyloggers DriverTelas falsas Antitrojan+ Detecção de janelas suspeitasAtaque de redirecionamento BHOAtaque à máquina virtualJava —
Tabela 5.1: Ataques propostos e melhores defesas.
5.4 Sugestão de uma solução de curto prazo 89
Os motivos para a seleção das proteções expostas já foram indiretamente apre-
sentados durante as discussões deste capítulo, mas iremos colocá-los aqui novamente,
agora de maneira mais objetiva e resumida.
A proteção contrasitesfalsos é complicada e exige a análise de cada página que
esteja sendo acessada pelo usuário. Para realizar essa tarefa, a tecnologia deBHOapre-
sentada pelo sistema operacional é a mais recomendada. UmBHO possui interfaces-
padrão para acessar o conteúdo da página, e também para redirecionar o usuário para
o sitecorreto caso ocorra algum problema.
A exploração de vulnerabilidades para instalação local desoftwaremalicioso tam-
bém é um problema sério. Um módulo externo de segurança até poderia tentar suprir
as deficiências do sistema operacional e se comprometer a proteger essas falhas conhe-
cidas. Mesmo assim, a maneira mais limpa e efetiva de fechar as vulnerabilidades do
sistema é a instalação das atualizações de segurança do próprio fabricante do sistema
operacional. Nesse caso, o módulo de segurança se limitará talvez a avisar o usuário
de que existem atualizações novas ou mesmo baixar e instalaressas atualizações de
tempos em tempos.
O ataque utilizandokeyloggerspode ser extremamente efetivo na captura dos da-
dos críticos dos usuários. A técnica mais efetiva e completapara proteção contra esse
ataque é a utilização dedrivers. A implementação e integração dodriver com as outras
aplicações não é simples, portanto essa técnica exige grandes cuidados no desenvolvi-
mento e nos testes. Mesmo assim, o resultado final de umdriver bem maduro será o
bloqueio da grande maioria doskeyloggers.
Já o ataque de telas falsas, o mais empregado atualmente, pode ser reprimido com
maior eficiência utilizando-se uma combinação de defesas. Aprimeira parte da defesa
seria umantitrojan que conheça as janelas suspeitas já encontradas e analisadas. Essa
parte ficaria responsável pela proteção da maioria das telasfalsas. Somente algumas
telas novas desconhecidas passariam essa barreira. Para essas novas telas falsas, a pro-
5.4 Sugestão de uma solução de curto prazo 90
teção de detecção de janelas suspeitas baseada na análise comportamental e estrutural
da janela seria uma segunda linha de defesa. Para evitar o problema de falsos positivos,
essa proteção poderia ser bem restritiva quanto à arquitetura da janela suspeita, já que
essa proteção será utilizada somente nos raros casos em que ajanela não for conhecida.
O ataque de redirecionamento explicado neste capítulo podeser melhor comba-
tido utilizando-se novamente a tecnologia deBHO. A proteção se basearia numa lista
pré-cadastrada deIPs válidos para um certosite. Caso oBHO detecte que o usuá-
rio está sendo direcionado para umIP não cadastrado na lista, sua navegação seria
redirecionada para um dosIPsválidos.
Por fim, o ataque à máquina virtualJava. Como explicado anteriormente, a melhor
proteção contra esse tipo de ataque exige que os próprios desenvolvedores de máqui-
nas virtuais realizem uma validação internamente em seus sistemas. Como isso está
fora do poder da instituição, a melhor solução por enquanto seria não utilizarappletsde
autenticação para a entrada de dados críticos dos usuários.De qualquer maneira, as so-
luções apresentadas para os outros ataques acabam minimizando um pouco o problema
da máquina virtual. A utilização de umantitrojan, por exemplo, acaba dificultando a
instalação de aplicativos maliciosos que possam tentar modificar a máquinaJava.
Ao final, juntando todas essas proteções citadas, teremos ummódulo de segurança
bastante eficaz. Mesmo assim, não podemos afirmar que o sistema estará totalmente
protegido. Algumas dessas técnicas de proteção tem seus problemas, suas falhas e
suas vulnerabilidades. Conforme descrito neste capítulo, nenhuma dessas soluções é
perfeita: sempre há alguma brecha que pode ainda ser explorada por atacantes.
É ilusão pensar que a implantação de um módulo de segurança com todas as carac-
terísticas citadas nesse trabalho irá resolver o problema das fraudes. Contra os ataques
hoje mais difundidos, a solução provavelmente será eficiente. Mas, desde que uma
solução seja implantada, a evolução e adaptação dos atacantes ao novo ambiente será
rápida: ataques mais modernos e eficientes serão criados em pouco tempo.
5.5 A questão da privacidade 91
Portanto, qualquer solução proposta deve estar associada aum processo contínuo
de acompanhamento, investigação e melhorias. Somente operando um processo dessa
natureza podemos atenuar significantemente o problema das fraudes em sistemas tran-
sacionais.
5.5 A questão da privacidade
Explicamos durante este capítulo os diversos problemas de privacidade que podem
vir a ocorrer com as várias técnicas de defesa utilizadas. A privacidade do usuário é
seu direito e portanto deve ser respeitada. Contudo, no cenário apresentado, no qual
clientes estão utilizando serviços de uma instituição transacional conhecida e confiável,
a privacidade toma outra face.
Permitir a instalação de qualquer programa localmente em sua máquina é sempre
uma decisão difícil para qualquer usuário. Como garantir queo softwareinstalado
realize somente aquilo que ele se propõe a fazer?
No cenário de instituições transacionais, já existe uma confiança inerente entre o
cliente e a instituição. Esse cliente já utiliza vários serviços dessa instituição para os
quais um certo nível de confiança mútua é necessário. Normalmente a instituição já
possui vários dados sigilosos desse cliente. O próprio patrimônio financeiro do cliente
muitas vezes está nas mãos da instituição. Por esse motivo, ocliente normalmente não
se preocupará muito com a instalação em sua máquina de umsoftwareque possivel-
mente possa violar sua privacidade, pois ele já confia na instituição e já depende dela
para realizar inúmeros serviços.
De qualquer maneira, é interessante seguir algumas boas práticas no desenvolvi-
mento do módulo de segurança a ser instalado. Com isso, o cliente pode aferir, com
uma confiança razoável, que osoftwareinstalado localmente não está violando sua
privacidade. Abaixo seguem algumas dessas boas práticas que deveriam ser seguidas
5.5 A questão da privacidade 92
para manter a menor intrusão possível na máquina do cliente.
• O módulo de segurança só deve estar ativo durante o acesso às páginas da insti-
tuição: quando o cliente acessa explicitamente, por livre eespontânea vontade,
as páginas da instituição, só então a proteção deve ser ligada. É somente nesse
momento que o módulo poderá verificar a existência detrojans ou programas
maliciosos em geral. Por um lado, isso acaba afetando um pouco a segurança do
sistema, pois seria mais eficiente se o módulo de segurança pudesse estar ativo
desde a inicialização da máquina. Mesmo assim, a perda de segurança envol-
vida é pequena quando comparada à grande vantagem que se tem em termos de
privacidade: o usuário não poderá afirmar que o módulo está capturando suas in-
formações de outras instituições ou que está afetando o desempenho da máquina
fora do acesso à instituição protegida. Toda a atividade do módulo fica limitada
ao tempo em que o cliente está dentro da instituição. E como o foi o próprio
usuário que, por livre arbítrio, digitou no navegador o endereço protegido, fica
também sobre ele o comando da ativação e desativação da proteção.
• O módulo de segurança deve se comunicar apenas com o servidorda instituição
protegida: para evitar problemas de acusações de envio de informações para
destinatários ilícitos, o módulo de segurança deve enviar ereceber informações
apenas do própriositeda instituição protegida.
• O módulo de segurança deve trocar o mínimo de informação possível com o
servidor da instituição: os dados trocados entre os dois lados devem se limi-
tar à baixa de atualizações do módulo e ao envio de incidentesidentificados na
máquina do cliente. Sendo assim, os dados trafegados devem ser bem escas-
sos. Dessa maneira, um cliente poderá verificar que o módulo não está enviando
informações que violem sua privacidade, pois a banda utilizada pelo mesmo é
muito pequena para realizar tal tarefa.
5.5 A questão da privacidade 93
• O módulo de segurança deve possuir um modo simples de desinstalação: um
cliente sempre deve ter o direito de escolher se quer ou não instalar umsoftware
localmente em sua máquina. Caso o cliente decida que quer desinstalar o módulo
de segurança, deve haver uma maneira simples e prática de realizar essa tarefa.
Obviamente, esse método de desinstalação deve ser bem estruturado para que
trojansnão possam usa-lo como um ponto de vulnerabilidade do sistema.
Seguindo essas premissas de funcionamento, a instituição terá mais força no mo-
mento de afirmar que seu módulo de segurança não viola a privacidade de seus clientes.
Assim é possível obter um compromisso razoável entre segurança e privacidade.
94
6 CONSIDERAÇÕES SOBRE SOLUÇÕESESTRUTURAIS
“The human factor is truly security’s weakest link”
Kevin Mitnick
Durante o decorrer deste trabalho, foram explicadas técnicas de ataque e defesa
que visam impedir as fraudes virtuais. Todo essa batalha se deve a um único fator:
a falta de confiança na máquina do cliente. É por esse simples motivo que o módulo
de segurança criado no capítulo5 é necessário. É explorando quase que unicamente
esse fator que os atacantes conseguem realizar os ataques apresentados no capítulo4.
Ou seja, tudo o que foi apresentado aqui gira em torno do ambiente promíscuo e não
confiável que é a máquina do cliente.
Portanto, para que se consiga acabar (ou ao menos diminuir consideravelmente)
com as fraudes virtuais, é necessário lutar contra esse fator importante. Em termos
bem genéricos, existem duas maneiras de se lidar com o problema da não confiança na
máquina do cliente:
1. Realizar o acesso aoInternet Banking(ou ao menos o processo de autenticação)
a partir de outro ambiente confiável.
2. Tornar de alguma maneira a máquina do cliente novamente confiável.
A primeira solução parece ser a mais diretamente acessível,pois podemos utilizar
5 Considerações sobre soluções estruturais 95
artifícios tecnológicos para realizá-la. Alguns exemplosinteressantes de ambientes
confiáveis seriam:
• Utilizar dispositivos externos dedicados, sem comunicação com o exterior, para
realizar o processo de autenticação e de assinatura digitalde cada transação efe-
tuada.
• Utilizar um sistema operacional secundário, também dedicado, para acessar o
serviço deInternet Banking(exemplo: utilizar um disco deboottotalmente auto-
suficiente, não alterável, que somente permite que o usuárioutilize o serviço
provido pela instituição).
• Utilizar um sistema de máquinas virtuais totalmente segregado, em que a má-
quina virtual utilizada para acesso aoInternet Bankingesteja isolada e possa
realizar somente essa tarefa.
Esses são alguns exemplos práticos de como se poderia utilizar ambientes confiá-
veis para a redução das fraudes. Note que nenhum desses métodos é prático do ponto
de vista do cliente; há sempre um processo custoso a ser realizado pelo cliente antes
do seu acesso ao serviço. Além disso, alguns desses exemploscitados têm problemas
de logística e custo, pois não é simples nem barato distribuir dispositivos dedicados ou
discos debootpara milhares ou mesmo milhões de clientes. De qualquer maneira, em
termos de segurança, os exemplos acima mantêm sua efetividade independentemente
do estado da máquina do cliente.
A outra alternativa para lidar com o problema das fraudes seria tornar a máquina
do cliente novamente confiável. Nesse ponto, encontramos umproblema de educação
a ser tratado. As máquinas dos clientes hoje estão infectadas pela falta de informação
e ingenuidade das pessoas. Seria então necessário um grandeprocesso de educação e
conscientização dos usuário de serviços deInternet Bankingpara que esses passem a
5 Considerações sobre soluções estruturais 96
se preocupar mais com sua própria segurança. Esses usuáriosdeveriam ter conceitos
sobre navegação segura, sobre certificação digital, sobre utilização de aplicativos de
segurança, entre outros. Como muitos dos usuários desses serviços são leigos em
informática, a tarefa de educá-los em segurança não é simples. Apesar disso, esse
parece ser um mal necessário, pois a segurança sempre, em algum ponto, dependerá
da pessoa que está utilizando o sistema, por mais seguro que ele seja.
Parece que uma das alternativas mais eficazes para promover adefesa contra todos
esses ataques seja a criação nativa (direto de fábrica) na máquina do cliente de múlti-
plas máquinas virtuais, sendo que uma delas seria destinadapara execução e navegação
de aplicações sensíveis que exigem alta segurança.
O ambiente normal de uso da máquina do cliente seria totalmente dissociado e
completamente isolado desse ambiente de segurança. A própria implementação do
monitor de máquinas virtuais seria simplificada para que eletivesse pouquíssimo có-
digo, muito menor que os 50 milhões de linhas de código doWindowspara minimizar
a probabilidade de existência de vulnerabilidades.
Infelizmente, a aplicabilidade desse tipo de solução depende dos fornecedores
de máquinas e sistemas operacionais. Aparentemente, certos indícios (MICROSOFT,
2005b) indicam que eles estão trabalhando nessa direção. Se uma solução desse tipo
não for logo disponibilizada, a utilização de computadorespessoais para a execução
de transações sensíveis ficará bastante limitada.
Enquanto isso não ocorre, a solução apresentada neste trabalho, complementada
por um processo contínuo de melhorias, é uma das alternativas viabilizadoras do uso de
computadores pessoais de baixo custo executando transações sensíveis com um nível
de segurança adequado.
97
7 CONCLUSÕES
“. . . what is proved by impossibility proofs is lack of imagination.”
John Bell
Apresentamos neste trabalho uma perspectiva da situação atual das fraudes virtuais
contra instituições que operam sistemas transacionais no Brasil. Foi mostrado que o
problema das fraudes já é muito sério e ainda tende a crescer.Foram apresentados os
ataques mais utilizados hoje para realizar essas fraudes, epara cada um desses ataques
foi explicada uma possível forma de proteção. Demonstrou-se também que, com um
conjunto dessas defesas, pode-se criar um sistema eficientede combate às fraudes.
Mesmo assim, uma solução definitiva para as fraudes requer ainda um trabalho mais
árduo, envolvendo ação que deve ser executada preferencialmente pelos fornecedores
(fabricantes) de máquinas e sistemas operacionais.
A solução de curto prazo aqui apresentada contra as fraudes obviamente não provê
100% de eficácia. Após a leitura deste trabalho, deve ficar claro que não existe uma
solução puramente tecnológica que resolverá esse problema. É necessário aplicar, em
conjunto com a tecnologia, um processo de educação e criaçãode um cultura de segu-
rança nos usuários dos serviços atacados.
A técnica conhecida como “engenharia social” pode quase sempre sobrepassar o
mais seguro dos sistemas. A ignorância e inocência das pessoas continuarão a ser os
grandes pontos de vulnerabilidade de qualquer sistema.
6 Conclusões 98
As técnicas aqui descritas podem ajudar, e muito, uma instituição transacional na
batalha contra as fraudes. Mas a solução definitiva só virá com a conscientização e o
compartilhamento da responsabilidade da segurança do sistema com seus usuários.
99
REFERÊNCIAS
AARONSON, L. For love of money - malicious hacking takes an ominous turn.Spectrum, IEEE, v. 42, p. 17 – 19, Nov. 2005.
AWAD, K. F. N. F. The deceptive behaviors that offend us most about spyware.Communications of the ACM, v. 48, p. 55 – 60, Aug. 2005.
BERTIN, M. The new security threats.Ziff Davis Smart Business, Feb. 2001.
BRUSTOLONI, X.; BRUSTOLONI, J. C. Hardening web browsers against man-in-the-middle and eavesdropping attacks.International World Wide Web Conference, p.489 – 498, 2005.
CASS, S. Anatomy of malice [computer viruses].Spectrum, IEEE, v. 38, p. 56 – 60,Nov. 2001.
CERT. CERT/CC Statistics 1988-2005. 2005. Hipertexto. Disponível em:http://www.cert.org/ . Acesso em: 16 de maio de 2006.
COHEN, F. 50 ways to attack your web systems.Internet Holes, Jan. 1995.
DEAN E. W. FELTEN, D. S. W. D.; BALFANZ, D. Java security: Web browsers andbeyond.Internet Beseiged: Countering Cyberspace Scofflaws, October 1997.
DESCRIPTION, A. R. M.Anti-Spyware Coalition Risk Model Description. 2005.Hipertexto. Disponível em:http://www.antispywarecoalition.org/documents/RiskModelDescription.htm . Acesso em: 16 de maio de 2006.
DHAMIJA, L. D. T. R. The battle against phisihng: Dynamic security skins.Proceedings of the 2005 ACM Symposium on Usable privacy and security, p. 77 – 88,July 2005.
FOLHA. Folha Online. 2005. Hipertexto. Disponível em:http://www.folha.uol.com.br/ . Acesso em: 16 de maio de 2006.
FREEDMAN, D. H.How To Hack A Bank. 2000. Hipertexto. Disponível em:http://www.forbes.com/asap/2000/0403/056.html . Acesso em: 16de maio de 2006.
FREEMAN, A. U. L. A. Why do people hate spyware?Communications of the ACM,v. 48, p. 50 – 53, Aug. 2005.
GIBSON, S. Spyware was inevitable.Communications of the ACM, v. 48, p. 37– 39,Aug. 2005.
Referências 100
GOLDBERG D. WAGNER, R. T. I.; BREWER, E. A. A secure environment foruntrusted helper applications: Confining the wily hacker.Proceedings of the 6thUsenix Security Symposium, 1996.
HOWARD, J. D.An Analysis of Security Incidents on the Internet. Tese (Doutorado)— Pittsburgh, Pennsylvania, 1997.
HU, T. D. Q. Is spyware an internet nuisance or public menace?Communications ofthe ACM, v. 48, p. 61 – 66, Aug. 2005.
HUBERMAN B.A. ADAR, E. F. L. Valuating privacy.Security & Privacy Magazine,IEEE, v. 3, p. 22– 25, Sept.-Oct. 2005.
HYDE, R.The Art of Assembly Language Programming. 1. ed. [S.l.]: No Starch Press,2003.http://courses.ece.uiuc.edu/ece390/books/artofasm/artofasm.html .
IDGNOW. International Data Group (Brasil). 2005. Hipertexto. Disponível em:http://www.idgnow.com.br/ . Acesso em: 16 de maio de 2006.
KOSKOSAS, I. V.; PAUL, R. J. The interrelationship and effectof culture and riskcommunication in setting internet banking security goals.Proceedings of the 6thinternational conference on Electronic commerce, v. 60, p. 341 – 350, 2004.
LABS, K. Trojan programs exploiting the latest Windows vulnerability. 2005.Hipertexto. Disponível em:http://www.kaspersky.com/news?id=176708581 . Acesso em: 16 de maio de 2006.
LANDWEHR ALAN R. BULL, J. P. M. C. E.; CHOI, W. S. A taxonomy of computerprogram security flaws.ACM Computing Surveys (CSUR), v. 26, n. 3, p. 211 – 254,1994.
LEE, K. A. K. Y. Investigating factors affecting the adoption of anti-spyware systems.Communications of the ACM, v. 48, p. 72 – 77, Aug. 2005.
LOBL, T. R. Student papers: Identity theft, spyware and the law. Proceeding of the2nd annual conference on Information security curriculum deevlopment InfoSecCD’05, Sep. 2005.
MADSEN YUZO KOGA, K. T. P. Dim framework: Federated identitymanagementfor protecting users from id theft.Proceeding of the 2005 workshop on Digital identitymanagement, Nov. 2005.
MATAYOSHI, C. M. Modelo de segurança da linguagem java.SBRC, 1998.
MCGRAW, G.; FELTEN, E.Securing Java. [S.l.]: John Wiley & Sons, Inc., 1999.http://www.securingjava.com/ .
MICROSOFT.Microsoft Security Bulletin MS06-001. 2005. Hipertexto. Disponívelem: http://www.microsoft.com/technet/security/bulletin/ms06-001.mspx . Acesso em: 16 de maio de 2006.
Referências 101
. Next-Generation Secure Computing Base. 2005. Hipertexto. Disponível em:http://www.microsoft.com/resources/ngscb/default.mspx .Acesso em: 16 de maio de 2006.
MITTELSDORF, A. W.Uma plataforma para computação com confiança baseadaem monitor de máquinas virtuais e atestamento dinâmico. Tese (Doutorado) — EscolaPolitécnica da Universidade de São Paulo, São Paulo, 2004.
MOORE VERN PAXSON, S. S. C. S. S. S. D.; WEAVER, N.The Spread of theSapphire/Slammer Worm. 2003. Hipertexto. Disponível em:http://www.caida.org/outreach/papers/2003/sapphire/sapphire.html . Acesso em:16 de maio de 2006.
MSDN. Microsoft Corporation - Hooks. 2005. Hipertexto. Disponível em:http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/windowing/hooks.asp .Acesso em: 16 de maio de 2006.
NILSSON ANNE ADAMS, S. H. M. Building security and trust in online banking.Conference on Human Factors in Computing Systems, p. 1701 – 1704, 2005.
POSTON THOMAS F. STAFFORD, A. H. R. Spyware: a view from the (online)street.Communications of the ACM, v. 48, Aug. 2005.
PUENTE F. GONZALEZ, S. S. J. de la. Virus attack to the pc bank.SecurityTechnology, 1999. Proceedings., p. 304 – 310, Oct. 1999.
PUENTE J.D. SANDOVAL, P. H. F. de la. Personal digital signerfor internet banking.Communications, Computers and signal Processing, 2003. PACRIM, v. 2, p. 700 –703, Aug. 2003.
PUENTE JUAN D. SANDOVAL, P. H. F. D. L. Pocket device for authenticationand data integrity on internet banking applications.Security Technology, 2003.Proceedings, p. 43 – 50, Oct. 2003.
PUENTE SANTIAGO GONZALEZ, J. D. S. Fernando de la; HERNANDEZ,P. Viralattack to internet banking applications.Aerospace and Electronic Systems Magazine,IEEE, v. 15, p. 3 – 8, 2000.
SCHMIDT, K. P. A. M. B. Spyware: a little knowledge is a wonderful thing.Communications of the ACM, v. 48, p. 67 – 70, Aug. 2005.
SEGEV, J. P. A.; ROLDAN, M. Internet security and the case of bank of america.Communications of the ACM, v. 41, n. 10, p. 81 – 87, October 1998.
SLEWE, T.; HOOGENBOOM, M. Who will rob you on the digital highway?Communications of the ACM, v. 47, n. 5, p. 56 – 60, May 2004.
SMARTLINK. Virtual Keabord Example. 2005. Hipertexto. Disponível em:http://www.smartlinkcorp.com/ . Acesso em: 16 de maio de 2006.
Referências 102
SMITH, S. Pretending that systems are secure.Security & Privacy Magazine, IEEE,v. 3, p. 73 – 76, Nov.-Dec. 2005.
SNADBOY. SnadBoy’s Revelation. 2000. Hipertexto. Disponível em:http://www.snadboy.com/ . Acesso em: 16 de maio de 2006.
STYTZ, M. Protecting personal privacy: Hauling down the jolly roger.Security &Privacy Magazine, IEEE, v. 3, p. 72– 74, July-Aug. 2005.
THOMPSON, R. Why spyware poses multiple threads to security.Communicationsof the ACM, v. 48, p. 41 – 43, Aug. 2005.
TIMES eCommerce.Identity Theft Is Fastest-Growing Online Crime. 2003.Hipertexto. Disponível em:http://www.epaynews.com/index.cgi?survey=&keywords=ID%20theft&optional=&subject=&location=&ref=keyword&f=view&id=1056453397622215212&block=1 . Acessoem: 16 de maio de 2006.
VENNERS, B. Java’s security architecture - an overview of the jvm’s security modeland a look at its built-in safety features.Java World, August 1996.
. Security and the class loader architecture - a look at the role played by classloader in the jvm’s overall security model.Java World, September 1997.
. Security and the class verifier - a look at the role played by class verifier in thejvm’s overall security model.Java World, October 1997.
VLIET, H. van. Mocha, the Java Decompiler. 1996. Hipertexto. Disponível em:http://www.brouhaha.com/~eric/software/mocha/ .Acesso em: 16 demaio de 2006.
WARKENTIN XIN LUO, G. F. T. M. A framework for spyware assessment.Communications of the ACM, v. 48, p. 79 – 84, Aug. 2005.
WENUIN GUANGLIN HUANG, L. X. Z. M. X. D. L. Detection of phishingwebpages based on visual similarity.Special interest tracks and posters of the 14thinternational conference on World Wide Web, May 2005.
WHEELER, A. C. D.; LUO, A. X. J. Java security extensions for a java server ina hostile environment.17th Annual Computer Security Applications Conference(ACSAC’01), December 2001.
ZHANG, X. What do consumers really know about spyware?Communications of theACM, v. 48, p. 44 – 48, Aug. 2005.
107
GLOSSÁRIO
•Engenharia Social: prática para obtenção de informações confidenciais através
da manipulação de usuários legítimos. O atacante normalmente utilizará um
telefone ou aInternetpara enganar as pessoas e fazer com que essas revelem
informações sensíveis ou realizem alguma ação que vai contra sua política de
segurança. Em vez de explorar falhas de segurança do sistema, esse método
explora a tendência natural das pessoas de confiar na palavraalheia.
•Malware: programa com o objetivo de infiltrar ou danificar um computador, sem
o consentimento de seu dono. Inclui as classestrojans, worms, spywarese vírus.
•Spyware: ampla categoria de programas maliciosos criados para interceptar ou
tomar controle parcial das operações de um computador sem o consenso do usuá-
rio legítimo. Táticas comuns utilizadas porspywaressão: mostrar janelas de
propaganda não solicitadas; roubo de informação pessoal (como números de car-
tão de crédito); monitoração das atividades de navegação naInternetpara fins de
marketing; redirecionamento de requisiçõeswebpara páginas com propagandas.
•Trojan: programa malicioso que se apresenta disfarçado como um programa
legítimo. Trojans não possuem a habilidade de se replicar automaticamente,
normalmente dr utilizando da curiosidade ou inocência da vítima para serem
executados.
•Vírus: programas que se replicam automaticamente e se espalham através da
inserção de cópias de si mesmo dentro de outros executáveis ou documentos.
•Worm: programa que se replica automaticamente, similarmente a um vírus. En-