Observação:

Usar o Oracle SQL Firewall com o Oracle Data Safe

Introdução

O Oracle SQL Firewall fornece proteção em tempo real contra ataques comuns ao banco de dados, restringindo o acesso ao banco de dados apenas a instruções ou conexões SQL autorizadas para um usuário designado.

A console unificada do Oracle Data Safe foi estendida para gerenciar e monitorar o Oracle SQL Firewall para bancos de dados Oracle Database 23ai. Os administradores podem usar o Oracle Data Safe para coletar atividades SQL de contas de banco de dados, monitorar o andamento da coleta, criar políticas do SQL Firewall com regras de lista de permissões (contextos permitidos e instruções SQL permitidas) das atividades SQL coletadas e ativar políticas do SQL Firewall.

Arquitetura do Oracle Data Safe

Quando uma política de firewall é ativada, o Oracle Data Safe coleta automaticamente os logs de violação de firewall do banco de dados e os armazena no Oracle Data Safe. Esses logs ficam disponíveis para análise e geração de relatórios on-line em toda a frota de bancos de dados.

Público-alvo

Administradores de Banco de Dados e Administradores de Segurança do OCI (Oracle Cloud Infrastructure).

Objetivo

Entenda como usar o Oracle SQL Firewall com o Oracle Data Safe com um caso de uso simples.

Caso de uso: Autorize a instrução SQL "Selecionar na Exibição" e bloqueie qualquer outra SQL para o usuário designado APP_USER.

Pré-requisitos

Observação: Ignore a Tarefa 1, se você já tiver a instância do Oracle Database 23ai.

Tarefa 1: Criar Instância de Computação do Oracle Database 23ai

  1. Vá para a Console do OCI, navegue até Compute, Instâncias e clique em Criar Instância. Informe os detalhes a seguir para criar uma instância.

    Banco de Dados

  2. Crie o banco de dados do Oracle Database 23ai. Conecte-se à sua instância de computação usando o comando a seguir.

    ssh -i <private-ssh-key> opc@<publicip-computeinstance>
    
  3. Alterne para o usuário root e atualize o sistema com o software mais recente ao trabalhar em uma VM.

    sudo su
    yum update
    
  4. Ative o repositório do Desenvolvedor do Oracle Linux 8.

    yum config-manager --set-enabled ol8_developer
    
  5. Faça download do Oracle Database 23ai Free RPM e instale-o como raiz.

    yum -y install oracle-database-preinstall-23c
    
  6. Para executar uma instalação baseada em RPM, faça download do arquivo 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 o Oracle Database executando o comando a seguir.

    yum -y install oracle-database-free-23c-1.0-1.el8.x86_64.rpm
    
  8. Configure o Oracle Database 23ai. O script de configuração configura um banco de dados contêiner (FREE) que inclui um banco de dados plugável FREEPDB1 e prepara o listener na porta padrão 1521. Execute o script de configuração do serviço.

    /etc/init.d/oracle-free-23c configure
    
  9. Defina as variáveis de ambiente como bash_profile com as definições a seguir.

    #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. Execute o comando a seguir para que o banco de dados seja iniciado automaticamente quando a instância for inicializada.

    systemctl enable oracle-free-23c
    
  11. Verifique se o firewall Linux está ativado. Use os comandos a seguir para desativá-lo.

    systemctl status firewalld
    systemctl stop firewalld
    systemctl disable firewalld
    

Tarefa 2: Ativar Status do SQL Firewall no Banco de Dados de Destino por meio do Oracle Data Safe

  1. Na trilha de navegação na parte superior da página, clique em Oracle Databases, Data Safe, Centro de segurança e SQL Firewall.

    Navegar no Oracle Data Safe

  2. Por padrão, o Firewall SQL será desativado em um novo banco de dados 23ai de destino. Clique no banco de dados e ative-o.

    Ativar Oracle SQL Firewall

Tarefa 3: Criar Usuários e Objetos de Amostra

  1. Conecte-se ao banco de dados FREEPDB1 com o Oracle SQL Developer pelo usuário sys como sysdba.

    Conectar Banco de Dados

  2. Crie os usuários e objetos de amostra.

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

    Criar Usuários e Objetos

