Treinamento AJAX Segurança Waelson Negreiros Email: [email protected] Blog: http://waelson.com.br Agenda Segurança da Informações Entendendo as falhas Canais Seguros Injeção de SQL Segurança da Informações Relacionado a proteção de um conjunto de dados; Informação é o maior ativo das empresas; Características básica: Confidencialidade Integridade Disponibilidade Segurança da Informações Mecanismos de Segurança Controles físicos Limita o contato com a informações ou infraestrutura Controle Lógico Limita o acesso a informação Segurança da Informações Mecanismos de Controle Lógico Criptografia Assinatura Digital Controle de Acesso: biometria, firewall e etc Honeypot Protocolos Seguros Segurança da Informações Aplicações Web são frágeis; Razões: Desenvolvedores não capacitados; Requisitos não funcionais não identificados; Ferramentas não detectam todos os erros; Segurança da Informações Principais falhas no desenvolvimento Cross-Site Scripting (XSS) Manipulação de dados ocultos Falha na restrição de acesso a URL Tratamento indevido de erros Dados valiosos não criptografados Canais inseguros; Injeção de comandos; Processo inadequado de cadastro de usuário Entendendo as falhas Cross-Site Scripting (XSS) Permite executar scripts maliciosos no navegador Entendendo as falhas Manipulação de dados ocultos A aplicação permite acesso indevido a dados ocultos. Entendendo as falhas Falha na restrição de acesso a URL A aplicação permite acesso à módulos o qual o usuário não tem permissão de acesso. Ex: http://erp.minhaempresa/empregado http://erp.minhaempresa/administracao Entendendo as falhas Tratamento indevido de erros Informações sensíveis são expostas quando acontece um erro com a aplicação. Ex: Aplicação não trata o erro adequadamente e exibe ao usuário o nome de uma tabela. Entendendo as falhas Dados valiosos não criptografados Dados sensiveis ficam armazenados de forma não criptografada ou usa criptografia inadequada. Ex: Senhas e números de cartões não criptografados no banco de dados ou cookies. Desenvolvedor cria seu próprio mecanismo de criptografia. Entendendo as falhas Canais inseguros A aplicação trafega dados sensíveis através de canais não-seguro Ex: Não uso do TLS em sistemas de e-commerce Entendendo as falhas Injeção de comandos Atacante explora a injeção de comandos a serem processados por outro sistema ou camada. Ex: SQL Injection Entendendo as falhas Processo inadequado de cadastro de usuário O cadastro de usuários da aplicação não segue recomendações de segurança. Ex: Uso de senha “123456” Canais Seguros Diz respeito por onde os dados irão trafegar; TLS (predecessor SSL); Protocolo Criptográfico; Funcionamento: Cliente conhece o servidor e servidor conhece o cliente; Cada solicitação é autenticada; Dados trafegados são criptografados. Canais Seguros Utilizados por grandes instituições Visa, Mastercard e American Express Injeção SQL SQL Linguagem textual para interagir com o banco de dados DDL e DML Injeção SQL Atacante inserir instruções SQL dentro de uma query através da entrada de dados. Injeção SQL Validando o acesso do usuário SELECT * FROM usuario WHERE login=‘waelson’ AND senha=‘@wa3’ SELECT * FROM usuario WHERE login=‘waels’on’ AND senha=‘@wa3’