Introdução aos testes de segurança

O Teste de segurança é um tipo de teste de software projetado para detectar vulnerabilidades do sistema e garantir que suas informações e recursos estejam protegidos contra possíveis invasores. Da mesma forma, um aplicativo da Web precisa, além da proteção de dados, de segurança em relação ao seu acesso. O aplicativo deve ser imune a ataques de força bruta e XSS, SQL Injections, de um desenvolvedor da web. Da mesma forma, os pontos de acesso remoto do aplicativo Web também devem ser seguros. No entanto, o significado da segurança cresce exponencialmente quando falamos sobre a Internet. Ninguém jamais pensará nisso se um sistema online não puder proteger os dados da transação. Segurança ainda não é um termo para sua definição.
Aqui está a lista Algumas de falhas de segurança
• Se a ramificação 'Entry' puder editar as informações do exame, um sistema de gerenciamento de alunos é inseguro.
• Se o DEO (operador de entrada de dados) puder produzir 'relatórios', um esquema de ERP não é seguro.
• Se os detalhes do cartão de crédito de um cliente não estiverem criptografados, o site on-line não terá segurança.
• Um software personalizado tem segurança insuficiente quando uma consulta SQL encontra senhas de usuário verdadeiras.

Tipos de teste de segurança

O Manual de Metodologia de Teste de Segurança de Código Aberto possui sete tipos principais de testes de segurança. A seguir, são descritos:

1. Verificação de vulnerabilidades

Isso é realizado por meio de software automatizado para verificar se há assinaturas conhecidas da vulnerabilidade em um sistema.

2. Verificação de Segurança

Inclui a identificação de pontos fracos na rede e no sistema e oferece alternativas para diminuir esses riscos. Para varredura manual e automatizada, essa varredura pode ser feita.

3. Teste de penetração

Este teste simula um ataque malicioso de hacker. Esse exame inclui a análise de um sistema específico para detectar possíveis vulnerabilidades a hackers internos.

4. Avaliação de Risco

Este teste inclui a análise dos riscos à segurança observados na empresa. Os riscos têm classificação baixa, média e alta. Este teste propõe controles e ações de redução de risco.

5. Auditoria de Segurança

A auditoria também pode ser realizada on-line por linha, inspeções de código e sistemas operacionais para falhas de segurança.

6. Hacking Ético

Hacking ético não é o mesmo que hacking maligno. O hacking ético visa identificar falhas de segurança na estrutura organizacional.

7. Avaliação Postural

Isso combina varredura de segurança, avaliações de risco e hackers éticos para mostrar uma posição geral de segurança de uma organização.

Metodologias de Teste de Segurança

Existem diferentes metodologias de teste de segurança
1. Tiger Box
2. Caixa Preta
3. Caixa Cinza

Caixa do tigre:

Esse hacking geralmente é realizado em um laptop com um sistema operacional e uma coleção de ferramentas de hackers. Este teste permite que operadores de teste de penetração e operadores de teste de segurança avaliem e atacem vulnerabilidades.

Caixa preta:

O Black Box Testing é um método de teste de software conhecido pelo testador como Teste Comportamental. Dessa forma, o design interno do produto de teste não é conhecido. Esses exames podem ser funcionais ou não.

Caixa cinza:

O Gray Box Testing é uma técnica de teste de software que combina os testes Black Box e White Box. O Gray Box Testing é um método para testar o aplicativo ou produto de software que faz parte do trabalho interno de uma implementação.

Como podemos fazer testes de segurança?

Sempre foi acordado que, se adiarmos os testes de segurança após a implementação ou implantação de software, esse custo será aumentado. Nos estágios anteriores, os testes de segurança devem ser realizados no ciclo de vida do SDLC. Vejamos os procedimentos de segurança apropriados para cada estágio do SDLC. Para as áreas de entrada, o testador pode inspecionar os comprimentos máximos. Essa limitação não pode permitir que um hacker inclua scripts maliciosos.
• Avaliação de segurança de requisitos e verificação de abuso / uso indevido.
• Análise de riscos de segurança para o projeto. Desenvolvimento do plano de teste, incluindo testes de segurança.

As 10 principais ferramentas de teste de segurança de código aberto

Abaixo está a lista das principais ferramentas de Teste de Segurança, juntamente com seus recursos. Você pode escolher qualquer ferramenta com base em suas necessidades.

1. Wapiti

O Wapiti é uma poderosa ferramenta de teste de segurança de aplicativos da web para avaliar a segurança de seus aplicativos da web. Ele realiza o 'teste da caixa preta' para verificar a possível vulnerabilidade em aplicativos da web. Ele digitaliza as páginas da web e injeta informações de teste para monitorar a deficiência de segurança durante a fase de teste. O Wapiti define várias vulnerabilidades para o suporte de ataques HTTP GET e POST. O Wapiti é um aplicativo para comandos difíceis para iniciantes, mas simples para profissionais. O software precisa de um entendimento completo dos comandos.

Recursos do Wapiti

• Injeção de XSS
• Injeção de banco de dados
• Detecção de execução de comando.
• CRLF de injeção

2. Proxy Zed Attack

O Zed Attack Proxy, conhecido como ZAP, o ZAP foi criado pelo OWASP e com esse ZAP é de código aberto. Zed Attack Proxy Compatível com Unix / Linux, Windows e Mac OS, o Zed Attack Proxy permite identificar uma variedade de vulnerabilidades, mesmo durante o estágio de desenvolvimento e teste em aplicativos da Web. Esta ferramenta de teste é fácil de usar, mesmo quando você é iniciante em testes de penetração.

