Segurança na Web
Java, ActiveX, JavaScript
por
Hednilson Bezerra
Hugo Morais
Vicente Beltrão
Programação
 Conteúdos
Executáveis
 Segurança em Java
 Segurança em ActiveX
 Java vs. ActiveX
 Segurança em JavaScript
Programação
 Conteúdo
Executável
 Segurança em Java
 Segurança em ActiveX
 Java vs. ActiveX
 Segurança em JavaScript
Conteúdos Executáveis
 programas
transportados na rede para rodar
em máquinas remotas
 idéia muito interessante e poderosa
 convite a problemas de segurança
 acesso a certos recursos da máquina
hospedeira
 programa pode não ser confiável
Conteúdos Executáveis
 pode
tornar à tona um programa malicioso
com a mesma habilidade de destruir tal
como hacker
 solução não é tão simples como restringir
completamente o acesso a recursos dos
programas que são baixados
 recursos
da máquina precisam ser
controlados
Conteúdos Executáveis
 identificar
os recursos e providenciar certos
tipos de acesso limitado a estes recursos, de
acordo com os ataques que esses recursos
podem sofrer
 recursos:
sistema de arquivos, rede,
memória, dispositivos de entrada e saída,
controle de processos, ambiente, chamadas
ao sistema operacional
Conteúdos Executáveis
 Os
principais tipos de ataque, causados por
conteúdos executáveis são:
–
–
–
–
ataques de integridade
ataques de disponibilidade
ataques de revelação
ataques de aborrecimento
Segurança em Java
 característica
de Java: portabilidade
 applets
podem
ser
dinamicamente
carregados através da rede e serem
executados localmente
 Web browser + interpretador Java +
biblioteca dinâmica
 3 níveis de segurança devem ser estudados:
a linguagem, as bibliotecas e o web browser
Segurança em Java
A Linguagem
 características
de segurança da linguagem:
– controle de acesso para variáveis e métodos dos
objetos
– segurança do sistema de tipos
– não uso de ponteiros com tipo de dados da
linguagem
– garbage collection
– pacotes com espaço de nomes distintos
Segurança em Java
As Bibliotecas
 oferece
acesso aos recursos do sistema
 implementação correta dessas bibliotecas
 As restrições de acessos dessas bibliotecas:
– mecanismo da linguagem de oferecer restrições
de acesso aos métodos e variáveis dos objetos
– ClassLoaders especializados em carregar
código importado
– chamadas explícitas ao SecurityManager global
para checar a validade de certas operações
Segurança em Java
Web Browsers
 define
e implementa a política de segurança
para rodar o código Java baixado
 SecurityManager controla o acesso aos
recursos críticos do sistema
 Se o web browser não instala um
SecurityManager, um applet poderá ter o
mesmo tipo de acesso de uma aplicação
Java local
Problemas de Segurança em Java
O
SecurityManager não tem um método
para controlar a criação de janelas ou
controlar o que pode ser mostrado ou tocado
 Não há um mecanismo para controlar o
acesso do applet aos dispositivos de entrada
 Um applet pode alocar uma quantidade de
memória arbitrária, criando novos objetos
Segurança em Java
Poder X Segurança
 Java
foi proposta para providenciar maior
poder e flexibilidade às aplicações
 balanceamento entre o poder das aplicações
e os riscos de segurança do sistema
 Qualquer um que esteja considerando usar
Java precisa entender que há um aumento
nos riscos de segurança, mas ela prover um
mecanismo de segurança de certa forma
razoável para aplicações da Internet
ActiveX - Introdução
O
que é esta nova Tecnologia
– Apresentada pela Microsoft na Internet
Professional Developer’s Conference (PDC)
– Constitui um conjunto de tecnologias
– Formada por ActiveX Control’s, ActiveX
Scripting e ActiveX Documents
– Pode ser encarado como uma reformulação da
antiga Tecnologia OLE para a Web
– Promove a iteração entre Software em ambiente
de rede
ActiveX - Vantagens
 Excelente
funcionalidade
 Ambientes amigáveis e iterativos
 Maior aproximação com o usuário final
 É baixado uma única vez, a menos da
versão estar desatualizada
 Bom desempenho por entender diretamente
a linguagem da plataforma Windows 95 e
NT
ActiveX - Desvantagens
 “Nem
tudo são flores...”
 Ganha-se por um lado e perde por outro
 A Microsoft apostou na funcionalidade
 E a segurança ? Esta merece maior atenção
e dedicação
 A compatibilidade também é um fator
desfavorável (por enquanto)
ActiveX - Segurança
 Até
que ponto a Web é segura, mesmo antes
desta nova tecnologia ?
 A maior funcionalidade do ActiveX
promove boas ambições aos Hackers
 Pode-se Instalar vírus, excluir arquivos
 Pode acabar com sua máquina e suas
informações
 Uma vez instalado, ele tem total poder
ActiveX - Segurança
 Quais
os recursos de proteção ?
 O Internet Explorer (acima da versão 3.0),
oferece três níveis de segurança
– Alto (recomendado a todos usuários)
– Médio (para usuários experientes)
– Baixo (para nenhum usuário !!)
 Sistema
de Authenticode
ActiveX - Segurança
O
que é a Assinatura Digital ?
 Possui informações com relação a empresa
e autor que desenvolveram o ActiveX
 Questão de confiança no autor e na
