A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

SEGURANÇA DE APLICAÇÕES NA WEB

Apresentações semelhantes


Apresentação em tema: "SEGURANÇA DE APLICAÇÕES NA WEB"— Transcrição da apresentação:

1 SEGURANÇA DE APLICAÇÕES NA WEB
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.

2 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

3 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) Uma aplicação WEB é um termo usado para indicar, de forma geral, os programas projetados para ser acessado através de um navegador WEB (browser). Comunicação é totalmente realizada por meio de um canal que por padrão é inseguro — a Internet. Onde os pacotes trafegam em texto legivel.

4 Introdução Necessidade da Segurança Consequência dos ataques
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 Muitas das aplicações WEB são desenvolvidas O universo da segurança é marcado por uma característica cíclica, pois novas formas de ataque têm como consequência novas maneiras de proteção, o qual induz à procura de novas vulnerabilidades que levam ao desenvolvimento de novos métodos de ataque. *As aplicações web necessitam de atualizações constantes na sua camada de segurança/ *As aplicações que possuem uma camada de seguranca

5 Introdução Soluções: Objetivo 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. Desse modo, para resolver essas questões relacionadas à segurança existem inúmeros algoritmos de criptografia e protocolos que provêem uma transmissão segura na WEB.

6 Conceitos Básicos de Segurança
Serviços disponibilizados pela segurança: Autenticação Confidencialidade Integridade Não-repúdio Controle de Acesso Disponibilidade Autenticação: é o ato de confirmar a procedência de um individuo, ou seja, garantir se cada entidade é realmente o que declara ser. Confidencialidade: é o ato de garantir que a informação seja somente acessível entre os indivíduos autorizados. Integridade: é o serviço que promove a garantia de que as informações trafegam até seu destino sem ser modificados, ou seja, se forma integra Não-repúdio: O serviço não repúdio impede, tanto o emissor quanto o receptor, de negar a transmissão das mensagens. Controle de Acesso: é o ato de permitir ou negar o acesso às informações protegidas. Somente pessoas autorizadas pode acessar Disponibilidade: O serviço de disponibilidade garante que toda informação tem que estar disponível quando for solicitada.

7 Conceitos Básicos de Segurança Características dos ataques
Comportamento dos ataques Os ataques são caracterizados por quatro tipos e tem objetivo de minimizar os serviços disponibilizado pela segurança Interrupção: É o ataque que afeta a disponibilidade do sistema Intercepção: É o ataque que afeta principalmente a confidencialidade , isto é, as informação não está acessível somente para as pessoas autorizadas Modificação: É o ataque que afeta a integridade do sistema, ou seja, os dados podem ser modificados na transmissão Fabricação: É o ataque que afeta a autenticidade,isto é, o receptor recebe dados sem a verificação do emissor.

8 Ataques Motivos dos ataque na WEB Tipos de Ataques 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 bruta 2. Ataque do Homem do Meio (Man-in-the-middle) 3. XSS (Cross Site Scripting) 4. Injeção SQL Ataque de forca bruta: é um dos mecanismos mais rústicos para tentar realizar uma invasão. Consiste em um método exaustivo baseado na tentativa e erro. (ex: tentar advinhar a senha de uma entidade) (FABRICAÇÃO) Ataque do Homem do Meio: consiste no invasor se infiltrar na comunicação entre duas entidades, capturar seus dados, e transmiti-las novamente sem que as vítimas percebam a conversa é “manipulada” pelo atacante (MODIFICAÇÃO) XSS: Ocorre na camada da aplicação WEB, consistem em injetar códigos dentro das páginas WEB para que seja executado no momento em que tais páginas forem acessadas pelos usuários. Códigos para roubar cookies (FABRICAÇÃO) problema a entrada dos dados não são validados. Injeção de SQL: consistem em injetar instruções de SQL na aplicação WEB, o qual irá manipular o banco de dados referente a aplicação. Problema novamente é a falta de validacao da entrada dos dados (FABRICACAO) Consegue entrar sem conhecer o nome do usuario e a senha .

