Observação:

Implemente Análise Avançada do Comportamento do Usuário com IA com o Oracle Database 23ai, o Oracle Data Safe e o Oracle APEX

Introdução

À medida que os ambientes de banco de dados se tornam mais complexos, é crucial proteger dados confidenciais e detectar o comportamento anômalo do usuário. Este projeto aproveita os logs do Oracle Data Safe, o Oracle Machine Learning for SQL (OML4SQL) e o Oracle Database 23ai para aprimorar o UBA (User Behavior Analytics), identificando padrões de acesso incomuns e possíveis ameaças à segurança.

Este tutorial passo a passo demonstra como implementar a detecção de anomalias com tecnologia de IA usando o Oracle Machine Learning (OML) e o Oracle APEX, permitindo o monitoramento de segurança em tempo real. Projetada para Administradores de Segurança de Banco de Dados, Administradores AutoML, Administradores de IA/ML e Desenvolvedores de APEX, essa solução fortalece a segurança do banco de dados integrando os recursos de IA/ML da Oracle para detecção proativa de ameaças.

Em sua essência, o projeto utiliza One Class Support Vector Machines (SVMs), um algoritmo de aprendizado de máquina não supervisionado que aprende o comportamento normal do usuário e sinaliza desvios como anomalias. Ao analisar recursos como o total de logins e a duração média da sessão, o modelo identifica atividades irregulares, ajudando a detectar possíveis ameaças de segurança e tentativas de acesso não autorizado.

Atualização do IMDS da Instância

Caso de Uso: Detecção de Anomalias de Usuários do Banco de Dados.

Esse caso de uso se concentra na detecção de atividades anômalas de log-in e log-out do usuário em um ambiente de banco de dados Oracle, analisando eventos de log-on e log-off. O sistema identifica padrões suspeitos, como durações de sessão incomuns ou frequências de log-in irregulares, e visualiza insights por meio de um painel do Oracle APEX, permitindo que os administradores protejam proativamente o banco de dados.

Ao aproveitar a IA e a análise de segurança, essa abordagem sinaliza padrões anormais de logon e logoff, ajudando a mitigar possíveis ameaças à segurança.

Principais Destaques:

Público-alvo

Objetivos

Implemente UBA com tecnologia de IA em um ambiente OCI integrando:

O principal objetivo é identificar o comportamento anômalo do usuário analisando os conjuntos de dados de eventos de log-on do Oracle Data Safe, permitindo a detecção proativa de ameaças e a segurança aprimorada do banco de dados.

Pré-requisitos

Tarefa 1: Fazer Download do Conjunto de Dados do Evento de Log-on e Logoff no Oracle Data Safe

Gere e faça download de um relatório filtrado de eventos de Log-on e Logoff do Oracle Data Safe e, em seguida, converta-o em CSV para importação do banco de dados.

  1. Faça log-in na Console do OCI, navegue até Bancos de Dados Oracle, Data Safe, Auditoria de Atividades, Relatórios de Auditoria e clique em Todas as Atividades.

  2. Aplique filtros para capturar eventos de Logon e Log-off.

    Navegar até Compartimentos

  3. Gere o relatório e faça download dele no formato .xls. Por exemplo, Datasafe_LOGIN_DatasetJan2024-Feb2025_V2.xls.

  4. Renomeie o arquivo para o formato .csv para carregamento no Oracle Autonomous Database. Por exemplo, Datasafe_LOGIN_DatasetJan2024-Feb2025_V2.csv.

Tarefa 2: Criar um Usuário no Autonomous Database do Oracle Database 23ai

Crie um usuário chamado OML_USER com acesso OML e Web necessários no Oracle Database 23ai.

  1. Vá para a Console do OCI, navegue até Oracle Databases e clique em Autonomous Database.

  2. Clique em Database Actions e Usuários de Banco de Dados.

    Selecionar Create Compartment

  3. Crie um usuário chamado OML_USER com OML e Acesso à Web.

    Selecionar Create Compartment

    Selecionar Create Compartment

Tarefa 3: Carregar Conjunto de Dados no Autonomous Database do Oracle Database 23ai

Use a Carga de Dados para fazer upload do conjunto de dados CSV, verificar a integridade dos dados e garantir o carregamento adequado.

  1. Efetue log-in como OML_USER usando o link de acesso à Web.

    Selecione Create Identity Domain

  2. Navegue até Data Studio e clique em Carregamento de Dados.

    Selecione Create Identity Domain

  3. Remova a seção de comentários do arquivo CSV e certifique-se de que ela comece com cabeçalhos de coluna.

    Selecione Create Identity Domain

  4. Clique em Carregar Dados, selecione o arquivo CSV e configure o nome da tabela.

    Selecione Create Identity Domain

    Selecione Create Identity Domain

    Selecione Create Identity Domain

    Selecione Create Identity Domain

  5. Clique em Iniciar e Executar para carregar os dados.

    Selecione Create Identity Domain

  6. Verifique o status do carregamento de dados e corrija as linhas rejeitadas.

    Selecione Create Identity Domain

