38
SEGURANÇA DE APLICAÇÕES NA WEB Aluno: Thiago Augusto Lopes Genez Orientador: Prof. Dr. Mario Lemes Proença Jr. UNIVERSIDADE ESTADUAL DE LONDRINA DEPARTAMENTO DE COMPUTAÇÃO TRABALHO DE CONCLUSÃO DE CURSO

SEGURANÇA DE APLICAÇÕES NA WEB Aluno: Thiago Augusto Lopes Genez Orientador: Prof. Dr. Mario Lemes Proença Jr. U NIVERSIDADE E STADUAL DE L ONDRINA D EPARTAMENTO

Embed Size (px)

Citation preview

Page 1: SEGURANÇA DE APLICAÇÕES NA WEB Aluno: Thiago Augusto Lopes Genez Orientador: Prof. Dr. Mario Lemes Proença Jr. U NIVERSIDADE E STADUAL DE L ONDRINA D EPARTAMENTO

SEGURANÇA DE APLICAÇÕES NA WEB

Aluno: Thiago Augusto Lopes Genez

Orientador: Prof. Dr. Mario Lemes Proença Jr.

UNIVERSIDADE ESTADUAL DE LONDRINA

DEPARTAMENTO DE COMPUTAÇÃO

TRABALHO DE CONCLUSÃO DE CURSO

Page 2: SEGURANÇA DE APLICAÇÕES NA WEB Aluno: Thiago Augusto Lopes Genez Orientador: Prof. Dr. Mario Lemes Proença Jr. U NIVERSIDADE E STADUAL DE L ONDRINA D EPARTAMENTO

SUMÁRIO Introdução

Conceitos Básicos de Segurança

Os Ataques

Algoritmos Criptográficos

Protocolos de Segurança

Identificação Digital

Ferramentas de Auditoria de Segurança

Conclusão

Page 3: SEGURANÇA DE APLICAÇÕES NA WEB Aluno: Thiago Augusto Lopes Genez Orientador: Prof. Dr. Mario Lemes Proença Jr. U NIVERSIDADE E STADUAL DE L ONDRINA D EPARTAMENTO

INTRODUÇÃO

Aplicação WEB:

Acessada por um navegador WEB

Meio de comunicação

O canal é inseguro Internet

Comércio Eletrônico (E-commerce)

Transações Bancárias (Banking on-line)

Page 4: SEGURANÇA DE APLICAÇÕES NA WEB Aluno: Thiago Augusto Lopes Genez Orientador: Prof. Dr. Mario Lemes Proença Jr. U NIVERSIDADE E STADUAL DE L ONDRINA D EPARTAMENTO

INTRODUÇÃO Necessidade da Segurança

Falta de segurança básica facilita os ataques

Cada dia novos ataques são descobertos

Consequência dos ataques

Divulgação dos dados confidenciais

“Quebra” do sigilo Perda da confiabilidade pelo usuário.

Interrupção do serviço; transações fraudulentas; roubo ou modificação de dados

Page 5: SEGURANÇA DE APLICAÇÕES NA WEB Aluno: Thiago Augusto Lopes Genez Orientador: Prof. Dr. Mario Lemes Proença Jr. U NIVERSIDADE E STADUAL DE L ONDRINA D EPARTAMENTO

INTRODUÇÃO

Soluções: Criptografia; Protocolos criptográficos; Identificação digital; Ferramentas de auditoria.

Objetivo Garantir que as informações mantenham-se

intactas e protegidas durante a sua transmissão na Internet.

Garantir um ambiente WEB seguro.

Page 6: SEGURANÇA DE APLICAÇÕES NA WEB Aluno: Thiago Augusto Lopes Genez Orientador: Prof. Dr. Mario Lemes Proença Jr. U NIVERSIDADE E STADUAL DE L ONDRINA D EPARTAMENTO

CONCEITOS BÁSICOS DE SEGURANÇA

Serviços disponibilizados pela segurança:

Autenticação

Confidencialidade

Integridade

Não-repúdio

Controle de Acesso

Disponibilidade