9 Ataques 5. CSRF (Cross-site reference forgery) 6. Phishing
7. DNS Spoofing 8. Clickjacking 9. Negação de Serviço (DoS) CSRF: O CSRF (Cross-site reference forgery – “pedido falso entre sites”) é um ataque similar ao XSS, mas a diferença é que o invasor insere requisições em uma sessão já aberta pelo usuário. o usuário se autentica em uma aplicação ALVO e deixa a sessão ativa No mesmo browser em outra aba, o usuário acessa o site do invasor e clica em algum link modificado o qual consegue manipular a sessão ativa da na outra aba como há uma sessão autenticada aberta para o usuário, a aplicação alvo executa a operação conforme a requisição recebida em nome do usuário autenticado. Phishing: golpe eletrônico cujo objetivo é roubar dados sigilosos da vítima, tais como senhas, número da conta bancária e números de cartão de crédito através da falsificação de uma aplicação. DNS Spoofing: O DNS Spoofing é a arte de falsificar uma resposta DNS desviando a vitima para o domínio do atacante. Clickjacking: Sequestro de Click: novo, o qual permite aos invasores esconderem códigos maliciosos camuflado em um botão da página WEB legítima DOS: consistem em tentativas de impedir usuários legítimos de utilizarem um determinada aplicação atraves do sobrecarregamento pelo invasor.

10 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 a essência criptografia é esconder o significado de mensagens e não a existência delas Simétrica: os processos de codificação e de decodificação utilizam a mesma chave. Esta deve apenas ter conhecimento entre o emissor e o receptor, e também, ser armazenada num ambiente seguro. Se a chave for interceptada a segurança estará compremetida Assimétrica: os processos de codificação e de decodificação utilizam chaves diferentes: chave pública e chave privada. A chave privada é mantida em segredo com o proprietário, enquanto a chave pública pode ser livremente distribuída para outros indivíduos. Hash: A função hash é tem como entrada um longo bloco de texto legível de tamanho variavel e como saída uma única sequência de bits de comprimento fixo. Para duas entradas distintas no algoritmo hash as respostas geradas são obrigatoriamente distintas. Em outras palavras, caso o retorno da função hash gere duas sequências de bits iguais é que os blocos de entrada são iguais.

11 Algoritmos Criptográficos Simétricos
Bloco Chave Informações RC4 Fluxo bits Internet Banking Caixa Econômica Federal, Banco do Brasil, Itaú RC5 bits bits Chave 64 quebrada, chave 72 bits segura RC6 128 bits bits Ficou no 4° colocado do AES DES 64 bits Defasado, 1998 quebrado por hardware TDES 168 bits Comércio eletrônico PayPal AES 2001-Rijndael, pagseguro (UOL) Blowfish 64 ou 128 bits Plataforma OpenBSD Twofish 256 bits Ficou no 3° colocado do AES Serpent Ficou no 2° colocado do AES NIST Instituto Nacional de Padrões e Tecnologia

12 Algoritmos Criptográficos Assimétricos
Fornece Chave Informações RSA Criptografia Assinatura digital Troca de Chaves bits Utilizado na maioria dos certificados digitais Diffie-Hellman Troca de chaves bits Necessita de mecanismo extra para garantir autenticidade DSA Assinatura Digital 1024 bits Proposto em 1991 para ser o padrão para assinaturas digitais ECC bits Desafiar e concorrer o RSA. Usado no DNSCurve ECDSA 160 bits Concorrente ao DSA A principal vantagem entre o ECC e o RSA é que aquele proporciona um nível equivalente de segurança com uma maior velocidade criptográfica através do uso de chaves de menor comprimento.

13 Algoritmos Criptográficos Funções Hash
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 Concurso proposto pela NIST. (andamento na 2° fase, resultado sairá em 2012)

14 Protocolos de Segurança
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 Criptografia Protege ataques DoS Os protocolos de segurança tem por objetivo garantir a segurança na transmissão das mensagens entre emissor e o receptor

15 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 pode ser aplicados em toda a mensagem ou em partes selecionadas, com objetivo de utilizar várias camadas de criptografia e/ou autenticação para controlar quais informações estarão acessíveis para cada participante em uma troca de. Isto significa que os intermediários conseguirão visualizar as partes da mensagem destinadas apenas à eles.

16 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

17 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 a criptografia de chave-pública possibilita a comunicação de forma segura entre pessoas que não compartilham uma chave-secreta em comum. O certificado digital resolveu o problema de Como realizar a troca das chaves públicas, de forma segura, antes de iniciar o processo de comunicação O gerenciamento do certificado digital é destinado as autoridades certificadora. o certificado digital é basicamente um documento eletrônico assinado pela AC o qual contem a chave publica da entidade que deseja comunicar. E garante que a chave publica pertence aquela entidade

18 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 São ferramentas que tem o objetivo de procurar vulnerabilidades na camada da aplicação WEB A segurança em nível de protocolo não garante a segurança em nível de aplicação

