Note:

Uso de Oracle SQL Firewall con Oracle Data Safe

Introducción

Oracle SQL Firewall protege en tiempo real de ataques comunes contra la base de datos restringiendo el acceso a la base de datos únicamente a conexiones o sentencias SQL autorizadas para un usuario designado.

La consola unificada de Oracle Data Safe se ha ampliado para gestionar y supervisar las bases de datos de Oracle SQL Firewall para Oracle Database 23ai. Los administradores pueden utilizar Oracle Data Safe para recopilar actividades SQL de cuentas de base de datos, supervisar el progreso de la recopilación, crear políticas de SQL Firewall con reglas de lista de permitidos (contextos permitidos y sentencias SQL permitidas) de las actividades SQL recopiladas y activar políticas de SQL Firewall.

Arquitectura de Oracle Data Safe

Cuando se activa una política de firewall, Oracle Data Safe recopila automáticamente los logs de violación de firewall de la base de datos y los almacena en Oracle Data Safe. Estos logs estarán disponibles para el análisis y la generación de informes en línea en todo el conjunto de bases de datos.

Público Objetivo

Administradores de bases de datos y administradores de seguridad de Oracle Cloud Infrastructure (OCI).

Objetivo

Descubra cómo utilizar Oracle SQL Firewall con Oracle Data Safe con un caso de uso sencillo.

Caso de uso: autorice la sentencia SQL "Select on View" y bloquee cualquier otro SQL para el usuario designado APP_USER.

Requisitos

Nota: Omita la tarea 1 si ya tiene una instancia de Oracle Database 23ai.

Tarea 1: Creación de una instancia informática de Oracle Database 23ai

  1. Vaya a la consola de OCI, vaya a Recursos informáticos, Instancias y, a continuación, haga clic en Crear instancia. Introduzca los siguientes detalles para crear una instancia.

    Base de datos

  2. Crear una base de datos de Oracle Database 23ai. Conéctese a su instancia informática con el siguiente comando.

    ssh -i <private-ssh-key> opc@<publicip-computeinstance>
    
  3. Cambie al usuario root y actualice el sistema con el software más reciente cuando trabaje en una máquina virtual.

    sudo su
    yum update
    
  4. Active el repositorio de Oracle Linux 8 Developer.

    yum config-manager --set-enabled ol8_developer
    
  5. Descargue Oracle Database 23ai Free RPM e instálelo como raíz.

    yum -y install oracle-database-preinstall-23c
    
  6. Para ejecutar una instalación basada en RPM, descargue el archivo 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. Instale Oracle Database ejecutando el siguiente comando.

    yum -y install oracle-database-free-23c-1.0-1.el8.x86_64.rpm
    
  8. Configurar Oracle Database 23ai. El script de configuración configura una base de datos de contenedores (FREE) que incluye una base de datos de conexión FREEPDB1 y prepara el listener en el puerto por defecto 1521. Ejecute la secuencia de comandos de configuración de servicio.

    /etc/init.d/oracle-free-23c configure
    
  9. Defina las variables de entorno en bash_profile con la siguiente configuración.

    #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. Ejecute el siguiente comando para que la base de datos se inicie automáticamente cuando se inicie la instancia.

    systemctl enable oracle-free-23c
    
  11. Compruebe si el firewall de Linux está activado. Use los siguientes comandos para desactivarlo.

    systemctl status firewalld
    systemctl stop firewalld
    systemctl disable firewalld
    

Tarea 2: Activación del estado del firewall SQL en la base de datos de destino a través de Oracle Data Safe

  1. En la ruta de navegación de la parte superior de la página, haga clic en Bases de datos Oracle, Data Safe, Centro de seguridad y SQL Firewall.

    Navegar por Oracle Data Safe

  2. Por defecto, SQL Firewall se desactivará en una nueva base de datos de destino de 23ai. Haga clic en la base de datos y actívela.

    Activar Oracle SQL Firewall

Tarea 3: Creación de usuarios y objetos de muestra

  1. Conéctese a la base de datos FREEPDB1 con Oracle SQL Developer por usuario sys como sysdba.

    Conectar a base de datos

  2. Cree los usuarios y objetos de ejemplo.

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

    Creación de usuarios y objetos

