Segurança em aplicações web: pequenas ideias, grandes resultados

34
Segurança em aplicações web: Segurança em aplicações web: pequenas ideias, grandes resultados pequenas ideias, grandes resultados Prof. Alex Camargo [email protected] UNIVERSIDADE FEDERAL DO PAMPA CAMPUS BAGÉ ENGENHARIA DE COMPUTAÇÃO

Transcript of Segurança em aplicações web: pequenas ideias, grandes resultados

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

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

[email protected]