Le visage d’un acteur est un instrument d’expression, révélateur de son intériorité : une façade changeante qui gardent les traces d’une multitude d’émotions invisibles, de l’empathie et, à l’occasion, d’un gros morceau de code binaire malveillant.
Le code dans le cas présent est, sans surprise, un cryptomineur pour générer la cryptomonnaie Monero, et le visage sur la photo dans laquelle il a été intégré appartient à la star hollywoodienne Scarlett Johansson.
La photo de Miss Johansson, et le mineur qui s’y trouvait, sont apparus aux termes d’une opération de piratage réalisée pour le plus grand plaisir de la société de sécurité Imperva, dans le cadre de son projet StickyDB honeypot.
C’est parti pour l’explication !
Acte I
Un honeypot est un ordinateur, dans notre cas un serveur de base de données, délibérément configuré pour attirer l’attention des pirates.
Pour les pirates, un honeypot ressemble à une cible précieuse et facilement exploitable, mais ici il s’agira en réalité d’une scène sur laquelle ils vont se donner en spectacle, à leur insu, pour un public d’experts désireux de les observer en pleine action.
Imperva a mis en place une gamme de base de données honeypots pour en savoir plus sur :
Les attaques de bases de données classiques, les outils et les techniques utilisés par les pirates, la manière dont ils y accèdent, leurs actions précises à l’intérieur, leur objectif final et bien plus encore.
Pour séduire les hackers, l’entreprise a connecté ses bases de données honeypots à internet, les a laissées avec de faibles identifiants par défaut et les a connectées à des applications web vulnérables. Une configuration si médiocre n’alerte pas les pirates forcément car, malheureusement, ce n’est pas rare, et en fait, c’est exactement ce qu’ils recherchent !
Et la recherche est facile car, étant connecté à internet, les bases de données pourraient être découvertes en utilisant des outils d’analyse du réseau ou bien Shodan, le moteur de recherche pour les objets connectés à internet.
Bien que la photo de Johansson se soit avérée être la pièce maîtresse de notre casting, cette histoire comporte également un autre nom célèbre : la base de données PostgreSQL.
PostgresSQL, est une base de données open source sophistiquée et largement utilisée, qui mériterait probablement d’être plus connue qu’elle ne l’est aujourd’hui. Elle a toujours attiré les critiques dithyrambiques, mais n’a jamais vraiment menacé d’éclipser la star des bases de données internet : MySQL.
Acte II
Selon Imperva, les hackers ont utilisé la photo de Scarlett Johansson pour dissimuler leur cryptomineur afin qu’il puisse être dissimulé au sein de site vierge, sur un service d’hébergement d’images accessible au public.
Le service d’hébergement est peu susceptible d’attirer les soupçons, et c’est un endroit pratique pour télécharger l’outil après avoir pris le contrôle d’un système. Comme le service d’hébergement était susceptible de vérifier que tous les éléments uploadés étaient bien des images, les hackers devaient donc lui en donner une.
Ils ont choisi une photo de la star de “Lost in Translation” et ont intégré leur outil à la fin, sous forme de données binaires.
Bien sûr, avant de pouvoir utiliser cette-photo-avec-un mineur-intégré, ils devaient trouver et exploiter un ordinateur sur lequel le faire fonctionner.
Et pénétrer dans le serveur de base de données PostgreSQL mal sécurisé d’Imperva.
Comment les cybercriminels ont eu accès au serveur n’a pas été révélé, sauf qu’ils ont réussi à se connecter. Peut-être qu’ils ont récupéré les identifiants d’une application web compromise qui utilise cette base de données, ou peut-être qu’ils ont juste utilisé un script pour deviner le mot de passe et forcer l’entrée.
Ce qu’Imperva a révélé, c’est qu’après avoir forcé l’entrée, les hackers ont utilisé une série d’instructions SQL INSERT
, pour construire une charge binaire au moment de l’exécution. Cette charge, une fois écrite sur le disque sous la forme d’un fichier, exportait une fonction système qui pouvait être utilisée pour exécuter des commandes shell.
La commande CREATE FUNCTION
de PostgreSQL a ensuite été utilisée pour créer une fonction de base de données correspondant à la fonction “do-anything” dans le code binaire de la charge virale. Ensuite, les pirates ont pu tirer parti de leur accès à la base de données PostgreSQL pour exécuter des commandes sur l’ordinateur hôte lui-même.
Et quoi faire avec un serveur à votre merci sinon miner de la cryptomonnaie Monero ?
La fonction de base de données nouvellement créée a été utilisée pour télécharger l’image de Mme Johansson à partir du service d’hébergement de fichiers, en utilisant wget
, et la fin de l’image qui contenait le mineur séquencé au sein de son propre fichier en utilisant dd
.
Acte III
Comme toute base de données, la base de données PostgreSQL peut être mal configurée, mais contrairement à certaines, elle n’est pas mal configurée par défaut, vous devrez essayer pour vous en rendre compte.
La base de données PostgreSQL ne se connectera pas tout simplement à vos interfaces réseau externes en se rendant ainsi visible sur internet : en effet, vous devrez lui donner des instructions pour cela. Inutile de préciser que les bases de données sont souvent constituées de données exhaustives qui ont une importance majeure pour les employeurs et les clients (et qui pourraient bientôt faire l’objet de lourdes amendes en cas de fuite de données).
Connecter ces données directement à internet, revient à offrir aux cybercrminels, n’importe où dans le monde, autant de coups gratuits qu’ils le désirent !
Si vous en savez assez pour relier une base de données à une adresse IP publique, vous devrez vous-même, et votre employeur, comprendre pourquoi il s’agir certainement d’une mauvaise idée, et du coup parcourir et comprendre les pages de sécurité de PostgreSQL.
Billet inspiré de Scarlett Johansson’s face lands starring role in database hack, sur Sophos nakedsecurity.