https://slides.com/wilcorrea/como-tirar-o-seu-nome-da-lista-do-owasp
Como tirar o seu nome da lista da OWASP?
Se você acha que o SPC e o SERASA são um problema precisa ver a lista da OWASP
/me
William Correa
@wilcorrea
http://wilcorrea.dev
# Agenda
- A falta de segurança na web
- A OWASP
- Top Ten de 10 a 1
# A falta de segurança na web
- Vazamentos
- Legislação
# Vazamentos
- Empresas privadas
- Órgãos públicos
# Legislação
- General Data Protection Regulation (EUR)
- Lei Geral de Proteção de Dados (BRA)
# Legislação
- General Data Protection Regulation (EUR)
- Lei Geral de Proteção de Dados (BRA)
# Pra levar pra casa
- A internet não é um ambiente seguro
- Há uma crise de segurança na web
# A OWASP
O Open Web Application Security Project é uma comunidade on-line que produz artigos, metodologias, documentação, ferramentas e tecnologias disponíveis gratuitamente no campo da segurança de aplicativos da web.
# Propósito
A OWASP tem como principal objetivo manter uma comunidade global para aumentar a visibilidade e a evolução da segurança de software ao redor do mundo
# Princípios
- Free & Open
- Governado por consenso e prática
- Alinha com um código de ética
- Sem fins lucrativos
- Não impulsionado por interesses comerciais
- Abordagem baseada em risco
# Projetos
Para iniciar um projeto...
- Explore os atuais projetos da OWASP
- Coloque sua ideia no quadro de ideias
- Explore e pesquise se sua ideia abrange um segmento exclusivo na área de segurança
- Defina que tipo de projeto você gostaria de iniciar
- Desenvolva seu projeto com base no tipo de projeto
# Projetos
# Pra levar pra casa
- OWASP não é "aquela parada de hacker"
- A lista com as 10 falhas mais comuns
- Não existe segurança na web
# Top ten de 10 a 1
# A10: Insufficient Logging & Monitoring
# A10: Insufficient Logging & Monitoring
Como prevenir:
- Gerar logs de falhas de acesso
- Usar formatos de log padronizados
- Auditoria e alertas de mudanças fora do padrão
- Monitoramento do servidor
- Estabelecer ou adotar uma política para incidentes
# A10: Insufficient Logging & Monitoring
# A9: Using Components with Known Vulnerabilities
# A9: Using Components with Known Vulnerabilities
Como prevenir:
- Remover dependências não utilizadas
- Inventarie continuamente as versões de componentes
- Obtenha apenas componentes de fontes oficiais
- Monitora bibliotecas e componentes que não são mantidos
# A9: Using Components with Known Vulnerabilities
# A8: Insecure Deserialization
# A8: Insecure Deserialization
Como prevenir:
- Não aceitar fontes não confiáveis de entrada
- Implementar análises de integridade
- Impor restrições de tipos
- Realizar a desserialização com poucos privilégios
- Gerar logs dos processos de desserialização
- Garantir o isolamento dos serviços e containers
- Monitorar a desserialização, alertando recorrências
# A8: Insecure Deserialization
# A7: Cross-Site Scripting (XSS)
# A7: Cross-Site Scripting (XSS)
Como prevenir:
- Usar ferramentas que dificultem a impressão de código malicioso
- Não confiar na entrada do usuário
- Prevenir manipulações do DOM de aplicarem código malicioso à página
- Habilitar a Content Security Policy (CSP)
# A7: Cross-Site Scripting (XSS)
# A7: Cross-Site Scripting (XSS)
# A6: Security Misconfiguration
# A6: Security Misconfiguration
Como prevenir:
- Automatizar os processos de manutenção do ambiente
- Manter o projeto sem recursos esquecidos em desuso
- Revisar e atualizar as configurações apropriadas para todas as notas de segurança com frequência
- Utilizar uma estrutura que garanta o isolamento
- Gerenciar headers para manter as requisições e a identidade do servidor em segurança
- Arquivos de configuração devem ser inacessíveis via HTTP
# A6: Security Misconfiguration
# A5: Broken Access Control
# A5: Broken Access Control
Como prevenir:
- Trabalhe com lista branca
- Escreva rotinas centralizadas de autenticação e
autorização - Segmentar o acesso na modelagem de dados
- Nunca listar diretório e nunca deixar dados sensíveis em ambiente público
- Registrar falhas, usar UUID, CAPTCHA, limitar tentativas
- Manter mensagens pouco amigáveis
# A5: Broken Access Control
# A5: Broken Access Control
# A4: XML External Entities (XXE)
# A4: XML External Entities (XXE)
Como prevenir:
- Sempre que possível, use formatos de dados menos complexos, como JSON
- Manter as ferramentas e bibliotecas atualizadas
- Desabilitar a manipulação remota e o processamento de DTD em toda a manipulção de XML
- Implementar validação, filtragem ou sanitização de entrada positiva no lado do servidor
- Validar o XML recebido usando a validação XSD ou similar
# A4: XML External Entities (XXE)
# A3: Sensitive Data Exposure
# A3: Sensitive Data Exposure
Como prevenir:
- Classificar dados processados, armazenados ou transmitidos por um aplicativo. Identifique quais dados são sensíveis de acordo com as leis de privacidade, requisitos regulatórios ou necessidades comerciais.
- Aplique controles de acordo com a classificação.
- Não armazene dados confidenciais desnecessariamente
# A3: Sensitive Data Exposure
Como prevenir:
- Certifique-se de criptografar todos os dados confidenciais em repouso.
- Certifique-se de que algoritmos, protocolos e chaves padrão atualizados e fortes estejam em vigor; use o gerenciamento de chaves apropriado.
- Criptografe todos os dados em trânsito com protocolos seguros
# A3: Sensitive Data Exposure
Como prevenir:
- Desativar o cache para respostas que contenham dados confidenciais.
- Armazene senhas usando funções de hashing adaptáveis e fortes com um fator de trabalho (fator de atraso), como Argon2, scrypt, bcrypt ou PBKDF2.
- Verificar de forma independente a eficácia da configuração e definições.
# A3: Sensitive Data Exposure
# A2: Broken Authentication
# A2: Broken Authentication
Como prevenir:
- Sempre que possível, implemente a autenticação de vários fatores para evitar ataques automatizados, de preenchimento de credenciais, força bruta e reutilização de credenciais roubadas
- Não envie ou implante com nenhuma credencial padrão, especialmente para usuários administradores.
- Implemente verificações de senhas fracas, como testar senhas novas ou alteradas em uma lista das 10000 piores senhas
# A2: Broken Authentication
Como prevenir:
- Alinhe as políticas de comprimento, complexidade e rotação de senhas com as diretrizes do NIST 800-63 B na seção 5.1.1 para "Memorized Secrets" ou outras políticas de senhas modernas baseadas em evidências
- Garantir que o registro, a recuperação de credenciais e os caminhos da API sejam protegidos contra ataques de enumeração de contas usando as mesmas mensagens para todos os resultados
# A2: Broken Authentication
Como prevenir:
- Limitar ou atrasar cada vez mais as tentativas de login malsucedidas. Registre todas as falhas e notifique os administradores
- Use um gerenciador de sessão interno, seguro e do lado do servidor que gere um novo ID de sessão aleatório com alta entropia após o login. Os IDs de sessão não devem estar no URL, devem ser armazenados e invalidados com segurança
# A2: Broken Authentication
# A2: Broken Authentication
# A1: Injection
# A1: Injection
Como prevenir:
- A opção preferida é usar uma API segura, que evite o uso do interpretador por completo ou forneça uma interface com parâmetros ou migre para usar as ORMs (Object Relational Mapping Tools)
- Use validação de entrada do lado do servidor positiva ou "lista branca". Essa não é uma defesa completa, pois muitos aplicativos exigem caracteres especiais, como áreas de texto ou APIs para aplicativos móveis
# A1: Injection
Como prevenir:
- Para quaisquer consultas dinâmicas residuais, escape de caracteres especiais usando a sintaxe de escape específica para esse interpretador
- Use LIMIT e outros controles SQL nas consultas para evitar a divulgação em massa de registros no caso de injeção de SQL
# A1: Injection
# A1: Injection
# A1: Injection
# A1: Injection
# A1: Injection
Hora das palmas
# Perguntas
- Fale agora ou cale-se para sempre
- wilcorrea@gmail.com
- t.me/wilcorrea
- medium.com/wilcorrea
# Referências
- https://www.owasp.org/index.php/Main_Page
- https://computerworld.com.br/2018/09/19/lgpd-10-pontos-para-entender-a-nova-lei-de-protecao-de-dados-no-brasil
Como tirar o seu nome da lista do OWASP?
By William Correa
Como tirar o seu nome da lista do OWASP?
No mundo do PHP o OWASP Top Ten (https://www.owasp.org/images/7/72/OWASP_Top_10-2017_%28en%29.pdf.pdf) pode servir como referência para monitorar a produção de software e aplicar controles para aumentar ou implementar a segurança mínima necessária para que uma aplicação não sofra com ataques simples. Vamos visitar os itens do OWASP Top Ten e mostrar exemplos práticos de como tirar você e sua aplicação da lista negra das vulnerabilidades mais recorrentes do mundo.
- 819