Segurança de Aplicação

Como aplicar o OWASP TOP 10?

Dentro da comunidade OWASP existem diversos projetos relacionados a AppSec, dentre eles, uma série intitulada TOP 10, que possui assuntos específicos como WEB, API e Mobile, além de alguns outros. Ao consultar o link relacionado a projetos no site da OWASP, vimos que essa série se encontra inserida no tema Educação. 

Você também pode ouvir esse conteúdo:

Será que o Projeto OWASP TOP 10 pode ser utilizado apenas para educação? Essa é uma pergunta que iremos responder no decorrer deste artigo!

Mas afinal, o que é o projeto OWASP TOP 10?

É um documento de conscientização para desenvolvedores, que representa um consenso sobre os riscos de segurança mais críticos para aplicações WEB, API e Mobile.Ao analisar cada risco, você encontrará um overview estruturado com descrição,  prevenção, exemplos de cenários de ataques e referências.

A lista de risco varia de acordo com a tecnologia:

  • WEB: A01:2021-Broken Access Control, A02:2021-Cryptographic Failures, A03:2021-Injection, A04:2021-Insecure Design, A05:2021-Security Misconfiguration, A06:2021-Vulnerable and Outdated Components, A07:2021-Identification and Authentication Failures, A08:2021-Software and Data Integrity Failures, A09:2021-Security Logging and Monitoring Failures e A10:2021-Server-Side Request Forgery;
  • API: API1:2019 Broken Object Level Authorization, API2:2019 Broken User Authentication, API3:2019 Excessive Data Exposure, API4:2019 Lack of Resources & Rate Limiting, API5:2019 Broken Function Level Authorization, API6:2019 Mass Assignment, API7:2019 Security Misconfiguration, API8:2019 Injection, API9:2019 Improper Assets Management e API10:2019 Insufficient Logging & Monitoring;
  • MOBILE: M1: Improper Platform Usage, M1: Improper Platform Usage, M2: Insecure Data Storage, M3: Insecure Communication, M4: Insecure Authentication, M5: Insufficient Cryptography, M6: Insecure Authorization, M7: Client Code Quality, M8: Code Tampering, M9: Reverse Engineering e M10: Extraneous Functionality.

Essas listas sofrem atualizações constantes, sua última atualização WEB foi realizada em 2021, a de API em 2019 e a de MOBILE em 2016. 

Outra informação interessante é as listas serem originalmente escritas em inglês, porém é possível encontrá-las em outras línguas, claro que nesse caso depende muito das contribuições ao projeto.

Como aplicar a OWASP TOP 10, na prática?

Consultando o site do OWASP TOP 10, ele nos mostra uma lista com algumas recomendações, vamos aqui comentar algumas que estão nessa lista, mas também comentaremos algumas vindas de nossa experiência.

  • Conscientização e Treinamento

Sem dúvida o assunto no qual o OWASP Top 10 pode ser melhor aproveitado. Inclusive, como já mencionado, esse documento se enquadra na “Educação”. 

Ele pode ser uma base riquíssima para a construção de um programa de conscientização sobre segurança de aplicações. E para reforçar essa ideia, quando olhamos para o nível de maturidade 1 da prática de Guia e Educação do OWASP SAMM Stream Treinamento e Conscientização diz que devemos conduzir um treinamento onde o OWASP Top 10 deve ser coberto mesmo que em alto nível.

  • Requisitos de Segurança e Modelagem de Ameaças

Saiba mais sobre Requisitos de Segurança e Modelagem de Ameaças.

Ao iniciarmos a implementação de requisitos de segurança, a primeira pergunta que vem à mente é: “quero me proteger de quê?” E para responder essa pergunta podemos utilizar o OWASP Top 10. Por exemplo, quero me proteger do risco de “Broken Access Control“, e acessando as informações sobre ele, você verá uma lista de CWEs mapeados. 

Agora acesse a lista de requisitos de segurança OWASP ASVS e veja que para cada requisito de segurança existe uma coluna CWE. Essa coluna nada mais é do que um de/para, então aplicando o requisito X, você mitiga o CWE Y e consequentemente, o risco do OWASP Top 10.

