Aller au contenu principal

Sécurité : des pirates armés d'IA ont volé les clés d'IA de Railway, qui paie les 740 000 dollars ?


Vingt-six heures de bagarre. Les 20 et 21 octobre, des pirates armés d'agents IA se sont battus contre les ingénieurs de Railway, un hébergeur américain, c'est-à-dire une entreprise qui loue des serveurs où les développeurs déposent leurs applications pour qu'elles tournent sur Internet. Les pirates ouvraient des portes, les ingénieurs les refermaient, et les pirates en ouvraient trois autres en même temps. À la fin, ils sont repartis avec les clés d'IA de milliers de clients, et ces clés ont servi à consommer pour environ 740 000 dollars d'IA. Sur la facture des autres, évidemment ! Railway a publié son rapport complet mardi 10 novembre, heure par heure.

La nuit, à la réception d'un vieil hôtel, le tableau des clés derrière le comptoir est presque vide, et un petit robot gris s'éloigne vers la sortie avec un énorme trousseau dans les bras

Le tableau des clés de la réception, après le passage des pirates

Vingt-six heures de tape-taupe

Le samedi 18 octobre, quelqu'un crée des faux comptes chez Railway et commence à tâter le terrain. Rien ne passe. Le lundi 20, à 9 h 28, heure de Bruxelles, ça passe : une faille encore inconnue dans les machines qui préparent les applications des clients lui permet de sortir de sa petite case et de mettre la main sur un mot de passe interne. Avec lui, il lit l'historique de 353 préparations d'applications d'autres clients, et il repart avec une copie du code de Railway lui-même.

Et c'est là que ça devient vraiment flippant. Avec ce code entre les mains, l'attaquant a pu, je cite le rapport, « lancer ses agents en éventail, trouver n'importe quelle faille, et se déplacer latéralement ». En clair : il a lâché une meute d'agents IA sur le plan de la maison, chacun cherchant une porte différente, en même temps. Et ses agents tournaient sur des modèles « débridés », des IA dont on a retiré les garde-fous, celles qui ne disent jamais « désolé, je ne peux pas vous aider à pirater ce serveur ».

Dans une fête foraine, un employé fatigué en polo lève un gros maillet au-dessus d'un jeu de tape-taupe où dix petites têtes de robots sortent de dix trous en même temps

Railway bouchait une porte, les agents de l'attaquant en essayaient trois autres en parallèle

Railway le résume en une phrase que je trouve terrible : « la situation est devenue une course de vitesse entre agents ». Une deuxième erreur, une simple mauvaise configuration dans la façon dont deux systèmes internes se font confiance, a donné à l'attaquant de quoi déchiffrer les secrets des clients. L'alerte avait sonné six heures et demie après la première intrusion. L'attaquant n'a été mis dehors pour de bon que le mardi 21 à 11 h 24. Vingt-six heures, à reboucher des trous pendant que d'autres s'ouvrent ailleurs. Je n'aurais pas voulu être de garde ce jour-là !

Ce qu'ils cherchaient : tes clés d'IA

Le plus intéressant, c'est ce que l'attaquant a cherché une fois dans le coffre. Pas les bases de données des clients (Railway n'a trouvé aucune trace qu'il y ait touché), pas leur code. Il a fouillé les secrets enregistrés, avec une liste de mots à repérer, et sa cible numéro un était les clés d'IA : ces longues suites de caractères qui disent à OpenAI, Anthropic ou Google « tout ce que demande ce programme, c'est moi qui paie ». Une clé d'IA, c'est une carte bancaire sans code, et je l'avais déjà raconté il y a trois semaines quand OpenCode s'était fait vider les siennes.

Au maximum, 1,85 % des espaces de travail de Railway sont concernés, soit environ 100 000. C'est un plafond, pas un compte exact : les journaux de Railway disent quels projets ont été ouverts, pas quelles clés ont été lues. Les comptes reliés de 1 852 utilisateurs ont aussi été réinitialisés par précaution. Et d'après Railway, les clés volées ont été revendues, puis utilisées pour tout et n'importe quoi, des assistants de programmation jusqu'à l'entraînement d'autres IA.

OpenCode, Railway, et ce n'est pas fini. La société de sécurité Wiz a donné un nom à cette vague, « Black October » : au moins neuf plateformes pour développeurs piratées en un mois, toutes pour la même chose, les clés d'IA stockées chez elles. Dans un des cas étudiés par Wiz, une seule clé volée a servi à environ 800 000 requêtes en trente heures, aux trois quarts sur Opus, un des gros modèles d'Anthropic, loin d'être le moins cher. Quand c'est quelqu'un d'autre qui paie, on ne prend pas le menu enfant !

Qui paie les 740 000 dollars ?

Dans un restaurant, un serveur tend une addition interminable qui se déroule jusqu'au sol à un homme assis seul devant une table vide avec un simple verre d'eau, le total imprimé en haut indique 740 000 dollars

Environ 740 000 dollars d'IA consommés avec des clés volées

Bonne nouvelle quand même : pas les clients, en principe. Et c'est là que le rapport devient instructif, parce que chaque fournisseur d'IA réagit à sa façon. Amazon (pour son service Bedrock) et Google remboursent, ils ont déjà une politique pour ce genre de fraude. Chez OpenAI, le client ouvre une demande et on étudie son cas. Chez Anthropic, les discussions sont en cours. Et OpenRouter, un service qui revend l'accès à plein de modèles différents, applique sa règle maison : pas de remboursement. Railway a annoncé qu'il paierait lui-même tout ce que les fournisseurs refusent de rembourser.