Page 7: SEGURANÇA DE APLICAÇÕES NA WEB Aluno: Thiago Augusto Lopes Genez Orientador: Prof. Dr. Mario Lemes Proença Jr. U NIVERSIDADE E STADUAL DE L ONDRINA D EPARTAMENTO

CONCEITOS BÁSICOS DE SEGURANÇACARACTERÍSTICAS DOS ATAQUES

•Comportamento dos ataques

Page 8: SEGURANÇA DE APLICAÇÕES NA WEB Aluno: Thiago Augusto Lopes Genez Orientador: Prof. Dr. Mario Lemes Proença Jr. U NIVERSIDADE E STADUAL DE L ONDRINA D EPARTAMENTO

ATAQUES Motivos dos ataque na WEB

Páginas dinâmicas Código executados no cliente (script client-side) Problema: Entrada dos dados não são tratados Dados armazenados em Cookies

Tipos de Ataques na WEB:

1. Ataque de força bruta2. Ataque do Homem do Meio (Man-in-the-

middle)3. XSS (Cross Site Scripting)4. Injeção SQL

Page 9: SEGURANÇA DE APLICAÇÕES NA WEB Aluno: Thiago Augusto Lopes Genez Orientador: Prof. Dr. Mario Lemes Proença Jr. U NIVERSIDADE E STADUAL DE L ONDRINA D EPARTAMENTO

ATAQUES5. CSRF (Cross-site reference forgery)

6. Phishing

7. DNS Spoofing

8. Clickjacking

9. Negação de Serviço (DoS)

Page 10: SEGURANÇA DE APLICAÇÕES NA WEB Aluno: Thiago Augusto Lopes Genez Orientador: Prof. Dr. Mario Lemes Proença Jr. U NIVERSIDADE E STADUAL DE L ONDRINA D EPARTAMENTO

ALGORITMOS CRIPTOGRÁFICOS Origem etimológica grega:

Ckryptós “escondido” Gráphein “escrever”.

Objetivo:Texto legível Cifra texto ilegível

Divididos em:SimétricoAssimétricoHash

Page 11: SEGURANÇA DE APLICAÇÕES NA WEB Aluno: Thiago Augusto Lopes Genez Orientador: Prof. Dr. Mario Lemes Proença Jr. U NIVERSIDADE E STADUAL DE L ONDRINA D EPARTAMENTO

ALGORITMOS CRIPTOGRÁFICOSSIMÉTRICOS

Algoritmo Bloco Chave Informações

RC4 Fluxo 1-2048 bitsInternet Banking Caixa

Econômica Federal, Banco do Brasil, Itaú

RC5 32-128 bits 64-128 bits Chave 64 quebrada, chave 72 bits segura

RC6 128 bits 128-256 bits Ficou no 4° colocado do AES

DES 64 bits 64 bits Defasado, 1998 quebrado por hardware

TDES 64 bits 168 bits Comércio eletrônico PayPal

AES 128-256 bits 128-256 bits 2001-Rijndael, pagseguro (UOL)

Blowfish 64 ou 128 bits 128 bits Plataforma OpenBSD

Twofish 128-256 bits 256 bits Ficou no 3° colocado do AES

Serpent 128-256 bits 128-256 bits Ficou no 2° colocado do AES

Page 12: SEGURANÇA DE APLICAÇÕES NA WEB Aluno: Thiago Augusto Lopes Genez Orientador: Prof. Dr. Mario Lemes Proença Jr. U NIVERSIDADE E STADUAL DE L ONDRINA D EPARTAMENTO

ALGORITMOS CRIPTOGRÁFICOSASSIMÉTRICOS

Algoritmo Fornece Chave Informações

RSACriptografia

Assinatura digitalTroca de Chaves

1024-2048 bits

Utilizado na maioria dos certificados

digitais

Diffie-Hellman Troca de chaves 512-4096 bits

Necessita de mecanismo extra

para garantir autenticidade

DSA Assinatura Digital 1024 bits

Proposto em 1991 para ser o padrão para assinaturas

digitais

ECCCriptografia

Assinatura digitalTroca de Chaves

80-256 bitsDesafiar e concorrer

o RSA. Usado no DNSCurve

ECDSA Assinatura Digital 160 bits Concorrente ao DSA

