# 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
- 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.
- 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:
- Casos de teste, e cenários, relacionados a segurança.
- Dados de teste relacionados com testagem de segurança
- Ferramentas de teste necessárias para a aplicação
- 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
- Hackers: Acessam o sistema de computadores ou rede sem autorização
- Crackers: Forçam a entrada em sistemas para roubar ou destruir dados
- 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: