Meilleures Pratiques pour la Sécurité des Bases de Données Oracle
Aucun système de gestion de bases de données n’est sécurisé par défaut. Cependant, vous pouvez éviter la plupart des menaces en configurant correctement l’environnement. Dans cet article, nous résumons nos connaissances sur la sécurité des bases de données Oracle et énumérons les mesures à envisager lorsque vous travaillez avec Oracle Database.
1. Se Débarrasser des Mots de Passe Par Défaut
La toute première chose à traiter en ce qui concerne la sécurité des bases de données. Si vous utilisez des mots de passe qui peuvent être facilement piratés ou forcés, toutes les autres mesures de sécurité seront aussi inutiles qu’un magasin de chaussures dans la Comté. Les attaquants commencent par des moyens faciles qui causent des dommages maximum. Nous espérons qu’après les récentes attaques sur les bases de données MongoDB et MySQL mal configurées, la majorité a compris le message. NE laissez PAS de mots de passe par défaut ou faibles et assurez-vous que les mots de passe stockés sont chiffrés.
Utilisez le script suivant pour trouver les comptes d’utilisateurs qui ont des mots de passe par défaut.
sqlpus sys as sysdba
Entrer le mot de passe : mot de passe
SELECT d.username, u.account_status
FROM DBA_USERS_WITH_DEFPWD d, DBA_USERS u
WHERE d.username = u.username
ORDER BY 2,1;
Utilisez l’outil Checkpwd pour identifier les comptes avec des mots de passe faibles. Il s’agit d’un vérificateur de mots de passe basé sur un dictionnaire pour les bases de données Oracle. L’outil lit les hachages des mots de passe à partir de la vue dba_users et compare les clés de hachage locales avec les clés de hachage du fichier de dictionnaire fourni. Il affiche la liste des comptes expirés et des mots de passe faibles afin que vous puissiez les changer.
checkpwd system/oracle@//127.0.0.1:1521/orcl password_list.txt
2. Mettre à Jour et Appliquer les Correctifs
L’étape suivante consiste à installer la dernière version du système de gestion de base de données. Une fois mis à jour, vous pouvez travailler sans bogues et autres problèmes déjà corrigés. Les développeurs essaient constamment de rendre la base de données Oracle plus sûre, ce qui est particulièrement notable dans Oracle Database 12c.
Quatre fois par an, Oracle publie la mise à jour de correctif critique qui résout des tonnes de vulnérabilités de sécurité critiques sur diverses plateformes, y compris Oracle Database. Avec la mise à jour, Oracle publie les informations générales sur les vulnérabilités corrigées, que les attaquants commencent instantanément à analyser et exploiter. Selon le dernier rapport Wallarm, il faut de 2 à 4 heures avant que les pirates commencent à exploiter une vulnérabilité nouvellement signalée. Ainsi, ne manquez pas la mise à jour.
Consultez le calendrier des mises à jour de correctifs critiques ici.
3. Séparer les Fonctions
Connaissez-vous l’architecture en pipeline où chaque membre du système fait seulement son travail et rien de plus ? Cela semble ennuyeux, mais vous devriez envisager de mettre en place une architecture similaire dans l’environnement de l’entreprise. Réfléchissez à deux fois avant de commencer à distribuer des privilèges comme des prospectus.
En général, la meilleure pratique consiste à supprimer tous les privilèges et à commencer à les accorder sur une base de ‘besoin de savoir’. Reprenez à zéro. Cela vous aidera à éviter les scénarios où un responsable de la sécurité n’a pas remarqué qu’un John du département de gestion avait accès à des informations propriétaires et des secrets commerciaux.
4. Gérer les Mots de Passe
Pendant des années, les administrateurs ont stocké les mots de passe des comptes non cryptés dans un script ou un fichier de configuration. Oracle a publié le Secure Password Store pour résoudre le problème. Cette fonctionnalité vous permet de créer un fichier de portefeuille où vous pouvez stocker en toute sécurité les identifiants de la base de données.
Oracle Database dispose d’un ensemble d’outils pour protéger les mots de passe. Certains d’entre eux sont désactivés par défaut.
- Vérification de la Complexité des Mots de Passe Il existe une fonction simple de vérification des mots de passe dans les scripts PL/SQL UTLPWDMG.SQL ($ORACLE_HOME/rdbms/admin). Le script est désactivé par défaut. Pour l’activer, connectez-vous à SQL*Plus avec des privilèges administratifs et exécutez le script.
CONNECT SYS AS SYSDBA Entrer le mot de passe : mot de passe @$ORACLE_HOME/RDBMS/ADMIN/utlpwdmg.sql
Les paramètres spécifiant les exigences des mots de passe sont définis par défaut, mais vous pouvez en changer la valeur à votre discrétion. Depuis la version 11g, la sensibilité à la casse des mots de passe est activée par défaut. - Verrouillage des Comptes Activez le verrouillage des comptes après 3 tentatives invalides pendant une certaine période. Cela réduira considérablement le risque d’attaques par force brute. Définissez les paramètres suivants pour spécifier les verrouillages de compte pour un profil Oracle:
FAILED_LOGIN_ATTEMPTS 3 PASSWORD_LOCK_TIME 10
L’argument du second paramètre est défini sur 10 jours. Utilisez le paramètre INACTIVE_ACCOUNT_TIME pour définir la période d’inactivité après laquelle le compte sera verrouillé (la valeur est également exprimée en jours).
5. Modifier les Paramètres de Surveillance par Défaut
Oracle 12c a introduit Unified Audit Data Trail qui combine SYS.AUD$ pour la piste de vérification de la base de données, SYS.FGA_LOG$ pour la vérification fine, DVSYS.AUDIT_TRAIL$ pour Oracle Database Vault, et Oracle Label Security.
Dans Oracle 12c, la valeur par défaut de audit_sys_operations est TRUE, mais si vous utilisez une version plus ancienne, vous devez activer le paramètre pour que les commandes SQL de l’utilisateur sys soient vérifiées.
Utilisez la commande suivante pour l’activer et redémarrez le système.
SQL> alter system set audit_sys_operations=true scope=spfile;
Activez audit_trail pour vérifier les commandes SQL.
SQL> alter system set audit_trail=DB,EXTENDED scope=spfile;
Lorsque vous commencez à travailler avec Oracle Database 12c, vous pouvez utiliser le mode mixte en créant une politique avec la commande CREATE AUDIT POLICY, puis l’activer avec la commande AUDIT. Vous pouvez également utiliser des politiques prédéfinies (voir ici pour plus d’informations sur les politiques de vérification par défaut).
6. Mettre en Œuvre des Méthodes d’Authentification Fortes
L’authentification de l’identité des utilisateurs est impérative dans les environnements distribués. En plus de l’authentification par défaut, Oracle Database prend en charge des protocoles et services d’authentification tiers standardisés dans l’industrie. Pour les utiliser, mettez en œuvre quelques modifications de configuration.
- Kerberos Protocole d’authentification conçu principalement pour un modèle client-serveur et il fournit une authentification mutuelle.
- Secure Socket Layer (SSL) Protocole standard de l’industrie pour sécuriser les connexions réseau.
- Remote Authentication Dial-In User Service (RADIUS) Protocole de sécurité client/serveur qui permet l’authentification et l’accès à distance.
- Contrôlez l’accès à la base de données à l’aide d’outils tels que Kerberos, Oracle grant security, Oracle wallet security, Oracle virtual private databases.
- Pour l’accès distant à la base de données, seul l’accès par clé sécurisée sera autorisé (accès par shell sécurisé (SSH) ou VPN).
7. Gérer les Données Sensibles
La fuite de données sensibles ou confidentielles peut entraîner des conséquences désastreuses. Ainsi, les informations personnellement identifiables, les informations de santé protégées, les informations propriétaires et la propriété intellectuelle doivent être traitées avec une attention particulière.
Tout d’abord, vous devez indiquer où elles se trouvent. Il existe diverses solutions conçues pour rechercher des données sur plusieurs plateformes. Oracle Database dispose d’un utilitaire intégré de protection transparente des données sensibles.
Les DBA doivent administrer les bases de données mais pas les données, tout comme les développeurs tiers et les testeurs. Les solutions de masquage des données peuvent être d’une grande aide dans ce cas.
8. Utiliser des Outils de Sécurité Supplémentaires
L’objet le plus vulnérable dans un environnement de production est la base de données, mais la majorité des entreprises dépensent la plupart de leur budget de sécurité pour la sécurité réseau. La protection des bases de données devrait recevoir plus d’attention.
- Surveillance des Activités de la Base de Données Si votre entreprise peut se permettre des outils DAM, cela peut être très utile. Ils fournissent une visibilité complète de toutes les activités et des modifications du système en temps réel. Ils avertiront les DBA en cas de détection d’activités suspectes. Intégrez-le à un système SIEM et vous obtiendrez une analyse en temps réel des menaces de sécurité afin de pouvoir prendre des mesures immédiates contre les attaques naissantes. L’option Oracle Advanced Security Database inclut un outil DAM. Des solutions tierces peuvent également être utilisées.
- Pare-feu pour Bases de Données Fonctionnant comme un proxy, le pare-feu pour bases de données traite le trafic entrant et sortant de la base de données et protège contre les injections SQL et les tentatives d’accès non autorisées. Vous pouvez apprendre comment un pare-feu protège contre les attaques par injection SQL en utilisant notre produit comme exemple.
- Chiffrement du Trafic de la Base de Données L’option Oracle Advanced Security Database inclut un outil de chiffrement des données. Des solutions tierces peuvent également être utilisées. Ces solutions convertissent les données en clair en un texte chiffré inintelligible basé sur une clé spéciale afin que seules les parties autorisées puissent y accéder. Sans connaissance de l’algorithme de chiffrement, il est presque impossible de récupérer les données originales à partir du texte chiffré.
9. Sensibiliser Vos Collaborateurs ! Élimination de l’Illettrisme en Cybersécurité
Aucune des mesures mentionnées ci-dessus ne fonctionnera si vos collègues collent leurs mots de passe sur leurs moniteurs et téléchargent des pièces jointes d’emails malveillants. Selon le dernier rapport de sécurité IBM, 60 % des menaces de cybersécurité proviennent de l’intérieur. Cela peut être un initié malveillant ou un acteur involontaire.
Organisez des formations en sécurité. Expliquez aux travailleurs réguliers l’importance de prendre des précautions. Il est également utile de les informer sur la législation en matière de sécurité et les sanctions imposées par les organismes de réglementation pour non-conformité ou cybercrimes.
10. Soyez Paranoïaque
Nous surveillons les actualités sur la sécurité de l’information régulièrement, et il est surprenant de voir comment de si grandes entreprises se font pirater. Des entreprises qui peuvent se permettre les meilleures applications de sécurité. Pourquoi cela se produit-il ? Apparemment, la réponse à cette question réside dans l’approche de la question. Si vous considérez vos procédures de travail comme une routine ennuyeuse et inutile, vous laisserez certaines des questions importantes sans attention et finirez par vous faire pirater. Mais si vous réalisez la responsabilité de votre poste et voulez bien faire, vous devriez devenir paranoïaque. Attendez-vous à des attaques à tout moment provenant de toutes les directions.
Soyez méticuleux et ne laissez personne négliger les mesures de protection. Passez en revue toutes les recommandations de sécurité d’Oracle (le lien se trouve dans la section Références). C’est un travail difficile mais ça vaut la peine. On parle rarement des attaques repoussées mais si le nom de votre entreprise n’apparaît pas dans les digests de sécurité, nous savons que c’est vous, cher responsable de la sécurité, qui avez fait le travail comme il se doit.
Pour une protection totale de vos bases de données Oracle, utilisez les composants suivants inclus dans la Suite de Sécurité DataSunrise Database :
- Surveillance des Activités Oracle
- Masquage des Données Oracle
- Pare-feu pour Bases de Données
- Surveillance des Performances Oracle
- Découverte des Données Sensibles Oracle
*Références
https://docs.oracle.com/cd/B28359_01/network.111/b28531/toc.htm