Page 13: SEGURANÇA DE APLICAÇÕES NA WEB Aluno: Thiago Augusto Lopes Genez Orientador: Prof. Dr. Mario Lemes Proença Jr. U NIVERSIDADE E STADUAL DE L ONDRINA D EPARTAMENTO

ALGORITMOS CRIPTOGRÁFICOSFUNÇÕES HASH

Algoritmo Tamanho Hash Informações

MD5 128 bits Não é resistente a colisão (2008)

MD6 512 bits Não avançou para a segunda fase do concurso SHA-3 em julho 2009

SHA-1 160 bits Não é resistente a colisão

SHA-2 224, 256, 384, 512 bits

Nenhum tipo de ataque foi relatado e a partir de 2010 todas agencias

federais USA tem que substituir o SHA-1 para SHA-2

SHA-3 224, 256, 384, 512 bits

Concurso proposto pela NIST. (andamento na 2° fase, resultado

sairá em 2012)

Page 14: SEGURANÇA DE APLICAÇÕES NA WEB Aluno: Thiago Augusto Lopes Genez Orientador: Prof. Dr. Mario Lemes Proença Jr. U NIVERSIDADE E STADUAL DE L ONDRINA D EPARTAMENTO

PROTOCOLOS DE SEGURANÇA

Protocolos Ação Fornece Informações

SSL/TLS Entre as camadas de Transporte e a camada de aplicação

Criptografia (três tipos), Certificados Digitais

•Podem acoplar protocolos de alto nível: Ex, HTTPS•Ponto a Ponto

IPsec Na camada de Rede (pacote IP criptografado)

Autenticação, Criptografia e Gerenciamento de chaves

• Integrado no IPv6• Proteção nativa para todos os protocolos acima da camada de rede

WS-Security

Camada de aplicação

Criptografia XMLAssinatura XML

•Web Services•SOAP•Fim a Fim

DNSSec Serviço DNS Autenticação •Protege ataques DNS Spoofing (Falso DNS)

DNSCurve Serviço DNS AutenticaçãoCriptografia

•Protege ataques DoS

Page 15: SEGURANÇA DE APLICAÇÕES NA WEB Aluno: Thiago Augusto Lopes Genez Orientador: Prof. Dr. Mario Lemes Proença Jr. U NIVERSIDADE E STADUAL DE L ONDRINA D EPARTAMENTO

PROTOCOLOS DE SEGURANÇASSL/TLS X WS-SECURITY

•Informação está segura no canal•Protege toda a mensagem•Comunicação ponto a ponto

•Garante a segurança em todos os estágio da comunicação•Protege somente as porções da mensagem que precisa de segurança•Comunicação fim a fim

Page 16: SEGURANÇA DE APLICAÇÕES NA WEB Aluno: Thiago Augusto Lopes Genez Orientador: Prof. Dr. Mario Lemes Proença Jr. U NIVERSIDADE E STADUAL DE L ONDRINA D EPARTAMENTO

IDENTIFICAÇÃO DIGITAL Transações eletrônicas:

Integridade, autenticidade e confidencialidade Assinatura Digital

Bloco de dados criptografado anexado a mensagem Fornece: Autenticação, Integridade e Não repúdio Não garante a confidencialidade

Page 17: SEGURANÇA DE APLICAÇÕES NA WEB Aluno: Thiago Augusto Lopes Genez Orientador: Prof. Dr. Mario Lemes Proença Jr. U NIVERSIDADE E STADUAL DE L ONDRINA D EPARTAMENTO

IDENTIFICAÇÃO DIGITALCERTIFICADO DIGITAL

Distribuir as chaves públicas de pessoas físicas e/ou jurídicas de forma segura.

Autoridade Certificadora (AC) Terceiro Confiável

Page 18: SEGURANÇA DE APLICAÇÕES NA WEB Aluno: Thiago Augusto Lopes Genez Orientador: Prof. Dr. Mario Lemes Proença Jr. U NIVERSIDADE E STADUAL DE L ONDRINA D EPARTAMENTO

FERRAMENTAS DE AUDITORIA DE SEGURANÇA

Protocolos não garante a proteção na lógica da aplicação

Vulnerabilidade do software Entrada dados não são validados deixa a

