Pentest: a aplicação do ataque como estratégia de defesa cibernética

Neste artigo você vai ver:

Antes de entender o conceito de pentest, é preciso saber o contexto: a cada dia o conceito de cibersegurança ganha mais visibilidade e com o crescente aumento de ataques cibernéticos é imprescindível que empresas busquem ações e técnicas de prevenção contra invasores. 

Existem várias práticas que visam melhorar a segurança de sistemas, entre elas a realização de pentents. Neste artigo, explicaremos do que se trata esta prática, sua motivação e importância.

O que é pentest?

Pentest, Penetration Test ou teste de intrusão, é um processo composto por uma série de testes que têm como objetivo encontrar pontos fracos e possíveis vulnerabilidades com o intuito de antecipar a ação de invasores que, ao explorar essas falhas de segurança, poderiam causar danos à empresa.

As atividades que fazem parte desse processo envolvem escaneamento, análise, exploração e, como fase final do processo, a criação de um relatório detalhado, que também inclui recomendações de correção para as vulnerabilidades encontradas.

Tipos de pentests

Inclusive, há diversas formas de realizar um teste de intrusão, entre elas podemos citar a identificação de sistemas ou de exploits, avaliação de vulnerabilidades, a verificação de aplicações (web, mobile e infraestrutura), testes em estruturas físicas, política de privacidade e engenharia social. 

Ademais, existem três tipos de abordagens diferentes para testes de intrusão:

Caixa preta: nessa abordagem não é fornecido qualquer tipo de informação prévia sobre a infraestrutura do sistema a ser analisado;

  Caixa branca: ao contrário do anterior, nessa análise, o pentester recebe previamente toda a informação sobre a infraestrutura corporativa;

Caixa cinza: é um modelo híbrido das duas abordagens anteriores, onde são fornecidas algumas informações e acessos restritos.

Além disso, vale ressaltar que os testes podem ter diferentes direcionamentos como: pentests internos, seguindo a abordagem de caixa branca; externos, seguindo a abordagem de caixa preta; ou voltados a validação de padrões de segurança, por exemplo a obtenção da certificação PCI DSS (Payment Card Industry Data Security Standard ou Padrão de Segurança de Dados da Indústria de Cartões de Pagamento). 

Um Pentest PCI é um teste que possui requisitos específicos do PCI DSS para verificar a proteção dos dados de titulares de cartões, no geral, esse pentest é obrigatório para comerciantes e pessoas ou empresas prestadoras de serviços.

Como vimos, existem várias formas de realizar um pentest e cada cenário deve ser avaliado de forma específica. Primeiramente, é necessário definir o escopo junto a clientes para especificar quais ativos deverão ser testados, o tipo de pentest e sua profundidade, além de definir os prazos de execução e a apresentação dos resultados.

Por que é necessário? 

Teste de intrusão é uma prática que busca avaliar a segurança cibernética de sistemas e medir o nível de maturidade de empresas e governos em termos de cibersegurança, para assim prevenir ou ao menos diminuir as chances de um ataque.

É importante ressaltar que os impactos de ataques cibernéticos bem sucedidos são graves e podem incluir vazamentos de dados, fraudes, prejuízo financeiro, perda de credibilidade, processos judiciais, multas e, em sistemas críticos, os danos podem ser devastadores. 

Sendo assim, é importante que as empresas e governos busquem formas de se proteger contra esse tipo de ataque. Para isso, o pentest é uma prática essencial, pois substancialmente o pentester busca simular um hacker malicioso e auxiliar na detecção de vulnerabilidades antes que possam ser exploradas por atacantes reais. 

Aplicabilidade 

Sua aplicação envolve técnicas de coleta de informações e reconhecimento de alvo, ataques a sistemas Windows e Linux, testes em aplicativos da Web e mobile, exploração manual e automatizada, avaliação de vulnerabilidade, movimento pivotante e lateral, enumeração pós-exploração, escalonamento de privilégios Windows e Linux, comunicação de risco e relatórios. 

