IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

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 !

MongoDB : comment éviter les attaques qui prennent en otage vos données ?
Un billet de l'entreprise pour essayer d'endiguer ce phénomène

Le , par Stéphane le calme

970PARTAGES

8  0 
Plus de 2000 instances MongoDB prises en otage dans l'attente du paiement d'une rançon,
les administrateurs sont invités à vérifier leurs configurations

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.

Dans une mise à jour, MongoDB a résolu ce problème en définissant par défaut dans les configurations un accès restreint à distance. Il semble que de nombreux administrateurs n’ont pas pris la peine d’effectuer la mise à jour. C’est en tout cas ce que suggère un évènement récent qui affecte MongoDB.

Victor Gevers, un chercheur en sécurité et accessoirement co-fondateur de la fondation GDI, un organisme à but non lucratif visant à rendre l'Internet plus sûr, a trouvé une instance MongoDB prise en otage. Si elles étaient encore 200 lundi dernier, selon un tweet de John Matherly, le fondateur de Shodan (un moteur de recherche de machines connectées) le nombre a été multiplié par 10 en l’espace de quelques jours. Selon Bob Diachenko, un chercheur de MacKeeper, parmi les victimes figurent une organisation dans le domaine de la santé aux Etats-Unis qui a perdu l’accès à 200 000 enregistrements.

Tout a commencé le 27 décembre lorsque, dans le cadre de ses activités au sein de la GDI, il a repéré une base de données MongoDB dont l’accès n’était pas protégé par un mot de passe. Cette dernière l’a interpellé parce qu’au lieu de voir du contenu, il est tombé sur le message « SEND 0.2 BTC TO THIS ADDRESS 13zaxGVjj9MNc2jyvDRhLyYpkCh323MsMq AND CONTACT THIS EMAIL WITH YOUR IP OF YOUR SERVER TO RECOVER YOUR DATABASE ! ».


Pour Gevers, 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èmes. « 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é.

Si le procédé s’apparente à celui des ransomwares, notamment une prise en otage des données associée à une demande rançon, l’attaque ne fait pas appel à un malware de ce type. D’ailleurs Gevers le rappelle lorsqu’il dit que « ce n’est pas un ransomware. La base de données n’est pas chiffrée, mais simplement remplacée. Nous avons affaire à quelqu’un qui effectue cette opération manuellement ou via un simple script Python ».

L’entité derrière cette attaque, qui utilise le pseudonyme harak1r1, exige le paiement d'une rançon de 0,2 bitcoin (ce qui représente environ 200 euros dans le cours actuel de cette monnaie virtuelle) mais aussi d’être contacté par courriel avec l’IP du serveur pour que les données soient restituées.

Pour l’heure, 16 entités se sont déjà résolues à payer à en croire le Blockchain dédié au paiement de la rançon.

Lors de ses recherches, Gevers est tombé sur une base de données MongoDB ouverte disposant de plus de 850 milliards de métadonnées d’enregistrement d’appels téléphoniques. « J’ai dû cligner des yeux à deux reprises pour lire le nombre total ».


Source : John Matherly, Victor Gevers, Blockchain dédiée au paiement de la rançon
Vous avez lu gratuitement 3 articles depuis plus d'un an.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.

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

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 maske
Membre éprouvé https://www.developpez.com
Le 13/01/2017 à 10:31
Citation Envoyé par koyosama Voir le message
C'est plutot la formation des developpeurs/devops/sysadmin qui est a revoir. Le preservatif ce n'est pas automatique. On utilise pas un truc en production si on se sait pas ce qu'on fait.
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).
0  0 
Avatar de Aeson
Nouveau Candidat au Club https://www.developpez.com
Le 13/01/2017 à 10:51
Le principe des droits minimum a l'installation n'est pas appliqué par MongoDB. C'est une erreur (de debutant ?)
0  0 
Avatar de Paenitentia
Membre actif https://www.developpez.com
Le 13/01/2017 à 17:12
Par défaut, le fichier de configuration de MongoDB n'écoute que sous localhost:27017 (c'était le cas sur les 3.2 que j'ai installé). Ça veut dire que les bases de données exposées ont un fichier de conf "maison" et qu'il a été touché non ?