aplicação instávelDisponibilizar os Cookies do browser

Ferramentas de auditoria Age como: “Homem do meio”Manipulações dos pedidos e respostas

HTTP/HTTPSTesta a segurança na camada de

aplicaçãoMinimiza as vulnerabilidades

Page 19: SEGURANÇA DE APLICAÇÕES NA WEB Aluno: Thiago Augusto Lopes Genez Orientador: Prof. Dr. Mario Lemes Proença Jr. U NIVERSIDADE E STADUAL DE L ONDRINA D EPARTAMENTO

FERRAMENTAS DE AUDITORIA DE SEGURANÇA

Funções\Ferramenta RatProxy

Web Scarab

ParosBurp

Proxy w3af

IBM AppScan

Licença Livre Sim Sim Sim Não Sim Não

Multiplataforma Sim Sim Sim Sim Sim Não

Manipula pedidos/resposta HTTP(S) Não Sim Sim Sim Sim Sim

Relatório detalhado Sim Não Sim Sim Sim Sim

Sugestão para Correção Não Não Não Não Não Sim

Suporte SSL/TLS Sim Sim Sim Sim Sim Sim

XSS, Injeção SQL, CSRF Sim Sim Sim Sim Sim Sim

Análise de Cookies Sim Sim Sim Sim Sim Sim

Análise de dados ocultos Não Não Sim Não Não Sim

Análise RESTful Não Sim Sim Não Sim Não

Ambiente Desenvolvimento Não Não Não Não Não Sim

Page 20: SEGURANÇA DE APLICAÇÕES NA WEB Aluno: Thiago Augusto Lopes Genez Orientador: Prof. Dr. Mario Lemes Proença Jr. U NIVERSIDADE E STADUAL DE L ONDRINA D EPARTAMENTO

SOLUÇÕES AOS ATAQUES

Ataque Meio Proteção

Força Bruta Lista Negra, Captcha,Criptografia Assimétrica

Homem do Meio SSL/TSL, WS-Security, Certificado Digital, HTTPS, IPSec

XSS (Cross Site Scripting) Validando a entrada dados(Nível de aplicação: auditoria de código)

Injeção SQL Validando a entrada dados(Nível de aplicação: auditoria de código)

CSRF (Cross-site reference forgery) Validando a entrada dados(Nível de aplicação: auditoria de código)

Phishing Validando a entrada dados(Nível de aplicação: auditoria de código)

DNS Spoofing DNSCurve, DNSSec, IPSec

Clickjacking Validando a entrada dados(Nível de aplicação: auditoria de código)

Negação de Serviço (DoS) Lista Negra, DNSCurve

Page 21: SEGURANÇA DE APLICAÇÕES NA WEB Aluno: Thiago Augusto Lopes Genez Orientador: Prof. Dr. Mario Lemes Proença Jr. U NIVERSIDADE E STADUAL DE L ONDRINA D EPARTAMENTO

CONCLUSÃO Base da segurança: Criptografia

Comunicação entre usuário final e a aplicação WEB:

Navegador WEB (browser)

Canal é inseguro Internet

Solução: Protocolos Criptográficos

Outra solução: identificação digital

Page 22: SEGURANÇA DE APLICAÇÕES NA WEB Aluno: Thiago Augusto Lopes Genez Orientador: Prof. Dr. Mario Lemes Proença Jr. U NIVERSIDADE E STADUAL DE L ONDRINA D EPARTAMENTO

CONCLUSÃO Com a falta de proteção na lógica da aplicação WEB

Entrada de dados não validados

Deixa a aplicação WEB instável facilita os ataques

Ferramentas de auditoria procura as vulnerabilidades

Aplicação WEB segura:

Segurança na camada de transporte

Segurança na camada de aplicação (lógica de programação)

Page 23: SEGURANÇA DE APLICAÇÕES NA WEB Aluno: Thiago Augusto Lopes Genez Orientador: Prof. Dr. Mario Lemes Proença Jr. U NIVERSIDADE E STADUAL DE L ONDRINA D EPARTAMENTO

OBRIGADO