Tarefa 4: Validar e Limpar os Dados

Processe o conjunto de dados usando procedimentos SQL para remover inconsistências e preparar dados para análise.

  1. Navegue até Development e clique em SQL como OML_USER.

    Selecione Create Identity Domain

  2. Crie uma tabela temporária (datasafe_audit_logs) e processe os dados usando um procedimento SQL.

    • Insira registros de DATASAFE_LOGIN_RAW_DATASET em datasafe_audit_logs.
    • Excluir registros LOGOFF que não têm registros LOGON correspondentes.
    • Excluir registros de LOGON se nenhum evento de LOGOFF existir com um timestamp posterior.
    CREATE TABLE datasafe_audit_logs (
        target VARCHAR2(100),
        db_user VARCHAR2(100),
        client_host VARCHAR2(100),
        event VARCHAR2(50),
        object VARCHAR2(100),
        operation_status VARCHAR2(50),
        operation_time TIMESTAMP
    );
    

    Execute o procedimento para limpar o conjunto de dados.

     CREATE OR REPLACE PROCEDURE process_datasafe_audit_logs AS
    BEGIN
        -- Step 1: Insert data from raw dataset to audit logs
        INSERT INTO datasafe_audit_logs (
            TARGET,
            DB_USER,
            CLIENT_HOST,
            EVENT,
            OBJECT,
            OPERATION_STATUS,
            OPERATION_TIME
        )
        SELECT
            TARGET,
            DB_USER,
            CLIENT_HOST,
            EVENT,
            OBJECT,
            OPERATION_STATUS,
            CAST(OPERATION_TIME AS TIMESTAMP(6)) -- Convert DATE to TIMESTAMP(6)
        FROM DATASAFE_LOGIN_RAW_DATASET
        WHERE OPERATION_STATUS = 'SUCCESS';
    
        -- Commit the insertion
        COMMIT;
    
        -- Step 2: Delete LOGOFF events that do not have a corresponding LOGON event
        DELETE FROM datasafe_audit_logs a
        WHERE a.EVENT = 'LOGOFF'
        AND NOT EXISTS (
            SELECT 1
            FROM datasafe_audit_logs b
            WHERE a.TARGET = b.TARGET
            AND a.DB_USER = b.DB_USER
            AND a.CLIENT_HOST = b.CLIENT_HOST
            AND b.EVENT = 'LOGON'
        );
    
        -- Step 3: Delete LOGON events that do not have a corresponding LOGOFF event
        -- with an OPERATION_TIME that is greater than or equal to the LOGON event.
        DELETE FROM datasafe_audit_logs a
        WHERE a.EVENT = 'LOGON'
        AND NOT EXISTS (
            SELECT 1
            FROM datasafe_audit_logs b
            WHERE a.TARGET = b.TARGET
            AND a.DB_USER = b.DB_USER
            AND a.CLIENT_HOST = b.CLIENT_HOST
            AND b.EVENT = 'LOGOFF'
            AND b.OPERATION_TIME >= a.OPERATION_TIME  -- Ensure LOGOFF happened after or at the same time
        );
    
        -- Commit the deletions
        COMMIT;
    END process_datasafe_audit_logs;
    /
    
    EXEC process_datasafe_audit_logs;
    

    Selecione Create Identity Domain

Tarefa 5: Criar um Notebook do Oracle Machine Learning

Configure um notebook OML em OML_USER para executar a detecção de anomalias e a análise do comportamento do usuário.

  1. Navegue até Desenvolvimento e clique em Oracle Machine Learning.

    Selecione Create Identity Domain

  2. Faça log-in como OML_USER e crie um novo notebook.

    Selecione Create Identity Domain

    Selecione Create Identity Domain

    Selecione Create Identity Domain

Tarefa 6: Analisar Anomalias do Usuário do Banco de Dados com OML4SQL

