Testes automatizados de penetração podem substituir humanos?

Views: 373
0 0
Read Time:5 Minute, 38 Second

Nos últimos anos, o uso da automação em muitas esferas da cibersegurança aumentou drasticamente, mas os testes de penetração permaneceram teimosamente imunes a ela.

Embora a segurança crowdsourced tenha evoluído como uma alternativa aos testes de penetração nos últimos 10 anos, ela não é baseada na automação, mas simplesmente jogando mais humanos em um problema (e no processo, criando seu próprio conjunto de fraquezas). Recentemente, porém, ferramentas que podem ser usadas para automatizar testes de penetração sob certas condições vieram à tona – mas podem substituir testadores de penetração humana?

Como funcionam as ferramentas de teste de penetração automatizadas?

Para responder a essa pergunta, precisamos entender como eles funcionam e, crucialmente, o que eles não podem fazer. Embora eu tenha passado grande parte do último ano testando essas ferramentas e comparando-as em testes semelhantes contra um pentester humano, a grande ressalva aqui é que essas ferramentas de automação estão melhorando a uma taxa fenomenal, então dependendo de quando você lê isso, pode já estar desatualizado.

Em primeiro lugar, a “entrega” do teste de caneta é feita por um agente ou um VM, que simula efetivamente o laptop do pentester e/ou o proxy de ataque conectando-se à sua rede. Até agora, tão normal. O bot pentesting então realizará o reconhecimento em seu ambiente realizando varreduras que um humano faria – de modo que, muitas vezes, você tem pentesters humanos realizar uma varredura de vulnerabilidade com sua ferramenta de escolha ou apenas uma varredura de portas e serviços com Nmap ou Masscan. Uma vez estabelecidos onde eles se sentam dentro do ambiente, eles filtrarão através do que encontraram, e é aí que suas semelhanças com os scanners de vulnerabilidade terminam.

Os scanners de vulnerabilidade simplesmente listarão uma série de vulnerabilidades e vulnerabilidades potenciais que foram encontradas sem contexto quanto à sua explorabilidade e simplesmente regurgitarão referências CVE e pontuações cvss. Às vezes, eles colam “provas” de que o sistema é vulnerável, mas não atendem bem a falsos positivos.

As ferramentas de teste de penetração automatizada escolherão fora desta lista de alvos o sistema “melhor” para assumir, tomando decisões baseadas na facilidade de exploração, ruído e outros fatores desse tipo. Assim, por exemplo, se ele foi apresentado com uma máquina Windows que era vulnerável ao EternalBlue pode favorecer isso sobre a força bruta forçando uma porta SSH aberta que autentica com uma senha, pois é uma quantidade conhecida e muito mais rápida/fácil de explorar.

Uma vez que ele ganha uma base, ele vai se propagar através da rede, imitando a maneira como um pentester ou invasor faria isso, mas a única diferença é que ele realmente instala uma versão de seu próprio agente na máquina explorada e continua seu pivô a partir daí (há variações na forma como diferentes fornecedores fazem isso).

Em seguida, ele começa o processo novamente do zero, mas desta vez também vai garantir que ele investiga forensemente a máquina em que pousou para dar-lhe mais munição para continuar sua jornada através de sua rede. É aqui que ele vai despejar hashes de senha se possível ou procurar credenciais codificadas ou chaves SSH. Em seguida, adicionará isso ao seu repertório para a próxima rodada de sua expansão. Assim, embora anteriormente ele possa ter apenas repetido o scan/exploit/pivô, desta vez ele tentará um ataque pass-the-hash ou tentará se conectar a uma porta SSH usando a chave que ele apenas roubou. Então, ele gira novamente daqui e assim por diante e assim por diante.

Se você notar muitas semelhanças com a forma como um pentester humano se comporta, você está absolutamente certo: muito disso é exatamente como os pentesters (e em menor grau) os atacantes se comportam. Os conjuntos de ferramentas são semelhantes e as técnicas e vetores usados para pivotar são idênticos em muitos aspectos.

Então, o que é diferente?

Em primeiro lugar, o ato de automação dá algumas vantagens sobre a metodologia de pentesting envelhecimento (e metodologia igualmente caótica de crowdsourced).

A velocidade do teste e do relatório é muitas magnitudes mais rápidas, e os relatórios são realmente surpreendentemente legíveis (depois de verificar com alguns QSA’s, eles também passarão os vários requisitos de pentesting PCI DSS).

Chega de esperar dias ou semanas para um relatório que foi elaborado por mãos humanas e passou por algumas rodadas de QA antes de ser entregue. Esta é uma das principais fraquezas dos testes de caneta humana: a adoção do parto contínuo fez com que muitos relatórios de teste de caneta ficassem desatualizados assim que são entregues, uma vez que o ambiente em que o teste foi concluído foi atualizado várias vezes desde então e, portanto, teve potenciais vulnerabilidades e configurações erradas introduzidas que não estavam presentes no momento do teste da caneta. É por isso que pentesting tradicional é mais parecido com um instantâneo de sua postura de segurança em um determinado ponto no tempo.

Ferramentas automatizadas de teste de penetração contornam essa limitação, sendo capazes de realizar testes diariamente, ou duas vezes por dia, ou em cada alteração, e entregar um relatório quase instantaneamente.

A segunda vantagem é o ponto de entrada. Um pentester humano pode receber um ponto de entrada específico em sua rede, enquanto uma ferramenta de pentesting automatizada pode executar o mesmo teste de caneta várias vezes a partir de diferentes pontos de entrada para descobrir vetores vulneráveis dentro de sua rede e monitorar vários cenários de impacto dependendo do ponto de entrada. Embora isso seja teoricamente possível com um humano, isso exigiria um enorme investimento orçamentário devido a ter que pagar cada vez por um teste diferente.

Quais são as desvantagens?

1. As ferramentas de teste de penetração automatizadas não entendem aplicações web – em tudo. Embora eles detectem algo como um servidor web no nível de portas/serviços, eles não entenderão que você tem uma vulnerabilidade IDOR em sua API interna ou um SSRF em uma página web interna que você pode usar para pivotar ainda mais. Isso porque a pilha web hoje é complexa e, para ser justo, até mesmo scanners especializados (como scanners de aplicativos web) têm dificuldade em detectar vulnerabilidades que não são frutas penduradas baixas (como XSS ou SQLi)

2. Você só pode usar ferramentas de pentesting automatizadas “dentro” da rede. Como a maioria das infraestruturas da empresa expostas serão ferramentas de pentesting baseadas na Web e automatizadas não entendem essas, você ainda precisará se ater a um bom e velho pentester humano para testes de fora.

Para concluir, a tecnologia mostra muita promessa, mas ainda é cedo e, embora eles não estejam prontos para tornar os pentesters humanos redundantes ainda, eles têm um papel no cumprimento dos desafios de segurança ofensivos de hoje que não podem ser cumpridos sem automação.

FONTE: HELPNET SECURITY

POSTS RELACIONADOS