O que é OWASP?
O Open Web Application Security Project (OWASP) é uma fundação sem fins lucrativos dedicada a melhorar a segurança do software. O OWASP opera sob um modelo de ‘comunidade aberta’, onde qualquer pessoa pode participar e contribuir com projetos, eventos, chats online e muito mais. Um princípio guia da OWASP é que todos os materiais e informações são gratuitos e de fácil acesso no site, para todos. OWASP oferece de tudo, desde ferramentas, vídeos, fóruns, projetos, até eventos. Resumindo, o OWASP é um repositório de todas as coisas relacionadas à segurança de aplicativos da web, apoiado pelo amplo conhecimento e experiência de seus colaboradores da comunidade aberta.
O que é TOP 10 OWASP?
O OWASP Top 10 é um documento online no site do OWASP que fornece classificação e orientação de remediação para os 10 principais riscos de segurança de rede de aplicativos. O relatório é baseado em um consenso entre especialistas em segurança de todo o mundo. Os riscos são classificados com base na frequência dos defeitos de segurança descobertos, na gravidade das vulnerabilidades e na magnitude de seus impactos potenciais. O objetivo do relatório é oferecer aos desenvolvedores e profissionais de segurança de aplicativos da web uma visão dos riscos de segurança mais prevalentes, para que possam incorporar as descobertas e recomendações do relatório em suas práticas de segurança, minimizando assim a presença desses riscos conhecidos em seus aplicativos.
Como funciona o OWASP Top 10 e por que é importante?
OWASP mantém a lista dos 10 melhores e tem feito isso desde 2003. A cada 2-3 anos a lista é atualizada de acordo com os avanços e mudanças no mercado de AppSec. A importância do OWASP está na informação acionável que fornece; ele serve como uma lista de verificação chave e padrão interno de desenvolvimento de aplicativos da Web para muitas das maiores organizações do mundo.
Os auditores muitas vezes veem a falha de uma organização em abordar o OWASP Top 10 como uma indicação de que ela pode estar falhando em relação aos padrões de conformidade. Integrar o Top 10 em seu ciclo de vida de desenvolvimento de software (SDLC) demonstra um compromisso geral com as melhores práticas da indústria para o desenvolvimento seguro.
A versão mais recente foi lançada em 2017 e incluiu mudanças significativas em relação à versão de 2013, conforme mostrado na figura abaixo. Os problemas de injeção continuam sendo um dos problemas de segurança mais vulneráveis no aplicativo, e a exposição de dados confidenciais aumentou em importância. Alguns novos problemas foram adicionados, como desserialização insegura, e alguns outros problemas foram mesclados.
Quais são as principais vulnerabilidades do TOP 10 OWASP?
1 – Injeção: A injeção de código ocorre quando dados inválidos são enviados por um invasor para um aplicativo da web. A intenção do invasor ao fazer isso é fazer com que o aplicativo faça algo para o qual não foi projetado.
Exemplo: A injeção de SQL é uma das falhas de injeção mais comuns encontradas em aplicativos. As falhas de injeção de SQL podem ser causadas pelo uso de dados não confiáveis por um aplicativo ao construir um SQL vulnerável.
Solução: Revisão da fonte de código é a melhor maneira de prevenir ataques de injeção. Incluir as ferramentas SASTe DAST no seu pipeline de CI/CD ajuda a identificar falhas de injeção que acabaram de ser introduzidas. Isso permite que você as identifique e mitigue antes do emprego de produção.
2 – Autenticação Quebrada: Certos aplicativos são frequentemente implementados de forma inadequada. Especificamente, funções relacionadas à autenticação e gerenciamento de sessão, quando implementadas incorretamente, permitem que os invasores comprometam senhas, palavras-chave e sessões. Isso pode levar ao roubo da identidade do usuário e muito mais.
Exemplo: Um aplicativo da web permite o uso de senhas fracas ou conhecidas (por exemplo, “senha1”).
Solução: A autenticação multifator pode ajudar a reduzir o risco de contas comprometidas. A análise estática automatizada é altamente útil para encontrar essas falhas, enquanto a análise estática manual pode aumentar a força na avaliação de esquemas de autenticação personalizados. A solução Coverity SAST da Synopsys inclui um verificador que identifica especificamente vulnerabilidades de autenticação quebradas.
3 – Exposição de dados confidenciais: A exposição de dados confidenciais ocorre quando dados importantes armazenados ou transmitidos (como números de previdência social) são comprometidos.
Exemplo: As instituições financeiras que não protegem adequadamente os seus dados confidenciais podem ser alvos fáceis para fraude de cartão de crédito e roubo de identidade.
Solução: Ferramentas SAST como Coverity e ferramentas SCA como Black Duck Binary Analysis incluem recursos e verificadores que identificam vulnerabilidades de segurança que podem resultar na exposição de dados confidenciais.
4 – Entidades externas XML (XXE): Os invasores podem tirar vantagem de aplicativos da web que usam XML de processamento de componentes vulneráveis. Os invasores podem fazer upload de XML ou incluir comandos ou conteúdo hostis em um documento XML.
Exemplo: Um aplicativo permite que fontes não confiáveis façam uploads de XML.
Solução: O teste de segurança de aplicativo estático (SAST) é muito útil para detectar XXE no código-fonte. O SAST ajuda a inspecionar a configuração e as dependências do aplicativo.
5 – Controle de acesso quebrado: O controle de acesso quebrado ocorre quando um invasor consegue acessar as contas do usuário. O invasor pode operar como usuário ou administrador do sistema.
Exemplo: Um aplicativo permite que uma chave primária seja alterada. Quando a chave é alterada para o registro de outro usuário, a conta desse usuário pode ser exibida ou modificada.
Solução: É fundamental usar um teste de penetração a fim de detectar controles de acesso não intencionais. Mudanças na arquitetura e design podem ser garantidas para criar limites de confiança para o acesso aos dados.
6 – Configuração incorreta de segurança: Configurações incorretas de segurança ocorrem quando as deficiências de design ou configuração resultam de um erro ou deficiência de configuração.
Exemplo: Uma conta padrão e sua senha original ainda estão ativadas, tornando o sistema vulnerável a explorações.
Solução: Soluções como o Coverity SAST da Synopsys incluem um verificador que identifica a exposição da informação disponível através de uma mensagem de erro.
7 – Cross-Site Scripting (XSS): Os ataques XSS ocorrem quando um aplicativo inclui dados não confiáveis em uma página da web. Os invasores injetam scripts do lado do cliente nesta página da web.
Exemplo: Dados não confiáveis em um aplicativo permitem que um invasor ‘roube uma sessão de usuário’ e obtenha acesso ao sistema.
Solução: As soluções SAST bem versadas em análise de fluxo de dados podem ser uma ótima ferramenta para ajudar a encontrar esses defeitos críticos e sugerir soluções. o site OWASP também fornece uma folha de dicas com as melhores práticas para eliminar tais defeitos do seu código. Para OWASP Top 10 categorias como XSS, que também têm um Enumerador de Fraqueza Comum (CWE), O Black Duck alertará as equipes de que essa é a fraqueza que leva à vulnerabilidade, permitindo que entendam melhor a vulnerabilidade e priorizem seus esforços de correção.
8 – Desserialização insegura: A desserialização insegura é uma vulnerabilidade em que as falhas de desserialização permitem que um invasor execute o código remotamente no sistema.
Exemplo: Um aplicativo é vulnerável porque desserializa objetos hostis que foram fornecidos por um invasor.
Solução: Ferramentas de segurança de aplicativos ajudam a detectar falhas de desserialização e o teste de penetração pode ser usado para validar o problema.
9 – Usando componentes com vulnerabilidades conhecidas: O título desta vulnerabilidade declara a sua natureza; ele descreve quando os aplicativos são construídos e executados usando componentes que contêm vulnerabilidades conhecidas.
Exemplo: Devido ao volume de componentes usados no desenvolvimento, uma equipe de desenvolvimento pode nem mesmo conhecer ou compreender os componentes usados em sua aplicação. Isso pode fazer com que fiquem desatualizados e, portanto, vulneráveis a ataques.
Solução: Ferramentas de análise de composição de software (SCA) como Black Duck podem ser usadas junto com a análise estática para identificar e detectar componentes desatualizados e inseguros no seu aplicativo.
10 – Registro e monitoramento insuficientes: O registro e o monitoramento são atividades que devem ser realizadas em um site com frequência, para garantir a sua segurança. A falha em registrar e monitorar adequadamente um site o deixa vulnerável a atividades comprometedoras mais graves.
Exemplo: Os eventos que podem ser auditados, como logins, logins com falha e outras atividades importantes, não são registrados, levando a um aplicativo vulnerável.
Solução: Depois de executar os Testes de penetração, os desenvolvedores podem estudar os logs de teste para identificar possíveis deficiências e vulnerabilidades. As soluções SAST também podem ajudar a identificar exceções de segurança não registradas.
Fonte: https://owasp.org/