ChatGPT n’est peut-être pas utilisé par toutes les entreprises et est peut-être même interdit dans de nombreuses organisations. Mais cela ne signifie pas que ces dernières ne sont pas exposées aux risques de sécurité qu’il contient. Cet article examine les raisons pour lesquelles ChatGPT devrait faire partie de l’état des lieux des menaces des organisations.
Pourquoi ChatGPT présente un risque de sécurité pour les organisations
ChatGPT est arrivé en 2023 comme un raz de marée. Cependant, l'IA et les grands modèles de langage ne sont pas si nouveaux ; GitHub Co-Pilot en est un autre exemple. Il ne fait d’ailleurs aucun doute que les grands outils de modèles de langages entraînés comme ChatGPT sont là pour rester. Mais alors que de plus en plus d'ingénieurs logiciels utilisent ChatGPT, à quoi pouvons-nous nous attendre ? Et plus précisément, quels sont les risques de sécurité qui y sont associés ? Cet article va énumérer les raisons pour lesquelles ChatGPT doit être considéré comme faisant partie de la surface d'attaque des organisations. Des informations indispensables sont à connaitre, même pour les entreprises qui ne l’utilisent pas .
Pourquoi ChatGPT doit-il faire partie de l’état des lieux des menaces des organisations ?
Avant de nous pencher plus avant sur ChatGPT, prenons le temps de discuter des problèmes de sécurité liés à GitHub, car il existe des similitudes entre les deux plateformes. GitHub est utilisée par près de 100 millions de développeurs, qui y hébergent leurs projets, en open-source. Les développeurs utilisent GitHub pour se former et, bien sûr, pour présenter leurs portfolios. Cependant, GitHub est aussi un endroit où des informations sensibles peuvent facilement être divulguées. Un rapport1 a révélé que plus de 10 millions de secrets, tels que des clés d'API et des identifiants, ont été exposés dans des dépôts publics rien qu'en 2022. Un grand nombre de ces secrets appartenaient en fait à des organisations, mais ont été divulgués par le biais de comptes personnels ou non connectés. Par exemple, chez Toyota, bien que la société n'utilise pas elle-même GitHub, un consultant a accidentellement divulgué des informations d'identification de base de données associées à une application mobile Toyota dans un dépôt public GitHub.
Cela soulève des inquiétudes concernant ChatGPT et d'autres outils LLM car, comme pour GitHub, même si une organisation n'utilise pas ChatGPT, ses collaborateurs le font très certainement. Au sein de la communauté des développeurs, la crainte de prendre du retard si l'on n'utilise pas ces outils, pour améliorer la productivité, est palpable. Cependant, à l'instar de GitHub, il est possible d’avoir un contrôle limité sur ce que les employés partagent avec ChatGPT, et il y a de fortes chances que des informations sensibles soient stockées sur la plateforme, ce qui pourrait entraîner une fuite.
Dans un rapport récent, le service de sécurité des données Cyberhaven a détecté et bloqué les demandes de saisie de données dans ChatGPT de 4,2 % des 1,6 million d’employés de ses entreprises clientes en raison du risque de fuite d'informations confidentielles, de données de clients, de code source ou d'informations réglementées vers le LLM.
L'une des meilleures mesures pour connaître les outils utilisés par les développeurs est, ironiquement, la mesure du nombre de secrets divulgués sur GitHub. Selon un rapport1, les clés d'API OpenAI ont connu une augmentation massive vers la fin de l'année 2022, tout comme les mentions de ChatGPT sur GitHub, ce qui montre une tendance claire à l'utilisation de ces outils par les développeurs.
Le risque de fuite de données
Partout où il y a du code source, il y a des secrets, et ChatGPT est souvent utilisé comme une sorte d'assistant ou de co-auteur de code. Bien qu'il y ait déjà eu des cas où ChatGPT a subi des vols de données, comme l'exposition accidentelle de l'historique des requêtes à des utilisateurs non acrédités, le problème le plus préoccupant est le stockage d'informations sensibles de manière totalement inappropriée et non sécurisée pour leur niveau de sensibilité.
Le stockage et le partage de données sensibles, telles que les secrets, devraient toujours être effectués avec un niveau de sécurité élevé, y compris un cryptage de haute qualité, un contrôle d'accès strict et des logs indiquant où, quand et qui a accédé aux données. Cependant, ChatGPT n'est pas conçu pour traiter des informations sensibles, car il ne dispose pas de chiffrement, de contrôle d'accès strict et de logs d'accès. Ceci est similaire à l'utilisation des dépôts git, où les fichiers sensibles peuvent souvent se retrouver malgré l'absence de contrôles de sécurité suffisants. Cela signifie que les informations sensibles sont laissées dans une base de données non chiffrée qui est susceptible d'être une cible privilégiée pour les attaquants.
En particulier, les comptes ChatGPT personnels, que les employés peuvent utiliser pour éviter d'être détectés au travail, ont une sécurité plus faible et un historique complet de toutes les requêtes et de tous les codes entrés dans l'outil. Cela pourrait constituer un trésor d'informations sensibles pour les attaquants, ce qui représente un risque important pour les organisations, qu'elles autorisent ou non l'utilisation de ChatGPT dans le cadre de leurs activités quotidiennes.
Le problème est double car la fuite de données sensibles se fait vers et depuis ChatGPT. La plateforme empêchera d'obtenir des informations sensibles si elles sont demandées directement, en répondant par une réponse générique. Mais ChatGPT est très facile à tromper. Dans l'exemple ci-dessous, il a été demandé à ChatGPT de fournir des informations d'identification AWS et elle a refusé. Mais si on modifie sa requête pour la rendre moins malveillante et la plateforme répond.
Environ la moitié des jetons fournis comme exemples contenaient le mot EXAMPLEKEY, ce qui n’était pas le cas pour l'autre moitié. Il est donc légitime de se demander d'où viennent ces clés. Elles correspondent toutes au format AWS, y compris le jeu de caractères, la longueur et la base d'entropie (à l'exception du texte d'exemple). ChatGPT est-elle capable de comprendre comment ces clés sont fabriquées ou modifie-t-elle les clés trouvées dans son ensemble de données ? Il est plus probable qu'il s'agisse de la seconde hypothèse. ChatGPT utilise l'ensemble de données Common Crawl, un corpus web accessible au public qui contient plus d'un trillion de mots de texte provenant de diverses sources sur l'internet. Cet ensemble de données comprend le code source de dépôts publics sur GitHub, dont on sait qu'il contient une grande quantité d'informations sensibles. Lorsque GitHub a lancé Copilot, il était possible de lui faire donner des clés d'API et des informations d'identification à titre de suggestions. ChatGPT modifie ses réponses de manière significative en fonction de la manière dont la question est posée. Il se pourrait donc que le fait de lui poser les bonnes questions lui permette de divulguer des informations sensibles à partir de l'ensemble des données de Common Crawl.
ChatGPT n'est pas un très bon ingénieur logiciel
L'autre problème de sécurité avec ChatGPT est le même que celui que présente Co-Pilot. En se plongeant dans la recherche, il est possible de découvrir le concept des biais de l'IA, c'est-à-dire que des utilisateurs font confiance à l'IA beaucoup plus qu’ils ne devraient. Comme lorsqu’un ami est très confiant dans ses réponses, il est facile de croire qu'il a raison jusqu'à finalement découvrir qu’il n’y connait rien mais qu’il aime beaucoup parler (un peu comme ChatGPT). La plateforme donne souvent des exemples de code qui ne sont absolument pas sécurisés et, contrairement à des forums comme StackOverflow, il n'y a pas de communauté pour en avertir les utilisateurs. Par exemple, lorsqu’on lui demande d'écrire du code pour se connecter à AWS, il codifie en dur les informations d'identification au lieu de les gérer de manière sécurisée, en utilisant notamment des variables d'environnement.
Le problème est que beaucoup de développeurs font confiance à la solution que leur donne l’IA, sans comprendre qu'elle n'est pas sécurisée ni pourquoi elle ne l'est pas.
L'IA va s'améliorer, mais sa qualité dépend des données sur lesquelles elle est entraînée. Elles sont formées sur de grands ensembles de données qui ne sont pas toujours de bonne qualité. Cela signifie qu'elles peuvent ne pas être en mesure de faire la distinction entre un bon et un mauvais code source, et c'est la raison pour laquelle elles fournissent des exemples de mauvaises pratiques de codage.
- Sensibiliser les développeurs : il est important de sensibiliser les développeurs aux limites de l'IA tels que ChatGPT. Au lieu de l’interdire, il faut montrer aux développeurs pourquoi ces outils ne sont pas sûrs et les confronter à leurs préjugés en matière d'IA. Les utilisateurs de l’IA doivent comprendre les limites de cette technologie.
- Identifier et sécuriser les secrets : pour éviter que des informations sensibles ne soient divulguées via ChatGPT, il est également important d'identifier les secrets et de réduire leur prolifération. Cela implique de rechercher les secrets dans les référentiels et les réseaux, de les centraliser dans un gestionnaire de secrets et d'appliquer des politiques strictes de contrôle d'accès et de rotation. Ce faisant, il sera possible de réduire la probabilité qu'un secret se retrouve dans l'historique de ChatGPT.
- L'accepter parce qu'elle est là pour rester : il ne faut pas résister à la révolution de l'IA, mais plutôt l'accepter avec prudence. Bien que les fuites d'informations d'identification soient une préoccupation légitime, l'IA peut également être un outil précieux si elle est utilisée en comprenant son objectif et ses limites.
En prenant des mesures pour se former et sécuriser ses données, les utilisateurs, les développeurs peuvent tirer parti des avantages de l'IA sans compromettre la sécurité.
1 Le Rapport de GitGuardian State of Secrets Sprawl 2023