Analise anomalias do usuário do banco de dados calculando durações de sessão e detectando padrões incomuns usando SQL e OML4SQL.

  1. Mova o cursor para a parte inferior do parágrafo para selecionar SQL para OML4SQL e outros componentes como OML4Py, OML4R e assim por diante. Neste tutorial, usaremos OML4SQL.

    Selecione Create Identity Domain

  2. Adicione o título do parágrafo.

    Selecione Create Identity Domain

  3. Crie uma view (user_session_data) para capturar dados da sessão.

    CREATE OR REPLACE VIEW user_session_data AS
    WITH session_data AS (
        SELECT
            target,
            db_user,
            client_host,
            operation_time AS logon_time,
            LEAD(operation_time) OVER (
                PARTITION BY target, db_user, client_host
                ORDER BY operation_time
            ) AS logoff_time
        FROM datasafe_audit_logs
        WHERE event = 'LOGON'
    )
    SELECT * FROM session_data WHERE logoff_time IS NOT NULL;
    

    Selecione Create Identity Domain

  4. Calcule as durações da sessão e crie uma exibição de resumo (user_activity_summary). Adicione mais um parágrafo SQL, coloque a consulta e clique no ícone de execução.

    CREATE OR REPLACE VIEW user_activity_summary AS
    SELECT
        target,
        db_user,
        client_host,
        COUNT(*) AS total_logins,
        ROUND(
            AVG(
                EXTRACT(DAY FROM (logoff_time - logon_time)) * 24 * 60 +
                EXTRACT(HOUR FROM (logoff_time - logon_time)) * 60 +
                EXTRACT(MINUTE FROM (logoff_time - logon_time)) +
                EXTRACT(SECOND FROM (logoff_time - logon_time)) / 60
            ), 2
        ) AS avg_session_duration_minutes
    FROM user_session_data
    GROUP BY target, db_user, client_host;
    

    Selecione Create Identity Domain

Tarefa 7: Criar um Modelo de Detecção de Anomalias

Use o SVM de Uma Classe em OML4SQL para criar um modelo de detecção de anomalias baseado em IA por banco de dados de destino.

  1. Mova o cursor para a parte inferior do parágrafo para selecionar o script para OML4SQL.

    Selecione Create Identity Domain

  2. Crie uma tabela de definições (anomaly_model_settings) para SVM de Uma Classe.

    %script
    CREATE TABLE anomaly_model_settings (
    setting_name  VARCHAR2(30),
    setting_value VARCHAR2(4000)
    );
    
    -- Insert settings for One-Class SVM
    BEGIN
       INSERT INTO anomaly_model_settings (setting_name, setting_value) VALUES ('ALGO_NAME', 'ALGO_SUPPORT_VECTOR_MACHINES');
       INSERT INTO anomaly_model_settings (setting_name, setting_value) VALUES ('SVMS_OUTLIER_RATE', '0.05');  -- 5% of data as anomalies
       COMMIT;
    END;
    

    Selecione Create Identity Domain

  3. Crie um modelo de detecção de anomalias para cada banco de dados de destino usando DBMS_DATA_MINING.CREATE_MODEL.

    %script
    DECLARE
        CURSOR target_cursor IS
            SELECT DISTINCT target
            FROM user_activity_summary;
    BEGIN
        FOR target_rec IN target_cursor LOOP
            DBMS_DATA_MINING.CREATE_MODEL(
                model_name          => 'ANOMALY_DETECTION_MODEL_' || REPLACE(target_rec.target, ' ', '_'),
                mining_function     => dbms_data_mining.classification,
                data_table_name     => 'USER_ACTIVITY_SUMMARY',
                case_id_column_name => 'DB_USER',
                target_column_name  => NULL,  -- No target column for anomaly detection
                settings_table_name => 'ANOMALY_MODEL_SETTINGS'
            );
        END LOOP;
    END;
    

    Selecione Create Identity Domain

  4. Verifique a criação do modelo.

    %sql
    SELECT model_name, mining_function, algorithm, creation_date FROM user_mining_models where model_name like 'ANOMALY_DETECTION_MODEL_%';
    

    Selecione Create Identity Domain

Tarefa 8: Aplicar o Modelo para Detectar Anomalias

Execute previsões de anomalias para classificar atividades de usuários suspeitas e armazenar resultados em uma tabela estruturada.

  1. Crie tabelas para armazenar usuários anômalos para cada banco de dados de destino. Mova o cursor para a parte inferior do parágrafo para selecionar o script para OML4SQL.

    .%script
    DECLARE
       CURSOR target_cursor IS
           SELECT DISTINCT target
           FROM user_activity_summary;
    BEGIN
       FOR target_rec IN target_cursor LOOP
           EXECUTE IMMEDIATE '
               CREATE TABLE anomalous_users_' || REPLACE(target_rec.target, ' ', '_') || ' AS
               SELECT
                   target,
                   db_user,
                   client_host,
                   total_logins,
                   avg_session_duration_minutes
               FROM (
                   SELECT
                       target,
                       db_user,
                       client_host,
                       total_logins,
                       avg_session_duration_minutes,
                       PREDICTION(ANOMALY_DETECTION_MODEL_' || REPLACE(target_rec.target, ' ', '_') || ' USING *) AS prediction
                   FROM user_activity_summary
                   WHERE target = ''' || target_rec.target || '''
               )
               WHERE prediction = 0';  -- Filter for anomalous users
       END LOOP;
    END;
    

    Selecione Create Identity Domain

  2. Revise os dados anômalos do usuário.

    %sql
    SELECT * FROM ANOMALOUS_USERS_ADBIDCS3
    UNION ALL
    SELECT * FROM ANOMALOUS_USERS_DBAAS23PDB
    UNION ALL
    SELECT * FROM ANOMALOUS_USERS_DBAAS23PDB2;
    

    Selecione Create Identity Domain

