A maior rede de estudos do Brasil

Grátis
19 pág.
Seguranca-parte5

Pré-visualização | Página 1 de 2

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.

Crie agora seu perfil grátis para visualizar sem restrições.