Ça, je le salue. Railway aurait pu publier trois lignes vagues sur « un incident de sécurité » et passer à autre chose. Ils ont sorti un rapport avec chaque heure, chaque erreur, et même ce qu'ils auraient dû faire autrement : ils reconnaissent avoir prévenu les fournisseurs d'IA avant leurs propres clients, et promettent de ne plus attendre aussi longtemps. Toutes les entreprises piratées n'en font pas autant, loin de là.

Et toi, ça te concerne ?

Si tu n'es pas développeur, tu n'as sans doute jamais entendu parler de Railway. Mais le petit site de réservation de ton coiffeur, le chatbot de ta mutuelle ou l'appli de la boulangerie du coin tournent peut-être chez un hébergeur de ce genre, avec une clé d'IA rangée dans un coin. Ici, d'après Railway, aucune base de données de clients n'a été ouverte : c'est surtout le portefeuille des entreprises qui a trinqué.

Si par contre tu as toi-même une clé d'IA, même pour un petit usage, la parade tient en un réglage : le plafond de dépense. Chez Anthropic, tu fixes un montant maximum par mois dans ta console. Chez OpenAI, le plus simple est de payer en crédits prépayés sans recharge automatique : crédit épuisé, plus rien ne passe. Le voleur peut toujours utiliser ta clé, mais il s'arrête net au plafond, comme une pompe à essence réglée sur 50 euros. Moi j'ai une clé OpenAI qui fabrique les images de ce blog, et elle vit sur mon serveur, pas chez un hébergeur de ce genre. Ça ne me rend pas invulnérable pour autant, et c'est bien pour ça que le plafond existe.

Gros plan sur l'écran d'une pompe à essence dont le compteur s'est arrêté pile à 50 euros, le pistolet s'étant coupé tout seul dans la main du conducteur

Un plafond de dépense, c'est la pompe réglée sur 50 euros : même avec ta clé, le voleur ne va pas plus loin

Et si tu apprends qu'une de tes clés a fuité, la supprimer chez l'hébergeur ne sert à rien. Il faut la révoquer là où elle a été créée, chez OpenAI, Anthropic ou Google : c'est la seule façon de couper la carte.

Si tu es développeur

Tu peux sauter cette partie si les mots « variable d'environnement » ne te disent rien. Pour les autres, voilà ce que je retiens du rapport.

Si tu as déployé chez Railway, suis leurs guides : change tous tes secrets, reconnecte GitHub, recrée tes jetons de CLI et de CI, puis redéploie ton dernier commit. Et si une facture d'IA inconnue traîne sur ton compte, signale-la avec le formulaire du rapport, Railway s'est engagé à payer.

Ensuite, la règle que tout le monde oublie : on révoque une clé chez celui qui l'a émise. Effacer la variable sur Railway, Vercel ou ailleurs, c'est jeter ta copie de la clé. Le voleur garde la sienne, et elle marche toujours chez OpenAI ou Anthropic.

Une clé par projet, un plafond par clé, et des jetons qui expirent vite quand le fournisseur le permet. Le but n'est pas d'empêcher le vol, c'est qu'une clé volée ne vaille presque rien.

La deuxième porte de l'attaquant était une liaison OIDC mal définie, ce mécanisme qui permet à ta chaîne de déploiement de prouver qui elle est au cloud sans stocker de mot de passe. Si tu l'utilises, relis tes conditions de confiance (dépôt, branche, sujet du jeton). Une condition trop large, et n'importe quel jeton bien formé passe la porte comme s'il était de la maison.

Côté construction des applications, Railway donne maintenant à chaque build sa propre machine virtuelle jetable, qui n'a le droit que de pousser une seule image. Si tu fais tourner du code d'inconnus sur tes machines de build, c'est le modèle à viser. Sinon, un jour, un inconnu lit tes secrets avec tes propres machines. Et il ne dit pas merci.

Ce qui me reste en travers

Ce qui m'a le plus marqué, ce n'est pas le montant. C'est le duel. On parle depuis des mois des agents IA qui trouvent des failles, et je l'ai écrit souvent ici, en général du côté des gentils qui s'en servent pour réparer. Là, on a vu l'autre côté, en vrai, pendant vingt-six heures : un attaquant qui lit le code de sa victime avec une meute d'agents qui ne dorment jamais, en face d'une équipe humaine qui se relaie en se demandant où ça va encore sortir. Neuf plateformes en un mois, et moi je me demande juste laquelle sera la dixième, et si je l'utilise.

Sources

Article écrit avec l'aide de Claude Code, relu et corrigé par moi.

Rejoignez la conversation

Vous devez avoir un compte pour commenter cet article. La création est gratuite et prend moins d'une minute.

  • Le fichier XMLTV à télécharger gratuitement, chaque jour
  • Commenter les articles et répondre aux autres lecteurs
  • Être averti par e-mail des nouveaux articles que vous suivez

Aucun commentaire pour le moment.

Une erreur s'est produite. Cette application peut ne plus répondre jusqu'à ce qu'elle soit rechargée.Veuillez contacter l'auteur. Reload 🗙