beginners guide web application penetration testing
Teste de penetração também conhecido como Pen Test é a técnica de teste de segurança mais comumente usada para aplicativos da web.
O teste de penetração de aplicativos da Web é feito simulando ataques não autorizados interna ou externamente para obter acesso a dados confidenciais.
Uma penetração na web ajuda o usuário final a descobrir a possibilidade de um hacker acessar os dados da internet, descobrir sobre a segurança de seus servidores de e-mail e também saber o quão seguro é o site de hospedagem e o servidor.
Bem, agora vamos cobrir o conteúdo deste artigo.
melhor limpador de pc grátis windows 7
(imagem fonte )
Neste tutorial de teste de penetração, tentei cobrir:
- A necessidade do Pentest para teste de aplicativos da web,
- Metodologia padrão disponível para Pentest,
- Abordagem para Pentest de aplicativos da web,
- Quais são os tipos de teste que podemos realizar,
- Etapas a serem seguidas para realizar um teste de penetração,
- Ferramentas que podem ser usadas para testes,
- Alguns dos provedores de serviço de teste de penetração e
- Algumas das certificações para teste de penetração na web
Ferramentas de verificação de vulnerabilidade recomendadas:
# 1) Net parker
O Netsparker é uma plataforma de teste de segurança de aplicativos da web fácil de usar e automatizada que você pode usar para identificar vulnerabilidades reais e exploráveis em seus sites.
#dois) 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 gratuitamenteO que você aprenderá:
- Por que o teste de penetração é necessário?
- Metodologia de teste de penetração na web
- Tipos de teste de penetração na web
- Abordagem do Web Pen Testing:
- Principais ferramentas de teste de penetração
- Melhores empresas de testes de penetração
- Algumas certificações de teste de penetração:
- Conclusão
- Leitura recomendada
Por que o teste de penetração é necessário?
Quando falamos sobre segurança, a palavra mais comum que ouvimos é Vulnerabilidade .
Quando comecei a trabalhar como testador de segurança, costumava ficar confuso com frequência com a palavra Vulnerabilidade, e tenho certeza que muitos de vocês, meus leitores cairiam no mesmo barco.
Para o benefício de todos os meus leitores, primeiro irei esclarecer a diferença entre vulnerabilidade e teste de caneta.
Então, o que é Vulnerabilidade ? A vulnerabilidade é uma terminologia usada para identificar falhas no sistema que podem expor o sistema a ameaças de segurança.
Verificação de vulnerabilidade ou teste de caneta?
A varredura de vulnerabilidade permite que o usuário descubra os pontos fracos conhecidos do aplicativo e define métodos para corrigir e melhorar a segurança geral do aplicativo. Basicamente, ele descobre se os patches de segurança estão instalados, se os sistemas estão configurados corretamente para dificultar os ataques.
Os testes de caneta simulam principalmente sistemas em tempo real e ajudam o usuário a descobrir se o sistema pode ser acessado por usuários não autorizados, se sim, quais danos podem ser causados e a quais dados, etc.
Portanto, a Varredura de Vulnerabilidade é um método de controle de detetive que sugere maneiras de melhorar o programa de segurança e garantir que as fraquezas conhecidas não voltem à superfície, enquanto o teste de caneta é um método de controle preventivo que dá uma visão geral da camada de segurança existente do sistema.
Porém, ambos os métodos têm sua importância, mas dependerá do que realmente é esperado como parte do teste.
Como testadores, é fundamental deixar claro o propósito do teste antes de iniciarmos o teste. Se o objetivo for claro, você pode definir muito bem se precisa fazer uma varredura de vulnerabilidade ou um teste de caneta.
Importância e a necessidade de teste de caneta de aplicativo da Web:
- Pentest ajuda a identificar vulnerabilidades desconhecidas.
- Ajuda a verificar a eficácia das políticas gerais de segurança.
- Ajude a testar os componentes expostos publicamente, como firewalls, roteadores e DNS.
- Permite que o usuário descubra a rota mais vulnerável pela qual um ataque pode ser feito
- Ajuda a encontrar lacunas que podem levar ao roubo de dados confidenciais.
Se você observar a demanda atual do mercado, verá que houve um grande aumento no uso de dispositivos móveis, o que está se tornando um grande potencial para ataques. O acesso a sites por meio de celulares está sujeito a ataques mais frequentes e, portanto, ao comprometimento dos dados.
O teste de penetração, portanto, torna-se muito importante para garantir que construamos um sistema seguro que pode ser usado pelos usuários sem qualquer preocupação de hacking ou perda de dados.
Metodologia de teste de penetração na web
A metodologia nada mais é do que um conjunto de diretrizes da indústria de segurança sobre como o teste deve ser conduzido. Existem algumas metodologias e padrões bem estabelecidos e famosos que podem ser usados para testes, mas como cada aplicação web exige diferentes tipos de teste a serem realizados, os testadores podem criar suas próprias metodologias, referindo-se aos padrões disponíveis no mercado.
Algumas das metodologias e padrões de teste de segurança são:
- OWASP (Abra o projeto de segurança de aplicativos da Web)
- OSSTMM (Manual de metodologia de teste de segurança de código aberto)
- PTF (Estrutura de teste de penetração)
- ISSAF (Estrutura de avaliação de segurança de sistemas de informação)
- PCI DSS (Padrão de segurança de dados da indústria de cartões de pagamento)
Cenários de teste:
Listados abaixo estão alguns dos cenários de teste que podem ser testados como parte do Teste de penetração de aplicativos da Web (WAPT):
- Cross Site Scripting
- Injeção SQL
- Autenticação quebrada e gerenciamento de sessão
- Falhas no upload de arquivos
- Ataques de servidores de cache
- Configurações incorretas de segurança
- Falsificação de solicitação entre sites
- Quebra de senha
Embora eu tenha mencionado a lista, os testadores não devem criar cegamente sua metodologia de teste com base nos padrões convencionais acima.
Aqui está umexemplopara provar por que estou dizendo isso.
Considere que você foi solicitado a fazer um teste de penetração em um site de comércio eletrônico, agora pense se todas as vulnerabilidades de um site de comércio eletrônico podem ser identificadas usando os métodos convencionais de OWASP como XSS, injeção de SQL etc.
A resposta é Não, porque o comércio eletrônico funciona em uma plataforma e tecnologia muito diferente em comparação com outros sites. Para tornar seu teste de caneta para site de comércio eletrônico eficaz, os testadores devem criar uma metodologia que envolva falhas como gerenciamento de pedidos, gerenciamento de cupons e recompensas, integração de gateway de pagamento e integração de sistema de gerenciamento de conteúdo.
Portanto, antes de decidir sobre a metodologia, certifique-se de quais tipos de site devem ser testados e qual método ajudará a encontrar o máximo de vulnerabilidades.
Tipos de teste de penetração na web
Os aplicativos da Web podem ser testados quanto à penetração de 2 maneiras. Os testes podem ser projetados para simular um ataque interno ou externo.
# 1) Teste de penetração interna -
Como o nome sugere, o teste de caneta interno é feito dentro da organização pela LAN, portanto, inclui o teste de aplicativos da web hospedados na intranet.
Isso ajuda a descobrir se pode haver vulnerabilidades dentro do firewall corporativo.
Sempre acreditamos que os ataques podem acontecer apenas externamente e muitas vezes o Penteste interno é esquecido ou não é dado muita importância.
Basicamente, inclui Ataques de Funcionários Maliciosos por funcionários insatisfeitos ou contratados que teriam renunciado, mas cientes das políticas de segurança interna e senhas, Ataques de Engenharia Social, Simulação de Ataques de Phishing e Ataques usando Privilégios de Usuário ou uso indevido de um terminal desbloqueado.
O teste é feito principalmente acessando o ambiente sem as credenciais adequadas e identificando se um
#dois) Teste de penetração externa -
software de inteligência artificial grátis para pc
Esses são ataques feitos externamente de fora da organização e incluem testes de aplicativos da web hospedados na Internet.
Os testadores se comportam como hackers que não estão muito cientes do sistema interno.
Para simular tais ataques, os testadores recebem o IP do sistema de destino e não fornecem nenhuma outra informação. Eles são obrigados a pesquisar e escanear páginas da web públicas e encontrar nossas informações sobre hosts alvo e, em seguida, comprometer os hosts encontrados.
Basicamente, inclui servidores de teste, firewalls e IDS.
Abordagem do Web Pen Testing:
Pode ser conduzido em 3 fases:
# 1) Fase de planejamento (antes do teste)
Antes de iniciar o teste, é aconselhável planejar quais tipos de teste serão realizados, como o teste será realizado, determinar se o controle de qualidade precisa de qualquer acesso adicional às ferramentas, etc.
- Definição de escopo - É o mesmo que nosso teste funcional, em que definimos o escopo de nosso teste antes de iniciar nossos esforços de teste.
- Disponibilidade de documentação para testadores - Certifique-se de que os testadores tenham todos os documentos necessários, como documentos detalhando a arquitetura da web, pontos de integração, integração de serviços da web, etc. O testador deve estar ciente dos fundamentos do protocolo HTTP / HTTPS e saber sobre a arquitetura do aplicativo da Web, formas de interceptação de tráfego.
- Determinando os critérios de sucesso - Ao contrário de nossos casos de teste funcional, onde podemos derivar os resultados esperados dos requisitos do usuário / requisitos funcionais, o teste de caneta funciona em um modelo diferente. Os critérios de sucesso ou os critérios de aprovação do caso de teste precisam ser definidos e aprovados.
- Revisando os resultados do teste do Teste Anterior - Se o teste anterior já foi feito, é bom revisar os resultados do teste para entender quais vulnerabilidades existiam no passado e que remediação foi feita para resolver. Isso sempre dá uma imagem melhor dos testadores.
- Compreendendo o meio ambiente - Os testadores devem obter conhecimento sobre o ambiente antes de iniciar o teste. Essa etapa deve garantir que eles entendam os firewalls ou outros protocolos de segurança que precisariam ser desativados para realizar o teste. O navegador a ser testado deve ser convertido em uma plataforma de ataque, geralmente feito por meio da troca de proxies.
# 2) Fase de Ataques / Execução (durante o teste):
O teste de penetração na web pode ser feito de qualquer local, visto que não deve haver restrições de portas e serviços por parte do provedor de internet.
- Certifique-se de executar um teste com diferentes funções de usuário - Os testadores devem garantir a execução de testes com usuários com funções diferentes, uma vez que o sistema pode se comportar de maneira diferente em relação a usuários com privilégios diferentes.
- Conscientização sobre como lidar com a pós-exploração - Os testadores devem seguir os Critérios de Sucesso definidos como parte da Fase 1 para relatar qualquer exploração, também devem seguir o processo definido de relatar vulnerabilidades encontradas durante o teste. Esta etapa envolve principalmente o testador para descobrir o que precisa ser feito depois de descobrir que o sistema foi comprometido.
- Geração de relatórios de teste - Qualquer teste feito sem relatórios adequados não ajuda muito a organização, o mesmo é o caso com o teste de penetração de aplicativos da web. Para garantir que os resultados do teste sejam compartilhados adequadamente com todas as partes interessadas, os testadores devem criar relatórios adequados com detalhes sobre as vulnerabilidades encontradas, a metodologia usada para o teste, a gravidade e a localização do problema encontrado.
# 3) Fase de pós-execução (após o teste):
Assim que o teste for concluído e os relatórios de teste compartilhados com todas as equipes envolvidas, a lista a seguir deve ser trabalhada por todos -
- Sugerir remediação - O Pen Testing não deve apenas terminar identificando vulnerabilidades. A equipe envolvida, incluindo um membro do QA, deve revisar as descobertas relatadas pelos Testadores e, em seguida, discutir a correção.
- Vulnerabilidades de reteste - Depois que a correção é feita e implementada, os testadores devem testar novamente para garantir que as vulnerabilidades corrigidas não apareçam como parte do reteste.
- Limpar - Como parte do Pentest, os testadores fazem alterações nas configurações de proxy, portanto, a limpeza deve ser feita e todas as alterações revertidas.
Principais ferramentas de teste de penetração
Agora, como você já leu o artigo completo, acredito que agora você tenha uma ideia muito melhor sobre o que e como podemos testar uma aplicação web de penetração.
Então me diga, podemos realizar manualmente o teste de penetração ou isso sempre acontece automatizando usando uma ferramenta. Sem dúvida, acho que a maioria de vocês está dizendo automação. :)
como testar um site com caneta
Isso é verdade porque a automação traz velocidade, evita erro humano manual, excelente cobertura e vários outros benefícios, mas no que diz respeito ao Pen Test, exige que realizemos alguns testes manuais.
O Teste Manual ajuda a encontrar vulnerabilidades relacionadas à lógica de negócios, reduzindo os falsos positivos.
As ferramentas tendem a dar muitos falsos positivos e, portanto, a intervenção manual é necessária para determinar se são vulnerabilidades reais.
Leia também - Como testar a segurança de aplicativos da Web usando a ferramenta Acunetix Web Vulnerability Scanner (WVS)
Ferramentas são criadas para automatizar nossos esforços de teste. Veja abaixo uma lista de algumas das ferramentas que podem ser usadas para Pentest:
Para mais ferramentas, você também pode consultar - 37 poderosas ferramentas de teste de caneta para cada testador de penetração
Melhores empresas de testes de penetração
Os Provedores de Serviços são empresas que fornecem serviços que atendem às necessidades de teste das organizações. Eles geralmente se destacam e possuem experiência em diferentes áreas de teste, e podem realizar testes em seu ambiente de teste hospedado.
A seguir mencionadas estão algumas das empresas líderes que fornecem serviços de teste de penetração:
- PSC (Conformidade de segurança de pagamentos)
- Netragard
- Securestate
- Fogo de carvão
- Segurança HIGHBIT
- Nettitude
- 360
- NetSPi
- ControlScan
- Skods Minotti
- 2 | Sec
- Avaliação de Segurança
- Sistemas de auditoria de segurança
- Hacklabs
- CQR
Algumas certificações de teste de penetração:
Se você estiver interessado em obter a certificação de penetração de aplicativo da web, pode optar pelas certificações abaixo:
- OSWE (Especialista em segurança ofensiva da Web)
- GWAPT (GIAC Web Application Penetration Tester)
- CWAPT (Testador certificado de penetração de aplicativos da Web)
- eWPT (testador de penetração de aplicativo da web elearnSecurity)
Conclusão
Neste tutorial, apresentamos uma visão geral de como o teste de penetração é executado para aplicativos da web.
Com essas informações, o testador de penetração pode iniciar testes de vulnerabilidade.
Idealmente, o teste de penetração pode nos ajudar a criar um software seguro. É um método caro, portanto a frequência pode ser mantida uma vez por ano.
Para saber mais sobre o teste de penetração, leia os artigos relacionados abaixo:
- Uma abordagem para teste de segurança de aplicativos da Web
- Teste de penetração - Guia completo com casos de teste de amostra
- Como testar a segurança de aplicativos - Técnicas de teste de segurança de aplicativos da Web e de desktop
Por favor, compartilhe sua opinião ou experiência sobre Pentest abaixo.
Leitura recomendada
- Guia de teste de segurança de aplicativos da Web
- 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)
- Teste Alfa e Teste Beta (um guia completo)
- Teste de segurança (um guia completo)
- Um guia completo de teste de penetração com exemplos de casos de teste
- Ferramentas e provedores de serviços de teste de penetração de aplicativos móveis
- Diferença entre Desktop, Teste de Servidor Cliente e Teste da Web