Com os chamados testes de pe­ne­tra­ção (também co­nhe­ci­dos como pentests), é possível de­ter­mi­nar a vul­ne­ra­bi­li­dade da rede, de cada um dos sistemas en­vol­vi­dos ou de uma única aplicação. Mas como é que estes testes são re­a­li­za­dos e o que re­pre­sen­tam exa­ta­mente para a rede?

O que é um teste de pe­ne­tra­ção?

No contexto da in­for­má­tica, o teste de pe­ne­tra­ção refere-se a uma me­to­do­lo­gia que consiste em planear um ataque a uma rede, in­de­pen­den­te­mente da sua dimensão, ou a equi­pa­men­tos in­di­vi­du­ais, com o objetivo de revelar vul­ne­ra­bi­li­da­des no objeto em teste. Para tal, simulam-se vários padrões de ataque uti­li­zando fer­ra­men­tas criadas com base em métodos de ataque co­nhe­ci­dos. Os com­po­nen­tes típicos de um teste de pe­ne­tra­ção são:

  • Elementos de ligação à rede, tais como routers, switches ou portas
  • Portas de segurança, tais como firewalls de hardware e software, filtros de pacotes ou programas antivírus, ba­lan­ce­a­do­res de carga, IDS e IPS, etc.
  • Ser­vi­do­res web, ser­vi­do­res de bases de dados, ser­vi­do­res de ficheiros, etc.
  • Equi­pa­men­tos de te­le­co­mu­ni­ca­ções
  • Qualquer tipo de apli­ca­ções web
  • Ins­ta­la­ções de in­fra­es­tru­tura, como, por exemplo, me­ca­nis­mos de controlo de acesso
  • Redes sem fios en­vol­vi­das, tais como redes WLAN ou Bluetooth

Em geral, os testes de pe­ne­tra­ção são clas­si­fi­ca­dos em três tipos: testes de caixa preta, testes de caixa branca e testes de caixa cinzenta. Nos testes de caixa preta, os pen­tes­ters têm apenas à sua dis­po­si­ção o endereço de rede (sistema de destino). Nos testes de caixa branca, parte-se de um amplo co­nhe­ci­mento dos sistemas a testar, incluindo o seu endereço IP, o software utilizado e os seus com­po­nen­tes de hardware. Por último, os testes de caixa cinzenta, o tipo de teste mais utilizado, combinam as ca­rac­te­rís­ti­cas dos testes de caixa preta com as dos de caixa branca. Nestes, são ana­li­sa­dos cenários que não podem ser con­si­de­ra­dos pelos testes de caixa preta, como, por exemplo, um ataque lançado por alguém da própria empresa com in­for­ma­ção su­fi­ci­ente sobre a rede. Nos testes de caixa cinzenta, é ne­ces­sá­rio conhecer a in­fra­es­tru­tura in­for­má­tica, o que implica, por exemplo, ter in­for­ma­ções sobre a uti­li­za­ção que é feita dos sistemas e das suas prin­ci­pais ca­rac­te­rís­ti­cas.

Como realizar um teste de pe­ne­tra­ção

Como tirar o máximo partido dos testes de pe­ne­tra­ção? A seguir, apre­sen­ta­mos os aspetos mais im­por­tan­tes para que possas realizar o teu teste de pe­ne­tra­ção.

Re­qui­si­tos dos testes de pe­ne­tra­ção

Para realizar um teste de pe­ne­tra­ção de forma adequada, é ne­ces­sá­rio definir um plano claro. Determine os com­po­nen­tes a testar, a duração de cada teste ou da análise completa da rede e verifique se dispõe de todas as fer­ra­men­tas ne­ces­sá­rias.

Esta fase de pre­pa­ra­ção assume ainda maior im­por­tân­cia se for uma entidade externa a realizar o teste de pe­ne­tra­ção através de um teste de caixa aberta. Neste caso, é ne­ces­sá­rio que forneça in­for­ma­ções sobre a rede e os sistemas en­vol­vi­dos, bem como a do­cu­men­ta­ção dis­po­ní­vel. No caso dos testes de caixa fechada, o pro­ce­di­mento é diferente, pois só terá de indicar o endereço de destino dos alvos do teste.

As melhores fer­ra­men­tas para um teste de pe­ne­tra­ção

