Upload
alex-camargo
View
60
Download
0
Embed Size (px)
Citation preview
Segurança em aplicações web: Segurança em aplicações web: pequenas ideias, grandes resultadospequenas ideias, grandes resultados
Prof. Alex [email protected]
UNIVERSIDADE FEDERAL DO PAMPACAMPUS BAGÉ
ENGENHARIA DE COMPUTAÇÃO
Sobre o professorFormação acadêmica:
Bacharel em Sistemas de Informação (URCAMP, 2010)
TCC: Web sistema integrado a uma rede social para academias de ginástica.
Orientador: Prof. Me. Abner Guedes
Especialista em Sistemas Distribuídos com Ênfase em Banco de Dados (UNIPAMPA, 2013)
TCC: Interligando bases de dados do sistema Controle de Marcas e Sinais utilizando o MySQL Cluster.
Orientadores: Prof. Me. Érico Amaral e Prof. Me. Rafael Bastos
Segurança em aplicações web: pequenas ideias, grandes resultados Prof. Alex Camargo
Sobre o professorFormação acadêmica:
Mestrando em Engenharia de Computação (FURG, 2016)
Linha de pesquisa: Bioinformática.
Orientador: Ainda não definido
Segurança em aplicações web: pequenas ideias, grandes resultados Prof. Alex Camargo
Sobre o professorAntes da UNIPAMPA:
Programador Web e DBA Local: Prefeitura Municipal de Bagé
Professor das disciplinas de Banco de Dados e Análise de SistemasLocal: Capacitar Escola Técnica
Segurança em aplicações web: pequenas ideias, grandes resultados Prof. Alex Camargo
Sobre o professorAtualmente:
Professor da disciplina de Algoritmos e Programação Turmas: Engenharia de Computação, Engenharia de Alimentos, Engenharia de Energias Renováveis e Ambiente, Engenharia Química e Licenciatura em Física
Professor da disciplina de Laboratório de Programação IITurma: Engenharia de Computação
Segurança em aplicações web: pequenas ideias, grandes resultados Prof. Alex Camargo
Esta palestra é sobre... Segurança em aplicações web.
Boas práticas de programação. Erros comuns. Tipos de ataques. Foco na implementação com PHP e MySQL
Pode ser aplicado para outras linguagens e bancos de dados.
Segurança em aplicações web: pequenas ideias, grandes resultados Prof. Alex Camargo
Esta palestra NÃO é sobre...
Segurança em servidores.
Configuração de servidores. Firewalls. DNS, FTP, SSH, HTTPS. DoS, IP spoofing, phishing.
Segurança em aplicações web: pequenas ideias, grandes resultados Prof. Alex Camargo
The beginning...
Segurança em aplicações web: pequenas ideias, grandes resultados Prof. Alex Camargo
Introdução Atualmente as vulnerabilidades nas aplicações web são o maior vetor para os ataques contra a segurança de TI.
Falhas ou em erros de programação nas linguagens usadas para aplicações web (Java, .NET, PHP, Python, Perl, Ruby, etc).
Tais vulnerabilidades podem ser complexas e se manifestarem em muitas situações diferentes.
Segurança em aplicações web: pequenas ideias, grandes resultados Prof. Alex Camargo
Introdução Porque segurança em aplicações é prioridade?
75% dos ataques acontecem na camada da aplicação (Gartner) 90% dos sites são vulneráveis à ataques (Watchfire) 78% das vulnerabilidades facilmente exploráveis afetam
aplicações web (Symantec)
Segurança em aplicações web: pequenas ideias, grandes resultados Prof. Alex Camargo
Introdução Porque segurança em aplicações é prioridade?
75% dos ataques acontecem na camada da aplicação (Gartner) 90% dos sites são vulneráveis à ataques (Watchfire) 78% das vulnerabilidades facilmente exploráveis afetam
aplicações web (Symantec)
Segurança em aplicações web: pequenas ideias, grandes resultados Prof. Alex Camargo
Fonte: (Gartner, 2008)
Introdução Principais causas das vulnerabilidades:
Imaturidade em segurança Desenvolvimento in-house Restrições de recursos e tempo
Segurança em aplicações web: pequenas ideias, grandes resultados Prof. Alex Camargo
Introdução Por que o PHP?
Facilidade, rapidez, versatilidade, etc. Ampla documentação e cases de sucesso. Acabou se tornando a linguagem server-side mais utilizada na
web.
Segurança em aplicações web: pequenas ideias, grandes resultados Prof. Alex Camargo
Aplicações web Como funcionam as aplicações web?
Segurança em aplicações web: pequenas ideias, grandes resultados Prof. Alex Camargo
Aplicações Web Como funcionam as aplicações web?
Segurança em aplicações web: pequenas ideias, grandes resultados Prof. Alex Camargo
Vamos à prática...
Segurança em aplicações web: pequenas ideias, grandes resultados Prof. Alex Camargo
Tipos de ataque Nesta palestra serão abordadas as principais ameaças a aplicações web, dentre elas:
Cross-Site Scripting (XSS) Cross-Site Request Forgery (CSRF) SQL Injection Outras vulnerabilidades...
Segurança em aplicações web: pequenas ideias, grandes resultados Prof. Alex Camargo
Cross-Site Scripting (XSS) O atacante normalmente explorará essa falha inserindo tags e código Javascript no seu HTML.
Tags <iframe> chamando páginas maliciosas Código js para ler os cookies do usuário Código js para alterar as informações do site (defacement)
Segurança em aplicações web: pequenas ideias, grandes resultados Prof. Alex Camargo
Cross-Site Scripting (XSS) O atacante normalmente explorará essa falha inserindo tags e código Javascript no seu HTML.
Tags <iframe> chamando páginas maliciosas Código js para ler os cookies do usuário Código js para alterar as informações do site (defacement)
Segurança em aplicações web: pequenas ideias, grandes resultados Prof. Alex Camargo
Cross-Site Scripting (XSS) Para se proteger, basta:
Filtrar a entradastrip_tags: Retira as tags HTML e PHP de uma string.
Escapar a saídahtmlespecialchars: Exibe as tags HTML sem interpretá-las.
Segurança em aplicações web: pequenas ideias, grandes resultados Prof. Alex Camargo
Cross-Site Scripting (XSS) Demonstração: XSS
Segurança em aplicações web: pequenas ideias, grandes resultados Prof. Alex Camargo
Cross-Site Request Forgery (CSRF)
Como o nome diz, consiste em tentar forjar uma requisição de um site para outro. O ataque pode ser feito da seguinte forma:
Você recebe um e-mail com uma URL oculta, geralmente algum e-mail do tipo "Veja as nossas fotos".
Esta URL executa alguma ação em uma aplicação que você esteja autenticado no momento (por exemplo, o Facebook).
Esta ação pode dar poderes ao atacante para remover os seus dados (ou do seu cliente) permanentemente.
Segurança em aplicações web: pequenas ideias, grandes resultados Prof. Alex Camargo
Cross-Site Request Forgery (CSRF)
Como o nome diz, consiste em tentar forjar uma requisição de um site para outro. O ataque pode ser feito da seguinte forma:
Você recebe um e-mail com uma URL oculta, geralmente algum e-mail do tipo "Veja as nossas fotos".
Esta URL executa alguma ação em uma aplicação que você esteja autenticado no momento (por exemplo, o Facebook).
Esta ação pode dar poderes ao atacante para remover os seus dados (ou do seu cliente) permanentemente.
Segurança em aplicações web: pequenas ideias, grandes resultados Prof. Alex Camargo
Cross-Site Request Forgery (CSRF)
Como se defender do CSRF?
O método GET deve ser utilizado apenas para consultasExibição de páginas, listagens, pesquisas.
O método POST deve ser utilizado para as operaçõesCadastros, atualização, exclusão, autenticação.
Utilizar tokens na sessãoGerados de forma aleatória e comparados ao receber a sessão.
Segurança em aplicações web: pequenas ideias, grandes resultados Prof. Alex Camargo
Cross-Site Request Forgery (CSRF)
Demonstração: CSRF
Segurança em aplicações web: pequenas ideias, grandes resultados Prof. Alex Camargo
SQL Injection Entre as vulnerabilidades citadas, o SQL Injection é uma das mais destrutivas, tanto para a aplicação quanto para os seus usuários.
Entrada do usuário inserida em comandos SQL. Informação maliciosa fornecida pelo atacante engana o
interpretador. Uma exploração da injeção de SQL bem sucedida pode
ler/alterar/excluir dados sigilosos do banco de dados.
Segurança em aplicações web: pequenas ideias, grandes resultados Prof. Alex Camargo
SQL Injection Entre as vulnerabilidades citadas, o SQL Injection é uma das mais destrutivas, tanto para a aplicação quanto para os seus usuários.
Entrada do usuário inserida em comandos SQL. Informação maliciosa fornecida pelo atacante engana o
interpretador. Uma exploração da injeção de SQL bem sucedida pode
ler/alterar/excluir dados sigilosos do banco de dados.
Segurança em aplicações web: pequenas ideias, grandes resultados Prof. Alex Camargo
SQL Injection Felizmente, é muito fácil se proteger contra esse tipo de ataque.
Basta escapar os dados enviados nas queries
mysql_escape_string: Escapa uma string para usar em uma consulta MySQL.
addslashes: Adiciona barras invertidas a uma string.
Segurança em aplicações web: pequenas ideias, grandes resultados Prof. Alex Camargo
SQL Injection Demonstração: SQL Injection
Segurança em aplicações web: pequenas ideias, grandes resultados Prof. Alex Camargo
Boas práticas em PHP
URLs seguras e amigáveis.
Senhas criptografadas. Monitore os erros de senha.
Segurança em aplicações web: pequenas ideias, grandes resultados Prof. Alex Camargo
Considerações finais
Crie o hábito de programar de forma segura. Toda entrada deve ser filtrada e toda saída deve ser escapada. Visualize as brechas e implemente soluções simples para elas. Esteja atualizado.
Segurança em aplicações web: pequenas ideias, grandes resultados Prof. Alex Camargo
ReferênciasPROBLEMAS COMUNS DE SEGURANÇA EM APLICAÇÕES WEBhttp://klauslaube.com.br/2012/04/15/problemas-de-seguranca-em-aplicacoes-web.html
MANUAL DO PHPhttp://php.net/
(IN)SEGURANÇA EM APLICAÇÕES WEBhttp://www.detaileventos.com.br/ibm_dc2008/download/(In)Seguranca%20em%20Aplicacoes%20Web.pdf
SEGURANÇA PARA APLICAÇÕES WEB http://www.siteblindado.com/pt/pags/view/files/WhitePaper+QualysGuard+Vulnerability+Web+Applications.pdf
SEGURANÇA EM APLICAÇÕES WEB COM PHPhttp://pt.slideshare.net/gedvan/segurana-em-aplicaes-web-com-php-8676135
SEGURANÇA EM PHP - BLINDE SEU CÓDIGO DE VOCÊ MESMO!http://pt.slideshare.net/gustavonevesgn/segurana-em-php-blinde-seu-cdigo-de-voc-mesmo
WEB HACKING: ATAQUES E VULNERABILIDADES EM APLICAÇÕES WEBhttp://blog.corujadeti.com.br/web-hacking-ataques-e-vulnerabilidades-em-aplicacoes-web/
Segurança em aplicações web: pequenas ideias, grandes resultados Prof. Alex Camargo
Fim
Agradeço a atenção de todos.
Dúvidas, críticas ou sugestões?
Segurança em aplicações web: pequenas ideias, grandes resultados Prof. Alex Camargo