Le 20 mars, OpenAI a supprimé le populaire outil d'IA générative ChatGPT pendant quelques heures. Plus tard admis que la raison de la panne était une vulnérabilité de la chaîne d'approvisionnement logicielle provenant de la bibliothèque open source du magasin de données en mémoire 'Redis".
En raison de cette vulnérabilité, il existait une fenêtre horaire (entre 1 h et 10 h PST le 20 mars) pendant laquelle les utilisateurs pouvaient accidentellement accéder aux titres de l'historique des discussions d'autres utilisateurs et éventuellement exposer des informations liées au paiement telles que des noms, des adresses e-mail, des adresses de paiement. , le type de carte de crédit et les quatre derniers chiffres du numéro de carte de paiement.
Il s’agissait d’un bug relativement mineur qui a été détecté et corrigé rapidement. Compte tenu de la popularité croissante de ChatGPT et d'autres LLM génératifs, quelles pourraient être les retombées d'une approche plus ciblée attaque de la chaîne d'approvisionnement logicielle?
Dans cet article, nous examinerons ce qui s'est passé exactement le 20 mars et comment les informations des utilisateurs ont été exposées. Nous ferons également un court voyage imaginaire dans une attaque potentielle plus grave et verrons quelles informations peuvent être exposées et ce qui peut être fait pour aider à prévenir de tels cas. Nous terminerons par quelques généralités sécurité de la chaîne logistique logicielle des suggestions qui peuvent être pertinentes quel que soit le logiciel sur lequel votre entreprise travaille.
Voici ce qui s'est passé
Comme presque toutes les autres sociétés de logiciels, le code d'OpenAI dépend en grande partie de bibliothèques et de codes open source. Dans ce cas, le bug a été découvert dans la bibliothèque open source du client Redis, redis-py. Voici la description du bug telle qu'elle apparaît dans celle de l'entreprise raconter:
- OpenAI utilise Redis pour mettre en cache les informations utilisateur sur son serveur afin de ne pas avoir besoin de vérifier leur base de données pour chaque requête.
- Les clusters Redis sont utilisés pour répartir cette charge sur plusieurs instances Redis.
- La bibliothèque redis-py est utilisée pour s'interfacer avec Redis depuis le serveur Python de l'entreprise, qui fonctionne avec Asyncio.
- La bibliothèque maintient un pool partagé de connexions entre le serveur et le cluster et recycle une connexion pour l'utiliser pour une autre requête une fois effectuée.
- Lors de l'utilisation d'Asyncio, les requêtes et les réponses avec redis-py se comportent comme deux files d'attente : l'appelant pousse une requête sur le file d'attente entrante, affiche une réponse du file d'attente sortante, puis renvoie la connexion au pool.
- Supposons qu'une demande soit annulée après avoir été placée dans la file d'attente entrante, mais avant que la réponse ne sorte de la file d'attente sortante. Dans ce cas, nous voyons notre bug: la connexion est corrompue et la prochaine réponse extraite pour une requête sans rapport peut recevoir les données laissées dans la connexion.
- Dans la plupart des cas, cela entraîne une erreur de serveur irrécupérable et l'utilisateur devra réessayer sa demande.
- Mais dans certains cas, les données corrompues correspondent au type de données attendu par le demandeur, et ce qui est renvoyé par le cache semble donc valide, même s'il appartient à un autre utilisateur.
- Le lundi 1 mars à 20 heure du matin, heure du Pacifique, OpenAI a introduit par inadvertance une modification sur son serveur qui a provoqué une augmentation des annulations de requêtes Redis. Cela créait une probabilité plus élevée que d’habitude que chaque connexion renvoie des données incorrectes.
Ce bug spécifique n'est apparu que dans le client redis-py Asyncio pour Redis Cluster et a depuis été corrigé grâce au travail combiné des ingénieurs OpenAI et des mainteneurs de la bibliothèque Redis.
Pour rappel, ce bug pourrait exposer par inadvertance le titre de recherche d'un autre utilisateur actif et une partie des informations de paiement de cet utilisateur. Certains utilisateurs donnent désormais à ChatGPT un contrôle total ou partiel sur leurs données personnelles. finances, ce qui donne à la divulgation de ces informations des résultats potentiellement catastrophiques.
Voici ce qui pourrait arriver
Dans ce cas, le bug de la chaîne d’approvisionnement logiciel hérité par OpenAi de la bibliothèque open source Redis était relativement simple et facilement corrigé. Je voudrais demander votre indulgence pour imaginer un scénario plus grave, dans lequel une attaque ciblée de la chaîne d'approvisionnement logicielle, similaire à celle rencontrée SolarWinds a lieu et reste inaperçu pendant une période de temps significative, disons des mois.
Étant donné que les utilisateurs paient désormais OpenAI pour un accès plus direct à leur LLM, une telle attaque pourrait potentiellement révéler les informations du client, y compris ses données de paiement. Mais ce n’est pas vraiment l’information qui intéresse notre hypothétique groupe de hackers. ChatGPT a actuellement 1.16 milliards d'utilisateurs. Il a franchi 1 milliard d'utilisateurs en mars 2023. Ces chiffres représentent une augmentation de près de 55 % entre février 2023 et mars 2023. Alors que de nombreuses personnes utilisent désormais l'IA générative pour tout, des devoirs d'art aux devoirs d'histoire en passant par les finances, un accès illimité à la base de données d'OpenAI pourrait révéler un potentiel. informations de chantage sur un nombre incalculable d'utilisateurs. Le Black Mirror L'épisode « Shut Up and Dance » (saison 3, épisode 3, 2016) donne un résultat assez imaginatif à des informations aussi explicites qui se retrouvent entre les mains de personnes sans scrupules. Si vous recherchez un parallèle plus réel, le Violation de données d'Ashley Madison à partir de 2015 a eu de graves conséquences, dont certaines sont toujours d’actualité même des années plus tard.
Allons un peu plus loin dans notre hack imaginatif et disons que non seulement ce groupe de hackers anonyme peut accéder à la base de données OpenAI, mais qu'il peut également influencer les résultats des requêtes. Pouvez-vous imaginer le potentiel de millions de personnes recevant des conseils financiers ciblés et élaborés sur mesure par un groupe de hackers ? Ou obtenir de fausses informations d’analyse de sécurité ou des informations de test de code grâce, encore une fois, à notre mystérieux groupe de hackers. Le fait que ChatGPT puisse désormais accéder à Internet rend d'autant plus facile la dissimulation des informations entrant ou sortant des serveurs d'OpenAI comme rien de plus que des données régulières et inoffensives.
Je vais m'arrêter ici, mais je pense que vous pouvez voir les énormes dommages potentiels qu'une attaque de la chaîne d'approvisionnement logicielle contre un LLM réussi peut causer.
Comment vous protéger et protéger votre chaîne d'approvisionnement en logiciels
L’une des premières choses que vous pouvez faire pour vous protéger est d’aiguiser votre sentiment de suspicion. Ne faites implicitement confiance à aucun outil, aussi inoffensif soit-il, à moins que vous puissiez garantir que vous avez un contrôle total sur ce qu'il fait, ce qu'il peut potentiellement faire et les ressources auxquelles il a accès. La possibilité d'exécuter une version open source de ChatGPT localement peut vous donner plus de contrôle, à la fois sur les informations de formation et sur le niveau d'accès dont elles disposent.
En tant qu'éditeur de logiciels souhaitant être plus vigilant quant au potentiel risques liés à la chaîne d'approvisionnement en logiciels hérité des packages open source qu'il utilise, je vous encourage à consulter La solution du Scribe. Scribe a développé une plate-forme qui permet une plus grande transparence dans votre SDLC complet en termes de tous les packages et packages hérités que vous incluez ainsi que de tous les tests que vous souhaitez effectuer en cours de route. La plateforme génère un SBOM pour chacune de vos builds et inclut toutes les informations de sécurité rassemblées pour chaque build en un seul endroit. Il peut également vous indiquer si votre build est conforme au SLSA jusqu'au niveau 3 et au SSDF du NIST. Le nouveau Outil Valent vous permet également de composez vos propres politiques et appliquez-les à n’importe quelle partie de votre pipeline de build que vous désirez. Enregistrer toutes vos informations de sécurité en un seul endroit, classées par builds au fil du temps, vous permet d'observer l'évolution de votre application à mesure qu'elle évolue tant en termes de dépendances que de sécurité.
L'avenir de l'IA
L’IA est là pour rester, quoi que nous fassions. Le niveau de son implication dans notre vie quotidienne est une question de spéculation, mais sur la base des seuls 6 derniers mois, il semble certain que nous assistons à un tournant potentiel pour la technologie LLM et ses utilisations. Alors que l'IA fait de la création de code et d'applications complètes une question de trouver les bonnes invites en « langage naturel », nous pourrions être confrontés à un déluge sans précédent d'applications qui n'ont pas été correctement testées et qui ne disposent pas des garanties de sécurité appropriées pour protéger leurs utilisateurs. et les personnes ou entreprises qui les ont créés.
Plus tard ce mois-ci, Scribe organisera une en direct traitant spécifiquement de la question de savoir si vous pouvez ou non faire confiance à l’IA pour vous aider à protéger votre chaîne d’approvisionnement logicielle. Si vous avez des questions basées sur ce que vous avez lu ici, ce serait le bon endroit et le bon moment pour les présenter.
Depuis l' La plateforme Scribe est gratuite à utiliser jusqu'à 100 builds par mois. J'encourage chacun d'entre vous, un seul développeur ou une entreprise, à l'essayer et à voir à combien de vos besoins en matière de sécurité et de réglementation la plate-forme répond. Jusqu'au jour où une véritable intelligence nous écoutera derrière nos écrans, nous devrons trouver d'autres moyens de gérer notre propre sécurité et je crois que promouvoir la visibilité en tant que précurseur de la confiance est un bon point de départ.
Ce contenu vous est proposé par Scribe Security, l'un des principaux fournisseurs de solutions de sécurité de bout en bout pour la chaîne d'approvisionnement logicielle, offrant une sécurité de pointe aux artefacts de code ainsi qu'aux processus de développement et de livraison de code tout au long des chaînes d'approvisionnement logicielles. En savoir plus.