PostgreSql fonctionne sur le même principe il me semble. Lorsque j'ai installé la 9.4, mon user par défaut n'avait pas de mot de passe mais il n'écoutait que sur localhost:32.

Habituellement, lorsque les bases de données sont installées en dehors de mon poste local de dev, j'ai systématiquement forcé une authentification avec un utilisateur 'root', un 'app', et deux users par personne, un en lecture seule, l'autre en lecture + écriture. Ça me semble essentiel pour conserver une bonne traçabilité des actions, ça aide beaucoup et ce n'est pas très long à mettre en place qui plus est.
0  0 
Avatar de Aeson
Nouveau Candidat au Club https://www.developpez.com
Le 13/01/2017 à 18:02
Do not make mongod.exe visible on public networks without running in “Secure Mode” with the auth setting. MongoDB is designed to be run in trusted environments, and the database does not enable “Secure Mode” by default
Par default il n'y a pas de Login. Donc si on travail sur mongoDB en local ca peut aller. Mais c'est vrai que de le mettre sur le reseaux sans le securiser au moin par un mot de passe est une erreur.

Mais avoir une base de donnée sans authentification par mot de passe a l'install et qui donc accepte les connexion anonyme, je n'ai jamais vu ca....
0  0 
Avatar de Spouick
Candidat au Club https://www.developpez.com
Le 24/01/2017 à 10:42
100% en accord avec koyosama.

Il faut arrêter de vous tourner les pouces et faire votre job => vous êtes payé pour ça même en tant que simple DEV.
Quand j'installe un nouveau soft, je lis TOUJOURS la doc, la config et la sécu. Oui je sais "on doit lire"... (payé pour).
Premier principe, vérifier les accès, vérifier les ports, les comptes, les directories, en un mot "être maître de VOTRE architecture".
Si un port peut être changé, changez le (faite votre carto)! idem pour les comptes, créez vos admin puis supprimez tous les comptes, c'est basic mais combien sont encore accessible avec juste "admin/admin" ?!

Si vous pouvez découpler l'accès, faite le (évitez les accès direct autant que faire ce peu) ça vous évitera les sempiternel faille de sécu.
etc, etc, etc

Pour les anciens qui avaient l'habitude de manipuler les IRQ ça semble logique qu'une config n'est qu'un "default usage" et non un "ready to use", mais vous êtes tellement habitué au conformisme et moutonnage que vous ne vous rendez même plus maitre de vos archi/install. Edifiant !
0  0 
Avatar de maske
Membre éprouvé https://www.developpez.com
Le 24/01/2017 à 14:52
Il faut faire la part des choses quand même. Évidemment que la responsabilité revient à l'entreprise, lorsqu'elle se fait pirater des données à cause d'un défaut de sécurisation - charge à cette dernière d'en tirer les conséquences. De l'autre coté, moi (qui n'y connais rien), je cherche pour une appli perso un système de base simple et reconnu : mongodb. Si on regarde, c'est vendu comme un truc efficace dans son périmètre, facile à installer et à utiliser. Je lis ça, je ne me demande pas si l'installation par défaut ouvre le système sur le monde entier.

Alors j'ai perdu ma base, il ne m'en reste qu'un export pdf (complet, heureusement) est-ce que c'est ma faute ? Oui. Est-ce que c'est intégralement ma faute ? Je ne pense pas, j'ai l'habitude d'attendre de l'open source suffisemment d'informations claires - surtout quand on me vend un truc simple et efficace - pour savoir d'un coup d'oeil qu'il faut prendre soin de bloquer plein de trucs. Peut-être que je n'ai pas les bonnes attentes, ou peut-être que les gens dont c'est le métier ont l'habitude de ça (mais vu le nombre de bases piratées, faudrait voir).
0  0 
Avatar de Asmodan
Membre actif https://www.developpez.com
Le 19/09/2018 à 13:32
No comment !
0  0 
Avatar de Aeson
Nouveau Candidat au Club https://www.developpez.com
Le 12/01/2017 à 0:26
Le processus installation de MongoDb est a revoir. C'est certain...

Toutes ces config devraient se faire par defaut lors de l'installation...
0  2