Divulgação responsável: o impacto da divulgação de vulnerabilidades na segurança do código aberto
Asaf Biton
7 de abril de 2020
0 minutos de leituraÉ comum pensar, erroneamente, que, quando uma vulnerabilidade é encontrada, o mais responsável a fazer é torná-la amplamente conhecida o quanto antes. Na verdade, é justamente o contrário.
A divulgação responsável de vulnerabilidades é um modelo comum no mundo da cibersegurança, no qual vulnerabilidades de dia zero são divulgadas primeiro em particular, dando aos responsáveis pela manutenção do código e dos aplicativos tempo suficiente para lançar uma correção ou um patch antes que a vulnerabilidade se torne pública. Caso contrário, colocaríamos em risco a segurança dos usuários finais. Como sempre, o equilíbrio é fundamental: o objetivo é minimizar tanto o tempo em que a vulnerabilidade permanece em sigilo quanto o período em que o aplicativo fica vulnerável sem uma correção.
Esse modelo existe há anos. É muito comum encontrar empresas de software com um documento que descreve sua política de divulgação, explicando o que fazem quando alguém encontra uma vulnerabilidade em um aplicativo. No entanto, no mundo do código aberto, as coisas funcionam de forma um pouco diferente.
Desafios para seguir um processo de divulgação responsável
Encontrar uma nova vulnerabilidade é muito empolgante. É compreensível que pesquisadores queiram publicar seu trabalho o mais rápido possível e partir para o próximo desafio. No entanto, na maioria das vezes, esse processo é complicado:
Nem sempre existem políticas oficiais de divulgação para pacotes de código aberto.
Mesmo quando existe uma política, ela costuma variar de um pacote para outro.
O processo tende a ser longo e complicado, com várias etapas.
Outras etapas podem incluir a atribuição de um ID CVE. Sem uma autoridade central — também conhecida como CNA (CVE Numbering Authority) — essa tarefa pode ser bastante trabalhosa.
Esses são alguns dos motivos pelos quais muitos pesquisadores hoje não seguem um processo de divulgação responsável ou coordenada. A alternativa “fácil” é divulgar essas vulnerabilidades publicamente, criando um senso de urgência. Correções lançadas às pressas e sob pressão muitas vezes ficam incompletas ou apresentam bugs, mantendo a vulnerabilidade aberta ou criando novos vetores de ataque no pacote.
Por que seguir um processo adequado de divulgação de vulnerabilidades?
Seguir um processo razoável de divulgação permite que os responsáveis pela manutenção avaliem e priorizem a vulnerabilidade sem a pressão da urgência. Assim, podem decidir se vão lançar uma correção e preparar backports, se necessário. Por fim, depois que as novas versões forem lançadas, podem divulgar a vulnerabilidade publicamente aos usuários com segurança. Durante todo esse processo, os detalhes da vulnerabilidade permanecem em sigilo, evitando que ela seja explorada para causar danos.
Divulgação de vulnerabilidades de código aberto na Snyk
A Snyk lançou seu programa de divulgação de vulnerabilidades em 2019 para reduzir essa lacuna e facilitar o relato de vulnerabilidades por pesquisadores, reconhecendo, é claro, todo o trabalho que dedicam a essas descobertas.
Nossa equipe de segurança avalia e prioriza cuidadosamente cada relato de vulnerabilidade. Isso exige conhecimento específico e compreensão da linguagem em questão, do pacote e de seu contexto. Depois de confirmar os detalhes da vulnerabilidade, a equipe trabalha em conjunto com os responsáveis pela manutenção para corrigi-la em tempo hábil. Por fim, como CNA (CVE Numbering Authority), ajudamos a atribuir um ID CVE ao problema e a publicar um aviso detalhado.
Em 2019, ajudamos a divulgar mais de 130 vulnerabilidades. Entre as mais relevantes estão RCE no mongo-express e gravação arbitrária de arquivos no yarn.
Trabalhamos com pesquisadores independentes, profissionais de segurança e a comunidade acadêmica! Começamos 2020 com uma grande parceria com a equipe do Security Lab da Johns Hopkins University, ajudando a divulgar mais de 50 vulnerabilidades.
A equipe da Johns Hopkins University desenvolveu uma nova maneira de automatizar a busca por vulnerabilidades. Juntos, criamos uma solução personalizada para lidar com um grande número delas. Fique de olho: em breve, publicaremos um artigo com mais detalhes sobre esse projeto.
Como começar?
A maneira preferencial de enviar um relato é usar o formulário específico aqui. Se preferir, você também pode escrever para report@snyk.io. Antes de enviar seu relato, consulte nossa política de divulgação de vulnerabilidades.


