Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Les instances MongoDB prises en otage sont passées de 12 000 à plus de 27 000 en moins de 12 heures
D'après un chercheur

Le , par Stéphane le calme

66PARTAGES

6  0 
Il y a près de deux ans déjà, un chercheur en sécurité identifiait plus de 33 500 instances MongoDB comportant un port d’administration ouvert, parmi lesquelles près de 19 000 ne demandaient aucune authentification. Les utilisateurs de MongoDB étaient donc prévenus du fait que des instances (près de 600 To de données) mettaient à la merci d’un pirate les sites et applications web qui s’appuyaient sur ces bases de données. Bien entendu ces instances MongoDB ne se retrouvaient pas en danger en raison d'un défaut logiciel, mais à cause d'une mauvaise configuration qui permet à un attaquant à distance d'accéder aux bases de données MongoDB sans même avoir à se servir d’un quelconque outil de piratage.

Si dans une mise à jour MongoDB a résolu ce problème, de nombreux administrateurs n’ont pas pris la peine de procéder à la mise à jour comme l’a suggéré un évènement récent : plus de 2000 instances MongoDB ont été prises en otage. L’entité derrière l’attaque, qui utilise le pseudonyme harak1r1, accède, copie et supprime des données provenant de bases de données non patchées ou mal configurées pour les remplacer par le message « SEND 0.2 BTC TO THIS ADDRESS 13zaxGVjj9MNc2jyvDRhLyYpkCh323MsMq AND CONTACT THIS EMAIL WITH YOUR IP OF YOUR SERVER TO RECOVER YOUR DATABASE ! ». 22 victimes ont déjà cédé, à en croire le blockchain réservé au paiement.

Pour Victor Gevers, un chercheur en sécurité et accessoirement cofondateur de la fondation GDI, il est possible que l'attaquant trouve les installations MongoDB par un scan basique ou Shodan. Il est également possible de trouver des installations MongoDB qui soient vulnérables à différents exploits, comme le fait d'autoriser les utilisateurs authentifiés distants pour obtenir des privilèges système. « Les criminels ciblent souvent les bases de données open source pour déployer leurs activités de vol ou de rançonnage. Mais nous avons aussi vu des cas où des serveurs sont utilisés pour héberger des logiciels malveillants, des botnets et pour cacher des fichiers dans GridFS », a-t-il expliqué.

Selon Niall Merrigan, un chercheur en sécurité basé en Norvège, le nombre de serveurs compromis, qui étaient de 12 000 le 08 janvier 2017, a dépassé les 27 600 ce même jour dans l’après-midi.


Merrigan et ses associés ont indiqué avoir enregistré environ 15 attaquants distincts. Une entité se servant du pseudonyme kraken0 a compromis 15.482 instances MongoDB, en exigeant une rançon de 1 Bitcoin (855 euros) et de 0,1 Bitcoin pour la récupération de fichiers. Personne ne semble avoir payé la rançon de 1 Bitcoin pour l’heure, mais 67 transactions ont déjà été enregistrées pour la rançon de 0,1 Bitcoin. Own3d, une autre entité, a demandé 0,5 Bitcoin et a déjà reçu 5 paiements.

Merrigan et Gevers ont déjà aidé 112 administrateurs à sécuriser leurs bases de données MongoDB qui étaient exposées, selon une fiche de travail. Au total, 99 000 installations MongoDB sont exposées, estime Gevers.