Microsoft
 Funciona muito bem para Intranets
 Alguns especialistas apostam nesta
tecnologia
Java Applet x ActiveX
 Java
roda em uma JVM
 Carregado toda vez que é acessado
 Maior segurança, menor flexibilidade e
funcionalidade
 Java é seguro ?
 Teoricamente não pode escrever no sistema
de arquivos do cliente e não se comunicam
com aplicativos não-java
Java Applet x ActiveX
 Bugs
encontrados em algumas JVM,
promovem alto grau de insegurança
Novas tendências
 Firewalls
são usados para proteger redes de
ActiveX e Java Applet
 Há o bloqueio do código sem haver algum
tipo de inspeção de sua validae
 Pouco prático e inflexível
 As tecnologias mudam
 Surgem os Firewalls inteligentes
Novas tendências
 Baseiam-se
no estado da comunicação
 Utilizam estados de comunicações passadas
e o estado da aplicação em si
 Armazenamento de estado
 Aprende com as comunicações passadas
 Avaliam as presentes e futuras
 Quando a origem é desconhecida, usa-se a
adivinhação
Conclusão
 Não
existe algo realmente seguro na Internet
 Há sempre um risco inerente
 Toda a sociedade perde com isto
 Não é dever do usuário distinguir
determinadas tecnologias
 De alguma forma tem que se possibilitar um
ambiente seguro
 ActiveX é um vilão ou herói?
Breve Histórico
 Semelhança
com Java, mas desenvolvido
pela Netscape
 Browsers que suportam JavaScript
– Netscape Navigator (2.x, 3.x)
– Netscape Comunicator (4.x)
– Internet Explorer (3.x, 4.0)
Breve Histórico
Originalmente chamada de LiveScript, o
código JavaScript é colocado diretamente no
texto de um documento HTML
 É visto como um comentário em browsers
que não o interpretam
 Dão uma funcionalidade adicional para
página Web.
 JavaScript prover uma funcionalidade
incremental, ela é sintaticamente simples e
menos poderosa que Java

“Brechas” conhecidas na
segurança de JavaScript
JavaScript também tem uma história de
problemas com segurança. Não como as
“brechas” de Java, que potencialmente
podem trocar dados no disco do usuário, as
“brechas”
de
JavaScript
geralmente
envolvem a privacidade do usuário. Apesar
de alguns bugs terem sidos resolvidos outros
explodem a cada dia. O mais recente foi
relatado em 16 de outubro de 1997.
Interceptação de arquivos
 “Brecha”
do IE 4.0
 permitem um operador de um Web Site
remoto espionar o conteúdo de algum
texto imagem ou arquivo HTML
localizado na sua máquina ou um
arquivo localizado em um servidor de
arquivo.
Interceptação de arquivos
 Firewalls
não podem nos proteger
contra este ataque e os browsers estão
vulneráveis mesmo quando rodam no
modo de “Alta Segurança”.
 versão para Macintosh do IE 4.0
aparentemente não são afetadas.
Interceptação de arquivos
Descoberto pelo consultor alemão Ralf
Hueskes e é conhecido como “Freiburg
attack”
 Quando o browser abre o site, o programa
JavaScript cria um frame invisível e vai
varrendo todos os arquivos da máquina em
busca de arquivos de nomes bem
conhecidos enviando-os para algum site na
Internet
 Este bug não permite que JavaScript
modifique ou prejudique os arquivos.

Monitoração da Sessão do
Usuário
 Esta
brecha permite que páginas com
JavaScript monitore todas as páginas
visitadas pelo usuário durante a sessão.
 Variações: capturar conteúdo de
formulários, cookies e informações
sobre outros elementos na página.
Monitoração da Sessão do
Usuário
Informações sempre podem ser roubadas
mesmo se o usuário estiver visualizando
páginas “seguras” encriptadas com SSL
 Usuários trabalhando atrás de sistemas de
Firewalls corporativos estão tão vulneráveis
quanto aqueles que estão conectados
diretamente na Internet
 Risco: privacidade do usuário, dados e
softwares localizados na máquina do usuário
não podem ser modificados.
 Todos os browsers estão sujeitos a este bug

Observação de Informações
através de Frames

Um JavaScript não pode recuperar a URL de
um documento baixado de um outro site, mas
ele pode detectar os seguintes itens do
respectivo documento
 URLs de todas imagens no documento
 Outras informações das imagens, como
largura e comprimento
 URLs de todos os Applets
 URLs de todos os ActiveX Controls
“Brecha” de Enviar Arquivo
 Não
estritamente relacionada com
JavaScript
 Bug no modo em que formulários são
tratados pelo Navigator
 Programas JavaScript enganam o
browser enviando algum arquivo do HD
do usuário local
“Brecha” de Enviar Arquivo
O
Usuário não terá conhecimento a não
ser que tenha habilitado a opção de
“Aviso antes de Submeter”
 O Navigator falhará em produzir um
aviso se o servidor remoto por acaso
utilizar SSL para estabelecer uma
conexão “segura”
Conclusão
JavaScript contém “brechas” na segurança.
Muitas delas tem sido diagnosticadas, mas
novas vem aparecendo numa taxa constante.
Indubitavelmente ainda existem bugs
desconhecidos. As pessoas que se
preocupam com a falta de privacidade das
informações são encorajadas a desabilitar
JavaScript completamente.
Download

Segurança na Web