¿Puede la inteligencia artificial informarle sobre las vulnerabilidades de un programa? Quizás, pero es posible que no quieras poner toda tu fe en lo que dice.

La prueba de penetración es una prueba de seguridad que implica el uso de vulnerabilidades para descubrir otras vulnerabilidades en un sistema y ejecutar código malicioso. Estas pruebas son especialmente importantes para la protección contra la extracción de datos y la prevención de vulnerabilidades de seguridad.

Las pruebas de penetración incluyen varias técnicas utilizadas para probar la seguridad de la red. Estas técnicas incluyen escanear la red, firewalls, sistemas de vigilancia de seguridad e inteligencia artificial. La inteligencia artificial puede analizar las pruebas de seguridad utilizando tecnologías desarrolladas para revelar las vulnerabilidades de la red.

AI puede permitirle lograr resultados más completos y efectivos con algoritmos especiales diseñados para usar en pruebas de penetración y pruebas de seguridad ejecutadas automáticamente.

instagram viewer

Beneficios de usar IA para pruebas de penetración

Hoy, el rápido desarrollo de la tecnología y las necesidades de seguridad cada vez mayores de los usuarios han revelado la necesidad de utilizar tecnologías de inteligencia artificial en las pruebas de seguridad. El uso de IA para mejorar la seguridad proporciona resultados mucho más rápidos y eficientes, lo que elimina la necesidad de mano de obra que requiere mucho tiempo para realizar pruebas de seguridad complejas y a menudo personalizadas. La IA ayuda a detectar vulnerabilidades lo antes posible. También puede realizar pruebas de seguridad únicas y complejas, lo que facilita la detección de vulnerabilidades.

AI parece tener bastante éxito, especialmente cuando se trata de detectar y bloquear un ataque. Para entrenar la inteligencia artificial, se necesitan conjuntos de datos muy grandes. Una aplicación con alto tráfico web es un benefactor en este sentido. Porque puede hacer que cada tráfico entrante parezca un conjunto de datos para que lo use la IA. Por lo tanto, tiene una IA que puede leer y analizar el tráfico de aplicaciones web y detectar amenazas. Este es uno de los ejemplos más simples que se pueden dar.

También puede detectar previamente no solo el tráfico web, sino también una gran cantidad de malware para su aplicación o dispositivo. Este método ya ha comenzado a ser utilizado por muchos cortafuegos.

Además de todo esto, el error humano es uno de los mayores problemas en ciberseguridad. Una vulnerabilidad de código menor que pasa desapercibida puede conducir a importantes problemas de seguridad irreversibles. Con el desarrollo de la IA, surgieron algunos complementos que buscan vulnerabilidades en el código y advierten a los desarrolladores sobre tales problemas. Hasta ahora, han mostrado cierto éxito en la prevención de errores humanos.

Además, el tiempo de respuesta mostrado frente a una amenaza también es muy importante. Cuando está bajo ataque, lleva tiempo detectar el ataque, planificar el camino para defenderse y lanzar sistemas de defensa. Pero la IA es muy útil en este sentido.

Limitaciones de la IA en Ciberseguridad

El uso de IA con fines de ciberseguridad requiere identificar y analizar aplicaciones maliciosas, limpias y potencialmente inseguras. Incluso si usa conjuntos de datos muy grandes para entrenar un algoritmo, nunca puede estar seguro del resultado. Como resultado, no es seguro confiar completamente en las máquinas y la IA. Es necesario apoyar la tecnología de IA con intervención humana.

Algunos fabricantes de herramientas de seguridad afirman que las soluciones impulsadas por el aprendizaje automático pueden analizar cada instancia. Según los fabricantes, estas herramientas pueden detectar malware utilizando únicamente medios matemáticos. Sin embargo, esto es casi imposible.

El descifrado del código Enigma por parte de Alan Turing durante la Segunda Guerra Mundial es un muy buen ejemplo de esto. Incluso una máquina perfecta no puede decidir si una entrada desconocida puede causar un comportamiento no deseado en el futuro. Esta evidencia se puede aplicar a muchos campos diferentes, incluida la ciberseguridad.

Otra seria limitación de las aplicaciones de aprendizaje automático en ciberseguridad se esconde dentro de los límites de los modelos de inteligencia artificial. Por ejemplo, las máquinas se han vuelto lo suficientemente inteligentes como para vencer a los humanos en el ajedrez.