Page 24: SEGURANÇA DE APLICAÇÕES NA WEB Aluno: Thiago Augusto Lopes Genez Orientador: Prof. Dr. Mario Lemes Proença Jr. U NIVERSIDADE E STADUAL DE L ONDRINA D EPARTAMENTO

UM MÓDULO DE SEGURANÇA PARA AUXILIAR

A COMUNICAÇÃO ENTRE APLICAÇÕES QUEUTILIZAM REDES

Aluno: Thiago Augusto Lopes Genez

Orientador: Prof. Dr. Mario Lemes Proença Jr.

UNIVERSIDADE ESTADUAL DE LONDRINA

DEPARTAMENTO DE COMPUTAÇÃORELATÓRIO DE ESTÁGIO

CURRICULAR

Page 25: SEGURANÇA DE APLICAÇÕES NA WEB Aluno: Thiago Augusto Lopes Genez Orientador: Prof. Dr. Mario Lemes Proença Jr. U NIVERSIDADE E STADUAL DE L ONDRINA D EPARTAMENTO

SUMÁRIO

Introdução

Terminologia

Engenharia do Software

Arquitetura

Ferramentas utilizadas

Visão Conceitual

Exemplo de uso em uma aplicação WEB

Page 26: SEGURANÇA DE APLICAÇÕES NA WEB Aluno: Thiago Augusto Lopes Genez Orientador: Prof. Dr. Mario Lemes Proença Jr. U NIVERSIDADE E STADUAL DE L ONDRINA D EPARTAMENTO

INTRODUÇÃO Módulo

Nome: The Rock (“A Rocha”) Desenvolvido em Java Camada de segurança Autenticação, Autorização, Criptografia e

Gerenciamento de Sessão Configurações pré estabelecidas Configurações customizadas Implementas as

interfaces

Objetivo Auxiliar a comunicação entre aplicações que utilizam

redes Promover a reusabilidade de código

Page 27: SEGURANÇA DE APLICAÇÕES NA WEB Aluno: Thiago Augusto Lopes Genez Orientador: Prof. Dr. Mario Lemes Proença Jr. U NIVERSIDADE E STADUAL DE L ONDRINA D EPARTAMENTO

TERMINOLOGIA Domínio (Realm):

Banco de dados o qual armazena os componentes para identificar as entidades da aplicação

Nome do usuário, permissões, papéis

Sujeito (Subject) Representação de um usuário a ser gerenciado pelo

módulo

Coleção de atributos (Principals) Coleção de atributos que identifica o usuário no

módulo Nome ID (identificador) IP

Page 28: SEGURANÇA DE APLICAÇÕES NA WEB Aluno: Thiago Augusto Lopes Genez Orientador: Prof. Dr. Mario Lemes Proença Jr. U NIVERSIDADE E STADUAL DE L ONDRINA D EPARTAMENTO

TERMINOLOGIA Credenciais

Informações secretas conhecida apenas pelo usuário usado para verificar a sua identidade

Permissão Representação atômica da capacidade de executar

uma ação

Papéis (Roles) Conjuntos de permissões

Page 29: SEGURANÇA DE APLICAÇÕES NA WEB Aluno: Thiago Augusto Lopes Genez Orientador: Prof. Dr. Mario Lemes Proença Jr. U NIVERSIDADE E STADUAL DE L ONDRINA D EPARTAMENTO

ENGENHARIA DO SOFTWARE Metodologia baseada: ICONIX

Modelo de Domínio

Modelo de Caso de Uso

Diagrama de Sequencia

Page 30: SEGURANÇA DE APLICAÇÕES NA WEB Aluno: Thiago Augusto Lopes Genez Orientador: Prof. Dr. Mario Lemes Proença Jr. U NIVERSIDADE E STADUAL DE L ONDRINA D EPARTAMENTO

ENGENHARIA DO SOFTWAREMODELO DE DOMÍNIO

Page 31: SEGURANÇA DE APLICAÇÕES NA WEB Aluno: Thiago Augusto Lopes Genez Orientador: Prof. Dr. Mario Lemes Proença Jr. U NIVERSIDADE E STADUAL DE L ONDRINA D EPARTAMENTO

ARQUITETURA

