10
Especializa ção em Segurança da Informação Segurança em Aplicações 6. Melhores Práticas de Programação para Web Márcio Aurélio Ribeiro Moreira [email protected] http://si.lopesgazzani.br/docentes/marcio/

Segurança em Aplicações 6. Melhores Práticas de Programação para Web

  • Upload
    nicole

  • View
    38

  • Download
    0

Embed Size (px)

DESCRIPTION

Segurança em Aplicações 6. Melhores Práticas de Programação para Web. Márcio Aurélio Ribeiro Moreira [email protected] http:// si.lopesgazzani.br/docentes/marcio /. Princípios comuns. A segurança foi incorporada aos negócios Identifique as vulnerabilidades, ameaças e riscos - PowerPoint PPT Presentation

Citation preview

Page 1: Segurança em Aplicações 6. Melhores Práticas de Programação para Web

Especialização em Segurança da Informação

Segurança em Aplicações6. Melhores Práticas de Programação para Web

Márcio Aurélio Ribeiro [email protected]

http://si.lopesgazzani.br/docentes/marcio/

Page 2: Segurança em Aplicações 6. Melhores Práticas de Programação para Web

Márcio Moreira 5. Melhores Práticas de Programação para Web – slide 2 Segurança em Aplicações

Princípios comuns

A segurança foi incorporada aos negóciosIdentifique as vulnerabilidades, ameaças e riscos

A segurança deve ser parte dos requisitosIdentifique os ativos, as mudanças nos casos de

uso, os usuários, os papéis e responsabilidadesIdentifique as exigências legais

A segurança dever ser parte da arquiteturaA arquitetura deve ser avaliada sob a ótica de

segurança, guiadas pelos requisitos de segurança

Page 3: Segurança em Aplicações 6. Melhores Práticas de Programação para Web

Márcio Moreira 5. Melhores Práticas de Programação para Web – slide 3 Segurança em Aplicações

Vulnerabilidades x Plataformas

CategoriaJav

a J2EE Risco Pacote

Injeção de código P P médio java.*

Segurança de Cookies P P alto javax.servlet.*

Cross site scripts (xss) P P alto javax.servlet.*

Descoberta de informações P P médio java.*

Erros de lógica P P médio java.*

Injeção de recursos P C alto javax.servlet.*

Injeção de código SQL C C alto java.sql.*

Não liberação de recursos C C baixo java.*Legenda: Fonte:P = Programar Java Web Application SecurityC = Configurar Best Practice Guide - Secologic for SAP

Page 4: Segurança em Aplicações 6. Melhores Práticas de Programação para Web

Márcio Moreira 5. Melhores Práticas de Programação para Web – slide 4 Segurança em Aplicações

Recomendações

Restrinja ao máximo o anonimatoOnde for recomendável use autenticaçãoNo restante pelo menos trabalhe com identificação

Limite o uso de credenciais administrativasPrefira o uso de credenciais do usuário ao invés

de credenciais administrativas para acesso ao DBAinda assim proteja o acesso ao DB por ACL

Prefira formulários com o método POSTEvite ao máximo o uso do método GET

Page 5: Segurança em Aplicações 6. Melhores Práticas de Programação para Web

Márcio Moreira 5. Melhores Práticas de Programação para Web – slide 5 Segurança em Aplicações

Recomendações

Não envie dados ocultos ao clienteNão coloque dados para ir e voltar do clientOs dados, mesmo ocultos, podem ser alterados

facilmente no clientAlertas: http://xforce.iss.net/alerts/advise42.php

Não armazene dados em páginas (asp/jsp)Credenciais de acesso a DB, diretórios, etc. podem

ser facilmente vistas nas páginas geradas

Atenção para comentários html em produção

Page 6: Segurança em Aplicações 6. Melhores Práticas de Programação para Web

Márcio Moreira 5. Melhores Práticas de Programação para Web – slide 6 Segurança em Aplicações

Recomendações

Cuidado com scripts através do site (xss)Leia www.cert.org/advisories/CA-2000-02.htmlCuidado com informações entradas, vistas e

alteradas somente por usuáriosO administrador não tem ação sobre elas e os

usuários podem ficar relativamente anônimosCuidado com códigos gerados por wizards

Assistentes são ótimos para usuáriosMas, são prato cheio para os hackers, pois dizem

muito sobre a codificação das páginas

Page 7: Segurança em Aplicações 6. Melhores Práticas de Programação para Web

Márcio Moreira 5. Melhores Práticas de Programação para Web – slide 7 Segurança em Aplicações

Recomendações

Segurança dos middlewaresAplicações componentizadas (usam COM+ ou

EJB) geram uma camada a mais de segurançaA arquitetura deve considerar uso de credenciais

para a camada de middlewareSegurança declarativa x programativa

A segurança declarativa é usada quando a segurança está fora da aplicação

Na programativa a segurança está descrita no código

A decisão deve ser tomada a cada aplicação

Page 8: Segurança em Aplicações 6. Melhores Práticas de Programação para Web

Márcio Moreira 5. Melhores Práticas de Programação para Web – slide 8 Segurança em Aplicações

Recomendações

Uma PKI (infraestrutura de chave pública) não é uma “bala de prata”Certificados são fáceis de gerar e difíceis de

checarLeia: www.counterpane.com/pki-risks.html

Não presuma nada (plandocheckact)O mundo real é perigoso e traiçoeiroImplementações top de linha duram pouco tempo

Nossa grande amiga: revisão de código

Page 9: Segurança em Aplicações 6. Melhores Práticas de Programação para Web

Márcio Moreira 5. Melhores Práticas de Programação para Web – slide 9 Segurança em Aplicações

Recomendações

Inspecione o que estamos utilizandoA segurança do todo depende das partesOs componentes, SO, bibliotecas, etc. que você

está usando tem vulnerabilidades?

Use os logs para resolver problemasNa suspeita de um ataque salve os logsComece a investigação por eles

Page 10: Segurança em Aplicações 6. Melhores Práticas de Programação para Web

Márcio Moreira 5. Melhores Práticas de Programação para Web – slide 10 Segurança em Aplicações

Materiais adicionais

Best Practices for Secure Web Development - Razvan Peteanu

Java Web Application Security - Best Practice Guide - Secologic for SAP