La classification des réponses aux incidents et la découverte des vulnérabilités logicielles sont deux domaines dans lesquels les grands modèles de langage réussissent, même si les faux positifs sont courants.
ChatGPT est un chatbot révolutionnaire alimenté par le modèle de langage basé sur un réseau neuronal text-davinci-003 et formé sur de grands ensembles de données textuelles provenant d'Internet. Il est capable de générer du texte de type humain dans différents styles et formats. ChatGPT peut être affiné pour des tâches spécifiques, telles que répondre à des questions, résumer du texte et même résoudre des problèmes liés à la cybersécurité, comme générer des rapports d'incident ou interpréter du code décompilé. Des chercheurs en sécurité et des pirates informatiques se sont intéressés à ChatGPT pour tenter d'explorer les faiblesses de LLM, tandis que d'autres chercheurs ainsi que des cybercriminels ont tenté d'attirer LLM vers le côté obscur, en le transformant en outil de génération de force pour générer de meilleurs e-mails de phishing. ou générer des logiciels malveillants. Il y a eu des cas où des acteurs malveillants ont tenté d'exploiter ChatGPT pour générer des objets malveillants, par exemple des e-mails de phishing ou même des logiciels malveillants polymorphes.
De nombreuses expériences menées par des analystes de sécurité montrent que le populaire modèle de langage étendu (LLM) ChatGPT peut être utile pour aider les défenseurs de la cybersécurité à classer les incidents de sécurité potentiels et à découvrir les vulnérabilités de sécurité dans le code, même si les modèles d'intelligence artificielle (IA) ne disposent pas de formation spécifique. pour ce type d'activité.
Dans une analyse de l'utilitaire ChatGPT en tant qu'outil de réponse aux incidents, les analystes de sécurité ont découvert que ChatGPT peut identifier les processus malveillants exécutés sur des systèmes compromis. Infecter un système à l'aide des agents Meterpreter et PowerShell Empire, prendre des mesures communes dans le rôle de l'adversaire, puis exécuter un scanner de logiciels malveillants alimenté par ChatGPT sur le système. LLM a identifié deux processus malveillants en cours d'exécution sur le système et a correctement ignoré 137 processus inoffensifs, en tirant parti de ChatGPT pour réduire considérablement la surcharge.
Les chercheurs en sécurité étudient également comment les modèles de langage universels fonctionnent sur des tâches spécifiques liées à la défense. En décembre, la société d'investigation numérique Cado Security a utilisé ChatGPT pour analyser les données JSON provenant d'incidents de sécurité réels afin de créer une chronologie des piratages, ce qui a abouti à un rapport bon mais pas entièrement précis. La société de conseil en sécurité NCC Group a tenté d'utiliser ChatGPT pour rechercher des vulnérabilités dans le code. Bien que ChatGPT l'ait fait, l'identification des vulnérabilités n'était pas toujours exacte.
D'un point de vue pratique, les analystes de sécurité, les développeurs et les ingénieurs inverseurs doivent être prudents lorsqu'ils utilisent LLM, en particulier pour des tâches dépassant leurs capacités. "Je pense vraiment que les développeurs professionnels et autres personnes travaillant avec du code devraient explorer ChatGPT et des modèles similaires, mais plus pour s'inspirer que pour obtenir des résultats factuels absolument corrects", a déclaré Chris Anley, scientifique en chef du cabinet de conseil en sécurité NCC Group, "il a déclaré, ajoutant que" La révision du code de sécurité n'est pas quelque chose pour laquelle nous devrions utiliser ChatGPT, il est donc injuste de s'attendre à ce qu'il soit parfait du premier coup. , tactiques, techniques et procédures) sont souvent divulgués publiquement sous la forme de rapports, de présentations, d'articles de blog, de tweets et d'autres types de contenu.
Nous avons donc initialement décidé d'examiner les connaissances de ChatGPT en matière de recherche sur les menaces et si elles pouvaient aider à identifier des outils malveillants simples et bien connus comme Mimikatz et les proxys inverses rapides, et découvrir des tactiques de renommage courantes. Le résultat semble prometteur !
Donc, pour les indicateurs classiques de compromission, tels que les hachages et noms de domaine malveillants bien connus, ChatGPT peut-il répondre correctement ? Malheureusement, lors de nos expériences rapides, ChatGPT n'a pas réussi à produire des résultats satisfaisants : il n'a pas réussi à identifier le hachage bien connu de Wannacry (hash : 5bef35496fcbdbe841c82f4d1ab8b7c2 pour les domaines utilisés par plusieurs campagnes APT, ChatGPT a généré une liste de essentiellement). les mêmes noms de domaine et fourni une description de l'attaquant APT. Peut-être que nous ne savons rien de certains noms de domaine ? Quant aux domaines utilisés par FIN7, chatGPT les classe correctement comme malveillants, bien que la raison qu'il donne est que "le domaine est probablement une tentative de tromper les utilisateurs en leur faisant croire qu'il s'agit d'un domaine légitime" plutôt qu'un index d'intrusion connu.Bien que la dernière expérience visant à imiter les noms de domaine de sites Web connus ait donné un résultat intéressant, des recherches supplémentaires sont nécessaires : il est difficile de dire pourquoi ChatGPT produit de meilleurs résultats pour les incidents de sécurité basés sur l'hôte que pour de simples métriques telles que les noms de domaine et hachages Le résultat est meilleur. Certains filtres peuvent avoir été appliqués à l'ensemble de données d'entraînement, ou si le problème lui-même a été formulé différemment (un problème bien défini est un problème à moitié résolu !)
Quoi qu'il en soit, la réponse à un incident de sécurité basé sur l'hôte semble plus prometteuse , nous avons demandé à ChatGPT d'écrire du code pour extraire diverses métadonnées d'un système Windows de test, puis de demander si les métadonnées sont un indicateur d'une fuite :
Certains extraits de code sont plus pratiques à utiliser que d'autres, nous avons donc décidé de continuer à développer ce PoC manuellement : nous avons filtré les réponses de ChatGPT pour la sortie d'événement contenant des déclarations sur l'existence d'un indicateur de compromission de "oui", ajouté des gestionnaires d'exceptions et des rapports CSV, corrigé des bugs mineurs et converti les extraits de code en une applet de commande distincte, qui a abouti à un simple scanner de sécurité IoC HuntWithChatGPT.psm1, capable d'analyser les systèmes distants via WinRM :
Get-ChatGPTIoCScanResults-apiKey OpenAI API key https://beta.openai.com/docs/api-reference/authentication -SkipWarning []-Path -IoCOnly []Export only Indicators of compromise-ComputerName Remote Computer's Name-Credential Remote Computer's credentials
Nous avons infecté le système cible à l'aide des agents Meterpreter et PowerShell Empire, et avons simulé certaines procédures d'attaque typiques. Lorsque le scanner est exécuté sur le système cible, il génère un rapport d'analyse contenant la conclusion de ChatGPT :
J'ai correctement identifié deux processus malveillants sur 137 processus bénins sans aucun faux positif.
Veuillez noter que ChatGPT fournit les raisons pour lesquelles il conclut que les métadonnées sont un indicateur d'une violation, telles que "la ligne de commande tente de télécharger le fichier à partir d'un serveur externe" ou "elle utilise le contournement "-ep". " drapeau, qui indique à PowerShell de contourner les contrôles de sécurité qui existent normalement ».
Pour l'événement d'installation du service, nous avons légèrement modifié la question pour guider ChatGPT à « réfléchir étape par étape » afin de le ralentir et d'éviter les biais cognitifs, comme suggéré par plusieurs chercheurs sur Twitter :
Le nom du service Windows est-il "$ServiceName" ci-dessous et la chaîne de lancement "$Servicecmd" sous les indicateurs de compromission ? S'il vous plaît, réfléchissez étape par étape.
ChatGPT a réussi à identifier les installations de services suspectes sans aucun faux positif. Cela crée une hypothèse valable selon laquelle « le code est utilisé pour désactiver la journalisation ou d'autres mesures de sécurité sur les systèmes Windows ». Pour le deuxième service, il conclut sur les raisons pour lesquelles le service doit être classé comme indicateur de compromission : "Ces deux informations indiquent que le service Windows et la chaîne qui démarre le service peuvent être associés à une forme de malware ou autre. connexions d’activités malveillantes et doivent donc être considérées comme des indicateurs d’intrusion.
Analyse des événements de création de processus dans les journaux Sysmon et de sécurité à l'aide des applets de commande PowerShell correspondantes Get-ChatGPTSysmonProcessCreationIoC et Get-ChatGPTProcessCreationIoC. Le rapport final a souligné que certains incidents étaient malveillants :
ChatGPT a identifié des modèles suspects dans le code ActiveX : « La ligne de commande inclut des commandes pour démarrer un nouveau processus (svchost.exe) et terminer le processus en cours (rundll32.exe) ».
décrit correctement la tentative de vidage du processus lsass : "a.exe s'exécute avec des privilèges élevés et utilise lsass (représentant le service du sous-système de l'autorité de sécurité locale) comme cible ; enfin, dbg.dmp indique que lors de l'exécution du débogueur, création d'un vidage mémoire" .
Désinstallation du pilote Sysmon correctement détectée : "La ligne de commande comprend des instructions pour désinstaller le pilote de surveillance du système".
Lors de l'inspection des blocs de script PowerShell, nous avons modifié la question pour vérifier non seulement les indicateurs, mais également les techniques d'obscurcissement :
Le script PowerShell suivant est-il obscurci ou contient-il des indicateurs de compromission ? "$ScriptBlockText"
ChatGPT est non seulement capable de détecter les techniques d'obscurcissement, mais énumère également certains cryptages XOR, encodage Base64 et substitution de variables.
Bien sûr, cet outil n'est pas parfait et peut produire aussi bien des faux positifs que des faux négatifs.
Dans l'exemple ci-dessous, ChatGPT n'a pas détecté d'activité malveillante ayant vidé les informations d'identification du système via le registre SAM, tandis que dans un autre exemple, le processus lsass.exe a été décrit comme indiquant potentiellement « une activité malveillante ou des risques de sécurité, tels qu'un logiciel malveillant du système s'exécutant sur " :
Un résultat intéressant de cette expérience est la réduction des données dans l'ensemble de données. Après avoir simulé un adversaire sur un système de test, le nombre d'événements à vérifier par les analystes est considérablement réduit :
Veuillez noter que les tests sont effectués sur un nouveau système hors production. Un système de production peut générer davantage de faux positifs.
Conclusion de l'expérience
Dans l'expérience ci-dessus, l'analyste de sécurité a mené une expérience qui a commencé en demandant à ChatGPT plusieurs outils de piratage tels que Mimikatz et Fast Reverse Proxy. Le modèle d'IA a décrit avec succès ces outils, mais lorsqu'on lui a demandé d'identifier les hachages et les noms de domaine bien connus, ChatGPT a échoué, ne le décrivant pas correctement. Par exemple, LLM n’a pas pu identifier les hachages connus du malware WannaCry. Cependant, le succès relatif de l'identification du code malveillant sur l'hôte a conduit les analystes de sécurité à tenter de demander à ChatGPT de créer un script PowerShell dans le but de collecter des métadonnées et des indicateurs de compromission du système et de le soumettre à LLM.
Au total, les analystes de sécurité ont utilisé ChatGPT pour analyser les métadonnées de plus de 3 500 événements sur les systèmes de test et ont trouvé 74 indicateurs potentiels de compromission, dont 17 étaient des faux positifs. Cette expérience démontre que ChatGPT peut être utilisé pour collecter des informations médico-légales pour les entreprises qui n'utilisent pas de systèmes de détection et de réponse des points de terminaison (EDR), détecter l'obscurcissement du code ou procéder à l'ingénierie inverse des binaires de code.
Bien que la mise en œuvre exacte de l'analyse IoC ne soit pas actuellement une solution très rentable, aux alentours de 15 à 25 dollars par hôte, elle montre des résultats neutres intéressants et révèle des opportunités de recherche et de tests futurs. Au cours de nos recherches, nous avons remarqué plusieurs domaines dans lesquels ChatGPT sert d'outil de productivité pour les analystes de sécurité :
Inspection du système pour détecter des indicateurs de compromission, surtout si vous n'avez toujours pas d'EDR rempli de règles de détection et que vous devez effectuer des analyses judiciaires numériques et des incidents. Réponse (DFIR)
Comparez votre ensemble de règles actuel basé sur les signatures avec le résultat de ChatGPT pour identifier les lacunes. Il existe toujours des techniques ou des procédures dont vous, en tant qu'analyste, ignorez ou pour lesquelles vous avez oublié de créer des signatures.
Détecter l'obscurcissement du code ;
Détection de similarité : alimentez ChatGPT en binaires malveillants et essayez de lui demander si de nouveaux binaires sont similaires à d'autres binaires.
La moitié du problème est déjà résolue en posant la question correctement, expérimenter diverses déclarations dans les questions et les paramètres du modèle peut donner des résultats plus précieux, même pour les hachages et les noms de domaine. De plus, méfiez-vous des faux positifs et des faux négatifs que cela peut produire. Car en fin de compte, il ne s’agit que d’un autre réseau neuronal statistique sujet à des résultats inattendus.
Les règles d'utilisation équitable et de confidentialité doivent être clarifiées
Des expériences similaires soulèvent également des questions clés sur les données soumises au système ChatGPT d'OpenAI. Les entreprises ont commencé à s'opposer à l'utilisation d'informations provenant d'Internet pour créer des ensembles de données, des entreprises comme Clearview AI et Stability AI faisant face à des poursuites judiciaires pour tenter de restreindre l'utilisation de leurs modèles d'apprentissage automatique.
La vie privée est un autre problème. "Les professionnels de la sécurité doivent déterminer si la soumission d'indicateurs d'intrusion expose des données sensibles ou si la soumission du code logiciel pour analyse porte atteinte aux droits de propriété intellectuelle de l'entreprise", a déclaré Anley du groupe NCC. "La question de savoir si la soumission de code à ChatGPT est une bonne idée est une grande question. "La mesure dépend des circonstances", a-t-il également déclaré. "Une grande partie du code est propriétaire et protégée par diverses lois, je ne recommande donc pas aux gens de soumettre du code à des tiers sans autorisation."
D'autres experts en sécurité également " Un avertissement similaire a été émis : l'utilisation de ChatGPT pour détecter les intrusions envoie des données sensibles au système, ce qui peut violer la politique de l'entreprise et potentiellement présenter des risques commerciaux. En utilisant ces scripts, vous pouvez envoyer des données (y compris des données sensibles) à OpenAI, alors soyez prudent et vérifiez au préalable auprès du propriétaire du système.
Cet article est traduit de : https://securelist.com/ioc-detection-experiments-with-chatgpt/108756/
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!