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.
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
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)
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
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.

CONCEITOS BÁSICOS DE SEGURANÇA

Serviços disponibilizados pela segurança:

Autenticação

Confidencialidade

Integridade

Não-repúdio

Controle de Acesso

Disponibilidade
CONCEITOS BÁSICOS DE SEGURANÇA
CARACTERÍSTICAS DOS ATAQUES
•Comportamento dos ataques
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


1.
2.
3.
4.
Tipos de Ataques na WEB:
Ataque de força bruta
Ataque do Homem do Meio (Man-in-the-middle)
XSS (Cross Site Scripting)
Injeção SQL
ATAQUES
5. CSRF (Cross-site reference forgery)
6. Phishing
7. DNS Spoofing
8. Clickjacking
9. Negação de Serviço (DoS)
ALGORITMOS CRIPTOGRÁFICOS
Origem etimológica grega:
 Ckryptós  “escondido”
 Gráphein  “escrever”.
 Objetivo:
Texto legível Cifra  texto ilegível
 Divididos em:
 Simétrico
 Assimétrico
 Hash

ALGORITMOS CRIPTOGRÁFICOS
SIMÉTRICOS
Algoritmo
Bloco
Chave
Informações
RC4
Fluxo
1-2048 bits
Internet 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
ALGORITMOS CRIPTOGRÁFICOS
ASSIMÉTRICOS
Algoritmo
Fornece
Chave
Informações
RSA
Criptografia
Assinatura digital
Troca de Chaves
1024-2048 bits
Utilizado na maioria
dos certificados digitais
DiffieHellman
Troca de chaves
512-4096 bits
Necessita de
mecanismo extra para
garantir autenticidade
1024 bits
Proposto em 1991 para
ser o padrão para
assinaturas digitais
ECC
Criptografia
Assinatura digital
Troca de Chaves
80-256 bits
Desafiar e concorrer o
RSA. Usado no
DNSCurve
ECDSA
Assinatura Digital
160 bits
Concorrente ao DSA
DSA
Assinatura Digital
ALGORITMOS CRIPTOGRÁFICOS
FUNÇÕ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)
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 XML
Assinatura XML
•Web Services
•SOAP
•Fim a Fim
DNSSec
Serviço DNS
Autenticação
•Protege ataques DNS
Spoofing (Falso DNS)
DNSCurve
Serviço DNS
Autenticação
Criptografia
•Protege ataques DoS
PROTOCOLOS DE SEGURANÇA
SSL/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
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
IDENTIFICAÇÃO DIGITAL
CERTIFICADO DIGITAL
Distribuir as chaves públicas de pessoas físicas
e/ou jurídicas de forma segura.
 Autoridade Certificadora (AC)


Terceiro Confiável
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ável
Disponibilizar os Cookies do browser
 Ferramentas de auditoria
 Age como: “Homem do meio”
 Manipulações dos pedidos e respostas
HTTP/HTTPS
 Testa a segurança na camada de aplicação
 Minimiza as vulnerabilidades
FERRAMENTAS DE AUDITORIA DE
SEGURANÇA
Funções\Ferramenta
RatProxy
Web
Scarab
Paros
Burp
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
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
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
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)
OBRIGADO
UNIVERSIDADE ESTADUAL DE
LONDRINA
DEPARTAMENTO DE COMPUTAÇÃO
RELATÓRIO DE ESTÁGIO CURRICULAR
UM MÓDULO DE SEGURANÇA
PARA AUXILIAR
A COMUNICAÇÃO ENTRE
APLICAÇÕES QUE
UTILIZAM REDES
Aluno: Thiago Augusto Lopes Genez
Orientador: Prof. Dr. Mario Lemes Proença Jr.
SUMÁRIO

Introdução

Terminologia

Engenharia do Software

Arquitetura

Ferramentas utilizadas

Visão Conceitual

Exemplo de uso em uma aplicação WEB
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
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
TERMINOLOGIA

Credenciais


Permissão


Informações secretas conhecida apenas pelo usuário usado
para verificar a sua identidade
Representação atômica da capacidade de executar uma
ação
Papéis (Roles)

Conjuntos de permissões
ENGENHARIA DO SOFTWARE

Metodologia baseada: ICONIX

Modelo de Domínio

Modelo de Caso de Uso

Diagrama de Sequencia
ENGENHARIA DO SOFTWARE
MODELO DE DOMÍNIO
ARQUITETURA
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
VISÃO CONCEITUAL
EXEMPLO DE USO EM UMA APLICAÇÃO WEB
EXEMPLO DE USO EM UMA APLICAÇÃO WEB
COMO 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

EXEMPLO DE USO EM UMA APLICAÇÃO WEB
WEB.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>
EXEMPLO DE USO EM UMA APLICAÇÃO WEB
TAGS 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/>
OBRIGADO
Download

SEGURANÇA DE APLICAÇÕES NA WEB - thiagogenez-tcc