A di­ver­si­dade de tipos de ataques a uma rede implica que os pen­tes­ters tenham à sua dis­po­si­ção um vasto leque de fer­ra­men­tas. Entre as mais im­por­tan­tes, encontram-se, por exemplo:

  • Ve­ri­fi­ca­ção de portas: na ve­ri­fi­ca­ção de portas, são uti­li­za­das fer­ra­men­tas especiais para iden­ti­fi­car portas abertas num sistema in­for­má­tico.
  • Scanner de vul­ne­ra­bi­li­da­des: os scanners de vul­ne­ra­bi­li­da­des verificam os sistemas em busca de falhas de segurança exis­ten­tes, con­fi­gu­ra­ções in­cor­re­tas e políticas de senhas e uti­li­za­do­res in­su­fi­ci­en­tes.
  • Sniffer: um sniffer pode ser utilizado para analisar o tráfego de dados de uma rede. Quanto melhor for a en­crip­ta­ção, menor será a in­for­ma­ção obtida.
  • Geradores de pacotes: os geradores de pacotes são fer­ra­men­tas que permitem gerar ou simular o tráfego de dados da rede. Desta forma, imita-se o tráfego de dados real da rede como parte de um teste de pe­ne­tra­ção.
  • Des­crip­to­gra­fa­do­res de senhas: com os des­crip­to­gra­fa­do­res de senhas, os pen­tes­ters tentam obter senhas inseguras.

Muitas das fer­ra­men­tas são de­sen­vol­vi­das es­pe­ci­fi­ca­mente para testes de segurança em redes e limitam-se a uma área de teste muito es­pe­cí­fica. Embora a maioria seja de código aberto, também existem algumas apli­ca­ções de segurança co­mer­ci­ais dis­po­ní­veis. Estas últimas costumam ter uma do­cu­men­ta­ção mais detalhada e oferecem um suporte mais abran­gente.

Processo de um teste de pe­ne­tra­ção

O pro­ce­di­mento dos testes de pe­ne­tra­ção pode ser dividido em:

Ve­ri­fi­ca­ção do conceito de rede

Já na fase de pre­pa­ra­ção, um teste de pe­ne­tra­ção iden­ti­fica in­con­sis­tên­cias ou vul­ne­ra­bi­li­da­des es­pe­cí­fi­cas na conceção da rede ou dos seus com­po­nen­tes in­di­vi­du­ais. O facto de, por exemplo, as apli­ca­ções terem sido con­fi­gu­ra­das com direitos de acesso di­fe­ren­tes irá gerar com­pli­ca­ções ra­pi­da­mente e re­pre­sen­tar um risco de segurança para toda a rede, mesmo que esta e os programas in­di­vi­du­ais alojados estejam de­vi­da­mente pro­te­gi­dos. Alguns destes casos podem ser es­cla­re­ci­dos pre­li­mi­nar­mente, enquanto outros só são ve­ri­fi­cá­veis através de um teste prático.

Teste das medidas de for­ti­fi­ca­ção

O pilar de uma rede in­for­má­tica cor­po­ra­tiva segura é que os sistemas en­vol­vi­dos estejam o mais bem pro­te­gi­dos possível. Em parte, o teste de pe­ne­tra­ção também consiste em verificar a eficácia das medidas de reforço de segurança aplicadas. Isto implica que tanto o software instalado como o sistema operativo, os serviços do sistema e as apli­ca­ções uti­li­za­das pelo uti­li­za­dor devem ser atu­a­li­za­dos con­ti­nu­a­mente. Caso sejam uti­li­za­das versões antigas para algumas apli­ca­ções por questões de com­pa­ti­bi­li­dade, será ne­ces­sá­rio recorrer a outros meios de proteção.

Além disso, os re­qui­si­tos de acesso e au­ten­ti­ca­ção de­sem­pe­nham um papel im­por­tante nos sistemas e programas in­di­vi­du­ais. Neste caso, o teste de pe­ne­tra­ção aborda temas como:

  • os direitos de acesso
  • a uti­li­za­ção de palavras-passe e a en­crip­ta­ção
  • a uti­li­za­ção das in­ter­fa­ces exis­ten­tes e das portas abertas
  • a uti­li­za­ção de ins­tru­men­tos re­gu­la­do­res, como, por exemplo, o firewall

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

