A inteligência artificial pode informar sobre as vulnerabilidades de um programa? Talvez, mas você pode não querer colocar toda a sua fé no que ela diz.

O teste de penetração é um teste de segurança que envolve o uso de vulnerabilidades para descobrir outras vulnerabilidades em um sistema e executar códigos maliciosos. Esses testes são especialmente importantes para proteção contra mineração de dados e prevenção de exploits de segurança.

Os testes de penetração incluem várias técnicas usadas para testar a segurança da rede. Essas técnicas incluem a varredura da rede, firewalls, sistemas de vigilância de segurança e inteligência artificial. A inteligência artificial pode analisar testes de segurança usando tecnologias desenvolvidas para revelar vulnerabilidades de rede.

A IA pode permitir que você obtenha resultados mais abrangentes e eficazes com algoritmos especiais projetados para uso em testes de penetração e testes de segurança executados automaticamente.

Benefícios do uso de IA para testes de penetração

instagram viewer

Hoje, o rápido desenvolvimento da tecnologia e as crescentes necessidades de segurança dos usuários revelaram a necessidade de usar tecnologias de IA em testes de segurança. O uso de IA para melhorar a segurança fornece resultados muito mais rápidos e eficientes, eliminando a necessidade de mão de obra demorada para realizar testes de segurança frequentemente personalizados e complexos. A IA ajuda a detectar vulnerabilidades o mais rápido possível. Ele também pode realizar testes de segurança exclusivos e complexos, facilitando a detecção de vulnerabilidades.

A IA parece ter bastante sucesso, especialmente quando se trata de detectar e bloquear um ataque. Para treinar a inteligência artificial, são necessários conjuntos de dados muito grandes. Um aplicativo com alto tráfego na Web é um benfeitor nesse aspecto. Porque você pode fazer com que todo tráfego de entrada pareça um conjunto de dados para uso da IA. Assim, você tem uma IA que pode ler e analisar o tráfego de aplicativos da web e detectar ameaças. Este é um dos exemplos mais simples que podem ser dados.

Ele também pode pré-detectar não apenas o tráfego da web, mas também muitos malwares para seu aplicativo ou dispositivo. Este método já começou a ser utilizado por muitos firewalls.

Além de tudo isso, o erro humano é um dos maiores problemas da segurança cibernética. Uma pequena vulnerabilidade de código que passa despercebida pode levar a grandes problemas de segurança irreversíveis. Alguns plug-ins que verificam vulnerabilidades no código surgiram com o desenvolvimento da IA ​​e alertam os desenvolvedores sobre esses problemas. Até agora, eles mostraram algum sucesso na prevenção de erros humanos.

Além disso, o tempo de resposta mostrado contra uma ameaça também é muito importante. Quando sob ataque, leva tempo para detectar o ataque, planejar o caminho para defender e lançar sistemas de defesa. Mas a IA é muito útil nesse sentido.

Limitações da IA ​​na segurança cibernética

O uso de IA para fins de segurança cibernética requer a identificação e análise de aplicativos maliciosos, limpos e potencialmente inseguros. Mesmo que você use conjuntos de dados muito grandes para treinar um algoritmo, nunca poderá ter certeza do resultado. Como resultado, não é seguro confiar inteiramente em máquinas e IA. É necessário apoiar a tecnologia de IA com intervenção humana.

Alguns fabricantes de ferramentas de segurança afirmam que as soluções baseadas em aprendizado de máquina podem analisar cada instância. Segundo os fabricantes, essas ferramentas podem detectar malware usando apenas meios matemáticos. No entanto, isso dificilmente é possível.

A quebra do código Enigma por Alan Turing durante a Segunda Guerra Mundial é um bom exemplo disso. Mesmo uma máquina perfeita não pode decidir se uma entrada desconhecida pode causar um comportamento indesejado no futuro. Essa evidência pode ser aplicada a muitos campos diferentes, incluindo segurança cibernética.

Outra limitação séria dos aplicativos de aprendizado de máquina na segurança cibernética está oculta nos limites dos modelos de inteligência artificial. Por exemplo, as máquinas tornaram-se inteligentes o suficiente para vencer os humanos no xadrez.

