Vulnerabilidade de Software Para Devs

vulnerabilidade-de-software-para-devs

O mínimo que qualquer pessoa desenvolvedora deve saber sobre vulnerabilidades

TL,DR
O artigo aborda o conceito de vulnerabilidades, suas formas de exploração e classificação através de CVEs, além de apresentar as principais ferramentas utilizadas para identificá-las, bem como a importância do OWASP TOP 10 na garantia da segurança de aplicativos WEB.

Durante os vários anos que eu trabalhei como desenvolvedora, a segurança não era um grande problema na minha cabeça. A maior parte do tempo eu já recebia de forma meio pronta o que eu deveria fazer para corrigir a vulnerabilidade (geralmente indicada por um pentester ou pela OWASP).
Hoje, trabalhando em um time de segurança, eu consigo perceber como a maior parte dos devs (e isso me inclui no passado) não possuem clareza sobre o que pode ser classificado como uma vulnerabilidade, como é feita a classificação e também como elas são descobertas. São estes temas que pretendo discorrer neste artigo.

Entendendo o que é uma vulnerabilidade

IMulher gesticulando enquanto fala e a legenda "let me explain"

Basicamente, qualquer coisa que possa ser usada ou explorada de forma intenciona (e principalmente maliciosa) por pessoas que não deveriam poder realizar aquela ação.
Uma vulnerabilidade pode vir de várias formas: erro de código ou de arquitetura de sistema, portas abertas na infraestrutura, falhas na configuração de políticas de acesso ou de rede, ausência de validações em entradas de dados, ausência ou má configuração de criptografias… Esta lista pode ser infinita.

Homem falando com a legenda "Frank, i have find a idea of a bug that kind offensive"

Encontrando vulnerabilidades

O grande trabalho dos times de segurança é encontrar as possíveis vulnerabilidades no sistema e corrigi-las antes que ocorra um ataque. Para isso, são usadas várias ferramentas. Aqui listaremos algumas das mais comuns.

Teste de Penetração (Pentest)

Não é necessariamente o mais comum, mas com certeza é o mais famoso, já que emula a forma como os crackers atacam o sistema.

Análise Estática de Segurança de Aplicação (Static Application Security Testing – SAST)

É um scan que é realizado na base de código (incluindo binários, em alguns casos) para encontrar algumas vulnerabilidades de “assinatura”, como por exemplo vulnerabilidade de dependências.

Análise Dinâmica de Segurança de Aplicação(Dynamic Application Security Testing – DAST)

São testes automáticos que simulam um ataque ativo contra a aplicação, com o objetivo de encontrar vulnerabilidades.

Auditoria de configurações

Geralmente é utilizado para validar que todas as configurações (como por exemplo as de IAM ou de criptografia) estão como o desejado, e que estão em pleno funcionamento.

Entendendo CVEs

Homem gesticulando enquanto fala e a legenda

CVE – Common Vulnerabilities and Exposures é uma lista pública de falhas de segurança. São classificadas por um número do tipo CVE-2023-1234567, com os quatro primeiros algarismos sempre representando o ano em que a vulnerabilidade foi registrada. Este número é chamado de CNA (CVE Numbering Authority). Ao ser tornada pública, uma CVE necessariamente deve ter um CNA, uma descrição da vulnerabilidade e evidências da existência dela.
A lista de CVEs é mantida pela Mitre Corporation.

Reconhecendo uma CVE

Para ser considerada uma CVE, uma vulnerabilidade deve atender a três critérios:

1. Resolução independente
A correção da vulnerabilidade não deve ser dependente de nenhuma outra vulnerabilidade.

2. Agente afetado reconhecido
O fornecedor ou mantenedor daquele software (ou hardware) deve reconhecer que determinada falha afeta a segurança do software OU alguém deve detalhar um relatório de vulnerabilidade expondo o impacto daquela falha, e também a forma como ela viola a politica daquele produto.

3. Afetar somente um ambiente
Bugs que afetam ambientes diferentes possuem diferentes CVEs para cada produto. Em caso de bibliotecas compartilhadas (como no caso do Log4J), só terá uma CVE única como uma vulnerabilidade caso seja impossível usar o código da biblioteca sem ser afetado pelo bug.

OWASP TOP 10

Criança falando e a legenda

OWASP é uma organização sem fins lucrativos que se dedica a garantir a segurança de aplicativos WEB. Regularmente ela publica um relatório chamado OWASP TOP 10, citando as dez vulnerabilidades mais exploradas. Este relatório é feito de forma colaborativa por uma equipe que reúne especialistas em segurança de todo o mundo. O último relatório foi publicado em 2021 e trouxe três novas vulnerabilidades para a lista.

Conclusão

dois homens conversando enquanto um gesticula e a legenda "i would expect that to be crystal clear"

Neste artigo, foi possível entender o que é uma vulnerabilidade, os tipos mais comuns, como são encontradas e classificadas através de CVEs e a importância do OWASP TOP 10. É evidente que a segurança da informação é cada vez mais importante no mundo digital em que vivemos e a conscientização sobre vulnerabilidades é fundamental para prevenir ataques cibernéticos e proteger dados sensíveis. Cabe aos desenvolvedores e equipes de segurança trabalharem juntos para garantir a segurança dos sistemas e a proteção das informações confidenciais dos usuários.

Total
0
Shares
Leave a Reply

Your email address will not be published. Required fields are marked *

Previous Post
chat-with-your-documents-using-chatgpt-

Chat with your documents using ChatGPT 🦾

Next Post
sql-statements-guide(cheat-sheet)

SQL Statements Guide(Cheat-sheet)

Related Posts
harmonyos-next中密码类数据保护场景解析

HarmonyOS Next中密码类数据保护场景解析

本文旨在深入探讨华为鸿蒙HarmonyOS Next系统(截止目前 API12)在开发多语言电商平台方面的技术细节,基于实际开发实践进行总结。主要作为技术分享与交流载体,难免错漏,欢迎各位同仁提出宝贵意见和问题,以便共同进步。本文为原创内容,任何形式的转载必须注明出处及原作者。 在当今数字化时代,密码类数据的保护对于应用的安全性和用户体验至关重要。无论是登录账号、进行金融交易还是访问敏感信息,密码都起着关键的作用。HarmonyOS Next作为一款先进的操作系统,其提供的Asset Store Kit为密码类数据的安全存储和管理提供了强大的解决方案。 (一)引言 密码类数据保护的重要性    – 在移动应用领域,密码类数据是用户身份验证的核心凭证。一旦密码泄露,用户的账号安全将受到严重威胁,可能导致个人信息被窃取、财产遭受损失等严重后果。例如,在金融类应用中,如果用户的登录密码被泄露,黑客可能会非法访问用户的账户,进行转账、消费等操作。因此,确保密码类数据的安全性是应用开发者必须首要考虑的问题。 Asset Store Kit的关键作用    – HarmonyOS…
Read More