Essa prática pode ser aplicada em quaisquer tipos de empresas, organizações e governos. Os pentests devem ser realizados com frequência, em intervalos programados e quando ocorrem alterações nos sistemas, infraestruturas ou na lei de proteção de dados

Expectativa e benefícios 

As técnicas executadas em testes de intrusão visam encontrar fragilidades e carências no seu sistema de segurança, um trabalho preventivo e corretivo de medidas a fim de garantir a segurança de dados. 

Para reduzir riscos é importante adotar testes de segurança que comprovem a proteção do seu ambiente corporativo e de seus recursos. Ações de segurança preventiva ajudam a proteger a empresa de transtornos e prejuízos financeiros, além de proteger a privacidade de clientes e pessoas colaboradoras.

Pentest na Zup 

Somos guardiões da segurança, esse é um dos pilares da nossa cultura. Somos entusiastas da cibersegurança e estamos sempre em busca de soluções que garantam a segurança de nossa empresa e clientes. 

Por isso, na Zup, os pentests fazem parte da nossa rotina e temos times especializados no assunto. Dentro da nossa área de cibersegurança, os times responsáveis pela execução dos testes de intrusão são as equipes de AppSec e Red Team. 

O primeiro tem como objetivo os testes de caixa branca e o segundo tem seu foco em testes de caixa preta e cinza. Em AppSec, os testes se restringem ao que é desenvolvido dentro da Zup, aos projetos da própria organização e de clientes, garantindo o desenvolvimento seguro. 

Já o Red Team, possui uma atuação mais ampla, pois, além de nossos projetos, também realiza pentests em aplicações de clientes e parcerias, como aplicativos para gestão de projetos e serviços ou plataformas de comunicação visual, entre outros. 

Esta prática é importante para garantir que, ao utilizar uma aplicação de terceiros, as informações que estão sendo armazenadas e compartilhadas ali estarão protegidas. Além disso, esses testes também podem verificar a eficiência de produtos a serem contratados, como antivírus e VPNs. 

Algumas vulnerabilidades que encontramos em nosso dia a dia são: 

  • Cross-site Scripting (XSS) 

Ataques XSS envolvem a injeção de código malicioso no conteúdo do site alvo, que é então renderizado pelo navegador e entregue à vítima. Existem três tipos de XSS: Stored XSS, Reflected XSS, DOM Based XSS. Trouxemos como exemplo, um caso de Stored XSS que identificamos em um de nossos testes. 

Através da utilização de Client-Side-Template-Injection, presente na nossa versão do AngularJS, foi possível armazenar código javascript na aplicação. Como prova de conceito, cadastramos uma Tag e, com isso, todas as pessoas usuárias que clicassem sobre o dropdown do menu de tags executaria o código inserido pela pessoa atacante.

  • Server Side Request Forgery (SSRF) 

Através da aplicação, o ataque permite induzir o servidor a fazer requisições para um local não intencional. Portanto, é possível fazer com que o servidor se conecte com serviços internos da organização ou externos que estejam sob o controle da pessoa atacante, podendo causar vazamento de dados confidenciais. 

Por exemplo, em uma aplicação que faça solicitações de disponibilidade de estoque para seu back end, o mesmo pode ser acessado sem autenticação por qualquer indivíduo que consiga interagir com o sistema. Ao fazer isso, é possível encontrar informações sensíveis como credenciais.

  • SQL Injection (SQLi) 

Esse tipo de ataque é realizado através de injeção de código SQL, de forma a interferir em consultas que a aplicação faz em seu banco de dados. Neste caso, ao testar a aplicação, constatamos que o sistema não fazia a validação de inputs durante a autenticação da pessoa usuária, o que permitia a inserção de código SQL para manipular a consulta que verificaria se as credenciais eram válidas, dessa forma, foi possível burlar a autenticação e conseguir o acesso como administrador. 

  • Insecure Direct Object Reference (IDOR) 