Recursos do Zed Attack

• O Zed Attack Proxy possui um scanner de automação e suporte à autenticação.
• O Zed Attack Proxy também possui um certificado SSL dinâmico e suporte para soquete da web.

3. Vega

Escrito em JAVA, o Vega possui uma GUI. É acessível no Linux, Mac OS e Windows, o que pode ajudá-lo. Vega é uma ferramenta gratuita de teste de aplicativos da web e uma plataforma de código aberto. A Vega pode ajudar na localização e validação de Injeção SQL, XSS (Cross-Site Scripting) e outras vulnerabilidades. Também pode ser usado para definir preferências, como o número de descendentes do caminho e o número de nós por segundo, pedidos máximo e mínimo por segundo.

Recursos do Vega

• O Vega possui scripts entre sites.
• Validação de injeção SQL

4. W3af

O W3af é uma famosa estrutura de teste de segurança para aplicativos da web. Ele fornece uma plataforma eficaz de teste de penetração de aplicativos da Web, desenvolvida usando Python. Essa ferramenta pode ser usada para identificar mais de 200 tipos de problemas de segurança de aplicativos da Internet, como scripts entre sites e injeção de SQL. Ele monitora as seguintes vulnerabilidades de aplicativos da web. O W3af pode ser facilmente entendido nas interfaces GUI e console. Os módulos de autenticação também permitem autenticar o site.

Recursos do W3af

• Vários ajustes defeituosos do CORS
• CSRF e muito mais vulnerabilidade

5. Skipfish

O Skipfish é uma ferramenta de teste supervisionada por aplicativos da Internet que corrige o site e verifica se há alguma fraqueza em cada página e, finalmente, prepara o relatório de auditoria. O Skipfish é escrito na linguagem c e é otimizado para manipular HTTP e deixar o mínimo de pegadas de CPU. Sem mostrar uma pegada de CPU, o software que afirma processar 2 K solicitações por segundo. A ferramenta também afirma oferecer benefícios de alta qualidade, pois utiliza heurísticas em aplicativos da Web. Para aplicativos da Internet, Linux, FreeBSD, Mac-OS X e Windows são fornecidos com as ferramentas de avaliação de segurança Skipfish.

6. SQLMap

O SQLMap é uma ferramenta comum de teste de segurança baseada na Web para automatizar o processo de detecção de vulnerabilidades de injeção SQL em um banco de dados de sites. Empacotado com vários recursos diferentes, o mecanismo de teste é poderoso, permitindo fácil penetração e teste de injeção de SQL em um aplicativo Web. O SQLMap suporta muitos bancos de dados, incluindo MySQL, Oracle, PostgreSQL, Microsoft SQL, etc. Além disso, a ferramenta de teste suporta seis métodos diferentes de injeção de SQL.

7. Wfuzz

O Wfuzz é outra ferramenta de código aberto que pode ser livremente acessível no mercado para uma ferramenta de teste de segurança baseada na Web. Esta ferramenta de teste foi desenvolvida em Python e é usada para aplicativos da Web para força bruta. Você precisa operar na interface da linha de comandos ao usar o WFuzz porque não há interface da GUI. Algumas das características do Wfuzz são:

Recursos do Wfuzz

• O Wifuzz suporta múltiplos pontos de injeção.
• O OutPut do Wfuzz vem em HTML
• Também possui Multi-threading
• Também possui suporte a múltiplos proxy

8. Metasploit

Uma das estruturas mais usadas para testes de penetração. O Metasploit é uma plataforma de testes de código aberto que permite testes de segurança muito além da avaliação de riscos.

Recursos do Metasploit

• A estrutura é muito melhor que a dos rivais.
• Muitos cenários para funções simuladas de infiltração

9. Acunetix

Uma ferramenta completa de avaliação de penetração de automação para verificar se há mais de 4500 vulnerabilidades nos seus sites. O recurso mais impressionante da Acunetix é que ele pode apressar milhares de páginas sem interrupção.

Recurso do Acunetix

  • Pode produzir prontamente muitos remédios técnicos e de conformidade.
  • Verifica aplicativos de código aberto e personalizados
  • Varreduras profundas para uma varredura eficiente.

10. Grabber

O Grabber é um scanner de código aberto para detectar vulnerabilidades de segurança de aplicativos da Internet. Pequenos aplicativos da web, como fóruns e sites privados da Internet, são móveis e podem ser verificados. O Grabber é uma pequena ferramenta de teste que leva mais tempo para digitalizar aplicativos grandes. Além disso, o scanner não possui interface GUI nem recurso de geração de relatórios em PDF, pois foi projetado para ser usado para uso pessoal.

Recursos do Grabber

• Backup de verificação de arquivo
• Verificação do Ajax

Conclusão

Neste artigo, vimos o que é teste de segurança, por que precisamos dele, juntamente com diferentes tipos de teste de segurança, ferramentas usadas para executar o teste e os recursos. Espero que este artigo o ajude a escolher as ferramentas de teste com base em seus requisitos e recursos fornecidos acima.

Artigos recomendados

Este é um guia para testes de segurança. Aqui discutimos a introdução, tipos, metodologias e as 10 principais ferramentas de teste de segurança de código aberto. Você também pode consultar nossos outros artigos sugeridos para saber mais -

  1. Teste Alfa vs Teste Beta
  2. Teste estático
  3. O que é teste de usabilidade?
  4. Ferramentas de Teste de Desempenho
  5. Vantagens e desvantagens do teste beta
  6. Aprenda as ferramentas de teste de aplicativos