Remarques :

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.

Architecture d'Oracle Data Safe

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.

Prérequis

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

  1. 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.

    Base de données

  2. 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>
    
  3. 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
    
  4. Activez le référentiel Oracle Linux 8 Developer.

    yum config-manager --set-enabled ol8_developer
    
  5. Téléchargez Oracle Database 23ai Free RPM et installez-le en tant qu'utilisateur root.

    yum -y install oracle-database-preinstall-23c
    
  6. 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
    
  7. Installez Oracle Database en exécutant la commande suivante.

    yum -y install oracle-database-free-23c-1.0-1.el8.x86_64.rpm
    
  8. 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éfaut 1521. Exécutez le script de configuration de service.

    /etc/init.d/oracle-free-23c configure
    
  9. 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
    
  10. 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
    
  11. 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

  1. 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.

    Naviguer dans Oracle Data Safe

  2. 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.

    Activer Oracle SQL Firewall

Tâche 3 : créer des exemples d'utilisateurs et d'objets

  1. Connectez-vous à la base de données FREEPDB1 avec Oracle SQL Developer par utilisateur sys en tant que sysdba.

    Connexion à la base de données

  2. 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;
    

    Créer des utilisateurs et des objets

Tâche 4 : créer et démarrer une collecte SQL

  1. 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.

    Démarrer la collecte SQL

  2. Entrez l'utilisateur de base de données en tant que APP_USER et activez le niveau de collecte SQL avec User issued SQL commands, puis cliquez sur Créer et démarrer une collecte SQL.

    Choisir un utilisateur de base de données

    La demande de travail CREATE SQL COLLECTION commencera à collecter les instructions SQL.

    Demande de travail

Tâche 5 : Exécuter l'instruction SQL autorisée

  1. Connectez-vous à APP_USER@FREEPDB1 avec Oracle SQL Developer.

    Connexion à la base de données

  2. Exécutez l'instruction SQL autorisée.

    select * from APP_OWNER.DEMO_EMPLOYEES_VIEW;
    

    Exécuter des instructions SQL

  3. 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.

    Visualiser les informations clés

Tâche 6 : arrêter la collecte SQL

  1. 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.

    Arrêter la collecte SQL

Tâche 7 : générer la stratégie de pare-feu

  1. 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.

    Générer la stratégie de pare-feu

    Nous pouvons visualiser les instructions SQL autorisées uniques et la stratégie présente l'état INACTIVE.

    Stratégie inactive

Tâche 8 : déployer et appliquer la stratégie

  1. 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.

    Imposer une stratégie

  2. 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

    Sélectionner une stratégie d'application

    Nous pouvons visualiser le statut de la stratégie : ACTIVE.

    Stratégie active

Tâche 9 : tester Oracle SQL Firewall

  1. 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;
    

    Connecter la base de données

  2. Nous pouvons observer la violation d'Oracle SQL Firewall pour la deuxième requête qui ne figure pas dans la collection SQL.

    Valider la requête

Tâche 10 : vérifier le tableau de bord et les rapports de violation d'Oracle SQL Firewall

  1. 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.

    Vérifier le rapport

  2. 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.

    Vérifier le récapitulatif

Remerciements

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.