A Open Web Application Security Project (OWASP), ou Projeto Aberto de Segurança em Aplicações Web, uma fundação sem fins lucrativos, que gerencia a OWASP Top 10, a principal lista de categorias de vulnerabilidades web, finalmente atualizou seu levantamento das vulnerabilidades web mais relevantes do momento. A última atualização dessa lista havia sido feita em 2017. A edição desse ano, a mais recente, foi lançada agora em outubro de 2021, depois de quatro anos só recebendo pequenas atualizações pelo GitHub.
- Exclusivo: software expõe dados de quase 350 mil empresas e governos ao redor do mundo
- Os arquivos do Facebook: ex-funcionária revela conduta obscura das redes sociais
- Vulnerabilidade no XVIDEOS permite redirecionamento de usuários para páginas falsas
Segundo o próprio GitHub da fundação, a lista já conta com 7 grandes edições, com sua primeira publicada em 2003 (dois anos após o nascimento da fundação), seguindo por outras em 2004, 2007, 2020, 2013, 2017 e então, 2021, sendo que essa última, estava agendada para o ano passado.
A lista é produzida por um amplo comitê de especialistas em segurança da informação e vulnerabilidades web. São eles, Sherif Mansour; Vandana Verma Sehgal; Grant Ongers; Bil Corry; Joubin Jabbari; Martin Knobloch; Owen Pendlebury; Andrews van der Stock; Harold Blanckenship; Kelly Santalucia; Dawn Aitken; Lisa Jones e Lauren Thomas.
O que mudou de 2017 para 2021
Segundo a equipe da OWASP, a lista de 2021 possui três novas categorias de vulnerabilidades, além da alteração de nomenclatura e escopo de outras quatro. A equipe explica que essa alteração de nomenclatura é necessária para nos concentrarmos na raiz da vulnerabilidade e não no sintoma.
Neste ano, as 10 categorias vulnerabilidades mais relevantes são:
- Broken Acess Control;
- Cryptographic Failures;
- Injection;
- Insecure Design;
- Security Misconfiguration;
- Vulnerable and Outdated Componentes;
- Identification and Authentication Failures;
- Software and Data Integrity Failures;
- Security Logging and Monitoring Failures;
- Server-Side Request Forgery (SSRF).
As categorias Insecure Design (quarto lugar), Software and Data Integrity Failures (oitavo lugar) e Server-Side Request Forgery (décimo lugar) são novas e não apareceram na lista de 2017.
Uma das alterações mais notórias dessa edição é a queda das vulnerabilidades do tipo Injection, para o terceiro lugar, que desde 2010 (2010; 2013; 2017) ocupa o primeiro lugar (segundo lugar em 2007 e sexto lugar em 2004).
Agora, quem ocupa o primeiro lugar são as vulnerabilidades do tipo Broken Access Control, ou Controle de Acesso Quebrado (quinto lugar em 2017 e segundo lugar 2004 e 2003), que são vulnerabilidades que permitem que um atacante possa acessar mais informações do que seu tipo de usuário é permitido. Essas falhas, ao exploradas, podem resultar em vazamentos, alterações não autorizadas e até destruição de dados.
"Broken Access Control sobe da quinta posição para a categoria com o risco de segurança de aplicativo da web mais sério [1° lugar]; os dados contribuídos indicam que, em média, 3,81% dos aplicativos testados tinham uma ou mais enumerações de fraqueza comuns (CWEs) com mais de 318 mil ocorrências de CWEs nesta categoria de risco. Os 34 CWEs mapeados para Broken Access Control tiveram mais ocorrências em aplicativos do que qualquer outra categoria", escreve a OWASP.
Outra atualização relevante é a queda de Broken Authentication indo de segundo lugar em 2017 para o sétimo lugar em 2021. Além disso, ela foi rebatizada para Identification and Authentication Failures. Com isso, ela se torna uma categoria que abrange mais vulnerabilidades individuais.
"Falhas de identificação e autenticação anteriormente eram Autenticação Quebrada e estão caindo da segunda posição, e agora incluem Common Weakness Enumeration (CWEs) que estão mais relacionados a falhas de identificação", escreve a equipe da OWASP no relatório.
OWASP Top 10 2021
A1 Broken Access Control
Vulnerabilidades do tipo Broken Access Control, ou Controle de Acesso Quebrado, como dito anteriormente, são vulnerabilidades que permitem que um usuário acesse páginas, arquivos, dados e informações que não deveria. "Pemite um usuário agir fora de suas permissões pretendidas".
A2 Cryptographic Failures
Anteriormente conhecida com "Sensitive Data Exposure", as vulnerabilidades do tipo Cryptographic Failure (Falha [ou falta de] Criptografia) é basicamente quando uma ferramenta não apresenta uma solução de criptografia eficiente e segura, ou quando realmente não há criptografia nenhuma. Um dos maiores pecados capitais do desenvolvimento de software.
Essa família de vulnerabilidades pode ter subido para a segunda posição por conta das novas leis de proteção de dados, o Regulamento Geral de Proteção de Dados (GDPR) na Europa e a Lei Geral de Proteção de Dados (GDPR) no Brasil.
A3 Injection
As falhas do tipo Injection, ou Injeção, embora tenham caído de posição, ainda são consideradas falhas gravíssimas, pois permitem que atacantes furtem informações direto do servidor, através de códigos maliciosos inseridos em através de requisições ou em caixas de texto na aplicação.
A4 Insecure Design
Essa é uma das novas categorias de vulnerabilidades, aparecendo pela primeira vez no OWASP Top 10. Segundo a equipe da OWASP, ela concentra-se nos risos relacionados a arquitetura do software e nas falhas deixadas pelos programadores no momento do desenvolvimento.
"Insecure Design [design inseguro] é uma categoria ampla que representa diferentes pontos fracos, expressos como 'design de controle ausente ou ineficaz' [...] Há uma diferença entre design inseguro e implementação insegura [...] Um design seguro ainda pode ter defeitos de implementação que levam a vulnerabilidades que podem ser exploradas. Um design inseguro não pode ser corrigido por uma implementação perfeita, pois, por definição, os controles de segurança necessários nunca foram criados para a defesa contra ataques específicos", escrevem.
A5 Security Misconfiguration
Security Misconfiguration, ou Má Configuração de Segurança, saiu de sexto lugar na edição de 2017 para quinto lugar na edição deste ano, por ter, segundo a OWASP, registrado mais de 208 mil ocorrências de vulnerabilidades.
Assim como o nome sugere, vulnerabilidades do tipo má configuração de segurança aparecem quando aplicações, ferramentas e soluções de segurança são configuradas indevidamente, com relação à aplicação em questão.
A6 Vulnerable and Outdated Components
As vulnerabilidades do tipo Vulnerable and Outdated Components, ou Componentes Desatualizados e Vulneráveis são muito semelhantes a categoria acima. No entanto, dedicadas à dispositivos, ferramentas e aplicações velhas, legadas e desatualizadas. Essa categoria não tem nenhuma falha CWE associada. Mesmo assim, ocupa o sexto lugar de prioridade da lista.
A7 Identification and Authentication Failures
Anteriormente conhecida como Broken Authentication, ou Autenticação Quebrada, essa categoria ocupou o segundo lugar em 2017 e agora ocupa o sétimo. Isso mostra um claro avanço no desenvolvimento de tecnologias de autenticação de usuários, uma tendência de adoção de modelos de autenticação que não dependem apenas das credenciais de acesso (login e senha), mas que também analisam outros dados do usuário, como localização, reconhecimento facial, dispositivo, entre outros.
A8 Software and Data Integrity Failures
Mais uma das três novas categorias de vulnerabilidades da edição deste ano. Software and Data Integrity Failures, ou Falhas de Software e Integridade de Dados estão relacionadas ao código-fonte e à uma infraestrutura insegura. "Um exemplo disso é quando um aplicativo depende de plug-ins, bibliotecas ou módulos de fontes não confiáveis".
A9 Security Logging and Monitoring Failures
Security Logging and Monitoring Failures, ou Registro e Monitoramento de Segurança. Essas são falhas difíceis de identificar. Segundo a OWASP, não há muitos dados de Common Weakness Enumeration (CWEs) e Common Vulnerabilities and Exposures (CVEs), mas se resumem na falta de registros de uso de aplicações e registros de monitoramento de segurança.
A10 Server-Side Request Forgery
Com taxa de incidência relativamente baixa, as vulnerabilidades da família Server-Side Request Forgery (SSRF), ou Falsificação de Solicitação no Lado do Servidor ocorrem sempre que uma aplicação busca um recurso remoto, sem validar a URL fornecida pelo usuário.
"Ele permite que um invasor force o aplicativo a enviar uma solicitação criada para um destino inesperado, mesmo quando protegido por um firewall, VPN ou outro tipo de lista de controle de acesso à rede (ACL)", conclui a equipe da OWASP.
Mais detalhes sobre cada uma dessas famílias de vulnerabilidades, e como corrigir, mitigar e prevenir que sejam exploradas, você encontra no relatório completo OWASP Top 10 2021.