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 Ementa Administração e Segurança de Redes 2 Prof. Mario João Jr. Tratamento do acesso dos usuários Tratamento da entrada de dados Tratamento de ataques Gerenciamento da aplicação Principais Mecanismos de Defesa Administração e Segurança de Redes 3 Prof. Mario João Jr. Qualquer aplicação precisa implementar é controlar o acesso dos usuários aos seus dados e funcionalidades A maioria das aplicações web trata acesso usando um trio de mecanismos de segurança Autenticação Gerenciamento de sessão Controle de acesso A segurança proporcionada pelos mecanismos é tão forte quanto o elo mais fraco da cadeia Principais Mecanismos de Defesa Administração e Segurança de Redes 4 Prof. Mario João Jr. Tratamento do acesso dos usuários Autenticação Aplicações web empregam o modelo de autenticação convencional: Login/senha Podem ser usados outros modelos Baseados em certificados Tokens SMS Mecanismos de login incluem outros serviços Auto cadastro Recuperação de conta e/ou senha Principais Mecanismos de Defesa Administração e Segurança de Redes 5 Prof. Mario João Jr. Tratamento do acesso dos usuários Gerenciamento de sessão A aplicação precisa de uma forma de identificar e processar a série de solicitações que se originam de cada usuário único A aplicação identifica a sessão por meio de um token A sessão é um conjunto de estruturas de dados mantidas no servidor que acompanha o estado de interação do usuário com a aplicação O token é uma string exclusiva que a aplicação mapeia para a sessão Principais Mecanismos de Defesa Administração e Segurança de Redes 6 Prof. Mario João Jr. Tratamento do acesso dos usuários Gerenciamento de sessão Quando um usuário recebe um token, o navegador automaticamente envia-o de volta para o servidor a cada requisição HTTP subsequente Tokens normalmente são implementados por Cookies Mas também podem ser usados Campos ocultos de formulários A própria URL Se não há requisição durante um longo período de tempo, a sessão deve ser encerrada Principais Mecanismos de Defesa Administração e Segurança de Redes 7 Prof. Mario João Jr. Tratamento do acesso dos usuários Gerenciamento de sessão Gerenciamento de sessão é altamente dependente da segurança de seus tokens Clonando um token, um invasor pode se fazer passar por um usuário autenticado Vulnerabilidades Mecanismos de geração de tokens falhos O invasor consegue adivinhar quais tokens foram criados Manipulação errada dos tokens O invasor captura tokens de usuários já autenticados Principais Mecanismos de Defesa Administração e Segurança de Redes 8 Prof. Mario João Jr. Tratamento do acesso dos usuários Controle de Acesso É permitir ou negar cada pedido individual baseado no nível de acesso do usuário Implementa a lógica de acesso específica Pode suportar diversos papéis (roles) para os usuários Cada um com seus privilégios Esse mecanismo é uma fonte frequente de vulnerabilidades Desenvolvedores frequentemente omitem verificações Principais Mecanismos de Defesa Administração e Segurança de Redes 9 Prof. Mario João Jr. Tratamento do acesso dos usuários Toda a entrada de usuário não é confiável A aplicação deve manipular a entrada do usuário de uma maneira segura Vulnerabilidades baseadas em entradas podem surgir em qualquer lugar A validação da entrada é uma defesa necessária contra esses ataques Principais Mecanismos de Defesa Administração e Segurança de Redes 10 Prof. Mario João Jr. Tratamento da Entrada de Dados Principais Mecanismos de Defesa Administração e Segurança de Redes 11 Prof. Mario João Jr. Tratamento da Entrada de Dados Variedade de Entradas Uma aplicação web processa dados enviados pelo usuário de muitas formas diferentes Em alguns casos a aplicação podem restringir MUITO a entrada (Ex.: nome de usuário) Em outros, nem tanto (Ex.: endereço) Mas é possível proibir qualquer tag HTML Outros campos com regras específicas de formação podem ser verificados (Ex.: Cookie de idiomas) Principais Mecanismos de Defesa Administração e Segurança de Redes 12 Prof. Mario João Jr. Tratamento da Entrada de Dados Abordagens para Tratamento da Entrada Não existe uma fórmula mágica Rejeitar o que é sabidamente ruim Esta abordagem tipicamente emprega uma lista negra (blacklist) que contém um conjunto de padrões que são conhecidos por serem usados em ataques Esta é considerada como a abordagem menos eficaz Uma vulnerabilidade pode ser explorada usando uma grande variedade de entradas Exemplo Se SELECT está bloqueado, tente SeLeCt Principais Mecanismos de Defesa Administração e Segurança de Redes 13 Prof. Mario João Jr. Tratamento da Entrada de Dados Abordagens para Tratamento da Entrada Aceitar o que é sabidamente bom Utiliza uma whitelist contendo padrões conhecidos de entradas válidas Permite os dados que coincidam com a whitelist e bloqueia todo o resto Nem sempre pode ser utilizada Alguns dados considerados perigosos podem ser reais Nomes como Carmen D’Albuquerque Principais Mecanismos de Defesa Administração e Segurança de Redes 14 Prof. Mario João Jr. Tratamento da Entrada de Dados Abordagens para Tratamento da Entrada Limpeza dos Dados (Sanitization) Reconhece a necessidade de aceitar dados que não são garantidamente seguros Caracteres potencialmente maliciosos podem ser removidos dos dados Altamente eficaz Boa defesa contra cross-site scripting (XSS) Principais Mecanismos de Defesa Administração e Segurança de Redes 15 Prof. Mario João Jr. Tratamento da Entrada de Dados Abordagens para Tratamento da Entrada Tratamento seguro dos Dados Muitas das vulnerabilidades surgem porque os dados são processados de forma insegura Métodos de programação seguros evitam os problemas mais comuns Exemplo: SQL injection pode ser prevenido por consultas parametrizadas (consultas onde apenas os parâmetros são enviados para a API) Dados enviados pelo usuário não devem ser repassados para SHELLs do Sistem Operacional Principais Mecanismos de Defesa Administração e Segurança de Redes 16 Prof. Mario João Jr. Tratamento da Entrada de Dados Abordagens para Tratamento da Entrada Verificações semânticas Em alguns casos, a entrada enviada pelo atacante é idêntica a uma entrada de um usuário não malicioso O que a torna maliciosa é a circunstância sob a qual ela é submetida Exemplo: um invasor pode tentar obter acesso à conta bancária de outro usuário, alterando o número da conta transmitida por um campo oculto de um formulário. Principais Mecanismos de Defesa Administração e Segurança de Redes 17 Prof. Mario João Jr. Tratamento da Entrada de Dados Medidas implementadas para lidar com invasores geralmente incluem: Tratamento de erros Manter registros de auditoria Alertas aos administradores Reação aos ataques Principais Mecanismos de Defesa Administração e Segurança de Redes 18 Prof. Mario João Jr. Tratamento de Ataques Tratamento de erros É inevitável que algunserros inesperados possam ocorrer Um mecanismo de defesa fundamental para lidar com erros inesperados é tratá-los de forma adequada A aplicação nunca deve retornar todas as mensagens geradas pelo sistema A maioria das linguagens de desenvolvimento web oferecem tratamento de erros através de blocos try-catch O tratamento de erros eficaz é muitas vezes integrado com mecanismos de log Principais Mecanismos de Defesa Administração e Segurança de Redes 19 Prof. Mario João Jr. Tratamento de Ataques Manter Logs de Auditoria Logs de auditoria são valiosos quando se investiga tentativas de invasão Eles devem permitir que se entenda o que aconteceu Devem conter: Eventos relacionados com a autenticação As operações-chave da aplicação Tentativas de acesso bloqueadas Pedidos que contenham strings maliciosas Principais Mecanismos de Defesa Administração e Segurança de Redes 20 Prof. Mario João Jr. Tratamento de Ataques Alertas aos Administradores Os logs permitem a investigação de tentativas de intrusão Mecanismos de alerta permitem monitoração em tempo real Anomalias de uso Grande número de pedidos de um IP ou usuário Anomalias nas regras de negócio Número incomum de transferências bancárias de uma conta Requisições contendo sequências de ataques conhecidas Requisições onde campos ocultos foram modificados Principais Mecanismos de Defesa Administração e Segurança de Redes 21 Prof. Mario João Jr. Tratamento de Ataques Reação aos Ataques Aplicações de segurança crítica contem mecanismos internos para reagir defensivamente contra os usuários maliciosos As aplicações podem demorar a responder às solicitações do atacante ou encerrar a sessão do mesmo Reagir a ataques não é um substituto para corrigir quaisquer vulnerabilidades Principais Mecanismos de Defesa Administração e Segurança de Redes 22 Prof. Mario João Jr. Tratamento de Ataques
Compartilhar