Depois de ler
este artigo, eu queria pesquisar outro gerenciador de senhas em busca de vulnerabilidades semelhantes.
Nos comentários ao artigo,
Dark_Angel fez uma pergunta:
E o SafeInCloud?
O estudo foi realizado na versão gratuita para Windows do SafeInCloud v.19.0.2
Quando conheci o produto, ele causou uma ótima impressão em mim.
No entanto, pesquisas adicionais revelaram exatamente a mesma vulnerabilidade.
Ao contrário do 1Password, o SafeInCloud armazena
todas as suas senhas em texto não criptografado, mesmo em um estado bloqueado (após o primeiro desbloqueio).
Para obter a senha do banco de dados, basta ler a memória do aplicativo. A
ofuscação de dados está completamente ausente! A senha mestre (e todas as outras senhas e entradas) nunca são substituídas após o primeiro desbloqueio bem-sucedido do banco de dados, mesmo que o usuário a bloqueie.
Suas senhas podem vazar nos seguintes casos:
+ Enviando um relatório de bug em qualquer software. Muitas vezes, os desenvolvedores despejam a memória de todos os aplicativos para fins de depuração.
+ Se você usa um computador, não apenas você.
+ Ao obter acesso físico ao computador de um invasor.
+ Ao iniciar malware.
+ É possível que o conteúdo da memória seja trocado.
+ Mais alguma coisa ...
O aplicativo do Windows é escrito em .net, o que simplifica bastante a análise do código fonte.

O aplicativo está escrito em .net
Após a descriptografia bem-sucedida do banco de dados (XDatabase), o banco de dados descriptografado e a senha mestre são salvos como campos de classe na instância Singleton da classe DatabaseModel.

Configurando campos com um banco de dados e uma senha mestra a partir dele
Todas as entradas e senhas são armazenadas na memória de forma clara, mesmo após o usuário bloquear o aplicativo. A senha mestra está desobstruída ao lado dela.

A senha é armazenada na propriedade Senha, _database é um campo da classe XDatabase que contém o banco de dados descriptografado.
Banco de dados em formato XML.Ao desbloquear novamente, o aplicativo executa uma verificação elementar:

Se a senha inserida pelo usuário corresponder à senha armazenada na memória, o desbloqueio será concluído.
Um simples utilitário
SafeInCloudExtractor foi gravado para automatizar a extração da senha mestra.
O utilitário extrai a senha mestra e o caminho local para o arquivo de banco de dados.
Qual gerenciador de senhas você usa? Escreva nos comentários!
ATUALIZAÇÃO Depois de relatar um problema, o autor do SiC recebeu críticas extremamente negativas (até insultos). Sob pressão dos usuários, uma versão beta foi lançada com "proteção contra hackers". Ou seja, com proteção do utilitário SafeInCloudExtractor. Parece que o problema está resolvido! As senhas são apagadas da memória. No entanto, não é assim e aqui está o porquê:
Uma versão atualizada do SiC também armazena todas as senhas na memória. Para complicar a análise do código, um ofuscador foi aplicado + uma verificação IsDebuggerPresent foi adicionada. As senhas são armazenadas em texto não criptografado na memória e são armazenadas. Parece que o autor não entende o que se defender. Em vez de corrigir o problema, o PoC foi desativado. Provavelmente, o autor não possui as qualificações e conhecimentos necessários para desenvolver software relacionado à segurança. Seja vigilante!