Pe­ne­tra­tion test, também conhecido como pentest ou teste de intrusão, é realizado para avaliar pos­si­bi­li­da­des de ataque a uma rede, a sistemas e até mesmo a uma única aplicação. Entenda como esse tipo de teste é executado e como ele pode in­flu­en­ciar as medidas de proteção adotadas.

O que é pe­ne­tra­tion test?

No contexto de tec­no­lo­gia da in­for­ma­ção, um teste de intrusão é um ataque planejado a uma rede de qualquer tamanho ou a com­pu­ta­do­res in­di­vi­du­ais, com o objetivo de descobrir as vul­ne­ra­bi­li­da­des do objeto em teste. Várias fer­ra­men­tas podem ser usadas para simular di­fe­ren­tes padrões e métodos de ataque co­nhe­ci­dos. Ge­ral­mente, os seguintes com­po­nen­tes são sub­me­ti­dos a um pentest:

  • Elementos de agru­pa­mento de rede, como ro­te­a­do­res, switchesegateways..
  • Gateways de segurança, como firewalls de hardware e software, filtros de pacotes, ve­ri­fi­ca­do­res de vírus, ba­lan­ce­a­do­res de cargas, IDS, IPS etc.
  • Ser­vi­do­res, como ser­vi­do­res web, ser­vi­do­res de banco de dados, ser­vi­do­res de arquivos etc.
  • Sistemas de te­le­co­mu­ni­ca­ções.
  • Quaisquer tipos de apli­ca­ções web.
  • Ins­ta­la­ções de in­fra­es­tru­tura, como me­ca­nis­mos de controle de acesso.
  • Redes sem fio, como WLANs e Bluetooth.

Testes costumam ser clas­si­fi­ca­dos como blackbox,whiteboxegreybox. Em testesblackbox(caixa-preta), somente in­for­ma­ções sobre o endereço da rede ou do sistema são dis­po­ni­bi­li­za­dos àqueles que estão exe­cu­tando ope­ne­tra­tion test. Em pentestswhitebox(caixa-branca), por sua vez, exe­cu­to­res obtêm amplo co­nhe­ci­mento sobre o sistema a ser testado, inclusive sobre endereços IP e com­po­nen­tes de software e hardware uti­li­za­dos. Testesgreybox (caixa-cinza), os mais fre­quen­tes, combinam os dois métodos já descritos: exe­cu­to­res recebem in­for­ma­ções sobre a in­fra­es­tru­tura de TI cor­res­pon­dente e sobre as funções do sistema em teste.

Como fazer pe­ne­tra­tion test?

Você sabe como um pentest pode ser útil? Confira, nas seções abaixo, as prin­ci­pais funções de um teste de intrusão realizado em uma rede, sistema ou com­pu­ta­dor in­di­vi­dual.

Pre­pa­ra­ção para o pentest

Para ser bem-sucedido em um pe­ne­tra­tion test, pri­mei­ra­mente você deve esboçar o seu plano. Defina os com­po­nen­tes a serem testados, o período de duração do teste e tire um tempo para realizar uma revisão completa do seu sistema ou rede. Ainda, cer­ti­fi­que-se de possuir todas as fer­ra­men­tas ne­ces­sá­rias para completar a missão.

Respeitar a fase de pre­pa­ra­ção é ainda mais im­por­tante se você contratar exe­cu­to­res externos para verificar a segurança do seu sistema ou rede, prin­ci­pal­mente se seu objetivo é realizar um teste whitebox, que demanda variados tipos de in­for­ma­ções e do­cu­men­tos im­por­tan­tes. Testes blackbox exigem um pouco menos, uma vez que você só precisará com­par­ti­lhar o endereço dos objetos a serem testados.

Nota

Órgãos de governo de di­fe­ren­tes países, como da Alemanha, re­co­men­dam que uma equipe de pentest seja composta por pelo menos duas pessoas, para garantir que o princípio dos quatro olhos seja mantido. Sugere-se, ainda, que exe­cu­to­res de testes de intrusão sejam pro­fis­si­o­nais ca­pa­ci­ta­dos nas seguintes áreas: ad­mi­nis­tra­ção de sistemas, pro­to­co­los de rede, lin­gua­gens de pro­gra­ma­ção, produtos de segurança em TI, sistemas de apli­ca­ções e com­po­nen­tes de rede.

Fer­ra­men­tas para pentest