Source : liste des acteurs (Google Docs)

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de Cafeinoman
Membre éprouvé https://www.developpez.com
Le 10/01/2017 à 6:05
Mouais fin bon, jouer avec le feu, c'est pas utiliser mongo en prod. Ca, c'est bien. Nan, jouer avec le feu, c'est a)exposer ses ports sur le wan, b)ne pas mettre d'authentification.
Une base, ca s'expose pas comme ca, quelque soit la techno, point.
4  0 
Avatar de maske
Membre éprouvé https://www.developpez.com
Le 09/01/2017 à 17:15
Alors moi ça vient de m'arriver dimanche dernier sur mon serveur perso. 80 pages de notes et d'analyses perdues (appli maison perso que j'ai développé pour ma thèse), 6 mois de boulot.

Naivement j'avais juste installé mongo et comme ça marchait me suis pas posé de questions. Le pire c'est que depuis quelques semaines je me disais qu'il faudrait que je mette en place un système de sauvegarde et de restauration. J'avais pas pris la peine non plus de configurer une sauvegarde serveur ou de la base mongo (à vrai dire j'avais même pas les logs).

Ça m'apprendra...
2  0 
Avatar de koyosama
Membre éprouvé https://www.developpez.com
Le 14/01/2017 à 14:32
Citation Envoyé par maske Voir le message
C'est vrai dans l'absolu, mais quand même. Quand j'installe un soft ou un outil, je ne m'attends pas à ce qu'il soit ouvert au monde entier par défaut.

Ça me parait bizarre de reporter la faute exclusivement sur l'utilisateur, surtout de la part d'un outil open source qui vante sa simplicité d'utilisation (je ne parle pas de mongo spécifiquement).

Deja j'ai envie de dire que "ouvert" n'a rien a voir avec le monde professionel. Tu peux mettre un mot de passe par defaut comme wordpress, my sql, cela va rien changer.
Un utilisateur a des chances d'etre un developeur, sysadmin, deveops; whatever ils ont une responsabilite envers nos donnees. Celon le type d'applications, on joue avec la vie des gens. Le piratage est parfois une lecon par des crackers pour nous dire de mieux controller nos donnes. Est-ce que un medecin doit faire le minimum, c'est un peu trop facile. Il y a une limite a la feignantise.

Quand on est paye 30-45 k, je m'attends a ce que le gars puisse au minimum creer un system utilisateur minimal. Si tu peux creer un compte user sur windows, tu peux largement prendre un heure pour lire, tester la securite de mongo de DB. Il faut arreter avec le poil de la main. Aujourd'hui on arrive dans une ere ou certaine donnes sont critiques pour n'importe quel utilisateur.



Chercher pas d'excuse, faite le neccessaire.
2  0 
Avatar de ypicot
Membre confirmé https://www.developpez.com
Le 10/01/2017 à 7:24
Cela me rappelle ceci.

Règle de base : modifier tout ce qui est par défaut. Ne jamais utiliser le port 22 pour du ssh, supprimer le compte admin proposé par défaut (et en créer un autre), etc.
Même les dev doivent savoir ça.

Yvan
1  0 
Avatar de Shepard
Membre éprouvé https://www.developpez.com
Le 10/01/2017 à 7:38
J'avoue ne pas comprendre l'intérêt de ne pas utiliser le port 22 pour le ssh (sauf peut-être si c'est pour utiliser un port > 1024 sans l'accès root, mais bonjour les compliquations au niveau de la config des clients). Quand à supprimer le compte admin, c'est parfois impossible (postgres sous postgresql ne peut être supprimé), et encore une fois j'ai du mal à comprendre l'utilité d'une telle démarche ? En général la configuration par défaut est faite pour matcher un max de cas sans avoir à changer quoi que ce soit.

Par contre changer le mot de passe par défaut c'est une évidence ...
1  0 
Avatar de koyosama
Membre éprouvé https://www.developpez.com
Le 10/01/2017 à 22:15
Je me rappelle ou le probleme ce n'était pas le système NOSQL mongodb, mais le RDMS mysql.

On était tout content, on avait appris comment utiliser la couche LAMP stack (Linux Apache MySQL PHP) sur un site, a l'école, parfois par des "pros".
Mais on n'avait jamais appris a le sécurisé, juste appris qu'il fallait soit installer wamp/xamp, soit installer la ligne magique sur Linux.

Et aujourd'hui, on recommence la même connerie avec le MEAN stack (Mongo Express Angular Node).

Je pense que le problème, c'est que beaucoup de debutant/pros ne sachent réellement configurer une base de données. Surtout qu'on apprend aux gens comment s'y connecter directement au lieu de créer un intermédiaire. Car créer un intermédiaire est plus compliqué dans le planning de développement d'une entreprise que d'utiliser les bonnes pratiques de la séparation des couches applicatives. Après tout ce n'est pas une connaissance basique de le savoir.
1  0 
Avatar de
https://www.developpez.com
Le 10/01/2017 à 7:11
ça ne viendrait pas à l'idée de personne de simplement autoriser les connexions à Mongo uniquement depuis localhost !
0  0 
Avatar de ypicot
Membre confirmé https://www.developpez.com
Le 10/01/2017 à 7:47
Citation Envoyé par Shepard Voir le message
J'avoue ne pas comprendre l'intérêt de ne pas utiliser le port 22 pour le ssh (sauf peut-être si c'est pour utiliser un port > 1024 sans l'accès root
Effectivement, le but est d'utiliser un port >1024 (et de virer l'accès root)
Le but est de rendre l'accès un peu plus difficile. C'est comme pour les serrures de porte : elles sont classées par temps moyen pour être fracturée.
L'idée est de faire perdre le maximum de temps (et donc de ressource) à l'attaquant.

Merci pour l'info sur postgresql, je ne savais pas. Ne peut-on pas réduire les droits d'accès de ce compte ?

Yvan
0  0 
Avatar de Shepard
Membre éprouvé https://www.developpez.com
Le 10/01/2017 à 7:49
Ok, je viens d'aller voir à quoi ressemblait la sécurité chez MongoDB. Par défaut, le serveur ne requiert pas d'authentification; tout le monde se connecte en tant qu'admin dessus ... Oo

https://docs.mongodb.com/manual/tuto...uthentication/

Je ne comprends pas bien ... Le cas d'utilisation principal de MongoDB est de stocker des données perso ? (comme kilroyFR) Je pensais que c'était l'un des leaders dans le NOSQL ...
0  0 
Avatar de Shepard
Membre éprouvé https://www.developpez.com
Le 10/01/2017 à 7:56
Citation Envoyé par ypicot Voir le message
Effectivement, le but est d'utiliser un port >1024 (et de virer l'accès root)
Le but est de rendre l'accès un peu plus difficile. C'est comme pour les serrures de porte : elles sont classées par temps moyen pour être fracturée.
L'idée est de faire perdre le maximum de temps (et donc de ressource) à l'attaquant.

Merci pour l'info sur postgresql, je ne savais pas. Ne peut-on pas réduire les droits d'accès de ce compte ?

Yvan
Pour l'analogie avec les serrures de portes, SSH (avec un bon mot de passe) c'est comme utiliser une porte blindée ronde de 60cm d'épaisseur comme on en voit dans les films

Quand quelqu'un arrive à passer c'est généralement en faisant sauter le sol (ou le toit). Du coup je ne suis toujours pas convaincu par l'utilité de changer le port utilisé ... D'autant plus qu'un scan des ports suffit à contourner cette mesure ...

Pour l'utilisateur postgres, je n'en ai aucune idée Mais par défaut on ne peut pas se connecter à ce compte à moins d'être déjà connecté en tant que l'utilisateur (unix) postgres local sur le serveur.
0  0