Tarefa 4: Criar e Iniciar a Coleta de SQL

  1. Na trilha de navegação na parte superior da página, clique em Data Safe, Centro de segurança, Firewall de SQL, Detalhes da configuração e clique em Criar e iniciar coleta de SQL.

    Iniciar Coleta de SQL

  2. Informe o Usuário do banco de dados como APP_USER, ative o nível de coleta de SQL com User issued SQL commands e clique em Criar e iniciar coleta de SQL.

    Escolha o usuário do Banco de Dados

    A solicitação de serviço CREATE SQL COLLECTION começará a coletar os SQLs.

    Solicitação de Serviço

Tarefa 5: Executar Instrução SQL Autorizada

  1. Conecte-se ao APP_USER@FREEPDB1 com o Oracle SQL Developer.

    Conectar-se ao Banco de Dados

  2. Execute a instrução SQL autorizada.

    select * from APP_OWNER.DEMO_EMPLOYEES_VIEW;
    

    Executar instruções SQL

  3. Podemos exibir os insights de coleta de SQL na console do Oracle Data Safe. Na trilha de navegação na parte superior da página, clique em Data Safe, Centro de segurança, SQL Firewall, Detalhes da configuração, Detalhes da coleta de SQL e Informações da coleta de SQL.

    Exibir Insights

Tarefa 6: Interromper a Coleta de SQL

  1. Na trilha de navegação na parte superior da página, clique em Data Safe, Centro de segurança, Firewall de SQL, Detalhes da configuração, Detalhes da coleta de SQL e STOP.

    Parar Coleta SQL

Tarefa 7: Gerar Política de Firewall

  1. Na trilha de navegação na parte superior da página, clique em Data Safe, Centro de segurança, SQL Firewall, Detalhes da configuração, Detalhes da coleta de SQL e Gerar Política de Firewall.

    Gerar Política de Firewall

    Podemos exibir as Instruções SQL permitidas exclusivas e a política está no estado INACTIVE.

    Política inativa

Tarefa 8: Implantar e Aplicar a Política

  1. Na trilha de navegação na parte superior da página, clique em Data Safe, Centro de segurança, SQL Firewall, Detalhes da configuração, Detalhes da coleta de SQL, Detalhes da Política de Firewall e Implantar e impor.

    Aplicar Política

  2. Selecione os detalhes a seguir e clique em Implantar e impor.

    • Escopo da imposição: All
    • Ação sobre violações: Block and log violations
    • Auditoria de violações: On

    Selecionar Aplicar Política

    Podemos exibir o status da política como ACTIVE.

    Política Ativa

Tarefa 9: Testar o Oracle SQL Firewall

  1. Conecte-se como APP_USER@FREEPDB1 com o Oracle SQL Developer.

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

    Conectar BD

  2. Podemos observar a violação do Oracle SQL Firewall no que diz respeito à segunda consulta, que não está na coleção SQL.

    Validar Consulta

Tarefa 10: Verificar o Painel de Controle e os Relatórios de Violação do Oracle SQL Firewall

  1. Podemos ver o Painel de Controle do Oracle SQL Firewall para a view da frota das violações do Oracle SQL Firewall e das coleções SQL. Na trilha de navegação na parte superior da página, clique em Data Safe, Centro de segurança, SQL Firewall, Detalhes da configuração, Detalhes da coleta de SQL e Gerar Política de Firewall.

    Verificar relatório

  2. Podemos ver o resumo das violações. Na trilha de navegação na parte superior da página, clique em Data Safe, Centro de segurança, Firewall SQL, Relatórios de violação e Todas as Violações.

    Verificar Resumo

Confirmação

Mais Recursos de Aprendizagem

Explore outros laboratórios em docs.oracle.com/learn ou acesse mais conteúdo de aprendizado gratuito no canal Oracle Learning YouTube. Além disso, visite education.oracle.com/learning-explorer para se tornar um Oracle Learning Explorer.

Para obter a documentação do produto, visite o Oracle Help Center.