Tarefa 9: Visualizar Anomalias no Oracle APEX

Desenvolva um painel interativo com gráficos para monitorar e analisar atividades anômalas do banco de dados em tempo real.

  1. Inicie o Oracle APEX na Console do OCI.

    Selecione Create Identity Domain

    Selecione Create Identity Domain

  2. Faça log-in como OML_USER e crie um novo aplicativo.

    Selecione Create Identity Domain

    Selecione Create Identity Domain

  3. Crie um painel com quatro gráficos.

    Selecione Create Identity Domain

    Selecione Create Identity Domain

    • Gráfico 1: Tabela de Usuários Suspeitos (Relatório Clássico).

      SQL : %sql
      SELECT * FROM (
          SELECT * FROM ANOMALOUS_USERS_ADBIDCS3
          UNION ALL
          SELECT * FROM ANOMALOUS_USERS_DBAAS23PDB
          UNION ALL
          SELECT * FROM ANOMALOUS_USERS_DBAAS23PDB2
      )
      ORDER BY avg_session_duration_minutes DESC;
      

      Selecione Create Identity Domain

    • Gráfico 2: Usuários Anômalos por Banco de Dados (Gráfico de Pizza).

      SQL : %sql
      SELECT TARGET, COUNT(DB_USER) AS anomaly_count
      FROM (
          SELECT * FROM ANOMALOUS_USERS_ADBIDCS3
          UNION ALL
          SELECT * FROM ANOMALOUS_USERS_DBAAS23PDB
          UNION ALL
          SELECT * FROM ANOMALOUS_USERS_DBAAS23PDB2
      )
      GROUP BY TARGET;
      

      Selecione Create Identity Domain

      Selecione Create Identity Domain

    • Gráfico 3: Tendências de Duração da Sessão (Gráfico de Linhas).

      SELECT
      DB_USER,
      (AVG(AVG_SESSION_DURATION_MINUTES) / 60) AS session_duration_hours,
      TARGET
      FROM (
      SELECT * FROM ANOMALOUS_USERS_ADBIDCS3
      UNION ALL
      SELECT * FROM ANOMALOUS_USERS_DBAAS23PDB
      UNION ALL
      SELECT * FROM ANOMALOUS_USERS_DBAAS23PDB2
      )
      GROUP BY DB_USER, TARGET;
      

      Selecione Create Identity Domain

      Selecione Create Identity Domain

    • Gráfico 4: Principais Usuários com Mais Anomalias (Gráfico de Barras).

      SQL : %sql
      SELECT
          DB_USER AS x_value,  -- Ensure DB_USER is used as the category (X-Axis)
          COUNT(*) AS y_value,  -- Anomaly count or other metric
          TARGET
      FROM (
          SELECT * FROM ANOMALOUS_USERS_ADBIDCS3
          UNION ALL
          SELECT * FROM ANOMALOUS_USERS_DBAAS23PDB
          UNION ALL
          SELECT * FROM ANOMALOUS_USERS_DBAAS23PDB2
      )
      GROUP BY DB_USER, TARGET
      ORDER BY y_value DESC;
      

      Selecione Create Identity Domain

      Selecione Create Identity Domain

  4. Execute a página e compartilhe o URL do painel com sua equipe.

    Selecione Create Identity Domain

    Selecione Create Identity Domain

Próximas Etapas

Este tutorial mostrou uma abordagem orientada por IA para segurança de banco de dados usando o Oracle Database 23ai, o Oracle Data Safe e o Oracle APEX. Aqui nós,

  1. Dados de log-in e log-off processados para analisar durações de sessão.
  2. Criou um modelo de detecção de anomalias usando OML4SQL.
  3. Visualizou resultados em um painel do Oracle APEX para monitoramento em tempo real.

Ao integrar machine learning e painéis interativos, as equipes de segurança podem detectar e mitigar atividades suspeitas de forma proativa. Essa solução escalável se estende à detecção de fraudes, segurança de rede e muito mais, aproveitando os recursos integrados de IA/ML da Oracle para implementação perfeita.

Confirmações

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.