2. 2
Conceitos importantes
O Protocolo HTTP (RFC 2616, 2617, 2660)
● TCP/IP (RFC 793/791)
● Header X Payload
● Métodos: GET, POST, HEAD, PUT, DELETE, CONNECT, TRACE,
OPTIONS
● Stateles X Stateful
● Keep-alive X Connection: Close
3. 3
Conceitos importantes
O Protocolo HTTP: Códigos de status
● 1xx - Códigos informativos.
● 2xx - Operações realizadas com sucesso.
● 3xx - Redirecionamento.
● 4xx - Requisições errôneas por parte do cliente.
● 5xx - Respostas errôneas por parte do servidor, diante de requisições
aparentemente válidas.
34. 35
• HTML 5
• Brute Force
• MITM - Man In The Middle
• Shared Hosts
Segurança Ofensiva
35. 36
Livro Covert Java(Java Secreto)
●
Descompilando classes
●
Ofuscação e desenfuscação
●
Reflexão
●
JVM Internals
●
Hooks
●
Código nativo
●
Muito mais...
36. 37
Segurança em Camadas
● MVC
● Segregação de função
● Privilegio mínimo sempre
● Execução mínima sempre
● Tenha em mente as perguntas corretas
● Sempre desconfie das respostas!
"No one can guarantee 100% security. But we can work toward 100% risk acceptance."
Bruce Schneier
37. 38
• Como debugar
• Filtragem de dados
• Tokens
• Captchas
• Hardening
• Aplicações de segurança
Segurança Defensiva
44. 45
Filtragem de dados
Trabalhando com diretórios
● Proteja-se de path traversal, RFI e LFI
● Utilize métodos para manuseio de diretórios/arquivos
● Utilize constantes que definem os diretórios absolutos da sua
aplicação
● Utilize um método que retorne o separador de diretórios do SO(/
ou )
● Um simples switch/case pode ajudar muito
45. 46
Filtragem de dados
Executando comandos
● Procure evitar, mas se for necessário então:
● Sanitize os dados de entrada, neste caso, regex pode ajudar muito.
● Utilize metodos para em uma string:
– Escapar qualquer tentativa de injeção de comando: “;” “&&”...
– Escapar qualquer tentativa de injeção de argumentos
46. 47
Cuidado especial com SGBDs
● Desconfie de métodos de escape baseados em encoding padrão e que
não estão nativos no banco de dados
● Sanitize os dados
● Utilize sempre prepared statements
Filtragem de dados
49. 50
Hardening
● Evitar problemas de configuração e fortificar as mesmas
● Configurações do servidor de aplicação
● Configurações SGBD
● Configurações do sistema operacional
● Configurações da infraestrutura envolvida(firewalls...)
52. 53
Checagem periódica de integridade
● Arquivos
● Repositórios com o GIT podem te ajudar
● Binários
● Integração continua com o Jenkins também ajuda
● Módulos do kernel
● Tripware/ossec/aide
● Chkrootkit/rkhunter
55. 56
Politicas e metodologias
Senhas
● Os meios de autenticação
● Criptografia durante a autenticação e autorização
– Certificação digital
● Escolha dos algorítimos criptográficos utilizados
● Politicas de acesso
● Qualidade das senhas
● OpenLDAP/PPOLICY