Note :

Utiliser Oracle SQL Firewall avec Oracle Data Safe

Présentation

Oracle SQL Firewall fournit une protection en temps réel contre les attaques les plus communes contre la base de données en restreignant l'accès de la base de données aux énoncés ou connexions SQL autorisés pour un utilisateur désigné.

La console unifiée d'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 politiques de pare-feu SQL avec des règles de liste d'autorisation (contextes autorisés et énoncés SQL autorisés) à partir des activités SQL collectées et activer des politiques de pare-feu SQL.

Architecture d'Oracle Data Safe

Lorsqu'une politique 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 la production de rapports en ligne dans l'ensemble de votre parc de bases de données

Public cible

Administrateurs de base de données et administrateurs de la sécurité d'Oracle Cloud Infrastructure (OCI).

Objectif

Découvrez comment utiliser Oracle SQL Firewall avec Oracle Data Safe dans un cas d'utilisation simple.

Cas d'utilisation : Autorisez l'énoncé SQL "Sélectionner dans la vue" et bloquez tout autre énoncé SQL pour l'utilisateur désigné APP_USER.

Préalables

Note : Ignorez la tâche 1, si vous avez déjà une instance Oracle Database 23ai.

Tâche 1 : Créer une instance de calcul Oracle Database 23ai

  1. Allez à la console OCI, naviguez jusqu'à Calcul, Instances, puis cliquez sur Créer une instance. Entrez les informations suivantes pour créer une instance.

    Base de données

  2. Créez une 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 racine et mettez à jour le système avec le dernier logiciel lorsque vous travaillez sur une machine virtuelle.

    sudo su
    yum update
    
  4. Activer 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 que racine.

    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. Configurez Oracle Database 23ai. Le script de configuration configure une base de données conteneur (FREE) qui inclut une base de données enfichable FREEPDB1 et prépare le module d'écoute au port par défaut 1521. Exécutez le script de configuration du service.

    /etc/init.d/oracle-free-23c configure
    
  9. Réglez les variables d'environnement à 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 démarre automatiquement lors du démarrage de l'instance.

    systemctl enable oracle-free-23c
    
  11. Vérifiez si le pare-feu Linux est activé. Utilisez les commandes suivantes pour le désactiver.

    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 au moyen d'Oracle Data Safe

  1. Dans le chemin de navigation en haut de la page, cliquez sur Bases de données Oracle, Sécurité des données, Centre de sécurité et Pare-feu SQL.

    Naviguer dans Oracle Data Safe

  2. Par défaut, le pare-feu SQL sera 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 l'utilisateur sys en tant qu'utilisateur sysdba.

    Connecter 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 la collecte SQL

  1. Dans le chemin de navigation en haut de la page, cliquez sur Sécurité des données, Centre de sécurité, Pare-feu SQL, Détails de la configuration et cliquez sur Créer et démarrer la collection SQL.

    Démarrer la collecte SQL

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

    Sélectionner un utilisateur de base de données

    La demande de travail CREATE SQL COLLECTION commencera à collecter les énoncés SQL.

    Demande de travail

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

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

    Se connecter à la base de données

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

    select * from APP_OWNER.DEMO_EMPLOYEES_VIEW;
    

    Exécuter des énoncés SQL

  3. Nous pouvons voir les synthèses de collecte SQL à partir de la console Oracle Data Safe. Dans le chemin de navigation en haut de la page, cliquez sur Sécurité des données, Centre de sécurité, Pare-feu SQL, Détails de la configuration, Détails de la collection SQL et Synthèses de la collection SQL.

    Voir les données clés

Tâche 6 : Arrêter la collection SQL

  1. Dans le chemin de navigation en haut de la page, cliquez sur Sécurité des données, Centre de sécurité, Pare-feu SQL, Détails de la configuration, Détails de la collection SQL et Arrêter.

    Arrêter la collection SQL

Tâche 7 : Générer la politique de pare-feu

  1. Dans le chemin de navigation en haut de la page, cliquez sur Sécurité des données, Centre de sécurité, Pare-feu SQL, Détails de la configuration, Détails de la collection SQL et Générer une politique de pare-feu.

    Générer la politique de pare-feu

    Nous pouvons voir les énoncés SQL autorisés uniques et la politique a l'état INACTIVE.

    Politique inactive

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

  1. Dans le chemin de navigation en haut de la page, cliquez sur Sécurité des données, Centre de sécurité, Pare-feu SQL, Détails de la configuration, Détails de la collection SQL, Détails de la politique de pare-feu et Déployer et appliquer.

    Appliquer la politique

  2. Sélectionnez les détails suivants et cliquez sur Déployer et appliquer.

    • Portée de l'application : All
    • Action contre les violations : Block and log violations
    • Vérification pour les violations : On

    Sélectionner l'application de la politique

    Nous pouvons voir le statut de la politique est ACTIVE.

    Politique active

Tâche 9 : Tester Oracle SQL Firewall

  1. Connectez-vous en tant que APP_USER@FREEPDB1 avec Oracle SQL Developer.

    select * from APP_OWNER.DEMO_EMPLOYEES_VIEW;
    select * from APP_OWNER.DEMO_EMPLOYEES;
    

    Connecter la BD

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

    Valider l'interrogation

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

  1. Le tableau de bord Oracle SQL Firewall présente la vue du parc des violations Oracle SQL Firewall et des collections SQL. Dans le chemin de navigation en haut de la page, cliquez sur Sécurité des données, Centre de sécurité, Pare-feu SQL, Détails de la configuration, Détails de la collection SQL et Générer une politique 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 Sécurité des données, Centre de sécurité, Pare-feu SQL, Rapports de violation et Toutes les violations.

    Vérifier le sommaire

Remerciements

Autres ressources d'apprentissage

Explorez d'autres laboratoires sur docs.oracle.com/learn ou accédez à plus de contenu d'apprentissage gratuit sur le canal YouTube d'Oracle Learning. De plus, visitez education.oracle.com/learning-explorer pour devenir un explorateur Oracle Learning.

Pour obtenir de la documentation sur le produit, visitez Oracle Help Center.