Seguranca Nas Aplicações WEB

5
Estevão Segurança nas Aplicações web Com a popularização da Internet e de serviços através dela, o tema segurança em aplicações Web é algo interessante a se discutir. O ambiente é bom para diversos lados: empresas que aumentam seus lucros através do comércio online, usuá- rios que confiam em aplicações Web para lidar com suas informações pessoais e criminosos que podem obter muito dinheiro roubando informações de pagamentos com cartões de crédito e comprometendo contas bancárias. As aplicações Web fornecem diversas facilidades. Entre elas, o fator disponibilidade é um dos que merecem destaque. Como as aplicações estão na Web, teoricamente, elas podem ser acessadas por qualquer indivíduo com conexão à Internet. Diversos são os dados gerenciados pelas aplicações. Empresas que intermediam compras na Internet, por exemplo, PagSeguro e PayPal, possuem dados de diversas pessoas assim como informações de seus cartões de créditos. As implicações geradas por um vazamento de informações são enormes. Falhas podem comprometer um grande volume de dados afetando muitas pessoas e também a credibilidade da empresa que fornece o serviço. Vulnerabilidades em aplicações Web Como toda nova tecnologia, as aplicações Web trouxeram consigo novos tipos de vulnerabilidades e ataques associados. O primeiro são pontos de fraqueza na aplicação que são suscetíveis a ataques. O segundo são técnicas usadas por atacantes com o objetivo de explorar vulnerabilidades na aplicação. De acordo com (STUTTARD; PINTO, 2007), o principal problema de segurança em aplicações Web está no fato dos usuários poderem enviar entradas completamente arbitrárias às aplicações. Assim o passo inicial de todas aplicações é assumir que todas entradas, sem exceções, são maliciosas. Então seguir determinados passos para garantir que a entrada está “limpa” a ponto de não permitir que atacantes comp rometam a aplicação. Entradas maliciosas podem interferir na lógica e comportamento da aplicação para ganhar acesso privilegiado a seus dados e funcionalidades. Ainda de acordo com (STUTTARD; PINTO, 2007), este problema principal de envio de entradas arbitrárias manifesta-se de diferentes formas. Usuários podem interferir em qualquer parte do dado transmitido entre o cliente e o servidor. Controles de segurança implementados no lado do cliente podem ser facilmente burlados, como exemplo a validação de formulários usando JavaScript . Outra forma de interferência refere-se ao envio de requisições às aplicações Web. Os usuários podem enviar requisições e parâmetros às aplicações em diferentes sequências. Afirmações de como o usuário irá interagir com a aplicação podem ser violadas. E por fim, usuários não estão restritos apenas aos navegadores Web para usar as aplicações. Diferentes ferramentas podem ser usadas para ajudar na exploração de

description

Muito bom

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.