Descrição do Problema
Durante uma revisão de segurança de nossa implantação personalizada do Discourse, encontramos uma potencial divulgação de informações sensíveis na interface Admin
Configurações em relação aos segredos do cliente OAuth2.
Detalhes
-
Na página de configuração do administrador, o segredo do cliente OAuth2 (e potencialmente outros tokens/chaves sensíveis) são exibidos em texto simples, em vez de serem mascarados (por exemplo, com asteriscos).
-
Os administradores são obrigados a inserir diretamente o segredo em texto simples nas configurações. Qualquer pessoa com acesso à UI de administração pode ver o segredo completo.
-
Se um invasor obtiver acesso (mesmo que temporariamente) a uma sessão de administrador, ele poderá obter facilmente o segredo do cliente e usá-lo para solicitações não autorizadas de token OAuth2 ou para forjar solicitações a serviços de terceiros.
Impacto na Segurança
-
A exposição de segredos em texto simples na UI de administração aumenta o risco de vazamento de credenciais.
-
A falta de mascaramento não está alinhada com as melhores práticas de segurança para o manuseio de segredos.
-
Os segredos/tokens podem ser abusados para escalonamento de privilégios, personificação ou ataques adicionais contra serviços integrados.
Perguntas
-
Existe um plano para mascarar campos sensíveis como segredos OAuth2 na UI de configurações de administrador (por exemplo, exibir como ****** com a opção de revelar, se necessário)?
-
Existem abordagens recomendadas ou plugins para aprimorar a proteção de credenciais sensíveis em implantações do Discourse?
-
Este problema já foi discutido anteriormente? Existem soluções alternativas disponíveis até uma correção oficial?
Obrigado pela sua atenção a esta importante preocupação de segurança!