2 pontos por GN⁺ 2024-08-18 | 1 comentários | Compartilhar no WhatsApp
  • Com o aumento do uso de MFA, o Microsoft Authenticator pode bloquear usuários ao sobrescrever contas existentes por causa de uma nova conta TOTP adicionada por QR code
  • O ponto central do conflito está no design que usa apenas o label para diferenciar contas, em vez de usar issuer e label juntos, como fazem Google Authenticator, Okta e outros
  • Como a sobrescrita não fica evidente de imediato, o usuário pode só enfrentar impossibilidade de acesso semanas ou meses depois, ao tentar acessar a conta existente
  • As alternativas são usar outro app autenticador ou inserir manualmente a Secret Key, mas isso é pouco prático para usuários comuns em ambientes corporativos
  • A Microsoft afirmou que é um comportamento intencional e que fornece uma mensagem de aviso; depois, citou a ausência de issuer por parte de alguns emissores, deixando apenas a possibilidade de melhorias futuras

Como o escaneamento de QR sobrescreve contas MFA existentes

  • Ao adicionar uma nova conta por escaneamento de QR, o Microsoft Authenticator pode sobrescrever uma conta existente com o mesmo nome de usuário
  • Como endereços de e-mail são muito usados como nome de usuário, é comum que contas MFA de vários serviços compartilhem o mesmo label
  • O Google Authenticator e a maioria dos outros apps autenticadores usam também o nome do issuer, como um banco ou uma montadora, para evitar conflitos
  • O Microsoft Authenticator não usa o issuer em conjunto e identifica a conta apenas pelo nome de usuário
  • Após a sobrescrita, podem surgir problemas de autenticação tanto na conta recém-criada quanto na conta existente que foi sobrescrita

Bloqueio cuja causa é difícil de perceber

  • Quando ocorre o bloqueio, o usuário pode confundir a causa com um problema da empresa que forneceu a autenticação, e não do Microsoft Authenticator
  • Como resultado, helpdesks corporativos acabam gastando tempo para resolver uma situação que não foi causada por eles
  • É difícil verificar facilmente qual conta foi sobrescrita
  • O fato de a conta existente ter desaparecido pode não ficar evidente até o momento em que o usuário tentar usá-la novamente
    • Esse momento pode chegar semanas ou meses depois

Alternativas e reclamações antigas

  • A alternativa mais simples é usar outro app autenticador em vez do Microsoft Authenticator
  • Também é possível evitar o problema inserindo manualmente a Secret Key, em vez de escanear o QR code
  • O problema parece não ocorrer em contas de autenticação pertencentes a contas Microsoft
  • A CSO Online encontrou reclamações sobre esse problema que remontam a 2020, e o problema em si parece existir desde junho de 2016, quando o Microsoft Authenticator foi lançado
  • Em 2020, um usuário mencionou uma alternativa de inserir manualmente a Secret Key do Identity Provider, mas considerou que lidar com strings aleatórias dessa forma não ajudaria o usuário final médio em um ambiente corporativo

Sobrescrita reproduzida em campo

  • O consultor de TI australiano Brett Randall viu participantes de uma sessão de treinamento de fornecedor escanearem QR codes de MFA com o Microsoft Authenticator e sobrescreverem chaves TOTP de outros aplicativos
  • Segundo Randall, um QR code de MFA cria uma string com vários valores, e outros apps combinam label e issuer para formar o ID exclusivo dessa chave
  • Em vez desse comportamento padrão, o Microsoft Authenticator usa apenas o label, que normalmente é um endereço de e-mail
  • A última chave TOTP que usa o mesmo endereço de e-mail pode ser sobrescrita pela nova chave
  • Randall afirmou que foi quase impossível fazer a Microsoft reconhecer esse problema e tomar providências

Reação de especialistas em segurança e TI

  • A CSO Online pediu que vários especialistas em segurança e TI reproduzissem o problema, e todos conseguiram
  • Gary Longsine, fractional CTO da IllumineX, vê isso como uma falha de design e disse que não recomendaria o Microsoft Authenticator
  • Tim Erlin, VP de produto da Wallarm, disse que ocorre um conflito ao adicionar um segundo item com o mesmo endereço de e-mail e que, depois da sobrescrita, não é possível saber qual conta foi sobrescrita
  • Erlin comentou que o problema pode ser menos conhecido do que realmente é porque os usuários talvez não saibam a causa
  • David Meltzer, chief product officer da Netography, reproduziu o problema e o considerou um bug claro, relativamente simples para a Microsoft corrigir
  • Kimberly Samra, porta-voz do Google, respondeu que o Google Authenticator não sobrescreve códigos e que isso é uma decisão explícita

