Comment Auditer les Actions Administratives dans votre Oracle RDS et EC2
Préface
Amazon Relational Database Service (Amazon RDS) est un service web qui facilite la configuration, l’exploitation et la mise à l’échelle d’une base de données relationnelle dans le cloud AWS. Il offre une capacité redimensionnable et économique pour une base de données relationnelle standard et gère les tâches courantes d’administration de base de données.
DataSunrise est un partenaire technologique avancé AWS certifié en compétence de sécurité en protection des données et chiffrement ainsi qu’avec d’autres qualifications validées par AWS. DataSunrise peut fonctionner sur place ou sur une instance EC2 ou en tant que cluster sur plusieurs instances EC2, dans une machine virtuelle ou sur bare-metal. DataSunrise Data et Database Security Suite (DataSunrise) pour tous les types d’Amazon RDS agit comme un pare-feu d’application de base de données (DAF) et joue le rôle d’intermédiaire pour toutes les sessions, requêtes, et commandes de n’importe quel client vers une instance Amazon RDS. Et comme DataSunrise est un logiciel et non une solution SaaS, vous êtes responsable de la configuration et de l’installation correcte de votre instance DataSunrise.
L’objectif principal de cet article est d’introduire l’approche sur la façon d’auditer l’activité des comptes privilégiés. Nous verrons comment configurer DataSunrise pour auditer l’activité des DBA dans Oracle RDS. Cependant, toutes les étapes générales s’appliquent à toute instance Amazon RDS.
Aperçu d’Oracle RDS et prérequis
Comme vous le savez probablement, Amazon RDS prend en charge l’accès aux bases de données en utilisant n’importe quelle application client SQL standard et n’autorise pas l’accès direct à l’hôte avec SSH etc. Cette architecture ne vous permet pas d’installer des agents de base de données dans Amazon RDS et vous limite dans l’utilisation de privilèges puissants DBA comme SYSDBA. Amazon RDS adopte un modèle de responsabilité partagée qui exclut toute intervention humaine directe dans la plate-forme informatique. Cependant, avec Amazon RDS, vous pouvez effectuer vos tâches de manière légèrement différente et unifiée. Par exemple, le DBA peut accéder aux logs de la base de données ou sauvegarder des instances Amazon RDS avec des instantanés à l’aide de la Console de gestion AWS, de l’interface de ligne de commande AWS (AWS CLI), ou de l’API RDS. Par contre, vous n’êtes pas en mesure d’accéder à Amazon RDS en utilisant des connexions SSH ou RDP pour des activités liées à la base de données ou au système d’exploitation (et probablement dangereuses). Gardez donc à l’esprit qu’avec le rôle IAM requis, vous pouvez modifier et gérer votre instance Amazon RDS pour répondre à vos besoins système sans vous connecter à Amazon RDS via SSH/RDP.
Un aspect important est lié à Oracle SYSDBA et à des privilèges/rôles similaires. Le rôle SYSDBA est désigné uniquement pour l’utilisateur RDSADMIN (AWS utilise l’utilisateur OS “rdshm”) et le mot de passe RDSADMIN est inconnu. De plus, avec Oracle RDS, vous ne pouvez pas connaître le mot de passe de l’utilisateur SYS. Et toutes ces choses signifient que :
- vous ne pouvez pas vous connecter à votre Oracle RDS en utilisant l’utilisateur RDSADMIN ou SYS ;
- vos utilisateurs de base de données ne peuvent pas obtenir SYSDBA ou un autre rôle puissant de base de données Oracle ;
- vous ne pouvez pas vous connecter à distance à l’instance Oracle RDS en utilisant SYSDBA ou un autre rôle puissant de la base de données Oracle.
Ces privilèges limités sécurisent et protègent chaque instance RDS. Oracle RDS crée pour vous un utilisateur DBA limité (par exemple, l’utilisateur “admin” par défaut) afin que vous puissiez vous connecter à l’instance Oracle RDS en utilisant cet utilisateur. Plus tard, vous pouvez créer un autre utilisateur et ce nouvel utilisateur n’obtiendra pas plus de privilèges que votre utilisateur “admin”. Encore une fois, cela est lié au modèle de responsabilité partagée de la gestion chez AWS. L’équipe d’Amazon RDS a dessiné cette ligne rouge que vous ne pouvez pas franchir.
Nous laisserons la configuration d’Oracle RDS en dehors de la portée de cet article et pour continuer avec les étapes suivantes, vous aurez besoin qu’une instance Oracle RDS soit lancée et en cours d’exécution et nous espérons que vous pouvez démarrer une nouvelle instance Oracle RDS ou que vous avez déjà accès à une instance Oracle RDS existante. Si vous souhaitez connaître les meilleures pratiques pour exécuter Oracle RDS, veuillez consulter la documentation AWS.
Dans la section suivante, nous examinerons ce qui est disponible pour l’audit de l’activité des DBA.
Activité du DBA sur Oracle RDS et options d’audit
Les limitations des instances RDS soulèvent de nombreuses questions sur la façon d’auditer les actions spécifiques aux DBA comme ALTER SYSTEM, CREATE USER, DROP DATABASE, etc. Et comment pouvez-vous auditer ces utilisateurs RDS internes comme RDSADMIN ? D’accord, passons en revue toutes les options disponibles.
- Vous pouvez visualiser l’activité interne de RDS en utilisant les fichiers de logs de base de données Amazon RDS Vous pouvez voir, télécharger et surveiller les logs de base de données à l’aide de la console Amazon RDS, de l’interface de ligne de commande AWS (AWS CLI), ou de l’API Amazon RDSAPI Amazon RDS. Amazon fournit un service de récupération à un point dans le temps et affirme que RDS télécharge les logs de transaction pour les instances DB sur Amazon S3 toutes les 5 minutes. Donc, les fichiers de logs de base de données et le service CloudTrail aident à analyser l’activité de l’utilisateur RDSADMIN avec des informations supplémentaires sur les événements Oracle RDS. Toutes ces options sont bonnes jusqu’à ce que vous ayez besoin d’une surveillance et d’une alerte des transactions en temps réel.
- Avec des instances DAF fonctionnant sur des VMs EC2 séparées, vous pouvez auditer toutes les sessions et requêtes exécutées vers votre instance Amazon RDS. L’objectif des instances DAF est de devenir votre garde de base de données et puisque vous avez besoin de surveiller l’activité des DBA, nous verrons cette option en détail plus loin. Les instances DataSunrise sur des boxes EC2 sont capables de surveiller et de sécuriser l’activité réseau vers Amazon RDS.
Aperçu et prérequis de DataSunrise sur AWS
Mettre en place et configurer des instances DataSunrise sécurisées implique plusieurs étapes importantes. Pour préparer votre instance DataSunrise sécurisée dans l’environnement AWS, veuillez suivre les étapes décrites dans notre document Meilleures Pratiques de Sécurité AWS de DataSunrise. Pour en mentionner quelques étapes, les suivantes sont:
- assigner les rôles IAM appropriés à vos instances EC2 avec instances DataSunrise ;
- créer et assigner un ou plusieurs groupes de sécurité VPC à votre instance Amazon RDS et aux instances EC2 ayant le logiciel DataSunrise ;
- utiliser des mots de passe sécurisés et uniques pour chaque compte.
L’architecture ci-dessous consiste en une instance de base de données (RDS ou sur instance EC2) derrière un DAF, une base de données de stockage d’audit séparée (RDS ou sur instance EC2), et une instance DataSunrise qui sert de serveur proxy pour les connexions utilisateurs.
En option, DataSunrise fournit des scripts CloudFormation pour déployer dans AWS des solutions de sécurité de base de données sécurisées et rentables. Après la création de votre instance Amazon RDS, ces scripts automatisent toutes les tâches requises pour déployer les instances EC2, installer DataSunrise sur ces instances EC2, configurer Amazon Load Balancer ainsi que la création de toutes les autres ressources AWS requises. Nous passerons l’option CloudFormation et continuerons avec un scénario d’instance EC2 unique. Nous avons préparé des vidéos sur l’installation d’une instance DataSunrise, veuillez regarder l’une des vidéos et suivre les étapes requises:
- Installation de DataSunrise sur Linux https://www.youtube.com/watch?v=FWoGY2qc0F8
- Installation de DataSunrise sur Windows https://www.youtube.com/watch?v=wKlFUdUUbSE
À la fin du processus d’installation, votre instance DataSunrise devrait être accessible depuis votre navigateur Web. Vous aurez besoin que l’instance DataSunrise soit lancée et en cours d’exécution pour accéder à votre console web DataSunrise avec les privilèges requis.
Le prochain prérequis est la Configuration de la Base de Données que vous devriez créer dans l’instance DataSunrise pour démarrer un proxy pour Amazon RDS. Veuillez vous référer au Guide de l’Utilisateur de DataSunrise, section “3.1 Création d’un Profil de Base de Données Cible et d’un Proxy” et section “5.1.6 Création d’Utilisateurs de Base de Données Nécessaires pour Obtenir les Métadonnées de la Base de Données”. Puisque DataSunrise en mode proxy agit en tant qu’homme du milieu en interceptant tous les paquets TCP non-AWS vers l’instance Amazon RDS, vous pouvez utiliser le même port de la base de données Oracle standard 1521 car l’instance DataSunrise fonctionne sur une autre instance EC2. Assurez-vous enfin que votre instance Amazon RDS n’est PAS disponible depuis aucune autre IP/noms et ports non-AWS autre que via l’instance DataSunrise. Toutes ces étapes garantiront que toutes vos applications clientes peuvent accéder à votre instance Oracle RDS uniquement via votre instance DataSunrise.
Configurer DataSunrise pour auditer les DBA
Comme nous l’avons mentionné précédemment, à la création de votre Oracle RDS, vous recevez un compte DBA limité et son mot de passe, par défaut Oracle RDS offre l’utilisateur de base de données “admin” pour accéder à votre instance. Et comme vous vous souvenez Amazon RDS désactive le privilège SYSDBA pour vous. Et cela réduit la possible zone de menaces potentielles faites à l’instance Amazon RDS. Si votre Oracle RDS est accessible depuis votre machine de bureau, essayez de vous connecter à votre Oracle RDS en tant que SYSDBA pour prouver que cela est vrai, voir un exemple ci-dessous.
Vous verrez qu’il n’y a pas de SYSDBA, pas de SYSOPER, ou d’autres privilèges liés à SYS disponibles dans Oracle RDS que ce soit en utilisant TCP ou SSH.
Par conséquent, vous devez prendre soin d’auditer les connexions réseau – connexions distantes en utilisant le bon outil tel que DataSunrise DAF. Nous allons configurer une instance DataSunrise pour capturer tout type d’actions que votre DBA peut effectuer à distance sur l’instance Amazon RDS.
Résumé des prochaines étapes
Pour auditer les actions des DBA, nous allons effectuer les étapes suivantes :
- Identifier vos noms d’utilisateur de DBA/ comptes. DataSunrise conserve les Utilisateurs de base de données sous son menu Configuration. Si vous avez plus d’un DBA, créez un nouveau Groupe d’Utilisateurs de base de données sous Configuration → Utilisateurs de base de données. Dans notre exemple, nous allons utiliser un DBA appelé “admin” qui a été généré par notre instance Oracle RDS.
- En utilisant Configuration → Groupes d’Objets, créez une nouvelle entrée et ajoutez un seul élément avec une expression régulière “.*”.
- Créer une nouvelle Règle d’Audit pour inclure l’Utilisateur de base de données et le Groupe de Requêtes pour auditer l’activité du DBA.
- Vérifiez l’activité DBA dans l’instance DataSunrise
1. Identifier et configurer vos utilisateurs DBA dans DataSunrise
Poursuivons avec toutes ces étapes. Tout d’abord, sous Configuration → Utilisateurs de base de données, nous vérifions que l’utilisateur “admin” est connu de notre instance DataSunrise. Si DataSunrise n’en a pas, créez l’utilisateur “admin” manuellement. Si vous avez plusieurs instances Oracle RDS et le même nom d’utilisateur DBA “admin” utilisé, vous pouvez choisir <N’importe quelle> Instance. N’oubliez pas de cliquer sur le bouton Enregistrer pour sauvegarder vos paramètres sur chaque page.
Dans l’image ci-dessus, nous avons créé l’utilisateur ADMIN et l’avons inclus à l’équipe de groupe DBA. Si vous avez créé plusieurs utilisateurs DBA, ajoutez-les au “groupe Utilisateurs de l’Équipe DBA Oracle” dans l’instance DataSunrise.
2. Configurer un nouveau Groupe de Requêtes
Deuxième étape – nous allons créer notre nouveau Groupe de Requêtes “AnyQuery” et ajouter juste une entrée “.*” dans l’élément de requête. Veuillez voir les paramètres dans l’image ci-dessous.
Lorsque vous créez une nouvelle requête pour le Groupe de Requêtes (voir le bouton “Ajouter” sur l’image), veuillez cocher la case “Expression Régulière”.
À ce stade, nous avons l’utilisateur de base de données “ADMIN”, le groupe “Équipe DBA Oracle” dans l’instance DataSunrise et notre Groupe de Requêtes “AnyQuery” avec une requête qui a une expression régulière “.*” pour correspondre à toute requête. Nous sommes à la moitié du chemin.
3. Créer et configurer une nouvelle Règle d’Audit
Ensuite, nous allons créer une nouvelle Règle d’Audit portant le nom “Oracle: requêtes admin” en utilisant ce que nous avons créé dans l’instance DataSunrise. Veuillez ouvrir la console Web et entrer Audit → Règles. Cliquez sur Créer pour créer les nouvelles règles. Veuillez voir les détails sur les images ci-dessous.
Nous allons utiliser les onglets Filtrer les Déclarations et Groupe de Requêtes sur la page pour connecter notre règle avec les paramètres correspondants que nous avons faits plus tôt, voir les détails dans les images suivantes.
Lorsque vous sélectionnez le groupe d’utilisateurs “Équipe DBA Oracle” User Group pour la session du paramètre d’utilisateur DB , vous faites en sorte que DataSunrise capture toute session depuis toute IP/hôte ayant un nom d’utilisateur sur la liste “Équipe DBA Oracle”. Lorsque vous ajoutez un autre élément d’utilisateur de base de données au groupe d’utilisateurs “Équipe DBA Oracle” User Group cette règle vérifiera automatiquement le nouvel utilisateur dans cette règle. Et puisque vous utilisez l’onglet Groupe de Requêtes sur la page de la Règle d’Audit et avez sélectionné “AnyQuery” là alors DataSunrise vérifiera toute expression ou requête que votre équipe DBA exécutera via l’instance DataSunrise. Plus tard, vous verrez ces événements sous Audit → Trails Transactionnels.
En plus et optionnellement, vous pouvez envoyer les détails des événements d’Audit à un SIEM externe en utilisant le protocole Syslog ou pousser des alertes vers d’autres systèmes externes (SMTP/messagerie, Jira, ZenDesk, messageries instantanées). Pour configurer une connexion de serveur compatible Syslog veuillez naviguer vers Configuration → Paramètres Syslog et configurer les paramètres requis sur cette page. Voir “7.7 Paramètres Syslog (Groupes CEF)” et “10.6 Paramètres d’Intégration Syslog” dans notre User Guide pour plus de détails. Pour envoyer des alertes à d’autres destinataires que Syslog, ajoutez de nouveaux éléments aux Abonnés (console Web: Configuration → Abonnés → Ajouter un Serveur… Ajouter le menu d’Abonné). Vous pouvez trouver plus d’informations sur les Abonnés dans la section “7.5 Paramètres des Abonnés” du DataSunrise User Guide. Plus tard, vous pouvez utiliser les paramètres Syslog et/ou les Abonnés dans vos règles DataSunrise (voir la première image ci-dessus) ; veuillez voir les sections correspondantes dans les Guides Utilisateur et Administratif de DataSunrise. Une fois configurée, vous pouvez choisir vos éléments Syslog et Abonnés sur votre Règle d’Audit. N’oubliez pas de cliquer sur le bouton Enregistrer sur la page de la règle d’Audit pour enregistrer les nouveaux paramètres.
De cette façon, nous avons sélectionné les types de requêtes que nous devons auditer (et probablement pour notifier certaines personnes avec des alertes) pour des instances concrètes Amazon RDS ou plusieurs instances si vous choisissez “<ANY>” dans l’élément déroulant Instance sur la page de la règle. Il existe plusieurs options pour ignorer l’audit des requêtes typiques comme les outils DBMS, pour plus d’informations, voir la section “6.4.2 Filtre de Groupe de Requêtes” dans le DataSunrise User Guide en rapport avec le paramètre Skip Groupe de Requêtes des règles.
4. Vérifier l’activité du DBA dans l’instance DataSunrise
Pour vérifier que notre nouvelle Règle d’Audit capture les requêtes, nous exécuterons des requêtes CREATE USER et DROP USER en utilisant l’outil Oracle SQL Developer. Nous nous connecterons à l’instance Oracle RDS via l’instance DataSunrise.
Ensuite, nous pouvons vérifier les Trails Transactionnels dans l’instance DataSunrise.
Étant donné que nous avons défini l’option Enregistrer l’Événement dans le Stockage dans notre Règle d’Audit, nous pouvons trouver ces événements sur
la page Audit → Trails Transactionnels sur la console Web de notre instance DataSunrise.
Remarques sur EC2 avec l’instance de base de données Oracle
Il y a quelques considérations sur l’utilisation d’instances de base de données sur les instances Amazon EC2 avec DataSunrise. Comme vous configurez et configurez ces instances, vous pouvez pour une raison quelconque autoriser des connexions locales (SSH, RDP, etc.) ou des connexions distantes (database TCP) évitant l’instance DataSunrise (ou votre Load Balancer). Toutes ces connexions doivent être strictement limitées pour garantir un niveau maximal de sécurité et de gestion. Dans votre VPC, nous recommandons de mettre en œuvre des règles strictes en utilisant les Groupes de Sécurité et les ACL Réseau. Le but de toutes ces restrictions devrait être d’éliminer l’accès direct à votre instance de base de données depuis n’importe quel IP ou réseau sauf DataSunrise sur votre instance EC2 uniquement sur le port de la base de données.
Les étapes suivantes, vous pouvez les voir dans la section “Configuration des paramètres DataSunrise” de cet article. Et comme vous pensez probablement encore à comment auditer vos rôles potentiellement nuisibles SYSDBA (et similaires) que nous examinerons les capacités d’audit de DataSunrise pour vous aider avec cela.
A partir de DataSunrise 6.2, vous pouvez inclure les paramètres de session dans les conditions Filtrer Sessions. Veuillez voir ci-dessous notre Règle d’Audit avec la condition d’auditer SYSDBA et privilèges similaires en plus de “l’Équipe DBA Oracle” dans Groupe d’Utilisateurs DB. Nous supposons que nous avons configuré notre instance DataSunrise pour protéger Oracle Database fonctionnant sur l’instance EC2 et qu’il n’y a pas d’autre moyen de se connecter au serveur de base de données que via l’instance DataSunrise en mode proxy uniquement.
Puisque notre DAF protège Oracle Database sur EC2, nous allons essayer de nous connecter à Oracle via le proxy de DataSunrise. Sur les images ci-dessous, nous nous connectons à la base de données en utilisant Oracle SQL Developer via l’instance DataSunrise et utilisons le nom d’utilisateur “ sys ” et le rôle SYSDBA. Nous avons défini que cela est permis dans notre instance de base de données Oracle. Voir le résultat du test de connexion sur l’image suivante.
Si le test est passé avec le statut Success, nous pouvons essayer d’exécuter des requêtes de la même manière que nous l’avons fait précédemment dans la section “ Configurer DataSunrise pour auditer les DBA” de cet article. Oracle SQL Developer exécutera les requêtes via l’instance DataSunrise. Ensuite, sur la console Web de DataSunrise, nous pouvons vérifier Audit → Trail Transactionnel ou Session Trails pour voir toutes les requêtes et sessions de l’utilisateur “ sys ”. Notre Règle d’Audit capture l’utilisateur de base de données “ sys ” malgré que cet utilisateur particulier n’est pas sur la liste de notre “Équipe DBA Oracle” que nous avons créée plus tôt dans l’instance DataSunrise. Lorsque nous ouvrons Audit → Trail de Session et un élément particulier, nous verrons que l’instance DataSunrise enregistre des détails sur les rôles de la base de données Oracle ainsi que d’autres informations utiles.
De cette manière, nous avons configuré l’instance DataSunrise pour auditer toute activité DBA, y compris SYSDBA et privilèges systèmes similaires qu’Oracle Database a.
Conclusion
Nous avons vu qu’Oracle RDS nécessite moins d’effort pour sécuriser l’instance Oracle Database et auditer l’activité DBA. Sur les instances EC2, il faut retrousser ses manches et définir les paramètres des Sessions et grâce à DataSunrise version 6.2, vous pouvez auditer les rôles intégrés dans Oracle Database. Pour plus d’informations, veuillez consulter le Guide de l’utilisateur DataSunrise et les références attachées.
Références
Aperçu d’Amazon RDS
https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.DBInstance.html
DataSunrise Inc. et AWS
https://www.datasunrise.com/datasunrise-security-amazon-rds/
Aperçu des fichiers de logs de bases de données Amazon RDS
https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_LogAccess.html
Service de Récupération à un Point dans le Temps d’AWS
https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PIT.html
Meilleures Pratiques de Sécurité AWS DataSunrise
https://www.datasunrise.com/documentation/ds-aws-security-best-practices/
DataSunrise prend en charge AWS CloudFormation
https://www.datasunrise.com/professional-info/aws-market-commercial/
DataSunrise sur AWS Marketplace
https://aws.amazon.com/marketplace/seller-profile?id=880a5857-74c1-44ea-a978-094093c08788
Manuel de base de données Oracle sur SYSDBA et les privilèges du système SYSOPER
https://docs.oracle.com/database/121/ADMQS/GUID-2033E766-8FE6-4FBA-97E0-2607B083FA2C.htm#ADMQS12004
Guide de l’Utilisateur DataSunrise
https://www.datasunrise.com/documentation/user-guide-download/