web application security testing guide
como abrir jar com java
Devido à enorme quantidade de dados armazenados em aplicativos da Web e ao aumento no número de transações na Web, o Teste de Segurança de Aplicativos da Web está se tornando muito importante no dia a dia.
Neste artigo, aprenderemos em detalhes sobre os termos-chave usados no Teste de Segurança de Site e sua abordagem de teste.
O que você aprenderá:
- O que é teste de segurança?
- Alguns termos-chave usados em testes de segurança
- Ferramentas de teste de segurança recomendadas
- Abordagem de teste de segurança
- Métodos para teste de segurança na web
- Conclusão
- Leitura recomendada
O que é teste de segurança?
Teste de Segurança é o processo que verifica se o dados confidenciais permanecem confidenciais ou não (ou seja, não é exposto a indivíduos / entidades para as quais não se destina) e os usuários podem realizar apenas as tarefas para as quais estão autorizados a realizar
Por exemplo, um usuário não deve ser capaz de negar a funcionalidade do site a outros usuários ou um usuário não deve ser capaz de alterar a funcionalidade do aplicativo da web de uma forma não intencional, etc.
Alguns termos-chave usados em testes de segurança
Antes de prosseguirmos, será útil nos familiarizarmos com alguns termos que são freqüentemente usados em testes de segurança de aplicativos da web:
O que é “Vulnerabilidade”?
Este é o ponto fraco do aplicativo da web. A causa de tal “fraqueza” pode ser devido a bugs no aplicativo, uma injeção (código SQL / script) ou a presença de vírus.
O que é “Manipulação de URL”?
Alguns aplicativos da web comunicam informações adicionais entre o cliente (navegador) e o servidor na URL. Alterar algumas informações no URL pode, às vezes, levar a um comportamento indesejado do servidor e isso é denominado Manipulação de URL .
O que é “injeção de SQL”?
Este é o processo de inserir instruções SQL por meio da interface do usuário do aplicativo da web em alguma consulta que é então executada pelo servidor.
O que é “XSS (Cross-Site Scripting)”?
Quando um usuário insere HTML / script do lado do cliente na interface do usuário de um aplicativo da web, essa inserção é visível para outros usuários e é denominada como XSS .
O que é “spoofing”?
A criação de sites ou e-mails semelhantes a hoax é chamada Spoofing .
Ferramentas de teste de segurança recomendadas
# 1) Acunetix
como abrir um arquivo .xml
Acunetix é um verificador de segurança de aplicativo da web de ponta a ponta. Ele dará uma visão de 360 graus da segurança de sua organização. Ele é capaz de detectar 6.500 tipos de vulnerabilidades como injeções de SQL, XSS e senhas fracas, etc. Ele usa tecnologia de gravação de macro avançada para verificar formulários complexos de vários níveis.
A plataforma é intuitiva e fácil de usar. Você pode agendar e priorizar varreduras completas, bem como varreduras incrementais. Ele contém uma funcionalidade de gerenciamento de vulnerabilidade integrada. Com a ajuda de ferramentas de CI como Jenkins, novos builds podem ser verificados automaticamente.
=> Experimente Acunetix para segurança de aplicativos da Web
# 2) Kiuwan
Encontre e corrija vulnerabilidades em seu código em cada estágio do SDLC.
Kiuwan é compatível com os padrões de segurança mais rigorosos, incluindo OWASP, CWE, SANS 25, HIPPA e mais.Integre Kiuwan em seu IDE para feedback instantâneo durante o desenvolvimento. Kiuwan oferece suporte a todas as principais linguagens de programação e se integra às principais ferramentas DevOps.
=> Digitalize o seu código gratuitamente
Abordagem de teste de segurança
Para realizar um teste de segurança útil de um aplicativo da Web, o testador de segurança deve ter bons conhecimentos sobre o protocolo HTTP.
É importante entender como o cliente (navegador) e o servidor se comunicam usando HTTP.
Além disso, o testador deve saber pelo menos os fundamentos de injeção de SQL e XSS.
Felizmente, o número de defeitos de segurança presentes no aplicativo da web não será alto. No entanto, ser capaz de descrever todos os defeitos de segurança com precisão com todos os detalhes necessários certamente ajudará.
Métodos para teste de segurança na web
# 1) Quebra de senha
O teste de segurança em um Aplicativo da Web pode ser iniciado por “Quebra de senha”. Para fazer o login nas áreas privadas do aplicativo, pode-se adivinhar um nome de usuário / senha ou usar alguma ferramenta de cracker de senha para o mesmo. Uma lista de nomes de usuário e senhas comuns está disponível junto com crackers de senha de código aberto.
Se o aplicativo da web não impõe uma senha complexa ( Por exemplo, com alfabetos, números e caracteres especiais ou com pelo menos um número obrigatório de caracteres), pode não demorar muito para quebrar o nome de usuário e a senha.
Se um nome de usuário ou senha for armazenado em cookies sem criptografia, um invasor pode usar métodos diferentes para roubar os cookies e as informações armazenadas nos cookies, como nome de usuário e senha.
Para mais detalhes, veja um artigo sobre “ Teste de cookies de sites ”.
# 2) Manipulação de URL por meio de métodos HTTP GET
Um testador deve verificar se o aplicativo passa informações importantes na string de consulta ou não. Isso acontece quando o aplicativo usa o método HTTP GET para passar informações entre o cliente e o servidor.
A informação é passada através dos parâmetros na string de consulta. O testador pode modificar um valor de parâmetro na string de consulta para verificar se o servidor o aceita.
Por meio de solicitação HTTP GET, as informações do usuário são passadas ao servidor para autenticação ou busca de dados. O invasor pode manipular todas as variáveis de entrada passadas dessa solicitação GET para um servidor para obter as informações necessárias ou corromper os dados. Nessas condições, qualquer comportamento incomum do aplicativo ou servidor da Web é a porta de entrada para o invasor entrar no aplicativo.
# 3) Injeção SQL
O próximo fator que deve ser verificado é a injeção de SQL. A inserção de aspas simples (‘) em qualquer caixa de texto deve ser rejeitada pelo aplicativo. Em vez disso, se o testador encontrar um erro no banco de dados, isso significa que a entrada do usuário é inserida em alguma consulta que é executada por um aplicativo. Nesse caso, o aplicativo está vulnerável à injeção de SQL.
Os ataques de injeção de SQL são muito críticos, pois um invasor pode obter informações vitais do banco de dados do servidor. Para verificar os pontos de entrada de injeção de SQL em seu aplicativo da web, descubra o código de sua base de código onde as consultas MySQL diretas são executadas no banco de dados aceitando algumas entradas do usuário.
perguntas e respostas da entrevista de programação java para experientes
Se os dados de entrada do usuário forem criados em consultas SQL para consultar o banco de dados, um invasor pode injetar instruções SQL ou parte das instruções SQL como entradas do usuário para extrair informações vitais de um banco de dados. Mesmo se um invasor conseguir travar o aplicativo, a partir do erro de consulta SQL mostrado em um navegador, o invasor pode obter as informações que está procurando.
Os caracteres especiais das entradas do usuário devem ser tratados / escapados adequadamente em tais casos.
# 4) Cross-Site Scripting (XSS)
Além disso, um testador deve verificar se há XSS (Cross-site scripting) no aplicativo da web. Qualquer HTML Por exemplo, ou qualquer script Por exemplo, não deve ser aceite pela aplicação. Se for, o aplicativo pode estar sujeito a um ataque de Cross-Site Scripting.
O invasor pode usar este método para executar um script malicioso ou URL no navegador da vítima. Usando scripts entre sites, um invasor pode usar scripts como JavaScript para roubar cookies do usuário e informações armazenadas nos cookies.
Muitos aplicativos da web obtêm algumas informações úteis e passam essas informações em algumas variáveis de páginas diferentes.
Por exemplo, http://www.examplesite.com/index.php?userid=123 &consulta = xyz
O invasor pode facilmente passar alguma entrada maliciosa ou como um parâmetro '& query' que pode explorar dados importantes do usuário / servidor no navegador.
Importante: Durante o teste de segurança, o testador deve ter muito cuidado para não modificar nenhum dos seguintes:
- Configuração da aplicação ou servidor
- Serviços em execução no servidor
- Dados existentes de usuários ou clientes hospedados pelo aplicativo
Além disso, um teste de segurança deve ser evitado em um sistema de produção.
Conclusão
O objetivo de um teste de segurança é descobrir as vulnerabilidades do aplicativo da web para que os desenvolvedores possam remover essas vulnerabilidades do aplicativo e tornar o aplicativo da web e os dados protegidos de qualquer ação não autorizada.
Leitura recomendada => Diferença entre SAST / DAST / IAST / RASP
Sinta-se à vontade para compartilhar seus comentários / sugestões sobre este artigo.
Leitura recomendada
- Guia para iniciantes em testes de penetração em aplicativos da Web
- Teste de segurança (um guia completo)
- Teste Alfa e Teste Beta (um guia completo)
- Teste de segurança de rede e as melhores ferramentas de segurança de rede
- Melhores ferramentas de teste de software 2021 (QA Test Automation Tools)
- Guia completo de teste de verificação de compilação (teste BVT)
- As 4 principais ferramentas de teste de segurança de código aberto para testar aplicativos da Web
- Teste Funcional Vs Teste Não Funcional