Mas o xadrez tem certas regras. Os motores de xadrez não se desviam dessas regras. Quando se trata de segurança cibernética, os invasores geralmente não têm regras. A natureza em constante mudança do cenário digital torna impossível criar uma solução de proteção que possa detectar e bloquear todas as ameaças futuras.

Análise de código-fonte com ChatGPT

O ChatGPT, desenvolvido pela OpenAI, fez uma entrada séria em nossas vidas em muitas áreas. Como você puder tire algumas dúvidas e converse com o ChatGPT, ele também tenta ajudá-lo com problemas de programação e software. O ChatGPT até tenta fazer a análise do código-fonte, se você olhar do ponto de vista da segurança cibernética. Mas o ChatGPT ainda está engatinhando e levará algum tempo para começar a funcionar.

Para ver isso melhor, vamos testar o poder do ChatGPT. Por exemplo, abaixo está um código JavaScript simples que cria uma vulnerabilidade XSS. Vamos perguntar ao ChatGPT sobre este código e pedir que ele nos informe sobre quaisquer vulnerabilidades.

documento.escrever("URL atual: " + documento.baseURI);

O ChatGPT mencionou um vulnerabilidade XSS em resposta. Este é um bom começo. Mas os códigos-fonte nunca são tão simples. Então, vamos tentar tornar o exemplo um pouco mais complicado.

Abaixo você verá um código elaborado na linguagem de programação C. Este código C pertence a um aplicativo vulnerável. Foi até usado inteiramente em um aplicativo do mundo real. Se desejar, você pode examinar as vulnerabilidades do código-fonte do mundo real que Sonar lançado em 2022.

Caracteres *caminho do registrador *cmd;

vaziorotateLog(){
CaractereslogAntigo[PATH_MAX], logNovo[PATH_MAX], carimbo de data/hora[0x100];
tempo_t t;
tempo(&t);
strftime (timestamp, sizeof (timestamp), "%FT%T", gmtime(&t));
snprintf (logOld, sizeof (logOld), "%s/../logs/global.log", loggerPath);
snprintf (logNew, sizeof (logNew), "%s/../logs/global-%s.log", loggerPath, timestamp);
execl("/bin/cp", "/bin/cp", "-a", "--", logAntigo, logNovo, NULO);
}

intprincipal(int argc, Caracteres **argv){
if (argc != 2) {
printf("Uso: /opt/logger/bin/loggerctl \n");
retornar1;
}

se (setuid(0) == -1) retornar1;
se (seteuid(0) == -1) retornar1;

Caracteres *caminhoexecutável = argv[0];
loggerPath = dirname (executablePath);
cmd = argv[1];

se (!strcmp (cmd, "girar")) rotaLog();
outro listaComandos();
retornar0;
}

A vulnerabilidade aqui é que um invasor pode fazer alterações em alguns arquivos sem privilégios administrativos. Vamos ver como o ChatGPT responderá a essa vulnerabilidade de segurança.

O principal problema neste código é setuid, ID do usuário (uid) e id de usuário efetivo (euid). No entanto, sem entrar em muitos detalhes técnicos, o principal ponto que você deve prestar atenção é que ChatGPT não pôde detectar esta parte fina. Ele pode perceber que há um problema, mas infelizmente não pode chegar à raiz desse problema.

Por meio desses exemplos, você viu reações a diferentes linguagens de programação e vulnerabilidades. Se o código for realmente simples e tiver uma falha de segurança óbvia, o ChatGPT pode ajudá-lo. Mas você não deve confiar inteiramente no ChatGPT para análise de código-fonte, teste de penetração e outras análises de segurança.

O futuro dos testadores de penetração

A inteligência artificial será uma parte importante do trabalho dos testadores de penetração no futuro. Por exemplo, os testadores de penetração não precisarão perder tempo detectando atividades maliciosas manualmente e poderão realizar varreduras de segurança automaticamente.

A IA também ajudará a detectar e agir contra técnicas de ataque novas e mais complexas para testes de penetração. Mas a IA ainda é como uma criança brincando no parque e precisa do conselho de um adulto. Em um futuro próximo, especialistas em segurança cibernética e testadores de penetração não ficarão desempregados facilmente.