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 Atacando a Autenticação Ementa Administração e Segurança de Redes 2 Prof. Mario João Jr. A autenticação está entre os mais simples de todos os mecanismos de segurança utilizados em aplicações web Também está no cerne da proteção de uma aplicação contra ataques maliciosos Sem uma autenticação robusta, nenhum dos outros mecanismos de segurança podem ser eficazes Atacando a Autenticação Administração e Segurança de Redes 3 Prof. Mario João Jr. Tecnologias para mecanismos de autenticação: Autenticação baseada em formulários HTML Mecanismos multifatoriais Combinam senhas e tokens físicos Certificados SSL do Cliente e/ou smartcards Autenticação HTTP básica e digest Autenticação integrada do Windows NTLM ou Kerberos Serviços de autenticação Atacando a Autenticação Administração e Segurança de Redes 4 Prof. Mario João Jr. Tecnologias para Autenticação O mais utilizado é: Autenticação baseada em formulários HTML Em aplicações onde a segurança é crítica Mecanismos multifatoriais Algumas utilizam Certificados (Ex.: Receita Federal) Autenticações HTTP e integradas ao Windows são usadas em Intranets Serviços de Autenticação estão se popularizando Atacando a Autenticação Administração e Segurança de Redes 5 Prof. Mario João Jr. Tecnologias para Autenticação Política de Senhas Falha Senhas muito curtas ou em branco Senhas que são palavras de dicionário ou nomes Senhas iguais ao nome de usuário Senhas padrão (Ex.: 123456) É necessário uma política que force o uso de senhas “fortes” Ex.: no mínimo 8 caracteres, sendo 1 letra maiúscula, 1 letra minúscula, 1 número e 1 símbolo Atacando a Autenticação Administração e Segurança de Redes 6 Prof. Mario João Jr. Falhas de Projeto em Mecanismos de Autenticação Login Suscetível à Força Bruta A aplicação não pode permitir que um atacante faça repetidas tentativas de login até adivinhar a correta Controles no cliente são facilmente burlados (Ex. Cookies com o número de tentativas) A aplicação deve bloquear o usuário após o número limite de tentativas incorretas Atacando a Autenticação Administração e Segurança de Redes 7 Prof. Mario João Jr. Falhas de Projeto em Mecanismos de Autenticação Mensagens de Erro Detalhadas A aplicação informa se o erro foi devido ao login ou à senha Sabendo quais usuários são válidos, o atacante pode utilizar força bruta ou engenharia social Se a aplicação permite o autocadastro, esse mecanismo pode ser utilizado para descoberta de logins já existentes O mesmo vale para alteração e lembrete de senhas As mensagens devem indicar o erro, mas não devem ajudar ao invasor Atacando a Autenticação Administração e Segurança de Redes 8 Prof. Mario João Jr. Falhas de Projeto em Mecanismos de Autenticação Alteração de Senhas Esta funcionalidade é necessária para um bom mecanismo de autenticação A periódica alteração forçada de senha reduz a ameaça de comprometimento desta Usuários que desconfiam que suas senhas foram comprometidas precisam de um mecanismo rápido de alteração de senha Vulnerabilidades que são evitadas no login, muitas vezes reaparecem na alteração de senha. Atacando a Autenticação Administração e Segurança de Redes 9 Prof. Mario João Jr. Falhas de Projeto em Mecanismos de Autenticação Alteração de Senhas A alteração de senha de muitas aplicações é acessível sem autenticação e: Exibe uma mensagem de erro detalhada, indicando se o nome de usuário é válido. Permite tentativas sem restrição do campo "senha atual". Verifica se os campos "nova senha" e "confirmação da nova senha" têm o mesmo valor apenas após validar a senha existente Atacando a Autenticação Administração e Segurança de Redes 10 Prof. Mario João Jr. Falhas de Projeto em Mecanismos de Autenticação Recuperação de Senhas A recuperação de senha muitas vezes envia o usuário a um desafio secundário no lugar do login principal. Esse desafio é frequentemente mais fácil do que tentar adivinhar a senha do usuário Possibilidade de utilização de força bruta na resposta a um desafio de recuperação de senha Mesmo quando este ataque está bloqueado na página de login principal Atacando a Autenticação Administração e Segurança de Redes 11 Prof. Mario João Jr. Falhas de Projeto em Mecanismos de Autenticação Recuperação de Senhas O desafio da recuperação é substituído por uma simples "dica" da senha que é configurada pelos usuários durante o registro Muitas vezes os usuários colocam nas dicas as próprias senhas Um meio razoavelmente seguro de implementar recuperação de senhas é enviar uma única URL de recuperação por tempo limitado para o endereço de e- mail que o usuário forneceu durante o registro Atacando a Autenticação Administração e Segurança de Redes 12 Prof. Mario João Jr. Falhas de Projeto em Mecanismos de Autenticação Um mecanismo de autenticação bem projetado pode ser inseguro devido a erros de implementação Estes erros podem levar a: Vazamento de informações Ignorar completamente o mecanismo de login Enfraquecimento da segurança geral do mecanismo Falhas de implementação tendem a ser mais sutis e mais difíceis de detectar do que falhas de projeto Atacando a Autenticação Administração e Segurança de Redes 13 Prof. Mario João Jr. Falhas na Implementação da Autenticação Mecanismo de Login em Aberto public Response checkLogin(Session session) { try { String uname = session.getParameter(“username”); String passwd = session.getParameter(“password”); User user = db.getUser(uname, passwd); if (user == null) { session.setMessage(“Login failed. “); return doLogin(session); } } catch (Exception e) {} session.setMessage(“Login successful. “); return doMainMenu(session); } Atacando a Autenticação Administração e Segurança de Redes 14 Prof. Mario João Jr. Falhas na Implementação da Autenticação Armazenamento Inseguro de Credenciais Se uma aplicação armazena as credenciais de login de forma insegura, a segurança do mecanismo de login é prejudicada É comum encontrar aplicações web em que as credenciais do usuário são armazenadas no banco de dados de forma insegura Senhas em texto aberto ou MD5/SHA-1 Ataques SQL injection podem roubar essas credenciais Atacando a Autenticação Administração e Segurança de Redes 15 Prof. Mario João Jr. Falhas na Implementação da Autenticação Autenticação segura envolve: Segurança x Usabilidade, Funcionalidade e Custo Questões: A aplicação precisa ser tão segura? Os usuários reagirão bem aos controles de acesso? O custo de dar suporte a um sistema menos amigável vale a pena? O custo do desenvolvimento das soluções de segurança da aplicação vale a pena? Atacando a Autenticação Administração e Segurança de Redes 16 Prof. Mario João Jr. Autenticação Segura Usar credenciais fortes Requisitos mínimos de qualidade para as senhas O nome de usuário deve ser único Nomes de usuários e senhas gerados pelo sistema devemser criados de forma a não poderem ser sequenciados ou previstos Os usuários devem ter permissão para definir senhas suficientemente fortes Atacando a Autenticação Administração e Segurança de Redes 17 Prof. Mario João Jr. Autenticação Segura Manusear Credenciais com Sigilo Todas as credenciais devem ser criadas, armazenadas e transmitidas de uma maneira que não conduza à divulgação não autorizada Todas as comunicações cliente-servidor deve ser protegidas usando uma tecnologia de criptografia bem estabelecida, como SSL O próprio formulário de login deve ser carregado usando HTTPS Atacando a Autenticação Administração e Segurança de Redes 18 Prof. Mario João Jr. Autenticação Segura Manusear Credenciais com Sigilo Apenas as requisições POST devem ser usadas para transmitir as credenciais para o servidor O servidor deve armazenar as credenciais de uma forma que não permita que os valores originais possam ser facilmente recuperados A funcionalidade de mudança de senha deve ser implementada e os usuários devem ser obrigados a alterar suas senhas periodicamente Atacando a Autenticação Administração e Segurança de Redes 19 Prof. Mario João Jr. Autenticação Segura Prevenir Vazamento de Informações Os vários mecanismos de autenticação utilizados pela aplicação não devem divulgar qualquer informação sobre os parâmetros de autenticação Em vez de permitir que o usuário escolha seu nome de usuário, a aplicação pode criar um nome de usuário único (e imprevisível) para cada novo usuário Assim a necessidade de divulgar se um nome de usuário selecionado já existe é eliminada Atacando a Autenticação Administração e Segurança de Redes 20 Prof. Mario João Jr. Autenticação Segura Prevenir Vazamento de Informações A aplicação pode usar endereços de e-mail como nome de usuário Se o endereço de e-mail já está cadastrado, o usuário pode ser informado disso no e-mail Se o endereço não estiver registrado, o usuário deve receber uma URL única para visitar e continuar o processo de registro Atacando a Autenticação Administração e Segurança de Redes 21 Prof. Mario João Jr. Autenticação Segura Prevenir Ataques por Força Bruta Desativar uma conta depois de um pequeno número de logins falhos Permite que um atacante negue serviço a usuários legítimos Os custos da prestação do serviço de recuperação de conta Suspender as contas por um período curto depois de um pequeno número de tentativas de login falhas Diminui qualquer ataque de adivinhação de senha Reduz o trabalho dos call centers Atacando a Autenticação Administração e Segurança de Redes 22 Prof. Mario João Jr. Autenticação Segura
Compartilhar