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/
Princípios comuns
A segurança foi incorporada aos negócios
Identifique as vulnerabilidades, ameaças e riscos
A segurança deve ser parte dos requisitos
Identifique os ativos, as mudanças nos casos de
uso, os usuários, os papéis e responsabilidades
Identifique as exigências legais
A segurança dever ser parte da arquitetura
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 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:
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
Onde for recomendável use autenticação
No restante pelo menos trabalhe com identificação
Limite o uso de credenciais administrativas
Prefira o uso de credenciais do usuário ao invés
de credenciais administrativas para acesso ao DB
Ainda assim proteja o acesso ao DB por ACL
Prefira formulários com o método POST
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
Não coloque dados para ir e voltar do client
Os dados, mesmo ocultos, podem ser alterados
facilmente no client
Alertas: 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
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)
Leia www.cert.org/advisories/CA-2000-02.html
Cuidado com informações entradas, vistas e
alteradas somente por usuários
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
Assistentes são ótimos para usuários
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
Aplicações componentizadas (usam COM+ ou
EJB) geram uma camada a mais de segurança
A arquitetura deve considerar uso de credenciais
para a camada de middleware
Seguranç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
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”
Certificados são fáceis de gerar e difíceis de
checar
Leia: www.counterpane.com/pki-risks.html
Não presuma nada (plandocheckact)
O mundo real é perigoso e traiçoeiro
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
A segurança do todo depende das partes
Os componentes, SO, bibliotecas, etc. que você
está usando tem vulnerabilidades?
Use os logs para resolver problemas
Na suspeita de um ataque salve os logs
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
Download

Unidade 6 - Melhores Práticas de Programação Para Web