Comment sécuriser MongoDB
MongoDB est l'une des principales bases de données open source pour les entreprises qui tentent de créer des applications évolutives. Cependant, comme toutes les bases de données, elle n’est pas sans vulnérabilités.
Récemment, Comparitech a découvert que les pirates ciblait une base de données MongoDB non sécurisée 20 fois par jour. Le volume élevé d’attaques est alarmant car il suffit d’une seule violation pour qu’un cybercriminel supprime, chiffre ou vole vos données privées.
Pour vous aider à protéger vos données contre les cybercriminels, nous allons voir comment sécuriser MongoDB, y compris les meilleures pratiques à suivre et quelques outils de surveillance clés à déployer.
Voici les trois meilleurs outils de surveillance MongoDB :
- Moniteur de performances de la base de données SolarWinds (ESSAI GRATUIT)Outil de surveillance de base de données SaaS avec analyse de profil automatisée, alertes de recommandations, etc.
- Chien de donnéesLogiciel de surveillance cloud avec surveillance MongoDB en temps réel, graphiques, diagrammes, détection d'anomalies, alertes et bien plus encore.
- Gestionnaire de cloud MongoDBPlateforme de gestion hébergée avec surveillance MongoDB, visualisations, cryptage TLS, alertes et bien plus encore.
Comment se produisent les piratages de MongoDB ?
Pirater une base de données MongoDB non configurée est très simple. Un cybercriminel peut utiliser des moteurs de recherche en ligne pour découvrir des bases de données sans authentification de l'utilisateur, puis pénétrer dans ces bases de données pour voler les données. Un exemple de cela s'est produit plus tôt cette année lorsqu'un seul pirate a violé plus de 23 000 bases de données MongoDB non sécurisées en utilisant un script automatisé pour explorer le Web à la recherche de bases de données MongoDB mal configurées.
Le cybercriminel a pénétré par effraction dans les systèmes de la victime, supprimé les données stockées et laissé une demande de rançon exigeant un paiement en Bitcoin pour restaurer l'accès. L'attaque aurait pu être évitée si les victimes avaient configuré l'authentification des utilisateurs.
Meilleures pratiques de sécurité MongoDB
S'assurer que MongoDB est correctement configuré et mettre en œuvre une poignée de bonnes pratiques de sécurité clés contribue grandement à prévenir les violations de données. Dans cette section, nous allons examiner quelques bonnes pratiques que vous pouvez utiliser pour arrêter les pirates informatiques dans leur élan :
1. Chiffrez vos données au repos
MongoDB Enterprise 3.2 inclut une fonctionnalité de chiffrement native appelée WiredTiger. WiredTiger est un moteur de stockage qui fournit un cryptage natif au repos afin que vos données ne puissent pas être lues par un individu à moins qu'il ne dispose d'une clé de déchiffrement pour traduire les données protégées en quelque chose de lisible. En d’autres termes, le cryptage empêche la lecture de vos données par des personnes non autorisées.
Par mesure de précaution supplémentaire, c’est une bonne idée d’effectuer périodiquement une rotation par an de la clé de déchiffrement entre les utilisateurs clés de votre entreprise. Il est également important de noter que MongoDB ne prend en charge que le cryptage AES-256 GCM sous Linux (à partir de la version 4.0, Windows ne prend pas en charge cette fonctionnalité).
2. Activer les contrôles d'accès et utiliser le contrôle d'accès basé sur les rôles (et le principe du moindre privilège)
Les contrôles d'accès sont essentiels pour contrôler qui a accès à votre base de données. Le contrôle d'accès basé sur les rôles (RBAC) est inclus par défaut dans MongoDB depuis la version 2. Avec RBAC, vous pouvez contrôler les actions qu'un utilisateur est autorisé à effectuer et les ressources auxquelles il peut accéder. Il existe cinq rôles de base de données différents inclus par défaut :
- lire– Accès en lecture seule.
- lire écrire– Autorisation de lire et de modifier les données.
- Administrateur de base de données– Autorisation d’effectuer des tâches administratives telles que l’indexation.
- db0wner– Autorisation d’effectuer toute action administrative sur les bases de données (combine readWrite, dbAdmin et userAdmin).
- utilisateurAdmin– Autorisation de créer et de modifier des rôles et des utilisateurs.
Vous avez également la possibilité de créer des rôles personnalisés et de gérer les rôles pour les clusters. Vous devez suivre le principe du moindre privilège et n'attribuer des droits d'accès/privilèges à un employé que lorsqu'ils sont absolument nécessaires pour accomplir une tâche. Cela garantira que vos employés n’auront accès qu’aux données et fonctions dont ils ont besoin pour faire leur travail.
3. Auditer les actions des utilisateurs
L'audit des actions des utilisateurs entreprises dans les bases de données est essentiel pour identifier les activités malveillantes et résoudre les problèmes. Les journaux d’audit constituent une ressource précieuse que vous pouvez utiliser pour analyser ce qui s’est passé lors de cyberattaques passées. MongoDB est livré avec une solution d'audit appelée auditDestination que vous pouvez utiliser pour configurer l'audit et choisir où générer les événements d'audit pour une analyse plus approfondie.
Vous pouvez générer des événements d'audit vers la console, un fichier JSON ou un fichier BSON. Il est important de noter que vous avez besoin de MongoDB Enterprise pour surveiller les événements système tels que les échecs de connexion.
4. Authentification de l'utilisateur
Authentification d'utilisateurest un incontournable pour restreindre les personnes pouvant se connecter à la base de données et vérifier l'identité d'un client. Pour authentifier les utilisateurs, vous pouvez utiliser le service natif MongoDB ou un outil externe comme Active Directory. Pour authentifier les utilisateurs avec MongoDB, vous pouvez fournir un nom d'utilisateur, un mot de passe et une base de données d'authentification à cet utilisateur via la ligne de commande via le shell mongo.
La version de base de MongoDB prend en charge deux mécanismes d'authentification :
- Mécanisme d'authentification de réponse au défi salé (SCRAM)– Mécanisme d'authentification par défaut basé sur la norme IETF RFC 5802 dans lequel le système vérifie les informations d'identification de l'utilisateur par rapport au nom d'utilisateur et au mot de passe de l'utilisateur.
- Authentification du certificat x.509– Mécanisme d'authentification permettant d'authentifier les clients auprès des serveurs via un certificat au lieu d'un mot de passe.
Les utilisateurs de MongoDB Enterprise ont également accès à deux autres méthodes d'authentification :
- Authentification proxy LDAP (Lightweight Directory Access Protocol)– Les utilisateurs se connectent avec un mot de passe et le système, interroge un serveur LDAP pour connaître les groupes dont un utilisateur authentifié est membre, mappe les noms distinctifs (DN) des groupes découverts et autorise les utilisateurs en fonction des rôles et de leurs privilèges.
- Authentification Kerberos– Authentification avec un service Kerberos où les utilisateurs peuvent se connecter avec un ticket d’accès. (nécessite un déploiement Kerberos).
5. Chiffrer le trafic réseau
En plus de chiffrer les données au repos, vous devez chiffrer le trafic réseau pour arrêter les attaques de l'homme du milieu où les pirates espionnent le trafic en transit. Pour protéger vos données, chiffrez le trafic réseau vers et depuis la base de données en configurant Transport Layer Security (TLS) et Secure Sockets Layer (SSL). Vous pouvez déployer TLS/SSL en définissant net.ssl.mode sur requireSSL, ce qui demandera au système d'autoriser uniquement les connexions TLS/SSL.
6. Sauvegardez vos données
En sauvegardant régulièrement vos données, vous garantirez que vous aurez accès à vos informations même en cas de cyberattaque ou de panne du système. Par exemple, si quelqu'un crypte vos données et demande une rançon ou si une catastrophe naturelle détruit votre bureau, vous aurez toujours accès à votre dernière sauvegarde, afin que vous puissiez restaurer le système à son état d'avant l'attaque.
Il existe trois manières principales de sauvegarder MongoDB :
- décharge de mongo– Un utilitaire inclus avec MongoDB qui peut vider une base de données entière ou le résultat d'une requête, créant ainsi un instantané d'une base de données. Idéal pour les petits déploiements, mais rencontre des difficultés avec des bases de données plus volumineuses.
- instantanés du système de fichiers– Utilisez des outils comme LinuxLVM pour prendre des instantanés du système de fichiers. Un moyen fiable de créer des sauvegardes volumineuses.
- Service de gestion MongoDB (MMS)– Service de sauvegarde en ligne géré qui diffuse en continu les données oplog de MongoDB vers MMS pour créer des sauvegardes. Prend des instantanés toutes les 6 heures avec une conservation de 24 heures.
En bref, Mongodump est idéal pour les petites bases de données, les instantanés du système de fichiers conviennent aux sauvegardes complètes et MMS est conçu pour les sauvegardes continues des données critiques.
7. Effectuer des mises à jour régulières
Le téléchargement régulier de mises à jour de sécurité est essentiel pour garantir que votre service est protégé contre les vulnérabilités connues. La mise à jour de votre système aidera à corriger les vulnérabilités et à réduire le nombre d'exploits qu'un pirate informatique peut exploiter pour accéder à vos informations.
8. Surveillez votre réseau
La surveillance des performances est un excellent moyen d’identifier quand vos ressources ne fonctionnent pas comme elles le devraient et de détecter les signes d’une cyberattaque. Un logiciel de surveillance de base de données peut vous avertir lorsque votre base de données connaît de mauvaises performances et générer des alertes pour vous avertir afin que vous puissiez prendre des mesures.
Les meilleurs outils de surveillance MongoDB
La surveillance de MongoDB est vitale pour détecter les événements de sécurité. Une surveillance continue vous permettra d'identifier une activité alarmante telle qu'un pic d'échecs de connexion, qui peut indiquer une cyberattaque. Dans cette section, nous allons examiner certains des meilleurs outils de surveillance MongoDB du marché.
1. Moniteur de performances de la base de données SolarWinds (ESSAI GRATUIT)
Moniteur de performances de base de données SolarWindsest une solution de surveillance des performances de base de données basée sur SaaS que vous pouvez utiliser pour surveiller MongoDB.Moniteur de performances de base de données SolarWindslivré avecanalyse de profilage automatiséevous pouvez utiliser pour surveillerlatenceetdébit. Les options de visualisation telles que des graphiques et des diagrammes vous offrent un aperçu complet des performances de MongoDB à partir du tableau de bord.
Principales caractéristiques:
- Analyse de profilage automatisée
- Tableau de bord
- Graphiques et diagrammes
- Recommandations
- Vérifications de configuration
- Alertes
Recommandations automatiquesvous fournir des conseils sur les meilleures pratiques pour MongoDB afin que vous puissiez optimiser en permanence les performances et la sécurité. Par exemple, la plateforme peut vous indiquer qu’une requête lente pourrait être rendue plus rapide avec un index supplémentaire.
Le logiciel surveille égalementmauvaises configurations.Moniteur de performances de base de données SolarWindspeut identifier les erreurs de configuration et les vulnérabilités afin que vous puissiez prendre des mesures pour les corriger. Il y a aussialertes basées sur des seuilssystème que vous pouvez utiliser pour définir des conditions de déclenchement pour des métriques individuelles afin de déterminer quand vous recevez des notifications.
Moniteur de performances de base de données SolarWindsest une solution de surveillance de base de données fiable, idéale pour les utilisateurs de MongoDB qui ont besoin d'optimiser les performances. Les prix commencent à 2 840 $ (2 203 £). Tu peuxcommencez l'essai gratuit de 14 jours.
Avantages:
- Propose des modèles, des moniteurs et des tableaux de bord prédéfinis pour MongoDB
- Prend en charge la découverte automatique qui crée des cartes de topologie de réseau et des listes d'inventaire en temps réel en fonction des appareils qui entrent dans le réseau.
- Utilise des widgets glisser-déposer pour personnaliser l'apparence du tableau de bord
- Prend en charge un large éventail d'intégrations pour surveiller d'autres bases de données
Les inconvénients:
- Il s'agit d'un outil d'entreprise riche en fonctionnalités conçu pour les administrateurs système. Les utilisateurs non techniques peuvent avoir certaines fonctionnalités écrasantes.
SolarWinds Database Performance Monitor Démarrez un essai GRATUIT de 14 jours
2. Chien de données
Chien de donnéesest un outil de surveillance du cloud que vous pouvez utiliser pour surveiller MongoDB et identifier les problèmes de performances tels quegoulots d'étranglement, latence,ettaux d'erreuren temps réel. Visualisez les mesures de performance en temps réel avec des visualisations telles quegraphiquesetgraphiquesvia un tableau de bord personnalisable par glisser-déposer. Il existe également des cartes de dépendances qui vous permettent de surveiller les interdépendances des applications.
Principales caractéristiques:
- Cartographie des dépendances
- Tableau de bord personnalisé
- Graphiques et diagrammes
- Détection d'une anomalie
- Alertes
Alertes de détection d'anomaliesidentifie automatiquement les anomalies de performances et vous en informe afin que vous puissiez y répondre. La détection des anomalies tient compte des fluctuations temporairesréduire les faux positifs. Vous pouvez également créer des seuils d'alerte personnalisés selon vos besoins.
Il existe également une gamme de fonctionnalités qui prennent en charge les équipes. Par exemple, vous pouvez prendreinstantanésdes problèmes de performances et identifiez les autres membres de votre équipe pour leur faire savoir qu'il y a un problème. Vous pouvez aussivoir qui a répondu à une alerte, vous évitant ainsi de perdre du temps à suivre un problème qui a été résolu.
Chien de donnéesest une solution exceptionnelle pour les entreprises qui souhaitent surveiller MongoDB parallèlement à d'autres applications. Les prix commencent à 15 $ (11,64 £) par hôte et par mois pour la version Infrastructure. Vous pouvez démarrer l'essai gratuit de 14 jours à partir de ce lien ici .
Avantages:
- Les administrateurs peuvent surveiller MongoDB via un capteur déployable rapidement
- Interface très intuitive
- Peut résoudre de manière proactive les problèmes de performances avant qu’ils n’impactent les utilisateurs finaux
- Prend en charge la découverte automatique qui crée des cartes de topologie de réseau à la volée
- Permet aux entreprises d'étendre leurs efforts de surveillance de manière fiable grâce à des options de tarification flexibles
Les inconvénients:
- J'aimerais voir une période d'essai plus longue pour les tests
3. Gestionnaire de cloud MongoDB
Gestionnaire de cloud MongoDBest une plateforme de gestion hébergée conçue pour surveiller MongoDB. AvecGestionnaire de cloud MongoDBvous pouvez surveiller les performances de la base de données MongoDB et du matériel. La plateforme comprend des options de visualisation telles quegraphiquesetgraphiquesafin que vous puissiez surveiller en un coup d'œil les mesures de performances telles que les temps d'exécution des requêtes.
Principales caractéristiques:
- Graphiques et diagrammes
- Chiffrement TLS
- Alertes
Chaque fois qu'unMongoDBl'agent se connecte àGestionnaire de nuages, la plateforme utiliseTLSpour chiffrer les communications. Une fois connecté, vous pouvez utiliser leConseiller en performanceàidentifier les requêtes à exécution lente, vous aidant à savoir ce que vous devez optimiser pour améliorer les performances.
Il existe également un système d'alertes dans lequel vous pouvez configurer les conditions de déclenchement pour déterminer quand vous recevez des notifications viaSlack, PagerDuty,ouChien de données. Par exemple, vous pouvez configurer une alerte pour vous avertir si un hôte est en panne ou si leNombre de redémarrages dans Last Hour franchit un certain seuil. Toutes les alertes peuvent être consultées via la page Alertes.
Gestionnaire de cloud MongoDBest un excellent choix pour les entreprises qui souhaitent une surveillance des performances basique et pratique pour MongoDB. Il existe une version gratuite avec 24 heures de conservation des données et cinq minutes de granularité. Les versions payantes commencent à 39 $ (30,27 £) par serveur et par mois pour Cloud Manager Standard avec des données historiques complètes et une granularité de deux minutes. Vous pouvez démarrer le 30 jours d'essai gratuit .
Avantages:
- Conçu spécifiquement pour la surveillance MongoDB
- Offre des alertes et une visualisation des données intégrées
- Options d'alerte hautement personnalisables
- Excellente option pour les réseaux qui dépendent fortement de MongoDB
Les inconvénients:
- Impossible d'étendre la surveillance au-delà de MongoDB
Évitez les paramètres par défaut
MongoDB dispose de tous les paramètres de sécurité dont vous avez besoin pour vous défendre contre les attaquants, il vous suffit de les configurer. Ne commettez pas l’erreur d’utiliser une base de données avec les paramètres par défaut, car vous exposez vos données à un risque de violation. En suivant quelques bonnes pratiques et en configurant correctement MongoDB, vous pourrez éviter bien des problèmes.
Combiner des configurations appropriées avec des outils de surveillance des performances tels queMoniteur de performances de base de données SolarWinds, Datadog,etGestionnaire de cloud MongoDBvous garantira la possibilité d’optimiser les performances à long terme et d’arrêter les attaquants malveillants.