PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Comment combler l'écart de vulnérabilité dans PostgreSQL

Peu importe le type de technologie ou de système de sécurité que vous avez en place, il y a toujours un risque d'être piraté car il n'y a pas de système sécurisé à 100 %. Comme les données sont probablement l'atout le plus important d'une entreprise, vous devez sécuriser votre système autant que possible pour minimiser ce risque.

Ce blog mentionnera quelques vérifications importantes à effectuer dans votre environnement PostgreSQL pour combler l'écart de vulnérabilité et éviter certains des problèmes de sécurité les plus courants.

Sécuriser les communications

Si vous utilisez différents fournisseurs de cloud, une combinaison de fournisseur de cloud et On-Prem, ou même simplement un environnement On-Prem, la communication dans tous vos systèmes doit être cryptée et vous devez restreindre le trafic provenant uniquement de sources connues afin de réduire le risque d'accès non autorisé à votre réseau.

L'utilisation de règles VPN, SSH ou de pare-feu, ou même une combinaison de celles-ci, sont de bonnes solutions pour ce point.

Contrôle de l'accès à la base de données

Vous devez restreindre l'accès physique et à distance.

  • Accès physique (sur site) :limitez l'accès physique non autorisé au serveur de base de données.

  • Accès à distance :limitez l'accès à distance aux seules personnes nécessaires, et à partir du moins de sources possibles. L'utilisation d'un VPN pour y accéder est certainement utile ici, mais il existe également d'autres options comme le tunnel SSH. Vous devriez trouver la meilleure solution pour votre entreprise.

Gestion des comptes utilisateur de la base de données

Il existe de nombreuses façons d'améliorer la sécurité de vos comptes d'utilisateurs dans PostgreSQL.

  • Supprimer les utilisateurs inactifs. Pour cela, vous devez définir une période de temps pour considérer un utilisateur comme inactif, et vous pouvez le programmer pour le supprimer automatiquement.

  • Accordez uniquement les privilèges nécessaires lorsque vous créez un nouveau compte utilisateur.

  • Restreindre la source pour chaque connexion utilisateur à l'aide du fichier de configuration pg_hba.conf.

  • Définissez une politique de mot de passe sécurisé (ou activez un plugin pour cela, par exemple passwordcheck).

Installations et configurations sécurisées

Il y a quelques changements à faire pour sécuriser votre installation PostgreSQL.

  • Installez uniquement les packages et services nécessaires sur le serveur.

  • Modifiez le mot de passe de l'utilisateur administrateur par défaut et restreignez l'utilisation à partir de l'hôte local uniquement.

  • Modifier le port par défaut et spécifier l'interface à écouter.

  • Activer le plug-in de politique de sécurité des mots de passe.

  • Configurer les certificats SSL pour chiffrer les données en transit.

  • Chiffrer les données au repos.

  • Configurez le pare-feu local pour autoriser l'accès au port de la base de données uniquement depuis le réseau local.

Si vous utilisez une base de données PostgreSQL gérée, certains des points mentionnés ci-dessus ne seront pas nécessaires.

Audit et journalisation

Les instructions de journalisation peuvent vous aider à détecter les problèmes de sécurité ou à les éviter si vous les rattrapez à temps.

Vous pouvez utiliser la fonction de journalisation standard de PostgreSQL à l'aide du paramètre log_statement, mais vous pouvez également utiliser une extension comme pgAudit pour avoir une journalisation d'audit de session et d'objet plus détaillée.

Mettre en place un WAF (Web Application Firewall)

Les injections SQL ou les attaques DoS (Denial of Service) sont les attaques les plus courantes contre une base de données, et le moyen le plus sûr de les éviter consiste à utiliser un WAF pour intercepter ce type de requêtes SQL ou un SQL Proxy pour analyser le trafic.

Vérifier CVE (Vulnérabilités et Expositions Communes) fréquemment

Chaque jour, de nouvelles vulnérabilités sont détectées pour votre serveur de base de données. Vous devriez le vérifier fréquemment pour savoir si vous devez appliquer un correctif ou modifier quelque chose dans votre configuration. Une façon de le savoir est de consulter le site Web CVE, où vous pouvez trouver une liste des vulnérabilités avec une description, et vous pouvez rechercher la version et le fournisseur de votre base de données, pour confirmer s'il y a quelque chose de critique à corriger dès que possible.

Pour être plus précis, vous pouvez consulter la section PostgreSQL pour essayer de trouver des problèmes pour votre version de base de données.

Gardez votre système d'exploitation et votre base de données à jour

Il existe plusieurs correctifs et améliorations que le fournisseur de la base de données ou le système d'exploitation publie afin de corriger ou d'éviter les vulnérabilités. Il est important de maintenir votre système aussi à jour que possible en appliquant des correctifs et des mises à niveau de sécurité.

Surveillance

Pour connaître l'état de vos systèmes, vous devez disposer d'un bon système de surveillance. Cela peut être utile pour trouver des problèmes de sécurité ou même pour les éviter.

Pour cela, ClusterControl est une bonne option car il s'agit d'un système de gestion et de surveillance qui vous aide à déployer, gérer, surveiller et faire évoluer vos bases de données à partir d'une interface conviviale. Il prend en charge les meilleures technologies de base de données open source et vous pouvez automatiser de nombreuses tâches de base de données que vous devez effectuer régulièrement, telles que l'ajout et la mise à l'échelle de nouveaux nœuds, l'exécution de sauvegardes et de restaurations, etc.

ClusterControl vous permet de surveiller vos serveurs en temps réel avec un ensemble prédéfini de tableaux de bord pour analyser certaines des métriques les plus courantes.

Il vous permet de personnaliser les graphiques disponibles dans le cluster et vous pouvez activer la surveillance basée sur l'agent pour générer des tableaux de bord plus détaillés.

Vous pouvez également créer des alertes, qui vous informent des événements dans votre cluster, ou s'intégrer à différents services tels que PagerDuty ou Slack.

Dans la section du moniteur de requêtes, vous pouvez trouver les principales requêtes, les requêtes en cours d'exécution, les valeurs aberrantes des requêtes et les statistiques des requêtes pour surveiller le trafic de votre base de données.

Avec ces fonctionnalités, vous pouvez voir comment va votre base de données PostgreSQL.

Conclusion

Les points mentionnés ci-dessus vous aideront à combler l'écart de vulnérabilité dans votre base de données PostgreSQL, mais comme nous l'avons mentionné, il y a toujours un risque d'être piraté.

En outre, vous devez disposer d'un bon système de surveillance tel que ClusterControl et exécuter périodiquement des outils d'analyse de sécurité à la recherche de vulnérabilités telles que Nessus afin de minimiser encore plus les risques de sécurité.