O editor de código e ambiente de desenvolvimento do Visual Studio Code (VS Code) da Microsoft contém uma falha que permite que extensões maliciosas recuperem tokens de autenticação armazenados nos gerenciadores de credenciais do Windows, Linux e macOS.
Esses tokens são utilizados para se integrar a vários serviços e APIs de terceiros, como Git, GitHub e outras plataformas de codificação, então roubar esses tokens poderia ter consequências significativas para a segurança de dados de uma organização comprometida, o que poderia levar ao acesso não autorizado ao sistema, violações de dados, etc.
A falha foi descoberta por pesquisadores da Cycode, que a relataram à Microsoft junto com uma prova de conceito (PoC, em inglês) de que eles desenvolveram.
Ainda assim, a gigante da tecnologia decidiu não corrigir a questão, pois as extensões não são esperadas para serem isoladas do restante do ambiente.
O problema de segurança descoberto pela Cycode é causado por uma falta de isolamento de tokens de autenticação no 'Secret Storage', do VS Code, uma API que permite que extensões armazenem tokens de autenticação no sistema operacional.
Isso é possível através do uso da Keytar, a ferramenta do VS Code que permite a comunicação com o gerenciador de credenciais do Windows (no Windows), a keychain (no macOS), ou keyring (para Linux).
Isso significa que qualquer extensão que esteja rodando no VS Code, até mesmo as maliciosas, pode ganhar acesso ao Secret Storage e abusar da Keytar para recuperar qualquer token armazenado.
O pesquisador da Cycode, Alex Ilgayev, disse ao BleepingComputer que além das autenticações do GitHub e da Microsoft, todas as credenciais salvas são de uso de extensões de terceiros.
"Além das autenticações integradas do Github/Microsoft, todos os tokens salvos no VSCode vêm de extensões", disse Ilgayev ao BleepingComputer.
"Ao descobrir o problema, os pesquisadores da Cycode começaram a experimentar, criando uma extensão maliciosa para roubar tokens do CircleCI, uma plataforma de codificação popular com extensões do VS Code.
Eles fizeram isso modificando a extensão de CircleCI para rodar um comando que exporia seu token seguro e até o enviaria diretamente para o servidor do pesquisador.
Gradualmente, eles desenvolveram um método de ataque mais versátil para extrair esses segredos sem mexer com o código da extensão alvo.
A chave para esse processo foi descobrir que qualquer extensão do VS Code é autorizada a acessar a keychain, porque ela é executada a partir da aplicação que o sistema operacional já concedeu acesso à keychain.
Em seguida, os tokens recuperados tiveram de ser descriptografados, e a Cycode descobriu que o algoritmo usado para criptografar tokens era o AES-256-GCM, que é normalmente seguro.
No entanto, a chave usada para criptografar os tokens é derivada do caminho executável atual e do ID da máquina, tornando fácil recriar a chave.
Os tokens recuperados foram descriptografados por um script JS personalizado executado no executável Electron do VS Code, decifrando e imprimindo todas as senhas de extensões instaladas localmente.
Uma segunda falha descoberta pelos pesquisadores da Cycode foi que a função 'getFullKey' recupera segredos a partir de um 'extensionId', que é derivado do nome e do editor da extensão.
Esse problema permite que qualquer pessoa modifique esses campos e engane o VS Code para que lhe dê acesso aos tokens seguros de outra extensão.
A Cycode testou isso usando uma extensão PoC que imitava o CircleCI novamente; no entanto, eles observaram que replicar qualquer outra extensão e ganhar acesso a seus segredos seria trivial.
A Cycode disse ao BleepingComputer que relatou o problema à Microsoft dois meses atrás, demonstrando inclusive a sua extensão PoC capaz de roubar os tokens da extensão armazenados.
Mesmo assim, os engenheiros da Microsoft não consideraram isso como uma ameaça à segurança e decidiram manter o design atual do framework de gerenciamento de armazenamento secreto do VS Code.
BleepingComputer contatou a Microsoft para comentar o assunto, mas não obteve retorno.
Publicidade
Em 14 de janeiro a Solyd irá revolucionar a forma como pentest e hacking deve ser ensinado. Se inscreva para ser o primeiro a saber das novidades. Saiba mais...