Outra forma de chegarmos até o requisito de segurança é realizar a modelagem de ameaças, inclusive mais interessante do que a anterior, é pensar nos requisitos diretamente, pois com a modelagem você foca inicialmente na “ameaça/ataque” e aqui começam os problemas… quando falamos de desenvolvedores realizando uma modelagem de ameaças, é pensar na “ameaça”, pensar no ataque que a aplicação pode sofrer, e normalmente eles não têm esse costume, esse insight por natureza.

Para “ajudar” com esse “problema” podemos utilizar o OWASP Top 10. A lógica é semelhante a dos requisitos de segurança.

Vamos supor que você realizará a modelagem de ameaças da sua API de login, ao consultar o OWASP Top 10 você identifica que sua API pode sofrer com o risco Identification and Authentication Failures, novamente vamos até a lista de CWEs mapeados e os analisando-os, você identifica que sua API pode sofrer com fraqueza CWE-287: Improper Authentication. 

Essa fraqueza nos leva até alguns ataques do CAPEC, então com isso temos algumas ameaças como os ataques CAPEC-114: Authentication Abuse, CAPEC-115: Authentication Bypass entre outros. 

Agora eu tenho as ameaças/ataques/fraquezas da API e com isso chego nos requisitos de segurança que devo implementar para mitigar as fraquezas/ataques/ameaças.

  • Secure Code Review

Falar de Code Review para um desenvolvedor é “chover no molhado”, afinal, essa é uma tarefa constante na vida de um dev. A ideia por trás de um code review é nada mais nada menos do que “validar” o que o amiguinho fez. 

Então antes desse código ir para uma branch oficial, um segundo desenvolvedor valida se está de acordo com as modificações realizadas. 

Quando falamos de secure code review, a ideia é a mesma, porém com um olhar de segurança, mas que olhar é esse? O que eu devo procurar?

A OWASP possui um guia de revisão de código que pode te ajudar. Dentro desse guia existe uma sessão com um checklist, entretanto, quando se está começando com a prática de secure code review, esse checklist pode ser coisa demais.

Uma alternativa pode ser a utilização do OWASP Top 10, onde, ao invés de utilizar o checklist do guia da OWASP, se utilizaria como checklist o OWASP Top 10, logo, buscamos em nossos secure code reviews possíveis falhas referentes ao OWASP top 10.

  • Teste de Segurança

Vamos aqui fazer um exercício, quando pegamos a primeira categoria de risco que mais acontece em uma aplicação WEB (Broken Access Control) temos a informação que 94% das aplicações testadas tiveram esse risco afetado.

Logo, o OWASP Top 10 pode ser uma lista inicial interessante para testes de segurança, sejam eles manuais ou automatizados.

Documentações OWASP TOP 10

OWASP TOP 10 são documentos com as categorias de riscos que mais acontecem nas aplicações. É um documento enquadrado na área de “educação”, mas que pode ser utilizado para as mais diversas atividades em um  programa de AppSec, como Requisitos de Segurança, Modelagem de Ameaças, Secure Code Review, entre diversas outras. Use-os com moderação.

Nova call to action
About author

Articles

Sou um entusiasta de Segurança da Informação, Agilidade e Desenvolvimento. Atuei desde 2003 como desenvolvedor em diversas tecnologias e empresas. Desde 2021 trabalho na área de Segurança da Informação mais precisamente com AppSec
Related posts
Segurança de Aplicação

A Importância da Supply Chain para a Segurança das Aplicações

Para iniciar, quando pensamos em desenvolvimento de software, geralmente associamos essa área a…
Read more
Segurança de Aplicação

O que é WAAP (Web Application and API Protection)

Primeiramente, bem-vindo ao mundo da Proteção de Aplicativos Web e API (WAAP – Web…
Read more
Segurança de Aplicação

Os desafios em segurança de aplicações no uso da inteligência artificial por desenvolvedores

À medida que a inteligência artificial (IA) se torna cada vez mais presente em nosso dia a dia…
Read more

Deixe um comentário