Remarques :
- Ce tutoriel nécessite un accès à Oracle Cloud. Pour vous inscrire à un compte gratuit, reportez-vous à Introduction au niveau gratuit d'Oracle Cloud Infrastructure.
- Il utilise des exemples de valeur pour les informations d'identification, la location et les compartiments Oracle Cloud Infrastructure. A la fin de l'exercice, remplacez ces valeurs par des valeurs propres à votre environnement cloud.
Utilisation d'Oracle SQL Firewall avec Oracle Data Safe
Introduction
Oracle SQL Firewall fournit une protection en temps réel contre les attaques de base de données courantes en limitant l'accès à la base de données aux connexions ou aux instructions SQL autorisées uniquement pour un utilisateur désigné.
La console unifiée Oracle Data Safe a été étendue pour gérer et surveiller les bases de données Oracle SQL Firewall pour Oracle Database 23ai. Les administrateurs peuvent utiliser Oracle Data Safe pour collecter les activités SQL des comptes de base de données, surveiller la progression de la collecte, créer des stratégies SQL Firewall avec des règles d'autorisation de liste (contextes autorisés et instructions SQL autorisées) à partir des activités SQL collectées et activer les stratégies SQL Firewall.
Lorsqu'une stratégie de pare-feu est activée, Oracle Data Safe collecte automatiquement les journaux de violation de pare-feu de la base de données et les stocke dans Oracle Data Safe. Ces journaux sont ensuite disponibles pour l'analyse et le reporting en ligne sur l'ensemble de votre parc de bases de données.
Public visé
Administrateurs de base de données et administrateurs de sécurité Oracle Cloud Infrastructure (OCI).
Objectif
Découvrez comment utiliser Oracle SQL Firewall avec Oracle Data Safe dans un cas d'emploi simple.
Cas d'emploi : autorisez l'instruction SQL "Select on View" et bloquez toute autre instruction SQL pour l'utilisateur désigné APP_USER
.
APP_OWNER
: propriétaire des tables et des vues de l'application.APP_USER
: doit accéder à l'application.
Prérequis
-
Oracle Database 23ai provisionné dans OCI. Dans ce tutoriel, nous avons utilisé la base de données créée dans une instance OCI Compute.
-
Ajoutez la base de données pluggable Oracle Database 23ai -
FREEPDB1
en tant que cible dans Oracle Data Safe. Dans ce tutoriel, nous avons utilisé l'assistant d'instance de calcul pour l'inscription. Reportez-vous à Oracle Data Safe - Inscription de base de données cible. -
Tout outil Oracle Database permettant de tester Oracle SQL Firewall. Nous utilisons Oracle SQL Developer pour exécuter des instructions SQL. Pour plus d'informations, reportez-vous à Oracle SQL Developer.
Remarque : ignorez la tâche 1 si vous disposez déjà d'une instance Oracle Database 23ai.
Tâche 1 : créer une instance de calcul Oracle Database 23ai
-
Accédez à la console OCI, accédez à Compute, à Instances, puis cliquez sur Créer une instance. Saisissez les informations suivantes pour créer une instance.
-
Création de la base de données Oracle Database 23ai. Connectez-vous à votre instance de calcul à l'aide de la commande suivante.
ssh -i <private-ssh-key> opc@<publicip-computeinstance>
-
Passez à l'utilisateur root et mettez à jour le système avec le logiciel le plus récent lorsque vous travaillez sur une machine virtuelle.
sudo su yum update
-
Activez le référentiel Oracle Linux 8 Developer.
yum config-manager --set-enabled ol8_developer
-
Téléchargez Oracle Database 23ai Free RPM et installez-le en tant qu'utilisateur root.
yum -y install oracle-database-preinstall-23c
-
Pour exécuter une installation basée sur RPM, téléchargez le fichier
oracle-database-free-23c-1.0-1.el8.x86_64.rpm
.wget https://download.oracle.com/otn-pub/otn_software/db-free/oracle-database-free-23c-1.0-1.el8.x86_64.rpm
-
Installez Oracle Database en exécutant la commande suivante.
yum -y install oracle-database-free-23c-1.0-1.el8.x86_64.rpm
-
Configurer Oracle Database 23ai. Le script de configuration configure une base de données Conteneur (FREE) qui inclut une base de données pluggable
FREEPDB1
et prépare le processus d'écoute sur le port par défaut1521
. Exécutez le script de configuration de service./etc/init.d/oracle-free-23c configure
-
Définissez les variables d'environnement sur
bash_profile
avec les paramètres suivants.#Oracle Database environment variables export ORACLE_SID=FREE export ORACLE_HOME=/opt/oracle/product/23c/dbhomeFree export ORAENV_ASK=NO export PATH=$ORACLE_HOME/bin:$PATH
-
Exécutez la commande suivante pour que la base de données soit démarrée automatiquement au démarrage de l'instance.
systemctl enable oracle-free-23c
-
Vérifiez si le pare-feu Linux est activé. Pour le désactiver, utilisez les commandes suivantes.
systemctl status firewalld systemctl stop firewalld systemctl disable firewalld
Tâche 2 : activer le statut du pare-feu SQL dans la base de données cible via Oracle Data Safe
-
Dans le chemin de navigation en haut de la page, cliquez sur Bases de données Oracle, Data Safe, Centre de sécurité et Pare-feu SQL.
-
Par défaut, SQL Firewall est désactivé dans une nouvelle base de données 23ai cible. Cliquez sur la base de données et activez-la.
Tâche 3 : créer des exemples d'utilisateurs et d'objets
-
Connectez-vous à la base de données
FREEPDB1
avec Oracle SQL Developer par utilisateur sys en tant que sysdba. -
Créez les exemples d'utilisateurs et d'objets.
-- APP_OWNER who is the owner of the tables and views of the application -- APP_USER who needs to access to the application Create user app_owner identified by QAZxswedc123##; Grant connect, resource, unlimited tablespace to app_owner; Create user app_user identified by QAZxswedc123##; Grant connect, resource, select any table to app_user; -- Sample table created in appuser_test schema CREATE TABLE "APP_OWNER"."DEMO_EMPLOYEES" ( "USERID" NUMBER(4,0), "FIRSTNAME" VARCHAR2(25 BYTE), "LASTNAME" VARCHAR2(35 BYTE), "EMAIL" VARCHAR2(35 BYTE) ) ; Insert into APP_OWNER.DEMO_EMPLOYEES (USERID,FIRSTNAME,LASTNAME,EMAIL) values (73,'Craig','Hunt','Craig.Hunt@oracledemo.com'); Insert into APP_OWNER.DEMO_EMPLOYEES (USERID,FIRSTNAME,LASTNAME,EMAIL) values (74,'Fred','Stewart','Fred.Stewart@oracledemo.com'); Insert into APP_OWNER.DEMO_EMPLOYEES (USERID,FIRSTNAME,LASTNAME,EMAIL) values (75,'Julie','Reed','Julie.Reed@oracledemo.com'); Insert into APP_OWNER.DEMO_EMPLOYEES (USERID,FIRSTNAME,LASTNAME,EMAIL) values (76,'Ruby','James','Ruby.James@oracledemo.com'); Insert into APP_OWNER.DEMO_EMPLOYEES (USERID,FIRSTNAME,LASTNAME,EMAIL) values (77,'Alice','Harper','Alice.Harper@oracledemo.com'); Commit; Create view APP_OWNER.DEMO_EMPLOYEES_VIEW as select * from APP_OWNER.DEMO_EMPLOYEES;
Tâche 4 : créer et démarrer une collecte SQL
-
Dans le chemin de navigation en haut de la page, cliquez sur Data Safe, Centre de sécurité, Pare-feu SQL, Détails de configuration et cliquez sur Créer et démarrer une collecte SQL.
-
Entrez l'utilisateur de base de données en tant que
APP_USER
et activez le niveau de collecte SQL avecUser issued SQL commands
, puis cliquez sur Créer et démarrer une collecte SQL.La demande de travail CREATE SQL COLLECTION commencera à collecter les instructions SQL.
Tâche 5 : Exécuter l'instruction SQL autorisée
-
Connectez-vous à
APP_USER@FREEPDB1
avec Oracle SQL Developer. -
Exécutez l'instruction SQL autorisée.
select * from APP_OWNER.DEMO_EMPLOYEES_VIEW;
-
Nous pouvons visualiser les informations de collecte SQL à partir de la console Oracle Data Safe. Dans le chemin de navigation en haut de la page, cliquez sur Data Safe, Centre de sécurité, Pare-feu SQL, Détails de configuration, Détails de la collecte SQL et Informations clés de la collecte SQL.
Tâche 6 : arrêter la collecte SQL
-
Dans le chemin de navigation en haut de la page, cliquez sur Data Safe, Centre de sécurité, Pare-feu SQL, Détails de configuration, Détails de la collecte SQL et Arrêter.
Tâche 7 : générer la stratégie de pare-feu
-
Dans le chemin de navigation en haut de la page, cliquez sur Data Safe, Centre de sécurité, Pare-feu SQL, Détails de configuration, Détails de la collecte SQL et Générer une stratégie de pare-feu.
Nous pouvons visualiser les instructions SQL autorisées uniques et la stratégie présente l'état
INACTIVE
.
Tâche 8 : déployer et appliquer la stratégie
-
Dans le chemin de navigation en haut de la page, cliquez sur Data Safe, Centre de sécurité, Pare-feu SQL, Détails de configuration, Détails de collecte SQL, Détails de stratégie de pare-feu et Déployer et appliquer.
-
Sélectionnez les détails suivants et cliquez sur Déployer et appliquer.
- Portée de mise en application :
All
- Action sur les violations :
Block and log violations
- Audit pour les violations :
On
Nous pouvons visualiser le statut de la stratégie :
ACTIVE
. - Portée de mise en application :
Tâche 9 : tester Oracle SQL Firewall
-
Connectez-vous en tant qu'utilisateur
APP_USER@FREEPDB1
avec Oracle SQL Developer.select * from APP_OWNER.DEMO_EMPLOYEES_VIEW; select * from APP_OWNER.DEMO_EMPLOYEES;
-
Nous pouvons observer la violation d'Oracle SQL Firewall pour la deuxième requête qui ne figure pas dans la collection SQL.
Tâche 10 : vérifier le tableau de bord et les rapports de violation d'Oracle SQL Firewall
-
Nous pouvons voir le tableau de bord Oracle SQL Firewall pour la vue de parc des violations Oracle SQL Firewall et des collections SQL. Dans le chemin de navigation en haut de la page, cliquez sur Data Safe, Centre de sécurité, Pare-feu SQL, Détails de configuration, Détails de la collecte SQL et Générer une stratégie de pare-feu.
-
Nous pouvons voir le résumé des violations. Dans le chemin de navigation en haut de la page, cliquez sur Data Safe, Centre de sécurité, Pare-feu SQL, Rapports de violation et Toutes les violations.
Liens connexes
Remerciements
-
Auteur - Alex Kovuru
-
Contributeur - Indira Balasundaram
Ressources de formation supplémentaires
Parcourez d'autres ateliers sur docs.oracle.com/learn ou accédez à davantage de contenus de formation gratuits sur le canal Oracle Learning YouTube. De plus, rendez-vous sur education.oracle.com/learning-explorer pour devenir un explorateur Oracle Learning.
Pour obtenir de la documentation sur le produit, visitez Oracle Help Center.
Use Oracle SQL Firewall with Oracle Data Safe
F91607-02
May 2024