• Nenhum resultado encontrado

Mecanismo vulnerável de recuperação de senhas

No documento Teste de Invasão de Aplicações Web (páginas 123-125)

q

Aplicações web desenvolvidas para a internet, que permitem que os usuários criem suas próprias contas, normalmente, possuem uma funcionalidade para auxiliá-los em casos de esquecimento da senha de acesso. Uma abordagem comum consiste na exibição de um lembrete sobre a senha, cadastrado no momento da criação da conta.

O grande problema dessa solução é que os usuários, muitas vezes, definem a dica com o valor da própria senha, tornando a vida de um atacante extremamente fácil.

Outra maneira de implementar o requisito baseia-se no uso de perguntas secretas pré-cadastradas, as quais precisam ser corretamente respondidas pelo suposto usuário, antes que lhe seja concedido acesso ao mecanismo de recuperação de senha. A Figura 3.14(a) exemplifica uma interface para recuperação de senhas, baseada em pergunta secreta, e a Figura 3.14(b), a tela exibida quando a resposta correta é fornecida. Três fraquezas ficam evidentes nesse exemplo: a primeira está relacionada ao conjunto limitado de respostas para a pergunta secreta, o que permite um ataque de força bruta, no qual o usuário malicioso testa todas as possibilidades, uma a uma. Outra delas consiste na exibição da senha original, o que possibilita se autenticar no sistema, sem que o usuário legítimo perceba, salvo se a aplicação informar a data e o horário da última conexão, no início de cada sessão. Por fim, a última vulnerabilidade consiste no armazena- mento das senhas, de um modo que é possível recuperá-las em claro. Embora esse problema seja fundamental para a existência da fraqueza anterior, ele não implica a presença daquela em uma aplicação.

(a) (b)

Figura 3.14

Mecanismo de recuperação de senhas: (a) Pergunta secreta exibida. (b) Resultado obtido quando resposta correta é fornecida.

Te st e d e I nv as ão d e A pl ic aç õe s W eb

Além das vulnerabilidades supracitadas, um mecanismo de recuperação de senhas pode estar sujeito a diversos outros problemas de segurança (Stuttard e Pinto, 2007; Meucci et al., 2008), juntamente, com os meios de explorá-los.

q

Um mecanismo de recuperação de senhas pode estar sujeito a diversos outros pro- blemas de segurança:

1Inexistência de mecanismo de bloqueio.

1Cadastro de perguntas secretas personalizadas.

1Respostas disponíveis em fontes públicas.

1Envio da senha original para uma conta pré-cadastrada de correio eletrônico.

1Redirecionamento para uma sessão autenticada.

1Solicitação da conta de correio eletrônico, para a qual as instruções para recuperação de senha devem ser enviadas, após perguntas secretas serem respondidas corretamente.

1Recuperação de senha por equipe de suporte.

1Falta de notificação de troca de senha.

1Inexistência de mecanismo de bloqueio: se a aplicação não impedir que múltiplas ten-

tativas malsucedidas e consecutivas de resposta às perguntas secretas sejam efetuadas, a execução de um ataque de força bruta é facilitado.

1Cadastro de perguntas secretas personalizadas: usuários tendem a registrar per-

guntas, que são facilmente respondidas, como, por exemplo, “você gosta de futebol?” ou “quantos filhos você tem?”. Note que as respostas das duas perguntas pertencem a conjuntos de baixa cardinalidade.

1Respostas disponíveis em fontes públicas: mesmo quando as respostas das perguntas

secretas escolhidas não são fáceis de adivinhar, o mecanismo é reduzido a pó se o usuário disponibiliza as informações necessárias em redes sociais, páginas pessoais ou qualquer outra fonte pública. Note que essa fraqueza, na verdade, não é da aplicação, mas, sim, de natureza humana.

1Envio da senha original para uma conta pré-cadastrada de correio eletrônico: similar

à exibição da senha em tela, permite usar a aplicação, sem que o usuário legítimo saiba do comprometimento. Porém, é mais difícil de explorar, pois requer que o atacante des- cubra a conta de e-mail do usuário e a senha correspondente.

1Redirecionamento para uma sessão autenticada, após perguntas secretas serem respondidas corretamente: atacante consegue usar a conta comprometida indefinida-

mente, sem a ciência do usuário legítimo.

1Solicitação da conta de correio eletrônico, para a qual as instruções para recupe- ração de senha devem ser enviadas, após perguntas secretas serem respondidas corretamente: basta fornecer uma conta de e-mail, à qual se tem acesso, para receber a

senha em claro ou um link para um formulário, no qual ela pode ser redefinida. Observe que algumas aplicações não solicitam a conta de e-mail de destino, mas a embutem em um campo escondido. Nesse caso, é suficiente utilizar um proxy de interceptação para alterar o valor do campo e obter o mesmo resultado.

1Recuperação de senha por equipe de suporte: em aplicações utilizadas internamente

em uma empresa, é comum delegar à equipe de suporte o trabalho de recuperação de senhas. Embora isso não seja uma vulnerabilidade por si só, o problema surge quando a identidade do requerente não é validada, antes do fornecimento de nova senha. Se isso acontece, um atacante pode simplesmente ligar para o suporte, informando um identifi- cador de usuário qualquer, para conseguir acesso ao sistema.

Ca pí tu lo 3 - T es te d o m ec an is m o d e a ut en tic aç ão

1Falta de notificação de troca de senha: uma boa prática de segurança é sempre

permitir a detecção de incidentes de segurança, se não for possível evitá-los. Assim,

quando houver uma troca de senha, por meio do mecanismo de recuperação, uma men- sagem de notificação deve ser enviada a uma conta pré-cadastrada de correio eletrônico, pertencente ao usuário legítimo. Com esse controle, mesmo que uma conta seja compro- metida, o proprietário ficará ciente do fato e poderá agir, diminuindo o dano causado.

No documento Teste de Invasão de Aplicações Web (páginas 123-125)