Tarea 4: Creación e Inicio de la Recopilación de SQL

  1. En la ruta de navegación de la parte superior de la página, haga clic en Data Safe, Centro de seguridad, SQL Firewall, Detalles de configuración y haga clic en Crear e iniciar recopilación SQL.

    Iniciar Recopilación de SQL

  2. Introduzca el usuario de base de datos como APP_USER y active el nivel de recopilación SQL con User issued SQL commands y haga clic en Crear e iniciar recopilación SQL.

    Seleccionar usuario de base de datos

    La solicitud de trabajo CREATE SQL COLLECTION comenzará a recopilar los SQL.

    Solicitud de trabajo

Tarea 5: Ejecutar Sentencia SQL Autorizada

  1. Conéctese a APP_USER@FREEPDB1 con Oracle SQL Developer.

    Conectar a base de datos

  2. Ejecute la sentencia SQL autorizada.

    select * from APP_OWNER.DEMO_EMPLOYEES_VIEW;
    

    Ejecutar sentencias SQL

  3. Podemos ver las estadísticas de recopilación de SQL desde la consola de Oracle Data Safe. En la ruta de navegación de la parte superior de la página, haga clic en Data Safe, Centro de seguridad, SQL Firewall, Detalles de configuración, Detalles de recopilación SQL e Información de recopilación SQL.

    Ver estadísticas

Tarea 6: Parada de la Recopilación SQL

  1. En la ruta de navegación de la parte superior de la página, haga clic en Data Safe, Security center, SQL Firewall, Configuration details, SQL collection details y STOP.

    Parar Recopilación SQL

Tarea 7: Generar política de firewall

  1. En la ruta de navegación de la parte superior de la página, haga clic en Data Safe, Centro de seguridad, SQL Firewall, Detalles de configuración, Detalles de recopilación SQL y Generar política de firewall.

    Generar política de firewall

    Podemos ver las sentencias SQL permitidas únicas y la política tiene el estado INACTIVE.

    Política inactiva

Tarea 8: Despliegue y Aplicación de la Política

  1. En la ruta de navegación de la parte superior de la página, haga clic en Data Safe, Centro de seguridad, SQL Firewall, Detalles de configuración, Detalles de recopilación SQL, Detalles de política de firewall y Desplegar y aplicar.

    Aplicar Política

  2. Seleccione los siguientes detalles y haga clic en Desplegar y aplicar.

    • Ámbito de aplicación: All
    • Acción sobre violaciones: Block and log violations
    • Auditoría de violaciones: On

    Seleccionar Aplicar Política

    Podemos ver que el estado de la política es ACTIVE.

    Política activa

Tarea 9: Prueba de Oracle SQL Firewall

  1. Conéctese como APP_USER@FREEPDB1 con Oracle SQL Developer.

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

    Conectar BD

  2. Podemos observar la violación de Oracle SQL Firewall para la segunda consulta que no está en la recopilación SQL.

    Validar consulta

Tarea 10: Verificación del Panel de Control de Oracle SQL Firewall y los Informes de Violación

  1. Podemos ver el panel de control de Oracle SQL Firewall para la vista de conjunto de violaciones y recopilaciones SQL de Oracle SQL Firewall. En la ruta de navegación de la parte superior de la página, haga clic en Data Safe, Centro de seguridad, SQL Firewall, Detalles de configuración, Detalles de recopilación SQL y Generar política de firewall.

    Verificar informe

  2. Podemos ver el resumen de violaciones. En la ruta de navegación de la parte superior de la página, haga clic en Data Safe, Centro de seguridad, SQL Firewall, Informes de violación y Todas las infracciones.

    Verificar resumen

Agradecimientos

Más recursos de aprendizaje

Explore otros laboratorios en docs.oracle.com/learn o acceda a más contenido de aprendizaje gratuito en el canal YouTube de Oracle Learning. Además, visite education.oracle.com/learning-explorer para convertirse en Oracle Learning Explorer.

Para obtener documentación sobre el producto, visite Oracle Help Center.