L'intelligence artificielle peut-elle vous renseigner sur les vulnérabilités d'un programme? Peut-être, mais vous ne voudrez peut-être pas mettre toute votre foi dans ce qu'il dit.
Le test d'intrusion est un test de sécurité qui consiste à utiliser des vulnérabilités pour découvrir d'autres vulnérabilités dans un système et exécuter un code malveillant. Ces tests sont particulièrement importants pour se protéger contre l'exploration de données et prévenir les exploits de sécurité.
Les tests d'intrusion incluent plusieurs techniques utilisées pour tester la sécurité du réseau. Ces techniques comprennent l'analyse du réseau, les pare-feu, les systèmes de surveillance de la sécurité et l'intelligence artificielle. L'intelligence artificielle peut analyser les tests de sécurité à l'aide de technologies développées pour révéler les vulnérabilités du réseau.
L'IA peut vous permettre d'obtenir des résultats plus complets et efficaces avec des algorithmes spéciaux conçus pour être utilisés dans les tests de pénétration et les tests de sécurité exécutés automatiquement.
Avantages de l'utilisation de l'IA pour les tests d'intrusion
Aujourd'hui, le développement rapide de la technologie et les besoins de sécurité toujours croissants des utilisateurs ont révélé la nécessité d'utiliser les technologies de l'IA dans les tests de sécurité. L'utilisation de l'IA pour améliorer la sécurité fournit des résultats beaucoup plus rapides et plus efficaces, éliminant ainsi le besoin de main-d'œuvre chronophage pour effectuer des tests de sécurité souvent personnalisés et complexes. L'IA aide à détecter les vulnérabilités le plus tôt possible. Il peut également effectuer des tests de sécurité uniques et complexes, ce qui facilite la détection des vulnérabilités.
L'IA semble plutôt efficace, surtout lorsqu'il s'agit de détecter et de bloquer une attaque. Pour former l'intelligence artificielle, de très grands ensembles de données sont nécessaires. Une application avec un trafic Web élevé est un bienfaiteur à cet égard. Parce que vous pouvez faire en sorte que chaque trafic entrant ressemble à un ensemble de données à utiliser par l'IA. Ainsi, vous avez une IA qui peut lire et analyser le trafic des applications Web et détecter les menaces. C'est l'un des exemples les plus simples que l'on puisse donner.
Il peut également prédétecter non seulement le trafic Web, mais également de nombreux logiciels malveillants pour votre application ou votre appareil. Cette méthode a déjà commencé à être utilisée par de nombreux pare-feux.
En plus de tout cela, l'erreur humaine est l'un des plus gros problèmes de la cybersécurité. Une vulnérabilité de code mineure qui passe inaperçue peut entraîner des problèmes de sécurité majeurs et irréversibles. Certains plugins qui analysent les vulnérabilités dans le code sont apparus avec le développement de l'IA, et ils avertissent les développeurs de ces problèmes. Jusqu'à présent, ils ont montré un certain succès dans la prévention des erreurs humaines.
De plus, le temps de réponse affiché face à une menace est également très important. En cas d'attaque, il faut du temps pour détecter l'attaque, planifier le chemin à défendre et lancer les systèmes de défense. Mais l'IA est très utile à cet égard.
Limites de l'IA dans la cybersécurité
L'utilisation de l'IA à des fins de cybersécurité nécessite d'identifier et d'analyser les applications malveillantes, propres et potentiellement dangereuses. Même si vous utilisez de très grands ensembles de données pour former un algorithme, vous ne pouvez jamais être sûr du résultat. Par conséquent, il n'est pas sûr de se fier entièrement aux machines et à l'IA. Il est nécessaire de soutenir la technologie de l'IA avec une intervention humaine.
Certains fabricants d'outils de sécurité affirment que les solutions basées sur l'apprentissage automatique peuvent analyser chaque instance. Selon les fabricants, ces outils peuvent détecter les logiciels malveillants en utilisant uniquement des moyens mathématiques. Cependant, cela n'est guère possible.
Le craquage du code Enigma par Alan Turing pendant la Seconde Guerre mondiale en est un très bon exemple. Même une machine parfaite ne peut pas décider si une entrée inconnue peut provoquer un comportement indésirable à l'avenir. Ces preuves peuvent être appliquées à de nombreux domaines différents, y compris la cybersécurité.
Une autre limitation sérieuse des applications d'apprentissage automatique dans la cybersécurité se cache dans les limites des modèles d'intelligence artificielle. Par exemple, les machines sont devenues suffisamment intelligentes pour battre les humains aux échecs.
Mais les échecs ont certaines règles. Les moteurs d'échecs ne dérogent pas à ces règles. En matière de cybersécurité, les attaquants n'ont souvent aucune règle. La nature en constante évolution du paysage numérique rend impossible la création d'une solution de protection capable de détecter et de bloquer toutes les menaces futures.
Analyse du code source avec ChatGPT
ChatGPT, développé par OpenAI, a fait une entrée sérieuse dans nos vies dans de nombreux domaines. Comme tu peux posez des questions et discutez avec ChatGPT, il essaie également de vous aider avec les problèmes de programmation et de logiciel. ChatGPT essaie même de faire une analyse du code source, si vous le regardez du point de vue de la cybersécurité. Mais ChatGPT en est encore à ses balbutiements et prendra un certain temps pour être opérationnel.
Pour mieux voir cela, testons la puissance de ChatGPT. Par exemple, ci-dessous est un simple code JavaScript qui crée une vulnérabilité XSS. Interrogeons ChatGPT sur ce code et informons-nous de toutes les vulnérabilités.
document.écrire("URL actuelle: " + document.baseURI);
ChatGPT a mentionné un Vulnérabilité XSS en réponse. C'est un très bon début. Mais les codes sources ne sont jamais aussi simples. Essayons donc de rendre l'exemple un peu plus compliqué.
Ci-dessous, vous verrez un code préparé dans le langage de programmation C. Ce code C appartient à une application vulnérable. Il a même été entièrement utilisé dans une application réelle. Si vous le souhaitez, vous pouvez examiner les vulnérabilités réelles du code source qui Sonar sorti en 2022.
carboniser *loggerPath *cmd;
annulerrotationLog(){
carboniserlogOld[PATH_MAX], logNouveau[PATH_MAX], horodatage[0x100];
temps_t t ;
temps(&t);
strftime (horodatage, sizeof (horodatage), "%FT%T", gmtime(&t));
snprintf (logOld, sizeof (logOld), "%s/../logs/global.log", loggerPath);
snprintf (logNew, sizeof (logNew), "%s/../logs/global-%s.log", loggerPath, horodatage);
execl("/bin/cp", "/bin/cp", "-un", "--", logAncien, logNouveau, NUL);
}entierprincipal(entier argc, carboniser **argv){
si (argc != 2) {
printf("Utilisation: /opt/logger/bin/loggerctl \n");
retour1;
}si (setuid(0) == -1) retour1;
si (setuid(0) == -1) retour1;carboniser *executablePath = argv[0];
loggerPath = dirname (executablePath);
cmd = argv[1] ;
si (!strcmp (cmd, "tourner")) rotateLog();
autre listeCommandes();
retour0;
}
La vulnérabilité ici est qu'un attaquant peut apporter des modifications à certains fichiers sans privilèges administratifs. Voyons comment ChatGPT répondra à cette faille de sécurité.
Le principal problème de ce code est tranquille, ID de l'utilisateur (uid) et l'ID utilisateur effectif (euid). Cependant, sans entrer dans trop de détails techniques, le point principal auquel vous devez prêter attention est que ChatGPT n'a pas pu détecter cette partie fine. Il peut se rendre compte qu'il y a un problème mais ne peut malheureusement pas aller à la racine de ce problème.
À travers ces exemples, vous avez vu des réactions à différents langages de programmation et vulnérabilités. Si le code est vraiment simple et présente une faille de sécurité évidente, ChatGPT peut vous aider. Mais vous ne devez pas vous fier entièrement à ChatGPT pour l'analyse du code source, les tests d'intrusion et d'autres analyses de sécurité.
L'avenir des testeurs d'intrusion
L'intelligence artificielle sera une partie importante du travail des testeurs d'intrusion à l'avenir. Par exemple, les testeurs d'intrusion n'auront pas à prendre le temps de détecter manuellement les activités malveillantes et pourront effectuer des analyses de sécurité automatiquement.
L'IA aidera également à détecter et à prendre des mesures contre les techniques d'attaque nouvelles et plus complexes pour les tests d'intrusion. Mais l'IA est toujours comme un enfant jouant dans le parc et a besoin des conseils d'un adulte. Dans un avenir proche, les experts en cybersécurité et les testeurs d'intrusion ne seront pas facilement au chômage.