Posição da Microsoft e mensagem de aviso

  • A Microsoft confirmou o problema, mas afirmou que não é um bug, e sim um comportamento intencional
  • Na primeira posição por escrito, a empresa explicou que, quando o usuário escaneia um QR code, recebe uma mensagem de confirmação antes de uma ação que pode sobrescrever as configurações da conta
  • O texto real do aviso é: “This action will overwrite existing security information for your account. To prevent being locked out of your account, continue only if you initiated this action from a trusted source.”
  • A mensagem orienta o usuário a prosseguir se ele próprio iniciou a ação e se a origem é confiável
    • Quando o usuário começa o escaneamento de QR em um serviço legítimo, como banco ou hotel, as duas condições geralmente são atendidas
    • Ao seguir a instrução, a sobrescrita da conta pode ocorrer
  • A janela de aviso não oferece uma forma de evitar a sobrescrita além de desistir da tentativa de autenticação

Disputa de responsabilidade em torno da ausência de issuer

  • Depois, em uma segunda declaração mais longa, a Microsoft explicou que alguns sites ou fornecedores não incluem o issuer — isto é, o nome do site ou do Identity Provider — no label
  • Se houver uma conta existente com o mesmo label, o app pode tentar sobrescrevê-la com a conta TOTP recém-escaneada
  • A Microsoft afirmou que, nessa situação, o usuário sempre recebe uma mensagem de confirmação de sobrescrita e pode escolher se deseja continuar
  • A frase “continuamos melhorando o produto e levaremos isso em consideração para melhorias futuras” foi a única parte que sugeriu a possibilidade de a Microsoft corrigir o problema

Comparação com outros apps autenticadores

  • Randall vê duas formas de impedir que usuários finais sobrescrevam acidentalmente chaves de outros apps
    • Auditar o otpauth de todos os aplicativos e convencer cada empresa a corrigir suas implementações incorretas
    • A Microsoft fazer uma única correção para que a mesma preocupação não exista no futuro
  • Randall disse que testou o mesmo comportamento de conflito em 14 outros apps autenticadores, mas nenhum se comportou como o Microsoft Authenticator
  • Os apps testados incluíram Google Authenticator, Okta Verify, Duo Mobile, LastPass Authenticator, 2FA Authenticator, Twilio Authy, Salesforce Authenticator, OneAuth, ForgeRock Authenticator, Authenticator 7, Authenticator App, Auth0 Guardian, OTP Auth e Authenticator 2FA Sentinel