Em geral, iden­ti­fi­car as vul­ne­ra­bi­li­da­des de um software não demora muito tempo, uma vez que, na maioria dos casos, os pen­tes­ters estão fa­mi­li­a­ri­za­dos com os pontos fracos dos sistemas em teste. Estes conseguem iden­ti­fi­car ra­pi­da­mente quais as apli­ca­ções que re­pre­sen­tam um risco para a segurança, graças às suas análises sobre o nível de for­ti­fi­ca­ção dos com­po­nen­tes das redes e sobre o estado das suas atu­a­li­za­ções e versões. Caso seja ne­ces­sá­rio examinar muitos sistemas num curto período de tempo, vale a pena utilizar scanners de vul­ne­ra­bi­li­da­des, embora, por vezes, estes possam apre­sen­tar re­sul­ta­dos im­pre­ci­sos.

O uso seletivo de exploits

A certeza de que as vul­ne­ra­bi­li­da­des en­con­tra­das também podem ser ex­plo­ra­das só é alcançada se o pentester utilizar o exploit adequado. Os exploits são sequên­cias de comandos que, ge­ral­mente, provêm de di­fe­ren­tes fontes na Internet e nem sempre são pro­gra­ma­dos de forma segura. Assim, se for executado um destes exploits inseguros, corre-se o risco de bloquear as apli­ca­ções ou o sistema testados e, na pior das hipóteses, podem até ser so­bres­cri­tas áreas im­por­tan­tes da memória. Neste caso, devem ser uti­li­za­dos apenas scripts pro­ve­ni­en­tes de fontes fiáveis para os testes de pe­ne­tra­ção ou deve-se abster-se com­ple­ta­mente de testar essas vul­ne­ra­bi­li­da­des.

Nota

Todas as etapas e re­sul­ta­dos dos testes de pe­ne­tra­ção devem ser re­gis­ta­dos por escrito. Desta forma, criam-se as bases ideais para o acom­pa­nha­mento de cada etapa e para a avaliação final dos re­sul­ta­dos. Em geral, pode utilizar listas de pri­o­ri­da­des para otimizar, passo a passo, a proteção do seu sistema.

As vantagens e des­van­ta­gens dos testes de segurança complexos

As es­tru­tu­ras ho­mo­gé­neas dos grandes com­pu­ta­do­res pertencem ao passado. As atuais es­tru­tu­ras in­for­má­ti­cas des­cen­tra­li­za­das apre­sen­tam novas vul­ne­ra­bi­li­da­des e falhas de fun­ci­o­na­mento que são cor­ri­gi­das, com maior ou menor rapidez, pelos fa­bri­can­tes de software. Os testes de pe­ne­tra­ção oferecem, neste contexto, as seguintes vantagens:

  • Analisa os sistemas com maior rigor do que uma ve­ri­fi­ca­ção de segurança comum
  • O objetivo fun­da­men­tal de um teste deste tipo é verificar a interação entre os com­po­nen­tes in­di­vi­du­ais
  • Se recorrer a um pentester externo, obterá um ponto de vista adicional e uma pers­pe­tiva diferente sobre o conceito de segurança sub­ja­cente
  • Os pen­tes­ters pro­fis­si­o­nais têm formação es­pe­cí­fica e agem de forma se­me­lhante à de um atacante

No entanto, o teste de pe­ne­tra­ção, associado es­pe­ci­al­mente à co­la­bo­ra­ção com um auditor externo, também apresenta algumas des­van­ta­gens:

  • O testador externo terá acesso à sua rede interna durante a execução do teste
  • Existe sempre a pos­si­bi­li­dade de o teste de pe­ne­tra­ção causar danos ir­re­pa­rá­veis
  • Os testes de pe­ne­tra­ção fornecem apenas uma imagem ins­tan­tâ­nea dos seus sistemas de rede e, por isso, nunca devem ser uti­li­za­dos como subs­ti­tuto das medidas de segurança habituais

A chamada «en­ge­nha­ria social» não faz parte dos riscos que um teste de pe­ne­tra­ção clássico iria verificar. No entanto, muitos pres­ta­do­res de serviços oferecem, como opção, a ve­ri­fi­ca­ção das vul­ne­ra­bi­li­da­des humanas nas empresas, incluindo formação es­pe­ci­a­li­zada.

Ir para o menu principal