A mul­ti­pli­ci­dade de ataques a redes e sistemas reflete a variedade de fer­ra­men­tas dis­po­ní­veis no mercado para a re­a­li­za­ção de testes de intrusão. Entre as mais in­te­res­san­tes, des­ta­ca­mos:

  • Scanners de portas: Fer­ra­men­tas de port scanning são es­pe­ci­a­li­za­das em iden­ti­fi­car portas abertas em um sistema com­pu­ta­ci­o­nal.
  • Scanners de vul­ne­ra­bi­li­da­des: Realizam var­re­du­ras em sistemas, em busca de falhas de segurança exis­ten­tes, con­fi­gu­ra­ções in­cor­re­tas e políticas de usuário e senha ina­de­qua­das.
  • Sniffers de pacotes: Também chamados de ana­li­sa­do­res ou fa­re­ja­do­res de pacotes, eles analisam o tráfego de dados de uma rede. Quanto melhor a crip­to­gra­fia adotada, menos in­for­ma­ções os sniffers con­se­gui­rão obter.
  • Geradores de pacotes: Essas fer­ra­men­tas são uti­li­za­das para gerar ou imitar o tráfego de dados de uma rede, para que este sirva de base para o pentest.
  • Cra­que­a­do­res de senhas: Essas fer­ra­men­tas são es­pe­ci­a­li­za­das em quebrar senhas, iden­ti­fi­cando com­bi­na­ções fracas ou inseguras.

Muitas das fer­ra­men­tas acima men­ci­o­na­das foram es­pe­ci­al­mente de­sen­vol­vi­das para testar a segurança de redes, sendo, portanto, to­tal­mente adaptadas a pe­ne­tra­tion tests. Embora a maioria delas seja de código aberto, apli­ca­ções co­mer­ci­ais também podem ser en­con­tra­das. Estas costumam oferecer uma do­cu­men­ta­ção mais abran­gente, assim como suporte es­pe­ci­a­li­zado.

Dica

Ao navegar pela internet, você poderá encontrar inúmeros conjuntos de fer­ra­men­tas para a re­a­li­za­ção de testes de intrusão, or­ga­ni­za­dos por es­pe­ci­a­lis­tas no assunto. Estas são ge­ral­mente di­re­ci­o­na­das a dis­tri­bui­ções estáveis do Linux, em especial ao sistema ope­ra­ci­o­nal Kali Linux, publicado em 2007.

Pro­ce­di­men­tos de pe­ne­tra­tion test

Ba­si­ca­mente, testes de intrusão podem ser divididos em quatro prin­ci­pais etapas, que serão mais bem ex­plo­ra­das nas seções abaixo.

Verificar conceito de rede

Mesmo quando ainda em fase de pre­pa­ra­ção, um pentest consegue revelar in­con­sis­tên­cias ou pontos fracos da estrutura de uma rede ou de com­po­nen­tes in­di­vi­du­ais de um sistema. Por exemplo, se várias apli­ca­ções forem con­fi­gu­ra­das com di­fe­ren­tes direitos de acesso, essa variedade poderá acarretar com­pli­ca­ções ge­ne­ra­li­za­das, mesmo que a rede e/ou o sistema, assim como seus programas, estejam ade­qua­da­mente pro­te­gi­dos. Situações como essa podem ser iden­ti­fi­ca­das e re­sol­vi­das ainda na discussão pre­li­mi­nar. Outras questões, por sua vez, emergem somente durante a fase de testes práticos.

Testar medidas de proteção

In­de­pen­den­te­mente de qualquer coisa, redes em­pre­sa­ri­ais devem proteger seus sistemas da melhor forma possível. Por isso mesmo, testes de intrusão também costumam verificar a adoção e a execução de processos de segurança. Assim, eles analisam o res­pec­tivo sistema ope­ra­ci­o­nal, os softwares, os serviços e as apli­ca­ções ins­ta­la­das, que devem estar ple­na­mente atu­a­li­za­dos. A uti­li­za­ção de versões de­sa­tu­a­li­za­das, seja por motivo de com­pa­ti­bi­li­dade ou outros, requer medidas de proteção adi­ci­o­nais. Também con­fi­gu­ram medidas im­por­tan­tes a restrição de acessos e a adoção de processos de au­ten­ti­ca­ção. Re­su­mi­da­mente, ações im­por­tan­tes que envolvem a segurança de uma rede ou sistema são:

  • Ge­ren­ci­a­mento de acessos
  • Adoção de senhas e processos crip­to­grá­fi­cos
  • Uso de in­ter­fa­ces exis­ten­tes e de portas abertas
  • Im­ple­men­ta­ção de conjuntos definidos de regras (por exemplo, de firewalls)

