# Teste de Segurança

É um tipo de Teste de Software que descobre vulnerabilidades, ameaças e riscos em uma aplicação de software, previnindo ataques de intrusos.

O propósito do Teste de Segurança é identificar todos as possíveis brechas e fraquezas no sistema que podem resultar em perda de informações, lucros e reputação nas mãos de colaboradores ou forasteiros da Organização.

Uma vez identificadas, as vulnerabilidades são verificadas de forma que o sistema não pare de funcionar e não possa ser explorado.

# Princípios Chave do Teste de Segurança

  • Confidencialidade: Limitando acesso ao acesso sensível administrado por um sistema.
  • Integridade: Garantindo que os dados são consistentes, precisos, e confiáveis através do ciclo de vida do software, e não pode ser modificado por usuários não-autorizados.
  • Autenticação: Verficando que dados ou sistemas sensíveis são protegidos por um mecanismo que verifica a identidade do usuário que os acessa.
  • Autorização: Definindo que todos os dados e sistemas sensíveis possuam contorle de acesso para usuários autenticados de acordo com seus papéis ou permissões.
  • Disponibilidade: Garantindo que dados e sistemais críticos ficam disponíveis para seus usuários quando necessários.
  • Não-Repúdio: Estabelece que um dado enviado ou recebido não pode ser negado, ao trocar informações de autenticação com um time stamp demonstrável.

# Tipos de Teste de Segurança

Tipos de Teste de Segurança
  • Scan de Vulnerabilidades: Feito através de software automatizado para explorar o sistema em busca de assinaturas de vulnerabilidades;
  • Scan de Segurança: Envolve a identificação de fraquezas na rede e no sistema, provendo soluções para reduzir estes riscos. Este scan pode ser aplicado de forma manual ou automatizada;
  • Teste de Penetração: Esta modalidade simula ataques de hackers maliciosos. Aqui, envolvemos a análise de um sistema particular para verificar potenciais vulnerabilidades a ataques externos;
  • Avaliação de Risco: Esta técnica envolve a análise de riscos na segurança observados dentra da organização. Riscos são então classificados em baixo, médio e alto. Este teste recomenda controles e medidas para redução dos riscos;
  • Auditoria de Segurança: Inspeção interna de aplicações e Sistemas Operacionais por falhas na segurança. Uma auditoria também pode ser feita linha a linha no código;
  • Hacking Ético: Processo de hackear uma organização sem intenções malignas, mas sim, para expor e corrigir riscos de segurança do sistema;
  • Avaliação de Postura: Isto combina o scan de segurança, o hacking ético e a avaliação de riscos para demonstrar a postura de segurança geral de uma organização;

# Como Aplicar o Teste de Segurança

É consenso que, quanto mais cedo aplicados os testes de segurança, melhores seus resultados para o projeto.

Fluxograma Teste de Segurança
  • Requirements: Análise de segurança em requerimentos, checagem de casos de abuso/mau uso.
  • Design: Análise de riscos de segurança no design, desenvolvimento de um plano de testes que inclua testes de segurança.
  • Testagem de Código e Unidade: Testes estáticos e dinâmicos, bem como testes de segurança caixa-branca.
  • Teste de Integração: caixa preta.
  • Teste de Sistema: caixa preta e scan de vulnerabildiade.
  • Implementação: Teste de penetração, scan de vulnerabilidade.
  • Suporte: Análise de impacto de patches.

O plano de testes deve incluir:

  1. Casos de teste, e cenários, relacionados a segurança.
  2. Dados de teste relacionados com testagem de segurança
  3. Ferramentas de teste necessárias para a aplicação
  4. Análisa dos outputs de testes, nas diferentes ferramentas

# Exemplos de Cenários de Testes

  • Uma senha deveria estar encriptada
  • Aplicação ou sistema não devem permitir usuários inválidos
  • Verificar os cookies e tempo da sessão pra um aplicativo
  • Para sites financeiros, o botão voltar no browser não deveria funcionar

# Metodologias/Abordagens/Técnicas de Segurança

  • Tiger Box: Este método de hacking é geralmente feito em um laptop que possua uma coleção de sistemas operacionais e ferramentas de hacking. Este teste auxilia a testers de penetração a conduzir avaliação de vulnerabilidades e ataques.
  • Black Box: O tester está autorizado a performar os testes em tudo sobre a topologia da rede e tecnologia.
  • Grey Box: Informação parcial é fornecida ao tester sobre o sistema, é um híbrido.

# Papéis no Teste de Segurança

  1. Hackers: Acessam o sistema de computadores ou rede sem autorização
  2. Crackers: Forçam a entrada em sistemas para roubar ou destruir dados
  3. Script Kiddies ou Packet Monkets: Hackers inexperientes com as linguagens de programação

# Ferramentas do Teste de Segurança

Veja abaixo algumas ferramentas de teste de segurança:

  1. Acunetix (opens new window)
  2. Intruder (opens new window)
  3. Owasp (opens new window)
  4. WireShark (opens new window)
  5. W3af (opens new window)