1 comentários

 
GN⁺ 2024-08-18
Opiniões do Hacker News
  • É um pequeno exemplo que realmente ilustra o grande problema da segurança sem usabilidade
    Basta pensar nas coisas absurdas que passamos em nome da “segurança”: troca obrigatória e periódica de senha, regras insanas de senha, requisitos não documentados que você precisa descobrir por tentativa e erro, mensagens de erro complexas cheias de jargão de segurança, “perguntas secretas” cujas respostas você não lembra, e por aí vai
    Só que a segurança desses próprios sistemas é toda furada, como uma peneira. Vazamentos de dados e exposição de informações aparecem nas notícias quase todos os dias, e muitas vezes fico me perguntando como continuam passando impunes

    • Em algum momento, o Capital One introduziu “nome de usuário” e quebrou o login por endereço de e-mail, mas não documentou isso nem impediu o uso de endereço de e-mail como nome de usuário
      Durante meses, toda vez que eu fazia login, precisava usar “encontrar minha conta” e, a cada vez, redefinia o nome de usuário de volta para meu endereço de e-mail. Era natural, já que por quase 10 anos essas tinham sido minhas credenciais de login
      A restrição de que não era possível usar @ ou . no nome de usuário nunca era aplicada até a hora do login, e só depois de meses acabei descobrindo que precisava trocar para outro valor
      A conta original era do ING Direct, depois virou Capital One 360 e então foi totalmente integrada ao restante da bagunça do Capital One; acho que esse problema do nome de usuário também tem a ver com isso
    • Passei por um bom exemplo ontem
      Site: “Escolha uma senha complexa com pelo menos 8 caracteres, incluindo caracteres especiais e números”
      Abro o gerenciador de senhas e fico satisfeito ao gerar uma senha aleatória de 128 caracteres
      Na visita seguinte, o site: “Digite o 31º, o 98º e o 102º caractere da sua senha”
      Era um site britânico de financiamento imobiliário
      Pensando agora, para fazer isso eles precisam estar armazenando a senha em texto puro ou, no mínimo, criptografada de forma reversível, em vez de hash, para poder descriptografá-la a qualquer momento
    • O padrão que mais odeio é descobrir que tenho conta em um site que não uso há um tempo, entrar e digitar a senha correta gerada por algoritmo a partir do e-mail e da URL do site, e ela falhar
      Tento de novo pensando que talvez fosse a senha criada por uma versão antiga do algoritmo, e também falha. No fim clico em redefinir senha, recebo o e-mail, clico no link e coloco como nova senha a senha gerada pelo algoritmo; então aparece “esse caractere especial não pode ser usado”
      Quando, seguindo minhas regras, troco aquele caractere especial pelo próximo caractere, desta vez aparece “não é possível redefinir usando a senha atual”
    • De tudo que já vi, https://studentaid.gov/ foi o pior. Eu não queria inserir informações falsas, e também não podia duplicar a conta para conferir de novo os requisitos
      Pelo que lembro, havia coisas como “palavras proibidas”, “não reutilizar as últimas 24 senhas”, “exclusão de alguns caracteres especiais”, “5 perguntas de segurança” e vários outros requisitos de senha
      Ninguém sabe se as respostas das perguntas de segurança diferenciam maiúsculas de minúsculas
      Havia até um texto dizendo que era preciso certificar que as informações de criação da conta eram verdadeiras e que você era a pessoa em questão, e que fornecer informações falsas ou enganosas poderia resultar em multa, prisão ou ambos
    • A boa notícia é que os itens listados são reconhecidos como más ideias tanto por usuários finais quanto por pessoas que entendem de segurança. Infelizmente, a maioria das pessoas que implementa políticas de segurança não pertence a nenhum desses grupos
      Usar quatro ou mais palavras de dicionário dá uma excelente segurança de senha, e a mesma abordagem pode ser usada para respostas de perguntas de segurança. Também existem muitos gerenciadores de senhas gratuitos e pagos, que resolvem o problema de ter de lembrar todos os valores secretos. Eles também são bons para fazer backup de segredos de autenticação em duas etapas
      Se uma “mensagem de erro complexa” é um erro que se espera que o usuário corrija por conta própria, seria melhor retornar um erro genérico com um ID único e mandar a pessoa entrar em contato com o suporte. Uma bomba de jargões é irritante, mas parece mais uma incapacidade humana comum de explicar erros do que um problema específico de segurança
      A maioria das organizações, mesmo quando o negócio como um todo é bem-sucedido, estraga muitas coisas ao mesmo tempo, e segurança é uma delas. Em uma organização grande o bastante, acho difícil evitar que pessoas incompetentes façam coisas incompetentes
  • Isso não faz sentido em vários níveis. Quer dizer que o Microsoft Authenticator armazena os itens apenas com base no rótulo? Ele nem cria alguma chave interna?
    E depois afirma que o problema é o site colocar o emissor no campo issuer, onde deveria estar, em vez de no rótulo?
    Fico me perguntando se alguém na Microsoft realmente usa o próprio Authenticator. A menos que eu esteja deixando passar algo, no momento em que você usa um e-mail em um site, não consegue adicioná-lo em outro, então parece que ele seria inutilizável em quase todos os aplicativos

    • De forma parecida, o Google, gigante das buscas, lançou o Google Authenticator para Android sem nem uma barra de busca e, apesar de vários pedidos de recurso, continua deliberadamente sem incluí-la
      Mas a versão para iOS tem barra de busca. Não faço ideia do porquê
      Dentro do enorme repositório Piper, provavelmente já deve existir uma biblioteca de busca local que poderia ser enfiada em uma única lista de alterações, embora ela não seja um modelo de linguagem grande
    • Segundo o texto, a Microsoft não quis corrigir porque é um produto gratuito e não gera receita
    • Se funcionários da Microsoft usam o Authenticator deles, imagino que, no máximo, seja só para contas corporativas de trabalho em que a Microsoft é a única emissora
      E acho que muita gente simplesmente não usa
    • Tem algo aqui que não bate. Tenho várias contas com o mesmo e-mail e comparei os códigos do Authenticator, meu app TOTP de backup, com os códigos corretos, e eles coincidiam
      No entanto, encontrei um problema de UI que pode fazer o usuário ver um código errado. Os códigos das primeiras contas visíveis na tela são atualizados a cada 30 segundos, mas os códigos que estão fora da tela não são atualizados
      Ao rolar para trazer um código que estava fora da tela, aparece um código antigo e, em um caso, ele estava 4 ciclos atrás do código correto
    • Provavelmente as pessoas só o usam para uma única conta MS de trabalho imposta pela empresa. Em outros lugares, acho que não usam, porque sabem que ele não é muito bom
  • Curiosamente, recebi da Microsoft um e-mail que parecia phishing, mas aparentemente não era
    O conteúdo dizia “Ação necessária: habilite a autenticação multifator no seu tenant até 15 de outubro de 2024”, e afirmava que eu o estava recebendo por ser “administrador global”, mas só havia um UUID, sem nome da organização
    O aviso dizia que, a partir de 15 de outubro de 2024, MFA seria exigida para login no portal do Azure, no centro de administração do Microsoft Entra e no centro de administração do Intune, e que eu deveria habilitar MFA até lá. Se não conseguisse, deveria solicitar o adiamento da data de aplicação
    O problema é que não administro nenhuma organização na Microsoft. Só tenho algo como uma conta pessoal Office365 Family, e a conta já está com autenticação em duas etapas configurada
    O e-mail não tinha meu nome nem o suposto nome da organização, só um ID, então não faço a menor ideia do que significa. Ainda assim, o e-mail realmente veio da Microsoft

    • Ao fazer login no portal do Azure, você deve ver uma mensagem parecida e conseguir ir para os recursos relacionados
  • Depois de criar contas do Gmail, perdi algumas ao trocar de país e de computador. Ao tentar fazer login, o Google dizia que a senha estava correta, mas que o dispositivo e o IP eram desconhecidos
    Não me lembro exatamente por que a recuperação pelo endereço de recuperação não funcionou, mas falhou mesmo eu ainda tendo acesso ao endereço de e-mail de recuperação. Talvez eu tivesse que informar ao Google qual era o endereço de recuperação, e eu posso ter usado um sufixo + aleatório nesse endereço
    Antigamente eu usava o Google Authenticator na conta do Gmail, mas desativei por medo de acrescentar mais um ponto de falha em uma situação em que o Google não oferece praticamente nenhuma saída
    A senha tem mais de cerca de 96 bits de entropia; gero 256 bits a partir de /dev/urandom, transformo em um inteiro de precisão múltipla e, com divmod, escolho um caractere de cada conjunto — números, minúsculas, maiúsculas e símbolos —, depois escolho o restante de todo o alfabeto e, com a entropia restante, rodo um embaralhamento Fisher-Yates para que o primeiro caractere nem sempre seja um número
    É uma senha por site, armazenada em um gerenciador de senhas baseado em gpg que fiz por conta própria no início dos anos 2000
    A autenticação multifator ajuda em alguns comprometimentos ativos em andamento, mas não ajuda contra dumps de hashes de senhas resultantes de vazamentos de bancos de dados. É realmente angustiante não conseguir recuperar pelo endereço de e-mail de recuperação mesmo sabendo a senha
    Se eu não fiz login em lugar nenhum por alguns meses e tenho a senha correta, no mínimo deveriam enviar um link ou código de verificação para o endereço de recuperação, em vez de exigir que eu diga qual é esse endereço. Não precisam revelar para onde estão enviando, mas transformar o endereço de recuperação em mais uma senha que preciso memorizar é muito irritante

    • Eu não sabia disso. Para aumentar ainda mais o risco, configurei o endereço de recuperação como outra conta do Gmail inativa
      Já não confio ao Google nada além dos dados que já entreguei e dos que sou obrigado a entregar
      Como tenho uma mudança internacional prevista, preciso acelerar a transferência da minha vida de e-mail para uma conta paga que estou testando, o Proton Mail, antes que surja um problema sério
      Na época em que o Gmail parecia inocente, quando a administração pública começou a migrar para o online, comecei a fornecer o Gmail como contato para impostos, saúde, órgãos públicos e afins. Isso funcionou bem e, ao longo de várias mudanças internacionais, o Gmail se tornou uma ferramenta administrativa importante
      Tenho contas inativas espalhadas por aí, mas nelas ainda podem restar assuntos importantes que talvez eu precise algum dia. Por exemplo, autorizações de viagem para a Austrália válidas por alguns anos
      Mesmo depois de a vigilância em massa acelerar, o Gmail ainda parecia relativamente inofensivo, e quase não havia segredos reais ou intimidade profunda ali além do fato de eu lidar com determinadas instituições
      Mas agora que a administração online se tornou praticamente obrigatória e os outros meios foram reduzidos ao mínimo, o Gmail está central demais de um jeito desconfortável. Por causa das coisas preocupantes que bots automatizados fazem com usuários inocentes, sem misericórdia nem possibilidade de recurso, não tive escolha a não ser começar a migração
      Está tão disseminado que não tenho tempo suficiente para procurar tudo, e contas esquecidas exigem escavar memórias vagas, o que parece tortura. Mesmo assim, preciso fazer isso
      Não quero que minhas filhas gêmeas fiquem à mercê dos bots do Google quando chegarem à idade em que precisarão de e-mail para assuntos oficiais
    • Ao adicionar o e-mail de recuperação, você deve ter recebido um e-mail de notificação nessa conta. Se encontrar essa mensagem na caixa de entrada, talvez consiga descobrir o sufixo aleatório no campo to
    • Aconteceu algo parecido comigo. Fui adicionado ao domínio do Google de um projeto open source e recebi um endereço de e-mail, mas o Google exige um número de telefone, então não consigo fazer login
      Provavelmente eu poderia falar com o administrador para redefinir, mas é bem desagradável manter a conta praticamente refém até que eu entregue informações pessoais
    • O problema é que não há ninguém com quem falar; se o computador disser não, acabou
  • Eu vinha usando o da Microsoft por causa da conta de trabalho. Afinal, ele está profundamente integrado ao Office365, então não havia motivo para não usar
    Nunca vi uma caixa de diálogo dessas, e as contas que adicionei não tiveram problemas. Como é conta de trabalho, em 99% dos casos compartilho meu e-mail corporativo como nome da conta
    Então isso quer dizer que tive sorte porque os sites que usei forneciam rótulos suficientemente únicos? Sinto que não entendi completamente qual é exatamente o problema

    • Eu queria usar uma chave de hardware como autenticação em duas etapas, mas nem todos os sistemas oferecem suporte, e os que oferecem nem sempre fazem isso direito. Se o máximo é registrar 1 chave, o que exatamente querem que eu faça?
      No fim o tempo passa, e isso não é algo que põe comida na mesa da minha família; é só uma chateação de ter que fuçar para descobrir o que fazer para conseguir fazer login. Então decidi usar o da MS, que era obrigatório no emprego anterior
      Já perdi tempo demais mexendo nessas coisas em vez de fazer algo significativo ao usar contas online
      A verificação de identidade online como um todo é gravemente pouco confiável e cheia de grandes buracos e riscos ainda maiores, e estamos construindo a vida inteira em cima disso
      Durante décadas houve danos sérios por causa das fragilidades das senhas, mas ainda usamos senhas e tentamos remendar com curativos ou uma demão de tinta
      Quase toda semana algum sistema online vaza enormes quantidades de dados pessoais fáceis de explorar, e mesmo assim ficamos sentados como o meme do cachorro tomando café no meio da sala em chamas, dizendo “está tudo bem, está tudo bem”
      Dizem que, se usarmos uma senha diferente de pelo menos 8 caracteres para cada sistema, estaremos seguros, e seguimos acreditando que vai ficar tudo bem
    • Parece que este bug só acontece ao escanear um código QR no app para iOS
    • Comigo é igual. Tenho 3 contas pessoais usando o mesmo endereço de e-mail, duas delas em FAANG, e funciona bem há quase 10 anos sem problemas
    • Lendo a resposta da Microsoft, a Microsoft culpa as empresas que emitem MFA por “não colocarem o emissor no rótulo”. A MSFT espera que o emissor esteja ali
      Se essa é a expectativa, os produtos da Microsoft colocariam o emissor no rótulo por conta própria, então não haveria problema
      O problema surge ao usar outro provedor que usa o mesmo e-mail como identificador, mas coloca o emissor no campo issuer, que existe justamente para armazenar o emissor. É como se isso fosse uma coisa estranhíssima de se fazer
  • O Safari também tinha um bug parecido, que sobrescrevia passkeys sem nenhum aviso e fazia você ficar completamente bloqueado fora da conta. Depois foi corrigido, mas por causa disso perdi acesso ao GitHub
    https://bugs.webkit.org/show_bug.cgi?id=270553
    O Safari ainda tem um bug em que não consegue distinguir sites hospedados em subdomínios diferentes, exceto por exceções hardcoded, e sobrescreve a senha de um subdomínio com a de outro. Passo por isso todo mês

    • Um dos motivos que me levou a usar um gerenciador de senhas de terceiros, no qual é possível adicionar manualmente vários sites a um item, foi o Keychain alertar que eu estava reutilizando senhas em subdomínios do StackOverflow e do StackExchange
      Mas eu não sabia que essa estupidez ia ainda mais fundo
  • É exatamente por isso que a autenticação multifator por SMS é popular entre os usuários, mesmo tendo vulnerabilidades de segurança
    Em geral, ela é boa o suficiente, desde que você não seja alvo de um ataque de SIM swap. A maioria das pessoas não será alvo, mas a chance de ter problemas por perder uma chave de autenticação multifator é bem maior

    • Exato. É simples e quase todo mundo entende. Igual à própria senha
      É por isso também que métodos mais seguros, como YubiKey, não conseguiram se espalhar entre o público geral. São trabalhosos e confusos
    • Ativei duas vezes. Na primeira, o celular quebrou completamente logo depois de ativar; na segunda, foi roubado
      Agora simplesmente confio em senhas geradas aleatoriamente
    • Acho que o caminho daqui para frente é FIDO e chaves em cartão NFC muito baratas
      Quando você precisar fazer login em algum lugar, tira o cartão da carteira e encosta no celular ou no notebook
      Para uma empresa com clientes pagantes, isso teria que ser barato o bastante para que faça mais sentido enviar fisicamente um cartão pelo correio quando o cliente não tiver um, em vez de oferecer suporte a métodos alternativos de autenticação
      Talvez a maioria dos serviços nem precise de uma segunda camada de autenticação. Se alguém roubar sua carteira, será que essa pessoa vai realmente se importar com sua conta do Reddit?
  • Fiz um teste e não houve conflito entre várias contas usando o mesmo nome de conta/e-mail
    Cada item também mostra corretamente o ícone do emissor, e o emissor está registrado em cada item
    Uso o MS Authenticator há anos e nunca passei por esse tipo de problema; naturalmente, sempre uso o mesmo e-mail como nome da conta ou nome de usuário
    Estou apenas registrando o resultado do teste. Não acho que isso vá mudar a opinião de ninguém sobre o Authenticator ou a Microsoft, mas enfim

    • Fico curioso para saber em qual plataforma. Ouvi dizer que esse problema, ou “recurso”, é limitado à versão para iOS
  • Isso também aconteceu comigo quando atualizei o MS Authenticator depois de ficar um tempo sem atualizar
    Todos os dados foram apagados, e fiquei bloqueado fora de todas as contas. O MS Authenticator não é um produto feito com cuidado

  • Algo parecido aconteceu cerca de 1 ano atrás, quando o app Google Authenticator foi atualizado automaticamente para uma nova versão
    Durante o processo de atualização, perdi todas as contas, e com certeza aprendi algumas lições

    • Por causa desse pesadelo, sempre faço backup dos QR codes de MFA e os adiciono a um app de código aberto que também permite fazer backup dos dados em outro lugar