Buscar vul­ne­ra­bi­li­da­des co­nhe­ci­das

Via de regra, novas falhas de segurança costumam ser iden­ti­fi­ca­das com rapidez, tornando-se de co­nhe­ci­mento público. Fa­mi­li­a­ri­za­dos com os prin­ci­pais pontos de ataque e vul­ne­ra­bi­li­da­des, exe­cu­to­res de pentests realizam in­ves­ti­ga­ções bastante focadas. A versão e o status do patch permitem que estes pro­fis­si­o­nais descubram o grau de proteção de com­po­nen­tes de rede, iden­ti­fi­cando apli­ca­ções que oferecem riscos de segurança. Vale a pena contar com a ajuda de um scanner de vul­ne­ra­bi­li­da­des em situações que demandam a análise de um grande número de sistemas em um curto espaço de tempo, apesar de eles nem sempre apre­sen­ta­rem re­sul­ta­dos exatos.

Executar exploits com res­pon­sa­bi­li­dade

Um executor de testes de intrusão só pode ter certeza das vul­ne­ra­bi­li­da­des en­con­tra­das ao conseguir executar um exploit, com sucesso, na res­pec­tiva rede, sistema ou aplicação. Essa fase ge­ral­mente envolve scripts dis­po­ni­bi­li­za­dos por terceiros na internet, que podem não ter sido pro­gra­ma­dos com boas intenções. Exploits re­a­li­za­dos por scripts de fontes inseguras podem travar ou danificar o sistema testado e piorar a situação. É im­por­tante que exe­cu­to­res de pentests tomem cuidado ao adotar scripts de terceiros, cer­ti­fi­cando-se da ido­nei­dade das fontes. Em caso de dúvida, opte por pular o passo do exploit.

Nota

Cada etapa e cada resultado de um pe­ne­tra­tion test deve ser de­vi­da­mente re­gis­trado por escrito, para embasar as con­clu­sões da avaliação. Do­cu­men­tar tudo que foi executado também ajuda na repetição de etapas em caso de ne­ces­si­dade e na possível re­a­li­za­ção de testes futuros, uma vez que estes são re­co­men­da­dos a cada dois ou três anos.

Vantagens e des­van­ta­gens de pe­ne­tra­tion test

Es­tru­tu­ras de mainframe ho­mo­gê­neas ficaram no passado. Jun­ta­mente com es­tru­tu­ras com­pu­ta­ci­o­nais des­cen­tra­li­za­das, novas vul­ne­ra­bi­li­da­des de segurança e problemas de fun­ci­o­na­mento surgem todos os dias. Algumas delas são iden­ti­fi­cas e cor­ri­gi­das, com rapidez, pelos próprios fa­bri­can­tes de softwares. Outras demoram um pouco mais a serem des­co­ber­tas e com­ba­ti­das. Em situações assim, testes de intrusão oferecem vantagens:

  • Pentests são muito mais de­ta­lha­dos do que ve­ri­fi­ca­ções de segurança padrão.
  • Fun­da­men­tal­mente, pentests verificam a interação de com­po­nen­tes in­di­vi­du­ais.
  • Exe­cu­to­res de testes externos apre­sen­tam novos olhares sobre o conceito de segurança adotado.
  • Por serem pro­fis­si­o­nais es­pe­ci­a­li­za­dos, exe­cu­to­res de testes de intrusão procedem de forma se­me­lhante a cri­mi­no­sos ci­ber­né­ti­cos.

Pe­ne­tra­tion tests também apre­sen­tam des­van­ta­gens, prin­ci­pal­mente quando envolvem exe­cu­to­res de testes externos:

  • Durante a execução um teste de intrusão, terceiros obtêm acesso a in­for­ma­ções internas.
  • Há sempre a pos­si­bi­li­dade de um teste de intrusão causar danos à rede, ao sistema ou às apli­ca­ções.
  • Um pentest reflete somente o momento em que a análise foi realizada, não devendo ser usados de forma ge­ne­ra­li­zada e ir­res­trita para jus­ti­fi­car o abandono ou a mo­di­fi­ca­ção de medidas de segurança padrão.

A chamada en­ge­nha­ria social não é um dos riscos ve­ri­fi­ca­dos por pentests clássicos. De toda forma, di­fe­ren­tes pro­ve­do­res de serviços incluem análises de vul­ne­ra­bi­li­da­des humanas em seus pacotes, além de oferecem aper­fei­ço­a­mento pro­fis­si­o­nal.

Ir para o menu principal