Divulgação de vulnerabilidade é um processo importante na manutenção da segurança de nossos produtos. Mas e se a própria divulgação também for vulnerável?
Divulgação de vulnerabilidade é o processo de apresentar informações ao público sobre falhas em sistemas operacionais, aplicativos, firmwares e processos empresariais. O objetivo dessa ação é garantir que desenvolvedores de tecnologia corrijam as falhas enquanto os usuários possam mitigar os perigos desses problemas antes que cibercriminosos descobram e explorarem essas falhas.
Geralmente as vulnerabilidades são descobertas por pesquisadores de segurança que procuram especificamente por esse tipo de falha. Como os cibercriminosos e nações adversárias também buscam por isso - e não há nenhuma forma de saber se eles conseguem encontrar - é importantíssimo que elas sejam corrigidas assim que são encontradas e antes de serem exploradas. A divulgação de vulnerabilidades pelos heróis dessa história é uma parte fundamental desse processo.
Precisamos entender três termos: vulnerabilidades, uma falha ou bug no código; exploração, uma metodologia usada para manipular a vulnerabilidade; e correção, a eliminação da vulnerabilidade pelo fornecedor e implementação da correção pelo usuário.
Vulnerabilidades de dia zero
É útil entender o conceito de vulnerabilidade de dia zero. Vulnerabilidades de dia zero são conhecidas como um ataque em potencial ainda não conhecido e, assim, ainda não corrigido pelo fornecedor. Como consequência não há, teoricamente, nenhuma defesa contra exploração de dia zero desenvolvida para uma vulnerabilidade de dia zero.
Tecnicamente o termo se aplica ao período entre a descoberta da falha e sua correção. Esse tempo é variável, já que depende da agilidade do fornecedor em corrigir o problema. Mas em termos práticos, ela continua sendo uma vulnerabilidade dia zero para os usuários até que a correção do fornecedor seja implementada em seus computadores.
Um fator complicante nessa descrição - e um conceito importante para este artigo - é a vulnerabilidade conhecida e mantida em segredo apenas pelos criminosos. Como ela foi descoberta, tecnicamente é uma vulnerabilidade dia zero. Mas ainda não conhecida publicamente. Aparentemente, ela não existe, mas no mundo real, sim. Essas são as infames “incógnitas desconhecidas” de segurança que podem ser exploradas por criminosos a qualquer momento.
Divulgação
Divulgação de vulnerabilidade é um processo importante na manutenção da segurança de nossos produtos. Pesquisadores de segurança encontram falhas, relatam-nas aos fornecedores que, por sua parte, corrigem o problema. Pelo menos é assim na teoria. Quando isso funciona, a coisa vai bem; mas não é sempre que tudo caminha desse jeito.
Há duas abordagens básicas para a divulgação de vulnerabilidades por parte dos pesquisadores, caracterizadas pelos termos “divulgação completa” e “divulgação responsável”.
Divulgação completa
O conceito de divulgação completa é a publicação imediata e completa de todos os detalhes da vulnerabilidade descoberta, possivelmente incluindo aí uma exploração para demonstrar a falha. Adeptos dessa doutrina acreditam que esta é a única forma de garantir que o fornecedor corrija o problema o mais rápido possível.
A correção de falhas nos códigos pode ser um exercício demorado e caro para o fornecedor. Além disso, admitir a venda de softwares com problemas pode prejudicar a reputação de uma empresa. Tradicionalmente, muitas empresas acreditam que quanto menos pessoas souberem a respeito de uma fraqueza no sistema, mais seguro ele continua sendo (além da óbvia economia de tempo, dinheiro e reputação). Assim, eles não fazem nada ou agem muito lentamente.
Mas pesquisadores sabem que se eles podem encontrar a falha, outros também podem. Há sempre a possibilidade de que essa vulnerabilidade seja uma das incógnitas desconhecidas que podem ser exploradas a qualquer hora, possivelmente em uma escala gigantesca. A única solução para isso é que o fornecedor corrija o problema o mais rápido possível. Assim, alguns pesquisadores consideram a divulgação completa como sendo a melhor forma de garantir que isso seja feito.
O problema desse argumento é que uma divulgação completa também anuncia a falha aos bandidos. Geralmente, uma divulgação completa de vulnerabilidade acaba provocando uma corrida entre o fornecedor e os cibercriminosos: um quer corrigi-la, enquanto o outro quer explorá-la.
Divulgação responsável
A divulgação responsável é o caminho preferido por quase todos os fornecedores e empresas de segurança. Em sua forma bruta, ela é a divulgação privada da vulnerabilidade apenas ao fornecedor, sem a divulgação pública até que a vulnerabilidade seja corrigida (ou nem depois disso).
Na maioria dos casos, o pesquisador dá um tempo para que a correção seja feita. Se isso não acontecer, então a falha é divulgada publicamente. Em termos práticos, a divulgação responsável é um compromisso que fica entre o cenário ideal para o fornecedor (sem divulgação pública) e a divulgação completa. Surgiram programas de recompensas por bugs, onde os fornecedores oferecem programas que incentivam os pesquisadores a divulgarem vulnerabilidades com responsabilidade em troca de remuneração e reconhecimento. Esses programas são um tanto controversos e merecem uma discussão mais aprofundada no futuro.
O time de pesquisadores do Projeto Zero do Google faz experimentos com pequenas variações. Vulnerabilidades são divulgadas de forma privada ao fornecedor, que, por sua parte, tem 90 dias para corrigir o problema antes de uma divulgação pública. Mas agora, a divulgação pública não será feita antes desses 90 dias, independentemente da velocidade que o fornecedor resolva a vulnerabilidade. Essa é uma tentativa de ajudar a aliviar o “problema de correção”, uma questão diferente que impacta diretamente nas vulnerabilidades de dia zero.
O problema da correção
A teoria da divulgação é que os pesquisadores descobrem e divulgam as vulnerabilidades (nesta fase, muito provavelmente ainda vulnerabilidades de dia zero), o fornecedor corrige as vulnerabilidades e atualiza seus produtos, e o usuário atualiza as correções no produto instalado. O problema é que os usuários não costumam atualizar os produtos instalados. Até que o façam, o problema não é simplesmente uma vulnerabilidade de dia zero, agora ela é uma vulnerabilidade de dia zero que os criminosos já conhecem. Esse é um grande problema de segurança cibernética.
Em 2017, a invasão da Equifax*, uma das maiores agências de crédito dos EUA, foi feita por uma falha de segurança que havia sido divulgada e corrigida dois meses antes do crime, mas a Equifax não havia implementado a correção em todos os seus servidores.
Mesmo os ataques globais dos infames ransomwares WannaCry e NotPetya foram feitos por uma vulnerabilidade já corrigida pela Microsoft. Neste caso, os ransomwares se espalharam rapidamente pelo mundo usando uma vulnerabilidade conhecida como EternalBlue. O EternalBlue foi um dos inúmeros casos de vulnerabilidades “secretas” que a Agência de Segurança Nacional dos EUA (NSA, da sigla em inglês) manteve escondida para uso próprio. A vulnerabilidade foi roubada e divulgada por um grupo cibercriminoso conhecido como ShadowBrokers e, desde então, tem sido usada regularmente por diferentes criminosos e malwares. Mesmo que tecnicamente ela tenha deixado de ser uma vulnerabilidade de dia zero a partir do momento em que a Microsoft a corrigiu, seu status se manteve para os usuários que não implementaram a correção para a falha EternalBlue.
Vulnerabilidades de dia zero armazenadas secretamente por serviços de inteligência ao redor do mundo para seus próprios propósitos de ataque e defesa é mais uma complicação para a teoria da divulgação.
Estoques governamentais de dias zeros
Agências de inteligência governamentais operam - e em alguns casos têm publicado - o que eles misteriosamente chamam de “processos de equidade” (a NSA aqui* e a GCHQ, serviço de inteligência britânico, aqui*). Para simplificar, essa é uma admissão de que eles contam com um estoque de vulnerabilidades de dia zero e a confirmação de que, algumas vezes, isso não é informado aos fornecedores. As agências dizem que se uma vulnerabilidade representa uma ameaça maior para a segurança nacional do que uma oportunidade estratégica para as operações de inteligência, então elas serão divulgadas. Caso contrário, não.
Em outras palavras, essas são vulnerabilidades de dia zero e continuarão assim caso as agências sintam que elas podem ser úteis para seus propósitos. O infame ataque Stuxnet* contra o projeto nuclear iraniano (que apesar de não existirem provas, pode ter sido um exercício conjunto entre a NSA e Israel) se aproveitou de diversas explorações de dia zero para atingir seu objetivo.
Isso significa que um pesquisador que descobre uma nova vulnerabilidade não tem como saber se aquela falha já foi descoberta por uma nação adversária e poderia ser explorada, causando um estrago enorme a qualquer momento. Às vezes, isso aumenta a pressão sobre a velocidade com que o pesquisador deveria divulgar a vulnerabilidade e o prazo em que o fornecedor deveria corrigir o problema.
Ambos os lados desse processo tem sido observados ao longo dos últimos anos. Vulnerabilidades não divulgadas pela NSA foram roubadas e vazadas pelo grupo ShadowBrokers, provocando um efeito devastador (WannaCry e NotPetya), enquanto as vulnerabilidades de dia zero da CIA, agência de inteligência dos EUA, vazaram em um caso que ficou conhecido como os vazamentos do “Vault 7”. Nesse episódio, o site Wikileaks divulgou uma série de documentos que detalhavam as atividades da agência na área de vigilância eletrônica e guerra cibernética.
Mais recentemente, a NSA divulgou uma vulnerabilidade importante da Microsoft, que foi corrigida pela empresa em janeiro de 2020. Isso mostra os processos de equidade trabalhando para o benefício das pessoas e das empresas, apesar de que, na realidade, não sabemos se a decisão de compartilhar informações foi tomada altruisticamente, ou porque ela também, assim como no caso do EternalBlue, foi roubada ou até mesmo se a NSA descobriu que agências estrangeiras também tinham posse dela.
Em resumo
Não há solução para o problema da divulgação. Tudo o que podemos tentar, sempre que possível, é escolher a opção menos dolorosa. O consenso atual é uma forma de divulgação responsável, dando ao fornecedor a chance de corrigir a vulnerabilidade antes que ela venha a público. Mas isso não leva em conta as vulnerabilidades já conhecidas e, talvez, já sendo exploradas pelos cibercriminosos e nações adversárias. Ela também não oferece nenhuma solução para a possibilidade de que a vulnerabilidade possa estar com as nações adversárias e sendo usadas por elas, ou que tenha sido mantida e roubada de nossas próprias agências de inteligência.
Mas em um certo grau, o problema é acadêmico. Mesmo nos casos em que as vulnerabilidades são encontradas e corrigidas rapidamente pelos fornecedores, os usuários não são muito bons na implementação dessas correções. Assim, essas falhas continuam sendo vulnerabilidades de dia zero para qualquer sistema não corrigido. O perigo agora é que criminosos façam uma engenharia reversa da correção, descubram a vulnerabilidade e desenvolvam uma forma de exploração para ela, que pode ser feita alguns dias depois do lançamento da correção.
A ironia aqui é que divulgações que levam a correções não implementadas apresentam riscos ainda maiores.
A Avast é líder global em segurança cibernética, protegendo centenas de milhões de usuários em todo o mundo. Saiba mais sobre os produtos que protegem sua vida digital em nosso site e receba todas as últimas notícias sobre como vencer as ameaças virtuais através do nosso Blog, no Facebook ou no Twitter.
* Original em inglês.