Seguranca Nas Aplicações WEB
description
Transcript of Seguranca Nas Aplicações WEB
-
Estevo
Segurana nas Aplicaes web
Com a popularizao da Internet e de servios atravs dela, o tema segurana
em aplicaes Web algo interessante a se discutir. O ambiente bom para diversos
lados: empresas que aumentam seus lucros atravs do comrcio online, usu-
rios que confiam em aplicaes Web para lidar com suas informaes pessoais e
criminosos que podem obter muito dinheiro roubando informaes de pagamentos
com cartes de crdito e comprometendo contas bancrias. As aplicaes Web fornecem
diversas facilidades. Entre elas, o fator disponibilidade um dos que merecem destaque.
Como as aplicaes esto na Web, teoricamente, elas podem ser acessadas por qualquer
indivduo com conexo Internet.
Diversos so os dados gerenciados pelas aplicaes. Empresas que intermediam
compras na Internet, por exemplo, PagSeguro e PayPal, possuem dados de diversas
pessoas assim como informaes de seus cartes de crditos. As implicaes geradas
por um vazamento de informaes so enormes. Falhas podem comprometer um grande
volume de dados afetando muitas pessoas e tambm a credibilidade da empresa que
fornece o servio.
Vulnerabilidades em aplicaes Web
Como toda nova tecnologia, as aplicaes Web trouxeram consigo novos tipos
de vulnerabilidades e ataques associados. O primeiro so pontos de fraqueza na
aplicao que so suscetveis a ataques. O segundo so tcnicas usadas por atacantes
com o objetivo de explorar vulnerabilidades na aplicao. De acordo com
(STUTTARD; PINTO, 2007), o principal problema de segurana em aplicaes
Web est no fato dos usurios poderem enviar entradas completamente arbitrrias
s aplicaes. Assim o passo inicial de todas aplicaes assumir que todas entradas,
sem excees, so maliciosas. Ento seguir determinados passos para garantir
que a entrada est limpa a ponto de no permitir que atacantes comprometam a
aplicao. Entradas maliciosas podem interferir na lgica e comportamento da
aplicao para ganhar acesso privilegiado a seus dados e funcionalidades.
Ainda de acordo com (STUTTARD; PINTO, 2007), este problema principal
de envio de entradas arbitrrias manifesta-se de diferentes formas. Usurios podem
interferir em qualquer parte do dado transmitido entre o cliente e o servidor. Controles
de segurana implementados no lado do cliente podem ser facilmente burlados, como
exemplo a validao de formulrios usando JavaScript. Outra forma
de interferncia refere-se ao envio de requisies s aplicaes Web. Os usurios
podem enviar requisies e parmetros s aplicaes em diferentes sequncias.
Afirmaes de como o usurio ir interagir com a aplicao podem ser violadas.
E por fim, usurios no esto restritos apenas aos navegadores Web para usar as
aplicaes. Diferentes ferramentas podem ser usadas para ajudar na explorao de
-
aplicaes. Como exemplo pode-se citar ferramentas que so capazes de enviar
requisies e parmetros para procurar e explorar vulnerabilidades.
Este problema citado apenas um dos que levam a explorao de aplicaes
Web. necessrio conhecer tipos de ataques e vulnerabilidades associadas s aplicaes
para auxiliar na preparao de um esquema de segurana para elas. Assim,
com o objetivo de reunir dados de vulnerabilidades de sites e obter um melhor
entendimento sobre o cenrio de vulnerabilidades em aplicaes Web, o WASC
(Web Application Security Consortium) [Consrcio de Segurana em Aplicaes
Web], juntamente com o apoio de indstrias como Positive Technologies, Whitehat
Security, Cenzic, HP Application Security Center, Veracode, Blueinfy, DNS, Encription
Limited, elaborou o WASC Web Application Security Statistics Project
2008 (GORDEYCHIK et al., 2008). Este projeto tem como objetivo verificar
quais classes de ataques so mais comuns e tambm comparar metodologias para
identificar ataques.
O projeto possui estatsticas de vulnerabilidades de aplicaes Web que foram
coletadas durante testes de invaso, auditoria em segurana e outras atividades
feitas por organizaes que so membros do WASC at 2008. Os dados so de
12186 sites totalizando 97554 vulnerabilidades detectadas.
Achiraf
Principais vulnerabilidades sujeitas s aplicaes WEB
Seguem os principais Riscos nas aplicaes WEB destacados na OWASP, visando a
segurana da informao:
SQL injection: SQL (Structured Query Language) [Linguagem de Consulta
Estruturada] uma linguagem que permite interagir com banco de dados. As
interaes mais comuns so inserir, consultar, deletar e editar informaes
em bancos de dados relacionais. bastante comum aplicaes Web fazerem
uso de banco de dados para o armazenamento de informaes. A vulnerabilidade
associada ao SQL chamada de SQL injection, em portugus
injeo de SQL. Se a parte da aplicao que lida com instrues SQL no filtar as
entradas do usurio, possvel a injeo de instrues, o que permite ao atacante alterar
a lgica das instrues e manusear (inserir, deletar, editar, consultar) as informaes que
esto no banco de dados.
Existem muitos tipos de injeo: SQL, LDAP, XPath, XSLT, HTML, XML , entre
outras.
Quebra de autenticao e Gerenciamento de Sesso;
As funes da aplicao relacionadas com autenticao e gerenciamento de sesso
geralmente so implementadas de forma incorreta, permitindo que os atacantes
-
comprometam senhas, chaves e tokens de sesso ou, ainda, explorem outra falha da
implementao para assumir a identidade de outros usurios.
Cross-Site Scripting (XSS);
um tipo de vulnerabilidade que permite injeo de cdigos no lado cliente (client-side)
de aplicaes Web. Este tipo de vulnerabilidade habilita os atacantes a ignorar os
controles de acesso, obter privilgios de acesso, desfigurar pginas Web e obter dados
sensveis como logins, senhas ou nmeros de cartes de crditos
(BODMER, 2007).
A aplicao recebe dados no confiveis e os envia ao navegador
sem validao ou filtro adequados. XSS permite aos atacantes executarem scripts no
navegador da vtima que podem sequestrar sesses do usurio, desfigurar sites, ou
redirecionar o usurio para sites maliciosos.
Referncia Insegura e Direta a Objetos;
Uma referncia insegura e direta a um objeto ocorre quando um desenvolvedor expe
uma referncia implementao interna de um objeto, como um arquivo, diretrio, ou
registro da base de dados. Sem a verificao do controle de acesso ou outra proteo, os
atacantes podem manipular estas referncias para acessar dados no-autorizados.
Configurao Incorreta de Segurana;
Uma boa segurana exige a definio de uma configurao segura e implementada na
aplicao, frameworks, servidor de aplicao, servidor web, banco de dados e
plataforma. Todas essas configuraes devem ser definidas, implementadas e mantidas,
j que geralmente a configurao padro insegura. Adicionalmente, o software deve
ser mantido atualizado.
Exposio de Dados Sensveis;
Muitas aplicaes web no protegem devidamente os dados sensveis, tais como
cartes de crdito, IDs fiscais e credenciais de autenticao. Os atacantes podem roubar
ou modificar esses dados desprotegidos com o propsito de realizar fraudes de cartes
de crdito, roubo de identidade, ou outros crimes. Os dados sensveis merecem
proteo extra como criptografia no armazenamento ou em trnsito, bem como
precaues especiais quando trafegadas pelo navegador.
Funo para Controle do Nvel de Acesso;
A maioria das aplicaes web verificam os direitos de acesso em nvel de funo antes
de tornar essa funcionalidade visvel na interface do usurio. No entanto, as aplicaes
precisam executar as mesmas verificaes de controle de acesso no servidor quando
cada funo invocada. Se estas requisies no forem verificadas, os atacantes sero
capazes de forjar as requisies, com o propsito de acessar a funcionalidade sem
autorizao adequada.
-
Site Request Forgery (CSRF);
Um ataque CSRF fora a vtima que possui uma sesso ativa em um navegador a
enviar uma requisio HTTP forjada, incluindo o cookie da sesso da vtima e qualquer
outra informao de autenticao includa na sesso, a uma aplicao web vulnervel.
Esta falha permite ao atacante forar o navegador da vtima a criar requisies que a
aplicao vulnervel aceite como requisies legtimas realizadas Pela Vtima.
Utilizao de Componentes Vulnerveis Conhecidos;
Componentes, tais como bibliotecas, frameworks, e outros mdulos de software quase
sempre so executados com privilgios elevados. Se um componente vulnervel
explorado, um ataque pode causar srias perdas de dados ou o comprometimento do
servidor. As aplicaes que utilizam componentes com vulnerabilidades conhecidas
podem minar as suas defesas e permitir uma gama de possveis ataques e impactos.
Redirecionamento e Encaminhamentos Invlidos;
Aplicaes web frequentemente redirecionam e encaminham usurios para outras
pginas e sites, e usam dados no confiveis para determinar as pginas de destino. Sem
uma validao adequada, os atacantes podem redirecionar as vtimas para sites de
phishing ou malware, ou usar encaminhamentos para acessar pginas no autorizadas.
Vazamento de informaes: Como visto em (AUGER; BARNETT, 2010), o
vazamento de informaes, information leakage em ingls, uma vulnerabilidade em
que a aplicao revela dados sensveis, como detalhes tcnicos
do servidor, da aplicao ou dados do usurio. Essas informaes vazadas
podem ajudar os atacantes a descobrir a quais tipos de vulnerabilidades a
aplicao suscetvel.
HTTP response splitting: O HTTP Response Splitting na verdade um vetor de
ataques, pois ele uma maneira, um mtodo que leva a um objetivo final. Ele
a porta de entrada para a execuo de outros ataques como o j abordado
Cross-Site Scripting.
Proteo insuficiente na camada de transporte: Em redes de computadores, a
funo da camada de transporte fornecer comunicao lgica entre processos de
aplicao que so executados em hospedeiros diferentes (KUROSE;
ROSS, 2006). A comunicao lgica significa que as aplicaes, que so
executadas no cliente e no servidor, possuem a sensao de estarem conectadas
diretamente atravs de uma via direta. Porm a realidade que cliente e servidor podem
estar em lados opostos do planeta e ligados por diferentes roteadores e enlaces.
A segurana aplicada camada de transporte o uso de Secure Sockets Layer (SSL)
[Camada Segura de Sockets] e tambm Transport Layer Security (TLS) [Segurana na
Camada de Transporte]. Eles so usados para prover criptografia camada de
transporte. Se a camada de transporte no contar com tais mtodos de segurana,
-
possvel que o trfego entre cliente e servidor seja exposto a terceiros. Assim os dados
podem ser interceptados e alterados antes que cheguem ao destino final, que pode ser
tanto o cliente quanto o servidor.