Page 32: SEGURANÇA DE APLICAÇÕES NA WEB Aluno: Thiago Augusto Lopes Genez Orientador: Prof. Dr. Mario Lemes Proença Jr. U NIVERSIDADE E STADUAL DE L ONDRINA D EPARTAMENTO

FERRAMENTAS UTILIZADAS JAAS: API para autorização e autenticação em Java

JCA e JCE: API de criptografia em Java

SLF4J: API de Logs em Java

Eclipse: Ambiente de desenvolvimento

Subversion: Controle de versão

Apache Maven: Ferramenta para gerenciamento e automação de projetos em Java.

JUnit: API para realizar testes da linguagem Java

Page 33: SEGURANÇA DE APLICAÇÕES NA WEB Aluno: Thiago Augusto Lopes Genez Orientador: Prof. Dr. Mario Lemes Proença Jr. U NIVERSIDADE E STADUAL DE L ONDRINA D EPARTAMENTO

VISÃO CONCEITUAL

Page 34: SEGURANÇA DE APLICAÇÕES NA WEB Aluno: Thiago Augusto Lopes Genez Orientador: Prof. Dr. Mario Lemes Proença Jr. U NIVERSIDADE E STADUAL DE L ONDRINA D EPARTAMENTO

EXEMPLO DE USO EM UMA APLICAÇÃO WEB

Page 35: SEGURANÇA DE APLICAÇÕES NA WEB Aluno: Thiago Augusto Lopes Genez Orientador: Prof. Dr. Mario Lemes Proença Jr. U NIVERSIDADE E STADUAL DE L ONDRINA D EPARTAMENTO

EXEMPLO DE USO EM UMA APLICAÇÃO WEBCOMO USAR?

Criar um .jar do módulo The Rock Adicionar o.jar na aplicação WEB que o

utilizará Configurar o arquivo web.xml

Determinar o The Rock como o filtro principal Indicar qual o domínio que contem os usuários Indicar quais página da aplicação que o usuário

deve estar autenticado Indicar quais página da aplicação que o usuário

pode acessar Utilizar as classes desenvolvidas Implementar as interfaces configuração

customizada

Page 36: SEGURANÇA DE APLICAÇÕES NA WEB Aluno: Thiago Augusto Lopes Genez Orientador: Prof. Dr. Mario Lemes Proença Jr. U NIVERSIDADE E STADUAL DE L ONDRINA D EPARTAMENTO

EXEMPLO DE USO EM UMA APLICAÇÃO WEBWEB.XML

<filter> <filter-name>TheRockFilter</filter-name>

...

[main]

realm = dao.RealmMySql

[filters]

roles.naoAutorizado = /naoAutorizado.jsp

[urls]

/admin/** = authc, roles[admin]

/restrita/** =authc

...

</filter>

<filter-mapping>

<filter-name>TheRockFilter</filter-name>

<url-pattern>/*</url-pattern>

</filter-mapping>

Page 37: SEGURANÇA DE APLICAÇÕES NA WEB Aluno: Thiago Augusto Lopes Genez Orientador: Prof. Dr. Mario Lemes Proença Jr. U NIVERSIDADE E STADUAL DE L ONDRINA D EPARTAMENTO

EXEMPLO DE USO EM UMA APLICAÇÃO WEBTAGS CUSTOMIZADAS JSP

<%-- Importanto as tag TheRock no JSP --%>

<%@ taglib prefix="rock" uri="/tags/theRockTag" %>

<rock:temRole name="admin">......</rock:temRole>

<rock:semRole name="admin">......</rock:semRole >

<rock:semPermissao name="usuario:remover“>..</rock:semPermissao>

<rock:temPermissao name="usuario:remover“>..</rock:temPermissao>

<rock:autenticado>.....</rock:autenticado>

<rock:naoAutenticado>.....</ rock:naoAutenticado >

<rock:usuario>....</rock:usuario>

<rock:visitante>....</rock:visitante>

<rock:principal/>... <rock:principal/>

Page 38: SEGURANÇA DE APLICAÇÕES NA WEB Aluno: Thiago Augusto Lopes Genez Orientador: Prof. Dr. Mario Lemes Proença Jr. U NIVERSIDADE E STADUAL DE L ONDRINA D EPARTAMENTO

OBRIGADO