Bitwarden Heist – Como invadir cofres de senhas sem usar senhas
Pesquisadores de segurança descrevem uma falha, agora corrigida, no cliente Windows do Bitwarden que permitia a qualquer processo executado como o usuário extrair, via DPAPI, a chave para descriptografar um cofre desbloqueado biometricamente, sem solicitar senha ou biometria. Comentadores observam que o ataque exigia acesso local e era mais potente em ambientes do Active Directory comprometidos, mas usam isso para destacar fraquezas mais amplas no isolamento de apps do Windows, em protocolos legados e em convenções do sistema de arquivos como `%AppData%`. O fio se amplia para um debate sobre os riscos e benefícios reais dos gerenciadores de senhas, dado seu caráter de “ponto único de falha” versus o problema generalizado de reutilização de senhas.
Escopo do Problema do Bitwarden
- Vulnerabilidade é apenas para Windows, ligada ao desbloqueio biométrico do Bitwarden no Windows.
- Falha original: qualquer processo executando como o mesmo usuário com poucos privilégios podia ler um arquivo JSON e pedir ao DPAPI a “chave biométrica” para descriptografar o cofre, sem prompt do Windows Hello e sem privilégios extras.
- Em alguns cenários de pentest, foi usado acesso de domain admin para extrair chaves de backup do DPAPI do Active Directory e descriptografar cofres offline; em outros, bastava acesso local de usuário.
- O Bitwarden teria corrigido o design na v2023.4.0 e alterado os padrões para que a senha mestra precise ser inserida ao menos uma vez na inicialização ao usar Windows Hello.
Debate: Vulnerabilidade Séria ou Hiperbolizada?
- Alguns veem o blog e o título como clickbait, observando:
- Requer acesso local (e às vezes comprometimento de domínio), o que muitas vezes já é “game over” de qualquer forma.
- O ataque é especializado e já foi corrigido.
- Outros argumentam que ainda é digno de nota porque:
- Evita técnicas mais barulhentas (keyloggers, despejo de memória) e pode contornar algumas defesas de endpoint.
- O acesso local pode vir de colegas comprometidos ou software não confiável, e não apenas de um óbvio “ataque físico”.
Biometria, DPAPI e Diferenças de Plataforma
- Crítica: o Bitwarden inicialmente usava o Windows Hello apenas para confirmar “a presença do usuário”, depois armazenava uma chave simétrica do cofre no DPAPI, que qualquer processo do mesmo usuário (ou um domain admin via chaves de backup do AD) podia recuperar.
- Padrão correto sugerido: o Windows Hello deveria manter uma chave assimétrica; a chave privada dele (protegida por biometria) criptografa a chave do cofre antes de ela entrar no DPAPI.
- Android/iOS são vistos como mais fáceis de proteger devido ao sandboxing de apps e aos modelos de keychain; nenhum problema semelhante é conhecido lá a partir do fio.
- O comportamento da versão do macOS/App Store em torno de biometria e Keychain é mencionado, mas os detalhes permanecem obscuros.
AppData do Windows, Sandboxing e Modelo de Segurança
- Crítica pesada ao %AppData% e ao modelo geral de “qualquer processo como o usuário pode ler os dados de app desse usuário”.
- Outros respondem que isso é intencional: AppData nunca foi feito para ser um armazenamento seguro; se você consegue executar código como um usuário, pode exfiltrar os segredos dele.
- Discussão ampla sobre:
- Falta de forte isolamento padrão de apps no Windows em comparação com sistemas operacionais móveis.
- Tentativas como UWP, AppContainer, MSIX e o futuro isolamento baseado em sistema de arquivos, prejudicadas por compatibilidade retroativa e resistência de desenvolvedores.
Gerenciadores de Senhas como Ponto Único de Falha
- Alguns desconfiam de cofres de senhas como SPOFs óbvios que guardam “todos os seus segredos”.
- Muitos contrapõem que:
- Sem eles, os usuários reutilizam senhas fracas, o que na prática é pior.
- Um cofre com senha mestra forte e 2FA/MFA é um bom compromisso.
- Comprometimento de um cofre já desbloqueado é ruim, mas malware local muitas vezes também poderia roubar sessões ativas ou capturar as teclas digitadas.
- Mitigações discutidas:
- Manter algumas senhas críticas memorizadas e fora do cofre.
- Usar tokens de hardware (por exemplo, chaves de segurança) e armazenamento separado de 2FA.