Você está na página 1de 4

iMasters - Por uma Internet mais criativa e dinmica

http://imasters.uol.com.br/artigo/12132/seguranca/vulnerabilidades_de...

Fernando Franzini Quinta-feira, 26 de maro de 2009

Vulnerabilidades de Aplicativos Web


Vulnerabilidade definida como uma falha de projeto, implementao ou configurao de um software que, quando explorada por um atacante, resulta em violao de segurana. As vulnerabilidades so resultados das redues de custos com mo de obra no qualificada, contratando e formando equipes sem a competncia adequada resultando, na maioria das vezes, em aplicaes problemticas com dezenas de falhas de segurana. Fiz um estudo para uma possvel implementao de uma aplicao web com o perfil de um tpico Home Bank e resolvi criar um artigo bem resumido sobre assunto. Seguem abaixo os descritivos das vulnerabilidades mais comuns e suas respectivas medidas de preveno: 1. Validao de Dados Ocorrem quando a aplicao implementa as validaes de dados na camada de apresentao usando [http://en.wikipedia.org/wiki/Javascript]javascript]. A tecnologia que transporta as pginas, arquivos e informaes pela web o protocolo [http://pt.wikipedia.org/wiki/HTTP]HTTP] que nada mais que um simples texto e pode facilmente ser interceptado, visualizado e alterado por qualquer pessoa atravs de uma ferramenta sniffer e qualquer manipulador HTTP como [http://tamperdata.mozdev.org/]TamperData], [http://www.softpedia.com/get/Tweak/Browser-Tweak/TamperIE-Web-Security-Tool.shtml]TamperIE] ou [http://swik.net/SpikeProxy]Spike Proxy]. Outro fator que javascript tambm pode ser facilmente desabilitado ou alterado no browser. Soluo - Replicao ou a centralizao das validaes: tipo de dado, consistncia e regras de negcio na camada de negcio da aplicao. 2. Comunicao Insegura Algumas determinadas aplicaes ou parte delas podem conter e trafegar dados altamente confidencias como nmeros de carto de crdito, senhas, saldos, movimentaes bancrias etc..que no devem ser vistas por ningum que no contenha as credencias necessrias. Soluo - Utilizao de canal seguro criptografado [http://en.wikipedia.org /wiki/Transport_Layer_Security]SSL] garantindo a autenticidade, integridade e privacidade devido natureza frgil de comunicao j descrita na vulnerabilidade 1. 3. Restries de Acesso Liberao de acesso as URLs onde o usurio no tenha permisso ou no esteja autenticado, podendo ocorrer quando o atacante consegue fazer cpias das URL gravada na memria do browser na mquina de um usurio que j tenha acessado o aplicativo. Outro caso comum em aplicativos que usam o mecanismo de ocultamento de recursos na GUI que disparam processos nos quais os usurios sem a devida permisso, porm no implementado validaes nos processos de negcio que valide isso. Pela fragilidade j descrita acima do protocolo HTTP, podem ocorrer casos em que o atacante ainda consiga enviar requisies para estes determinados recursos mesmo em oculto executando de forma indevida o processo. Soluo - Implementao de um controle de autenticao e autorizao tanto na camada de apresentao e na camada de negcio, independentemente se o recurso for ocultado da GUI (que tambm um mecanismo recomendado).

1 de 4

27/03/09 08:59

iMasters - Por uma Internet mais criativa e dinmica

http://imasters.uol.com.br/artigo/12132/seguranca/vulnerabilidades_de...

4. Injeo de JavaScript e HTML Ocorre na injeo de cdigos javascript e HTML maliciosos em campos texto da aplicao. Com isso, o valor do campo gravado no SGDB e posteriormente usado em outras pginas na aplicao. Quando este fato acontece, o contedo malicioso escrito em javascript renderizado na pgina e conseqentemente executado, podendo abrir possibilidades de prejudicar a aplicao. Seguem alguns dos problemas crticos que injeo de javascript podem acarretar: 4.1 Roubo de Cookies Aplicativos web utilizam a tecnologia de [http://en.wikipedia.org/wiki/HTTP_cookie]Http Cookie] para gerenciar a sesso do usurio autenticado na aplicao e a injeo de javascript pode acessar os cookies que esto armazenados na memria (http://pt.wikipedia.org/wiki/Modelo_de_Objeto_de_Documentos]DOM) do browser. De posse da chave nica da sesso do usurio autenticado, o atacante pode abrir comunicao com a aplicao em diversas formas HTTP, passando falsamente a mesma chave previamente roubada, fazendo com que a aplicao pense que a mesma sesso j autenticada e, assim, tendo toda as portas abertas para manipular a aplicao e suas informaes. Soluo - Independente de toda a preocupao e esforo implementado na questo da segurana, recomendvel que ainda exista um mecanismo que identifique e impea que uma sesso seja utilizada por mais de um Cliente IP ao mesmo tempo, que neste caso configura-se a ocorrncia de um ataque. 4.2 Redirecionamento Injeo de javascript pode disparar a execuo do redirecionamento de uma aplicao real para uma falsa aplicao com a mesma aparncia (http://pt.wikipedia.org/wiki/Engenharia_social_(seguran %C3%A7a_da_informa%C3%A7%C3%A3o)]Engenharia Social). Com a fraude montada, a falsa aplicao se passando pela verdadeira consegue fazer o usurio fornecer qualquer tipo de informaes voluntariamente. Soluo - Validao na camada de apresentao substituindo, rejeitando ou eliminando as possveis ocorrncias de injeo de todos os campos digitados pelos clientes que sero armazenados no SGDB. 5. Parmetros Temporrios de Controle comum os aplicativos web utilizarem parmetros temporrios para armazenar informaes referentes a diversas operaes dos usurios durante a sua utilizao e navegao no sistema. O problema da injeo de javascript neste caso ocorre naqueles parmetros que no so armazenados no SGDB, mas que venham a ficar persistidos ao longo de algumas interaes. O fato a fragilidade de comunicao j descrita na vulnerabilidade 1. Soluo - Validao na camada de apresentao substituindo, rejeitando ou eliminando as possveis ocorrncias de injeo de todos os valores trafegados nas requisies HTTP. 6. Injeo de SQL Ocorrem na injeo de cdigos [http://pt.wikipedia.org/wiki/SQL]SQL] maliciosos em campos texto da aplicao que sero concatenados como parte de instrues maiores e executadas no SGDB da aplicao, podendo inverter completamente a semntica da instruo. Soluo 1 - Validao na camada de apresentao ou persistncia substituindo, rejeitando ou eliminando as possveis ocorrncias de injeo. Soluo 2 - Utilizao de instrues SQL pr compiladas do determinado SGDB, fazendo com que os caracteres concatenados da GUI no sejam interpretados como parte das instrues SQL. 7. Referncia Direta Insegura comum em aplicativos web existirem operaes ou processos construdos como Seqencias de Operaes muito conhecidos como workflow. Nestes casos, os usurios so expostos a uma seqncia de passos ao longo de vrias pginas selecionado e acumulando valores pr-definidos em widgets como drop-down list, radio buttons, input hidden ou qualquer um deles desabilitados. Os valores acumulados e armazenados nas pginas so considerados pela aplicao com valores imutveis para a determinada ocorrncia, mas que na
2 de 4 27/03/09 08:59

iMasters - Por uma Internet mais criativa e dinmica

http://imasters.uol.com.br/artigo/12132/seguranca/vulnerabilidades_de...

verdade podem ser facilmente alterados por um atacante manipulando diretamente o pedido HTTP podendo furar regras de negcio e at deixar o estado do SGDB inconsistente. Soluo 1 - Estado de conversao do usurio deve ser exclusivamente e completamente gerenciado no escopo da sesso. Soluo 2 - Caso sejam usados campos com valores hidden ou desabilitados nas pginas, faa com que as operaes de negcio sejam validadas repetitivamente durante todos os intervalos das requisies necessrios. 8. Falsa Requisio Ocorrem quando um usurio autenticado em uma aplicao, o cookie ID configurado e a pessoa comea a interagir com a sistema. O atacante, sabendo que o usurio pode estar naquele momento utilizando vrias outras aplicaes simultneas em seu browser, pode por exemplo disponibilizar um outro site que contenha um link com uma chamada previamente direcionada para alguma operao na outra aplicao vtima. Quando o usurio dispara essa falso pedido, o coitado do navegador ira manda o cookie de autenticao j confirmado e o sistema ir efetuar a operao. Soluo 1 - Disponibilizar controle de token internos nas operaes. Soluo 2 - Disponibilizar controle de parmetros randmicos para cada link e formulrio evitando pedidos estticos. 9. Escapamento de Informaes Ocorrem pela falta de uma adequada manipulao de erros e excees que podem ocorrer durante a utilizao da aplicao, expondo detalhes internos de construo como erros SQL, tecnologias etc, podendo ser utilizados pelos atacantes. Soluo - Utilizar mecanismos de arquivos de log ou monitoramentos de sistemas que no sejam acessveis ou expostos aos usurios da aplicao. 10. Ataque de Fora Bruta Ocorrem quando os atacantes tentam descobrir senhas de usurios com o auxlio de algumas ferramentas automatizadas que realizam incansveis tentativas de autenticao falhas baseados em um dicionrio de dados. Estas ferramentas geram os dicionrios de dados combinando informaes dos usurios como: datas importantes, nomes de familiares, de animais, filmes favoritos, placas de carros etc. Soluo - Desabilitar o acesso temporrio dos usurios aps um nmero mximo de tentativas de autenticao falha, disponibilizando polticas rpidas de reativao. Obrigar os usurios a utilizarem senhas com nmeros, letras, caracteres e tamanho mnimo, exigindo a sua troca periodicamente. 11. Captura de Senhas Ocorrem normalmente quando um programa vrus Trojan alojado no computador do cliente monitora a digitao da senha do usurio no aplicativo. Soluo - Utilizar mecanismos de digitao atravs de um teclado virtual varivel que possua dois ou mais dgitos por boto que mudam de lugar aleatoriamente a cada acesso. 12. Token de Operao Independentemente de como, ainda pode ocorrer momentos em que o atacante consegue obter a senha do usurio atravs de falhas de segurana da aplicao, engenharia social, roubo de documentos, vrus alojados como [http://pt.wikipedia.org/wiki/Trojan]Trojan] etc. Soluo - Implementao de mecanismos para que o sistema requisite seqncias alternadas de tokens previamente cadastrados (simples carto com os nmeros) ou randomicamente gerados (dispositivo automatizados) que antecedam as operaes de negcio na aplicao, fazendo com que qualquer usurio sem a posse do token no consiga acessar ou realizar partes da aplicao. Estes tokens so criados baseados em

3 de 4

27/03/09 08:59

iMasters - Por uma Internet mais criativa e dinmica

http://imasters.uol.com.br/artigo/12132/seguranca/vulnerabilidades_de...

[http://pt.wikipedia.org/wiki/Chave_privada]chaves privadas], [http://pt.wikipedia.org /wiki/Certificado_digital]certificados digitais], possuindo [http://pt.wikipedia.org/wiki/Algoritmo]algoritmos] de [http://pt.wikipedia.org/wiki/Criptografia]criptografia] como o [http://pt.wikipedia.org/wiki/RSA]RSA], [http://pt.wikipedia.org/wiki/DES]DES] e [http://pt.wikipedia.org/wiki/3DES]3DES]. O artigo fica aberto para comentrios e outras dicas de vulnerabilidades. Aquele abrao!!

4 de 4

27/03/09 08:59

Você também pode gostar