Baixe o app para aproveitar ainda mais
Prévia do material em texto
Prof. Mario João Jr. mjoaojr@gmail.com Conceitos Princípios de Criptografia Segurança de Aplicações Web Principais Mecanismos de Defesa Burlando Controles no Cliente Ementa Administração e Segurança de Redes 2 Prof. Mario João Jr. Aplicação passam dados para o cliente para que eles sejam enviados de volta para o servidor O usuário final não deveria poder ver ou modificar esses dados Essa forma de desenvolvimento torna a aplicação mais vulnerável Burlando Controles no Cliente Administração e Segurança de Redes 3 Prof. Mario João Jr. Transmissão de Dados pelo Cliente Os desenvolvedores utilizam essa forma pois: Ela elimina a necessidade de manter o controle de todos os tipos de dados dentro da sessão do usuário no servidor Facilitam o processamento distribuído já que não é fácil compartilhar dados no servidor entre os hosts que tratam as solicitações do mesmo usuário Burlando Controles no Cliente Administração e Segurança de Redes 4 Prof. Mario João Jr. Transmissão de Dados pelo Cliente Os desenvolvedores utilizam essa forma pois: Se a aplicação utiliza componentes de terceiros, tais como carrinhos de compras, modificá-los pode ser difícil ou impossível A introdução de novos dados no servidor pode implicar a atualização de uma API, desencadeando um processo formal de mudança Burlando Controles no Cliente Administração e Segurança de Redes 5 Prof. Mario João Jr. Transmissão de Dados pelo Cliente Campos Ocultos de Formulário São mecanismos comuns para a transmissão de dados pelo cliente São enviados com os dados do form, mas não são exibidos Teoricamente, o usuário não pode alterá-los Burlando Controles no Cliente Administração e Segurança de Redes 6 Prof. Mario João Jr. Transmissão de Dados pelo Cliente Campos Ocultos de Formulário <form method=”post” action=”Shop.aspx?prod=1”> Produto: iPhone 5C <br/> Preço: $2000,00 <br/> Quantidade: <input type=”text” name=”quantity”> (Maximo é 50) <br/> <input type=”hidden” name=”price” value=”2000”> <input type=”submit” value=”Comprar”> </form> Burlando Controles no Cliente Administração e Segurança de Redes 7 Prof. Mario João Jr. Transmissão de Dados pelo Cliente Campos Ocultos de Formulário Dados como vão para o servidor POST /shop/28/Shop.aspx?prod=1 HTTP/1.1 Host: mdsec.net Content-Type: application/x-www-form-urlencoded Content-Length: 20 quantity=1&price=2000 Burlando Controles no Cliente Administração e Segurança de Redes 8 Prof. Mario João Jr. Transmissão de Dados pelo Cliente Campos Ocultos de Formulário O campo de preço não é exibido na tela A aplicação instruiu o navegador a ocultar o campo preço Teoricamente, o usuário não pode editá-lo Esta restrição pode ser contornada Burlando Controles no Cliente Administração e Segurança de Redes 9 Prof. Mario João Jr. Transmissão de Dados pelo Cliente Campos Ocultos de Formulário Se a aplicação processa a transação com base no preço submetido É possível comprar o produto pelo preço de sua escolha. Em alguns casos, as aplicações aceitam transações com preços negativos. O atacante recebe um reembolso em seu cartão de crédito e também o item que ele “comprou” Burlando Controles no Cliente Administração e Segurança de Redes 10 Prof. Mario João Jr. Transmissão de Dados pelo Cliente Cookies HTTP Outro mecanismo comum para a transmissão de dados pelo o cliente são os cookies HTTP Também não são exibidos na tela Se a aplicação confia no valor do cookie, este pode ser alterado pelo invasor Burlando Controles no Cliente Administração e Segurança de Redes 11 Prof. Mario João Jr. Transmissão de Dados pelo Cliente Cookies HTTP Servidor Cliente HTTP/1.1 200 OK Set-Cookie: Discount=25 Content-Length: 1530 Cliente Servidor POST /shop/92/Shop.aspx?prod=3 HTTP/1.1 Host: mdsec.net Cookie: Discount=100 Content-Length: 10 quantity=1 Burlando Controles no Cliente Administração e Segurança de Redes 12 Prof. Mario João Jr. Transmissão de Dados pelo Cliente Formulários HTML são a maneira mais simples e comum para receber a entrada do usuário e enviá-la para o servidor Podem impor restrições ou executar verificações de validação sobre os dados Quando uma aplicação utiliza esses controles como um mecanismo de segurança, os controles podem ser facilmente contornados Burlando Controles no Cliente Administração e Segurança de Redes 13 Prof. Mario João Jr. Capturando Dados do Usuário: Forms HTML Validação Baseada em Scripts <form method=”post” action=”Shop.aspx?prod=2” onsubmit=”return validateForm(this)”> Produto: iPhone 5C<br/> Preço: 2000 <br/> Quantidade: <input type=”text” name=”quantity”> (A quantidade máxima é 50) <br/> <input type=”submit” value=”Comprar”> </form> <script> function validateForm(theForm) { var isInteger = /^\d+$/; var valid = isInteger.test(quantity) && quantity > 0 && quantity <= 50; if (!valid) alert(’Por favor, entre uma quantidade válida.’); return valid; } </script> Burlando Controles no Cliente Administração e Segurança de Redes 14 Prof. Mario João Jr. Capturando Dados do Usuário: Forms HTML Validação Baseada em Scripts Controles no cliente deste tipo são fáceis de contornar Pode-se desativar o JavaScript no navegador Ou utilizar a mesma técnica anterior Burlando Controles no Cliente Administração e Segurança de Redes 15 Prof. Mario João Jr. Capturando Dados do Usuário: Forms HTML O principal problema da segurança em aplicações web é o fato dos dados não estarem sob o controle do servidor O cliente, e todos os dados recebidos dele, não são confiáveis. Burlando Controles no Cliente Administração e Segurança de Redes 16 Prof. Mario João Jr. Tratando os Dados do Cliente de Forma Segura Dados Enviados pelo Cliente Aplicações se expõem porque enviam dados críticos diretamente do cliente de maneira insegura. Aplicações devem evitar enviar esses dados diretamente do cliente É possível manter esses dados no servidor Burlando Controles no Cliente Administração e Segurança de Redes 17 Prof. Mario João Jr. Tratando os Dados do Cliente de Forma Segura Dados Enviados pelo Cliente Se não há alternativa, os dados devem ser enviados criptografados Mas duas armadilhas devem ser evitadas Não criptografar apenas o dado (Ex.: preço do produto), mas sim mais de uma dado (Ex.: preço + cód. do produto) Se o atacante conhece a string em texto aberto e também a criptografada, ele pode descobrir a chave da criptografia Burlando Controles no Cliente Administração e Segurança de Redes 18 Prof. Mario João Jr. Tratando os Dados do Cliente de Forma Segura Validação dos Dados Enviados pelo Cliente Os dados gerados no cliente e transmitidos para o servidor não podem ser validados de forma segura no cliente A única maneira segura de validar os dados gerados pelo cliente está no lado do servidor Cada item de dados recebidos do cliente deve ser considerado como potencialmente contaminado e mal- intencionado.Burlando Controles no Cliente Administração e Segurança de Redes 19 Prof. Mario João Jr. Tratando os Dados do Cliente de Forma Segura
Compartilhar