Especializao em Segurana da Informao Segurana em Aplicaes
- Slides: 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 marcio. moreira@pitagoras. com. br http: //si. lopesgazzani. br/docentes/marcio/
Princípios comuns Ø A segurança foi incorporada aos negócios l Identifique as vulnerabilidades, ameaças e riscos Ø A segurança deve ser parte dos requisitos l Identifique os ativos, as mudanças nos casos de uso, os usuários, os papéis e responsabilidades l Identifique as exigências legais Ø A segurança dever ser parte da arquitetura l A arquitetura deve ser avaliada sob a ótica de segurança, guiadas pelos requisitos de segurança Márcio Moreira 5. Melhores Práticas de Programação para Web – slide 2 Segurança em Aplicações
Vulnerabilidades x Plataformas Categoria Java J 2 EE 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: P = Programar C = Configurar Márcio Moreira Fonte: Java Web Application Security Best Practice Guide - Secologic for SAP 5. Melhores Práticas de Programação para Web – slide 3 Segurança em Aplicações
Recomendações Ø Restrinja ao máximo o anonimato l Onde for recomendável use autenticação l No restante pelo menos trabalhe com identificação Ø Limite o uso de credenciais administrativas l Prefira o uso de credenciais do usuário ao invés de credenciais administrativas para acesso ao DB l Ainda assim proteja o acesso ao DB por ACL Ø Prefira formulários com o método POST l Evite ao máximo o uso do método GET Márcio Moreira 5. Melhores Práticas de Programação para Web – slide 4 Segurança em Aplicações
Recomendações Ø Não envie dados ocultos ao cliente l Não coloque dados para ir e voltar do client l Os dados, mesmo ocultos, podem ser alterados facilmente no client l Alertas: http: //xforce. iss. net/alerts/advise 42. php Ø Não armazene dados em páginas (asp/jsp) l 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 Márcio Moreira 5. Melhores Práticas de Programação para Web – slide 5 Segurança em Aplicações
Recomendações Ø Cuidado com scripts através do site (xss) l Leia www. cert. org/advisories/CA-2000 -02. html l Cuidado com informações entradas, vistas e alteradas somente por usuários l O administrador não tem ação sobre elas e os usuários podem ficar relativamente anônimos Ø Cuidado com códigos gerados por wizards l Assistentes são ótimos para usuários l Mas, são prato cheio para os hackers, pois dizem muito sobre a codificação das páginas Márcio Moreira 5. Melhores Práticas de Programação para Web – slide 6 Segurança em Aplicações
Recomendações Ø Segurança dos middlewares l Aplicações componentizadas (usam COM+ ou EJB) geram uma camada a mais de segurança l A arquitetura deve considerar uso de credenciais para a camada de middleware Ø Segurança declarativa x programativa l A segurança declarativa é usada quando a segurança está fora da aplicação l Na programativa a segurança está descrita no código l A decisão deve ser tomada a cada aplicação Márcio Moreira 5. Melhores Práticas de Programação para Web – slide 7 Segurança em Aplicações
Recomendações Ø Uma PKI (infraestrutura de chave pública) não é uma “bala de prata” l Certificados são fáceis de gerar e difíceis de checar l Leia: www. counterpane. com/pki-risks. html Ø Não presuma nada (plan do check act) l O mundo real é perigoso e traiçoeiro l Implementações top de linha duram pouco tempo Ø Nossa grande amiga: revisão de código Márcio Moreira 5. Melhores Práticas de Programação para Web – slide 8 Segurança em Aplicações
Recomendações Ø Inspecione o que estamos utilizando l A segurança do todo depende das partes l Os componentes, SO, bibliotecas, etc. que você está usando tem vulnerabilidades? Ø Use os logs para resolver problemas l Na suspeita de um ataque salve os logs l Comece a investigação por eles Márcio Moreira 5. Melhores Práticas de Programação para Web – slide 9 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 Márcio Moreira 5. Melhores Práticas de Programação para Web – slide 10 Segurança em Aplicações