terça-feira, 1 de abril de 2014

Segurança no Software - Vulnerabilidades e Ataques em Autenticação de Autorização

Em um artigo anterior, falamos um pouco sobre Segurança no Software - Vulnerabilidades e Ataques.
Nesse artigo iremos dar algumas dicas de como testar a sua Aplicação na parte de Autenticação e Autorização.
 
Teste 1
     Entrar na URL da Aplicação e no campo senha, digitar. 
     A senha não poderá ser visualizada. Apesar de ser um teste muito trivial (e muitos que nem consideram um teste, por ser padrão), já me deparei com algumas Aplicações que era possível visualizar a senha ao digitar.
 
Teste 2
     Verificar se a Aplicação está utilizando login seguro, se está utulizando o HTTPs.
     Caso a autenticação realizada por sua Aplicação seja usada em outras Aplicações, deve-se utilizar um mecanismo de canal seguro, seja SSL ou Kerberos dentre outros.

Teste 3
     Tentativa/erro senha padrão. Checar se a senha de fábrica foi trocada.
     Ex. Entrar com senhas padrões: 
          Usuário: Admin    Senha: 12345
          Usuário: admin    Senha: 12345
          Usuário: admin    Senha: admin
              Usuário: root       Senha: admin
              Usuário: root       Senha: pass

     Poderá também testar: user / sa / supervisor dentre outras

Teste 4
     Ao tentar acessar a Aplicação com login fora do padrão, deverá apresentar uma mensagem de acesso negado e se necessário indicar uma nota tentativa.
     Essa regra pode variar de Aplicação para Aplicação. Nesse caso verifique a documentação

Teste 5
     Tentar acessar a Aplicação várias vezes com usuário e senha inválida.
     Esse teste já foi abordado em um artigo sobre Teste de Segurança - Autorização - Conversando com a Aplicação
     Se a Aplicação for acessada apenas por usuário internos da empresa, uma das possibilidades seria o bloqueio temporariamente do IP que tentou acessar a Aplicação várias vezes e disparar um email para o login usado informando que está sendo efetuado uma tentativa de login na Aplicação.
     Mas como cada Aplicação é diferente, vale a pena dar uma olhada na documentação.

Teste 6
     Entrar na funcionalidade da aplicação que permite inserir um novo usuário e informar um usuário qualquer.
     Como usuários precisam ser únicos e exclusivos, a Aplicação indica ao usuário final se o nome que ele inseriu já existe. Essa funcionalidade pode ser explorada para um atacante para enumerar nomes de usuários.

Teste 7
     Bloquear um usuário válido e depois entrar na Aplicação com usuário.

Teste 8
     Logar no sistema e selecionar o botão de voltar no browser.
     A Aplicação não poderá apresentar os campo de login e senha preenchidos. Os campos devem estar vazios.
     Imagina que um usuário entre na Aplicação com seu login e senha e depois por algum motivo saia de frente do computador. Um atacante pode voltar a Aplicação até a parte de login e visualizar o usuário logado. E com a ajuda de aplicativos poderá a senha informada, mesmo que a mesma seja apresentada por caracteres *.

Teste 9 
     A tela pedindo a identificação do usuário deve ser apresentada antes de qualquer ação do usuário.
     Copiar a URL já com o usuário logado. Em uma outra máquina colar a URL.

Teste 10
     Efetuar login do mesmo usuário em máquinas diferentes.
     A não autorização de login de um mesmo usuário em máquinas diferentes visa garantir a integridade e segurança das informações.
     Mas a documentação deverá ser consultada novamente para saber como a Aplicação deverá se comportar, pois em alguns casos se faz necessário o login em diversas máquinas ao mesmo tempo.

Esses são alguns teste que os Bugs Busters podem realizar de forma manual na Aplicação.
Mas existe também algumas ferramentas que podem auxiliar os nossos testes.

Ataques Passivos
São ataques que capturam senhas passando na rede. Não gera ruído na rede (indetectável).
Algumas ferramentas:
     Wire Sniffing - captura senhas trafegando sem criptografia na rede
     Man-in-the-Middle - introduz o usuário a pensar que está utilizando o ambiente seguro. É uma forma de ataque em que os dados trocadas entre duas partes, por exemplo você e o seu banco, são de alguma forma interceptados, registrados e possivelmente alterados pelo atacante sem que as vitimas tenham conhecimento.

Ataques Ativos
São ataques que interagem com o alvo na rede. Gera ruído (facilmente detectável).
Ferramenta
     Crunch - Permite criar wordlists utilizando conjuntos de caracteres e regras de formação especificas. Permite limitar a quantidade de senhas geradas e pode redirecionar a saída diretamente para outra ferramente.

Abraços e até a próxima! 
 ________________________________________

Gostou? Compartilhe

br.linkedin.com/pub/silas-fellipe/24/33a/950

Nenhum comentário:

Postar um comentário