Resumo: segurança de sessões vinculadas ao dispositivo
- A lacuna: A MFA é tratada como a linha de chegada da segurança de contas, mas no instante em que a autenticação termina ela deixa de ajudar, e cada token de sessão roubado após um desafio MFA válido continua a funcionar a partir de qualquer dispositivo na Internet.
- O que a cside vê: As sessões vinculadas ao dispositivo da cside geram uma impressão digital derivada do hardware a partir da renderização de GPU, da entropia de canvas, das métricas de fontes e da saída WebGL que sobrevive à limpeza de cookies, ao modo anónimo e às VPN, porque é recalculada a partir do dispositivo em vez de ficar guardada em cookies.
- A decisão: Se a sua postura contra tomada de contas termina na MFA, decida este trimestre se uma falha de XSS ou uma ferramenta man-in-the-browser que leve um token de sessão válido é um risco que está disposto a assumir na íntegra.
Sem tempo? Veja a deteção de account takeover da cside. Cobre tudo o que se segue numa única implementação.
Uma sessão vinculada ao dispositivo é uma sessão autenticada ligada ao dispositivo específico que a criou. Se o token de sessão for mais tarde apresentado a partir de um dispositivo diferente, a discrepância de impressão digital é detetada e a sessão é rejeitada ou enviada para um desafio de reforço. Isto fecha uma lacuna que a maioria da autenticação deixa em aberto: a janela após o início de sessão, quando um token válido pode ser roubado e reproduzido a partir de outro lugar.
| Cenário | O que a MFA faz | O que a vinculação ao dispositivo faz |
|---|---|---|
| Credenciais roubadas antes do início de sessão | Exige ao atacante um segundo fator | Espera que exista uma sessão para vincular |
| O atacante conclui a MFA no seu dispositivo | Permite o acesso porque o desafio foi concluído | Vincula a nova sessão ao dispositivo do atacante, por isso não corrige o início de sessão comprometido |
| Um token de sessão válido é roubado após a MFA | Não executa um novo desafio de início de sessão | Deteta uma discrepância de impressão digital quando o token é reproduzido noutro dispositivo |
| Um pedido válido vem do dispositivo original | Já concluiu a verificação no início de sessão | Faz corresponder a impressão digital guardada e permite que a sessão continue |
A lacuna pós-autenticação que a vinculação ao dispositivo fecha
A MFA protege o evento de início de sessão. Confirma que a pessoa que submete as credenciais também controla um segundo fator nesse momento. Assim que a autenticação termina e é emitido um token de sessão, a MFA cumpriu a sua função. O próprio token é uma credencial ao portador, por isso qualquer parte que o detenha pode apresentá-lo ao servidor e obter uma resposta autenticada.
Os tokens de sessão são roubados por várias vias: cross-site scripting que lê cookies, proxies man-in-the-browser que capturam os tokens à medida que são definidos, armazenamento de dispositivo roubado e engenharia social que engana os utilizadores para os expor. Em cada caso, o atacante acaba com um token válido que foi emitido após um desafio de MFA legítimo. O desafio já ficou no passado. O token roubado continua a funcionar.
As sessões vinculadas ao dispositivo fecham essa lacuna. Mesmo quando um atacante detém um token válido, usá-lo a partir de um dispositivo diferente produz uma discrepância de impressão digital que o servidor consegue detetar. A sessão só é considerada de confiança quando provém do dispositivo que a criou.
Como funciona tecnicamente a vinculação ao dispositivo
A sessão é vinculada no momento da autenticação. Quando um utilizador inicia sessão, a impressão digital do dispositivo dessa sessão (derivada de sinais do navegador e do hardware) é registada juntamente com o token de sessão no armazenamento de sessões do servidor.
Em cada pedido posterior que apresenta o token, o servidor compara a impressão digital atual com a que foi registada no início de sessão. Se coincidirem, o pedido prossegue. Se não coincidirem, a sessão é invalidada ou é acionado um desafio de reforço.
A impressão digital usada para a vinculação tem de ser estável e derivada do hardware. Os identificadores baseados em cookies não servem, porque podem ser copiados juntamente com o token de sessão. Um atacante que rouba um cookie de sessão também pode roubar qualquer ID de dispositivo baseado em cookie que esteja no mesmo armazenamento. Uma impressão digital ao nível do navegador, derivada da renderização da GPU, da entropia do canvas, das métricas de tipos de letra e do resultado WebGL, não pode ser extraída do armazenamento de cookies, porque não está lá guardada. É recalculada a partir do hardware em cada sessão.
As sessões vinculadas ao dispositivo da cside geram uma impressão digital derivada do hardware no momento da criação da sessão e devolvem-na juntamente com o token de sessão através da sua API. O seu servidor regista a impressão digital com a sessão. Em cada pedido protegido, o script leve da cside recalcula a impressão digital para a sessão atual, e a sua aplicação compara-a com o valor armazenado. A cside não substitui o seu token de sessão. Dá-lhe um sinal de dispositivo forte o suficiente para saber se o token está a ser reproduzido num local onde não deveria estar.
Contra o que a vinculação ao dispositivo protege
Sequestro de sessão após XSS. Uma falha de cross-site scripting que permite a um atacante ler cookies de sessão não entrega uma sessão utilizável quando essa sessão está vinculada ao dispositivo. Reproduzir o token roubado a partir da máquina do atacante produz uma discrepância de impressão digital.
Captura de sessão man-in-the-browser. O malware de navegador que interceta uma sessão autenticada captura o token, mas não o sinal do dispositivo, porque o sinal é calculado a partir do hardware da vítima. O token roubado não coincide com a impressão digital do atacante.
Partilha de credenciais após a autenticação. Quando um utilizador legítimo entrega o seu token de sessão a um colega (comum em ferramentas empresariais onde adicionar um lugar exige ação de administrador), a sessão partilhada apresenta uma discrepância de dispositivo. Este é o problema da partilha de contas aplicado à camada da sessão em vez da camada de início de sessão.
Viagem impossível. Uma sessão criada em Londres e depois apresentada a partir de um dispositivo com características de rede de uma geografia diferente, dentro de um intervalo de tempo demasiado curto para uma viagem física, é detetável através da alteração da impressão digital combinada com sinais de rede.
Como as sessões vinculadas ao dispositivo e a MFA se complementam
A vinculação ao dispositivo protege a sessão após a autenticação. A MFA protege o evento de início de sessão durante a autenticação. Cobrem pontos diferentes do ciclo de vida da sessão, e uma postura completa contra a apropriação de contas precisa de ambas.
Um atacante que derrota a MFA através de um SIM swap ou de fadiga de notificações push e se autentica com sucesso recebe um token de sessão no seu próprio dispositivo. A vinculação ao dispositivo nessa sessão não ajuda, porque o dispositivo do atacante é a origem da sessão. A MFA é o controlo que importa nessa fase.
Um atacante que observa um utilizador legítimo concluir a MFA e depois rouba o token de sessão através de XSS é travado pela vinculação ao dispositivo, porque a sua impressão digital não coincide com a origem da sessão. A MFA já terminou e nada oferece neste ponto.
Junte as duas e a cobertura fica clara. A MFA trava, no início de sessão, os atacantes que não têm credenciais válidas ou não conseguem satisfazer o segundo fator. A vinculação ao dispositivo trava, depois do início de sessão, os atacantes que obtiveram uma sessão válida por outra via.