Pero el ajedrez tiene ciertas reglas. Los motores de ajedrez no se desvían de estas reglas. Cuando se trata de ciberseguridad, los atacantes a menudo no tienen reglas. La naturaleza en constante cambio del panorama digital hace que sea imposible crear una solución de protección que pueda detectar y bloquear todas las amenazas futuras.

Análisis de código fuente con ChatGPT

ChatGPT, desarrollado por OpenAI, ha entrado seriamente en nuestras vidas en muchas áreas. Como puedas haz algunas preguntas y chatea con ChatGPT, también intenta ayudarte con problemas de programación y software. ChatGPT incluso intenta hacer un análisis del código fuente, si lo mira desde una perspectiva de ciberseguridad. Pero ChatGPT aún está en sus inicios y llevará algún tiempo ponerlo en marcha.

Para ver esto mejor, probemos el poder de ChatGPT. Por ejemplo, a continuación se muestra un código JavaScript simple que crea una vulnerabilidad XSS. Preguntemos a ChatGPT sobre este código y pídale que nos informe sobre cualquier vulnerabilidad.

documento.escribir("URL actual: " + documento.baseURI);

ChatGPT mencionó un Vulnerabilidad XSS en respuesta. Este es un muy buen comienzo. Pero los códigos fuente nunca son tan simples. Así que tratemos de hacer el ejemplo un poco más complicado.

A continuación verás un código preparado en el lenguaje de programación C. Este código C pertenece a una aplicación vulnerable. Incluso se utilizó por completo en una aplicación del mundo real. Si lo desea, puede examinar las vulnerabilidades del código fuente del mundo real que Sónar lanzado en 2022.

carbonizarse *ruta del registrador *cmd;

vacíorotarRegistro(){
carbonizarseregistroViejo[PATH_MAX], logNuevo[PATH_MAX], marca de tiempo[0x100];
tiempo_t t;
tiempo(&t);
strftime (marca de tiempo, tamaño de (marca de tiempo), "%FT%T", gmtime(&t));
snprintf (antiguo registro, tamaño de (antiguo registro), "%s/../registros/global.registro", ruta del registrador);
snprintf (registroNuevo, tamaño de (registroNuevo), "%s/../logs/global-%s.log", loggerPath, marca de tiempo);
excl("/bin/cp", "/bin/cp", "-a", "--", registroAntiguo, registroNuevo, NULO);
}

En tprincipal(En t argc, carbonizarse **argv){
si (argc != 2) {
imprimir("Uso: /opt/logger/bin/loggerctl\n");
devolver1;
}

si (setuid(0) == -1) devolver1;
si (seteuido(0) == -1) devolver1;

carbonizarse *ejecutablePath = argv[0];
loggerPath = dirname (ejecutablePath);
cmd = argv[1];

si (!strcmp (cmd, "girar")) rotarRegistro();
demás listaComandos();
devolver0;
}

La vulnerabilidad aquí es que un atacante puede realizar cambios en algunos archivos sin privilegios administrativos. Veamos cómo responderá ChatGPT a esta vulnerabilidad de seguridad.

El problema principal en este código es setuido, identificación de usuario (fluido), y la identificación de usuario efectiva (Euid). Sin embargo, sin entrar en demasiados detalles técnicos, el punto principal al que debe prestar atención es que ChatGPT no pudo detectar esta parte delgada. Puede darse cuenta de que hay un problema, pero desafortunadamente no puede llegar a la raíz de este problema.

A través de estos ejemplos, ha visto reacciones a diferentes lenguajes de programación y vulnerabilidades. Si el código es realmente simple y tiene un agujero de seguridad evidente, ChatGPT puede ayudarte. Pero no debe confiar completamente en ChatGPT para el análisis del código fuente, las pruebas de penetración y otros análisis de seguridad.

El futuro de los probadores de penetración

La inteligencia artificial será una parte importante del trabajo de los probadores de penetración en el futuro. Por ejemplo, los probadores de penetración no tendrán que tomarse el tiempo para detectar actividad maliciosa manualmente y podrán realizar escaneos de seguridad automáticamente.

La IA también ayudará a detectar y tomar medidas contra técnicas de ataque nuevas y más complejas para las pruebas de penetración. Pero la IA sigue siendo como un niño que juega en el parque y necesita el consejo de un adulto. En el futuro cercano, los expertos en seguridad cibernética y los probadores de penetración no se quedarán sin trabajo fácilmente.