19 Ferramentas de Auditoria de Segurança
Funções\Ferramenta RatProxy Web Scarab Paros Burp Proxy w3af IBM AppScan Licença Livre Sim Não Multiplataforma Manipula pedidos/resposta HTTP(S) Relatório detalhado Sugestão para Correção Suporte SSL/TLS XSS, Injeção SQL, CSRF Análise de Cookies Análise de dados ocultos Análise RESTful Ambiente Desenvolvimento

20 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 CSRF (Cross-site reference forgery) Phishing DNS Spoofing DNSCurve, DNSSec, IPSec Clickjacking Negação de Serviço (DoS) Lista Negra, DNSCurve BlockHosts will now evaluate my log files on each connection attempt, maintain a "watched" host list between the markers in /etc/hosts.allow, and maintain the current blocked hosts in /etc/hosts.deny. The default configuration is to block a host after 7 failed login attempts and to reset the block list after 12 hours (+/- some tolerance based on the timing of log file writes, etc.) BlockHosts is easy to install and quite effective. If nothing else, I know I'll sleep better knowing that now after 7 failed logins instead of thousands of failed logins, the attacker will be dissuaded. A validação deve ser feita com base numa descrição dos valores permitidos para cada parâmetro ou dado de entrada. Esta descrição deve incluir: Tipo do dado (string, inteiro, real, data/hora, etc.); Conjunto de caracteres permitidos; Tamanhos máximo e mínimo; Se valores null são permitidos; Se o dado é obrigatório ou se pode ser omitido; Faixa permitida para valores numéricos; Conjunto específico de valores permitidos (enumeration); Padrões específicos, tais como expressões regulares. Como evitar uma ataque de injeção SQL A seguir algumas orientações de como você pode evitar um ataque de injeção SQL : 1- Estabeleça uma política de segurança rígida e criteriosa limitando o acesso dos seus usuários. Isto quer dizer que você deve dar somente os poderes necessários aos seus usuários. Não de acesso de escrita a tabelas e dê somente acesso as tabelas que o usuário vai precisar. 2- Faça a validação da entrada de dados no formulário e não permita os caracteres inválidos como : (') , (--) e (;)  nem de palavras maliciosas como insert , drop , delete, xp_ . Abaixo algumas funções que você pode usar: Este ataque é extremamente difícil de ser detectado, dado que um identificador de sessão correto e válido será incluído na requisição recebida pela aplicação e a requisição partirá do mesmo browser e endereço IP das requisições legítimas. A aplicação web não como separar a requisição correspondente ao ataque das requisições legítimas. Para evitar ataques de CSRF, a aplicação pode implementar as recomendações do item Usar corretamente POST e GET e também utilizar valores aleatórios a serem incluídos em cada formulário como um campo escondido, como mostra o exemplo abaixo:

21 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

22 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)

23 Obrigado

24 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.

25 Sumário Introdução Terminologia Engenharia do Software Arquitetura
Ferramentas utilizadas Visão Conceitual Exemplo de uso em uma aplicação WEB

26 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 Propoe uma camada de segurança entre as aplicações que utilizam rede. Autenticação: Separar a camada de segurança da lógica da aplicação Uma autenticação entre vários sistemas

27 Terminologia Domínio (Realm): Sujeito (Subject)
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

28 Terminologia Credenciais Permissão Papéis (Roles)
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

29 Engenharia do Software
Metodologia baseada: ICONIX Modelo de Domínio Modelo de Caso de Uso Diagrama de Sequencia O processo de desenvolvimento desse estágio foi baseado no conceito ICONIX O ICONIX é é uma metodologia para desenvolver software intermediário entre o formalismo do método RUP (Rational Unified Process) e a ausência de documentos das análises do método como XP (Extreme Programming). Assim, o ICONIX oferece uma documentação mínima para a engenharia de requisitos e análise de projeto. Identificar todos os objetos do sistema e construir um diagrama para uma melhor visualização. Descrever o comportamento dos requisitos Descrever a sequencia das atividades de um objeto no programa. consiste em alocar comportamento para as classes

30 Engenharia do Software Modelo de Domínio

31 Arquitetura

32 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 JAAS: (Java Authentication and Authorization Service) JCA: Java Cryptography Architecture JCE: Java Cryptography Extension Maven: é uma ferramenta para gerenciamento e automação de projetos em Java. Permite construir projetos em Java sem se preocupar com dependência de módulos ou bibliotecas POA:

33 Visão conceitual

34 Exemplo de uso em uma aplicação WEB

35 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

36 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>

37 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/> TAGS Para carregar a página do usuário de acordo com o perfil do usuáro Promove a reusabilidade do código

38 Obrigado


Carregar ppt "SEGURANÇA DE APLICAÇÕES NA WEB"

Apresentações semelhantes


Anúncios Google