Essa vulnerabilidade ocorre quando a aplicação fornece acesso direto a objetos com base na entrada fornecida pela pessoa usuária, sem nenhum tipo de validação, o que permite que atacantes acessem recursos que não estariam autorizados a acessar. 

Durante um de nossos testes foi possível burlar a lógica de autorização e ler 1×1’s de todas as pessoas usuárias do sistema, inclusive de users de outras empresas, além de efetuar ações como por exemplo deletar informações pertencentes a outros indivíduos. 

  • Account Takeover 

Consiste em invadir a conta de uma pessoa usuária legítima, o que permitiria efetuar ações em seu nome ou realizar o roubo de dados. Em um caso de exemplo, testamos uma aplicação onde era possível que uma pessoa usuária, que tenha privilégios para visualizar a lista de users, possa redefinir o e-mail e o login do time, conseguindo assim tomar a conta de qualquer pessoa. 

Após identificadas, as vulnerabilidades são reportadas para os times responsáveis, que, posteriormente, trabalham nas correções correspondentes. Por fim, para garantir que as falhas foram mitigadas, é realizado um reteste na aplicação. Com isso, estamos contribuindo diretamente para elevar o nível de segurança e maturidade das aplicações que produzimos.

Além disso, ao identificar as vulnerabilidades, é possível desenvolver estratégias de segurança mais eficazes para remediá-las e preveni-las. Essas estratégias podem abranger a adoção de medidas como autenticação de dois fatores, criptografia avançada, implementação de certificados SSL e outras proteções. Todas têm o potencial de aprimorar a segurança do aplicativo e aumentar a confiança das pessoas usuárias.

Conclusão 

Em vista do que foi apresentado, esperamos ter demonstrado a importância da adoção desta prática para elevar o seu nível de segurança cibernética. Além de conhecer o conceito de pentest, também conseguimos entender a sua aplicabilidade, benefícios e como usamos a técnica por aqui.

Estamos à disposição para bater um papo, entender as suas necessidades e orientar você e seu projeto sobre qual o melhor tipo de teste para o seu cenário atual.

Referências

O que é Pentest? Benefícios, tipos e etapas para executá-lo

Pentest: avaliação do nível de segurança de uma rede

Imagem capa do conteúdo "Pentest", onde possui um notebook com a imagem de um cadeado representando segurança, confiabilidade. O notebook está em cima da mesa e uma pessoa está mexendo nele. Na imagem, é possível ver uma mão sobre o cursor.
1681325339897
SECURITY ANALYST
Analista de Segurança da Informação, ex-desenvolvedora e graduanda em Engenharia de Software. Atualmente, atuo dentro do Red Team, onde o nosso foco é aplicar técnicas de simulação de ameaças, identificação de vulnerabilidades e análise de riscos. Combinando uma mentalidade ofensiva com uma abordagem estratégica, ajudo a aprimorar as defesas cibernéticas, identificando e corrigindo vulnerabilidades antes que sejam exploradas por invasores reais. Sou motivada por desafiar e melhorar constantemente a segurança de TI, buscando constantemente atualização em tendências e tecnologias emergentes na área de segurança cibernética.

Artigos relacionados

Imagem capa do conteúdo sobre "Capture the flag". Proteção de dados de segurança cibernética Negócios trabalhando em computação digital tablet digital conexão de rede global marketing digital de ciência de dados, investimento global no escritório.
Segurança da Informação
Postado em:
Imagem que representa o conteúdo "Ferramentas SSDLC: SAST, DAST e SCA": Homem mexendo em um notebook, com um código aberto em sua tela em uma mesa de madeira em frente à janela no escuro com vista para as luzes da cidade a noite, iluminação colorida na sala, decoração da casa
Segurança da Informação
Postado em:

Este site utiliza cookies para proporcionar uma experiência de navegação melhor. Consulte nossa Política de Privacidade.