Observação:
- Este tutorial requer acesso ao Oracle Cloud. Para se inscrever em uma conta gratuita, consulte Conceitos Básicos do Oracle Cloud Infrastructure Free Tier.
- Ele usa valores de exemplo para credenciais, tenancy e compartimentos do Oracle Cloud Infrastructure. Ao concluir seu laboratório, substitua esses valores por valores específicos do seu ambiente de nuvem.
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.
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:
- Detecção Orientada por IA: Os modelos de machine learning identificam desvios do comportamento normal do usuário.
- Monitoramento em Tempo Real: os painéis do Oracle APEX fornecem insights contínuos de segurança.
- Mitigação Proativa de Riscos: A detecção precoce de anomalias fortalece a segurança do banco de dados e reduz os riscos potenciais.
Público-alvo
-
Administradores de banco de dados (DBAs) que gerenciam bancos de dados Oracle.
-
Administradores de segurança da OCI garantindo a conformidade de segurança do banco de dados.
-
Analistas de segurança que utilizam as ferramentas de segurança da Oracle para detecção de ameaças.
Objetivos
Implemente UBA com tecnologia de IA em um ambiente OCI integrando:
-
Oracle Database 23ai para processamento de dados.
-
Oracle Data Safe para auditoria de segurança e análise de log.
-
OML4SQL para detecção de anomalias orientada por IA.
-
Oracle APEX para visualização em tempo real.
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
-
Acesso a uma instância do Oracle Database 23ai com o Data Warehouse como um Tipo de Carga de Trabalho.
-
O Oracle Data Safe foi configurado e registrado nos bancos de dados de destino.
-
Conhecimento básico de SQL, Machine Learning (ML) e Oracle APEX.
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.
-
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.
-
Aplique filtros para capturar eventos de Logon e Log-off.
-
Gere o relatório e faça download dele no formato
.xls
. Por exemplo,Datasafe_LOGIN_DatasetJan2024-Feb2025_V2.xls
. -
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.
-
Vá para a Console do OCI, navegue até Oracle Databases e clique em Autonomous Database.
-
Clique em Database Actions e Usuários de Banco de Dados.
-
Crie um usuário chamado
OML_USER
com OML e Acesso à Web.
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.
-
Efetue log-in como
OML_USER
usando o link de acesso à Web. -
Navegue até Data Studio e clique em Carregamento de Dados.
-
Remova a seção de comentários do arquivo CSV e certifique-se de que ela comece com cabeçalhos de coluna.
-
Clique em Carregar Dados, selecione o arquivo CSV e configure o nome da tabela.
-
Clique em Iniciar e Executar para carregar os dados.
-
Verifique o status do carregamento de dados e corrija as linhas rejeitadas.
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.
-
Navegue até Development e clique em SQL como
OML_USER
. -
Crie uma tabela temporária (
datasafe_audit_logs
) e processe os dados usando um procedimento SQL.- Insira registros de
DATASAFE_LOGIN_RAW_DATASET
emdatasafe_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;
- Insira registros de
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.
-
Navegue até Desenvolvimento e clique em Oracle Machine Learning.
-
Faça log-in como
OML_USER
e crie um novo notebook.
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.
-
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.
-
Adicione o título do parágrafo.
-
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;
-
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;
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.
-
Mova o cursor para a parte inferior do parágrafo para selecionar o script para OML4SQL.
-
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;
-
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;
-
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_%';
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.
-
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;
-
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;
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.
-
Inicie o Oracle APEX na Console do OCI.
-
Faça log-in como
OML_USER
e crie um novo aplicativo. -
Crie um painel com quatro gráficos.
-
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;
-
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;
-
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;
-
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;
-
-
Execute a página e compartilhe o URL do painel com sua equipe.
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,
- Dados de log-in e log-off processados para analisar durações de sessão.
- Criou um modelo de detecção de anomalias usando OML4SQL.
- 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.
Links Relacionados
-
Conceitos Básicos do Notebooks Classic para Análise de Dados e Visualização de Dados
-
Anúncio dos Novos Recursos do Oracle Machine Learning no Oracle Database 23ai
Confirmações
-
Autor - Alex Kovuru (Arquiteto de Nuvem Principal)
-
Colaborador - Indiradarshni Balasundaram (Engenheiro Sênior de Nuvem)
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.
Implement AI-Powered User Behavior Analytics with Oracle Database 23ai, Oracle Data Safe and Oracle APEX
G28822-01
Copyright ©2025, Oracle and/or its affiliates.