Nota
- Questa esercitazione richiede l'accesso a Oracle Cloud. Per iscriverti a un account gratuito, consulta Inizia a utilizzare Oracle Cloud Infrastructure Free Tier.
- Utilizza valori di esempio per le credenziali, la tenancy e i compartimenti di Oracle Cloud Infrastructure. Al termine del laboratorio, sostituisci questi valori con quelli specifici del tuo ambiente cloud.
Implementa l'analisi del comportamento degli utenti basata sull'AI con Oracle Database 23ai, Oracle Data Safe e Oracle APEX
Introduzione
Man mano che gli ambienti di database diventano più complessi, è fondamentale proteggere i dati sensibili e rilevare comportamenti anomali degli utenti. Questo progetto utilizza i log di Oracle Data Safe, Oracle Machine Learning for SQL (OML4SQL) e Oracle Database 23ai per migliorare l'analisi del comportamento degli utenti (UBA), identificando pattern di accesso insoliti e potenziali minacce alla sicurezza.
Questo tutorial dettagliato spiega come implementare il rilevamento delle anomalie basato sull'intelligenza artificiale utilizzando Oracle Machine Learning (OML) e Oracle APEX, consentendo il monitoraggio della sicurezza in tempo reale. Progettata per gli amministratori della sicurezza del database, gli amministratori AutoML, gli amministratori AI/ML e gli sviluppatori APEX, questa soluzione rafforza la sicurezza del database integrando le funzionalità AI/ML di Oracle per il rilevamento proattivo delle minacce.
Alla base del progetto, il progetto utilizza SVM (One Class Support Vector Machines), un algoritmo di machine learning non supervisionato che apprende il normale comportamento degli utenti e segnala le deviazioni come anomalie. Analizzando funzionalità come i login totali e la durata media delle sessioni, il modello identifica le attività irregolari, aiutando a rilevare potenziali minacce alla sicurezza e tentativi di accesso non autorizzati.
Caso d'uso: rilevamento anomalie utenti database.
Questo caso d'uso si concentra sul rilevamento di attività di login e logout degli utenti anomali in un ambiente di database Oracle analizzando gli eventi di logon e logoff. Il sistema identifica pattern sospetti come durate di sessione insolite o frequenze di login irregolari e visualizza insight tramite un dashboard di Oracle APEX, consentendo agli amministratori di proteggere il database in modo proattivo.
Sfruttando l'intelligenza artificiale e gli analytics di sicurezza, questo approccio contrassegna modelli anomali di accesso e logoff, aiutando a mitigare potenziali minacce alla sicurezza.
Informazioni chiave:
- Driven Detection basata sull'AI: i modelli di Machine Learning identificano le deviazioni rispetto al normale comportamento degli utenti.
- Monitoraggio in tempo reale: i dashboard di Oracle APEX forniscono insight sulla sicurezza continui.
- Miglioramento proattivo dei rischi: l'individuazione precoce delle anomalie rafforza la sicurezza del database e riduce i rischi potenziali.
Destinatari
-
Database Administrator (DBA) che gestiscono i database Oracle.
-
Gli amministratori della sicurezza OCI garantiscono la conformità alla sicurezza del database.
-
Analisti della sicurezza che utilizzano gli strumenti di sicurezza Oracle per il rilevamento delle minacce.
Obiettivi
Implementa un UBA basato sull'intelligenza artificiale in un ambiente OCI integrando:
-
Oracle Database 23ai per l'elaborazione dei dati.
-
Oracle Data Safe per l'audit della sicurezza e l'analisi dei log.
-
OML4SQL per il rilevamento delle anomalie basato sull'intelligenza artificiale.
-
Oracle APEX per la visualizzazione in tempo reale.
L'obiettivo principale è identificare il comportamento anomalo degli utenti analizzando i set di dati degli eventi di accesso a Oracle Data Safe, consentendo il rilevamento proattivo delle minacce e una maggiore sicurezza del database.
Prerequisiti
-
Accesso a Oracle Database 23ai con istanza Data Warehouse come Tipo di carico di lavoro.
-
Oracle Data Safe configurato e registrato con i database di destinazione.
-
Conoscenza di base di SQL, Machine Learning (ML) e Oracle APEX.
Task 1: scaricare il data set dell'evento di collegamento e disconnessione da Oracle Data Safe
Generare e scaricare un report filtrato degli eventi di collegamento e logoff da Oracle Data Safe, quindi convertirlo in CSV per l'importazione del database.
-
Eseguire il login a OCI Console, passare a Database Oracle, Data Safe, Audit attività, Report di audit e fare clic su Tutta l'attività.
-
Applicare i filtri per acquisire gli eventi di collegamento e logoff.
-
Generare il report e scaricarlo in formato
.xls
. Ad esempio,Datasafe_LOGIN_DatasetJan2024-Feb2025_V2.xls
. -
Rinominare il file in formato
.csv
per il caricamento in Oracle Autonomous Database. Ad esempio,Datasafe_LOGIN_DatasetJan2024-Feb2025_V2.csv
.
Task 2: Creare un utente in Oracle Database 23ai Autonomous Database
Crea un utente denominato OML_USER
con OML e accesso Web necessari in Oracle Database 23ai.
-
Andare alla console OCI, andare a Database Oracle e fare clic su Autonomous Database.
-
Fare clic su Azioni database e su Utenti database.
-
Creare un utente denominato
OML_USER
con OML e Web Access.
Task 3: Carica il data set in Autonomous Database Oracle Database 23ai
Utilizzare Caricamento dati per caricare il data set CSV, verificare l'integrità dei dati e garantire il caricamento corretto.
-
Eseguire il login come
OML_USER
utilizzando il collegamento di accesso Web. -
Passare a Data Studio e fare clic su Caricamento dati.
-
Rimuovere la sezione dei commenti dal file CSV e assicurarsi che inizi con le intestazioni di colonna.
-
Fare clic su Carica dati, selezionare il file CSV e configurare il nome della tabella.
-
Fare clic su Avvia ed esegui per caricare i dati.
-
Verificare lo stato di caricamento dati e correggere eventuali righe rifiutate.
Task 4: Convalida e cancella i dati
Elaborare il data set utilizzando le procedure SQL per rimuovere le incoerenze e preparare i dati per l'analisi.
-
Passare a Sviluppo e fare clic su SQL come
OML_USER
. -
Creare una tabella intermedia (
datasafe_audit_logs
) ed elaborare i dati utilizzando una procedura SQL.- Inserisci record da
DATASAFE_LOGIN_RAW_DATASET
indatasafe_audit_logs
. - Elimina i record LOGOFF privi di record LOGON corrispondenti.
- Elimina i record LOGON se non esiste alcun evento LOGOFF con un indicatore orario successivo.
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 );
Eseguire la procedura per pulire il set di dati.
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;
- Inserisci record da
Task 5: Creare un notebook Oracle Machine Learning
Impostare un notebook OML in OML_USER
per eseguire il rilevamento delle anomalie e l'analisi del comportamento degli utenti.
-
Passare a Sviluppo e fare clic su Oracle Machine Learning.
-
Eseguire il login come
OML_USER
e creare un nuovo notebook.
Task 6: analizzare le anomalie degli utenti del database con OML4SQL
Analizzare le anomalie degli utenti del database calcolando le durate delle sessioni e rilevando pattern insoliti utilizzando SQL e OML4SQL.
-
Spostare il cursore nella parte inferiore del paragrafo per selezionare SQL per OML4SQL e altri componenti quali OML4Py, OML4R e così via. In questo tutorial, utilizzeremo OML4SQL.
-
Aggiungere il titolo del paragrafo.
-
Creare una vista (
user_session_data
) per acquisire i dati della sessione.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;
-
Calcolare le durate delle sessioni e creare una vista di riepilogo (
user_activity_summary
). Aggiungere un altro paragrafo SQL e inserire la query, quindi fare clic sull'icona Esegui.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;
Task 7: Creare un modello di rilevamento delle anomalie
Utilizzare SVM di una classe in OML4SQL per creare un modello di rilevamento delle anomalie basato sull'intelligenza artificiale per ogni database di destinazione.
-
Spostare il cursore nella parte inferiore del paragrafo per selezionare lo script per OML4SQL.
-
Creare una tabella delle impostazioni (
anomaly_model_settings
) per SVM di una 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;
-
Creare un modello di rilevamento delle anomalie per ogni database di destinazione utilizzando
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;
-
Verificare la creazione del modello.
%sql SELECT model_name, mining_function, algorithm, creation_date FROM user_mining_models where model_name like 'ANOMALY_DETECTION_MODEL_%';
Task 8: Applicare il modello per rilevare anomalie
Esegui previsioni sulle anomalie per classificare l'attività utente sospetta e archiviare i risultati in una tabella strutturata.
-
Creare tabelle per memorizzare gli utenti anomali per ogni database di destinazione. Spostare il cursore nella parte inferiore del paragrafo per selezionare lo script per 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;
-
Esaminare i dati utente anomali.
%sql SELECT * FROM ANOMALOUS_USERS_ADBIDCS3 UNION ALL SELECT * FROM ANOMALOUS_USERS_DBAAS23PDB UNION ALL SELECT * FROM ANOMALOUS_USERS_DBAAS23PDB2;
Task 9: Visualizzare le anomalie in Oracle APEX
Sviluppa un dashboard interattivo con grafici per monitorare e analizzare le attività anomale del database in tempo reale.
-
Avviare Oracle APEX da OCI Console.
-
Eseguire il login come
OML_USER
e creare una nuova applicazione. -
Creare un dashboard con quattro grafici.
-
Grafico 1: tabella utenti sospetti (report classico).
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;
-
Grafico 2: utenti anomali per database (grafico a torta).
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;
-
Grafico 3: andamenti durata sessione (grafico a linee).
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;
-
Grafico 4: primi utenti con il maggior numero di anomalie (grafico a barre).
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;
-
-
Eseguire la pagina e condividere l'URL del dashboard con il team.
Passi successivi
Questo tutorial ha mostrato un approccio basato sull'intelligenza artificiale alla sicurezza del database utilizzando Oracle Database 23ai, Oracle Data Safe e Oracle APEX. Qui noi,
- Dati di login e logoff elaborati per analizzare la durata delle sessioni.
- Ha creato un modello di rilevamento delle anomalie utilizzando OML4SQL.
- Risultati visualizzati in un dashboard Oracle APEX per il monitoraggio in tempo reale.
Integrando il machine learning e i dashboard interattivi, i team di sicurezza possono rilevare e mitigare in modo proattivo le attività sospette. Questa soluzione scalabile si estende al rilevamento delle frodi, alla sicurezza della rete e a molto altro ancora, sfruttando le funzionalità AI/ML integrate di Oracle per un'implementazione trasparente.
Collegamenti correlati
-
Introduzione ai notebook Classic per l'analisi e la visualizzazione dei dati
-
Annuncio delle nuove funzionalità di Oracle Machine Learning in Oracle Database 23ai
Conferme
-
Autore - Alex Kovuru (architetto cloud principale)
-
Contributor - Indiradarshni Balasundaram (Senior Cloud Engineer)
Altre risorse di apprendimento
Esplora altri laboratori su docs.oracle.com/learn o accedi a più contenuti gratuiti sulla formazione su Oracle Learning YouTube channel. Inoltre, visita education.oracle.com/learning-explorer per diventare un Oracle Learning Explorer.
Per la documentazione del prodotto, visita l'Oracle Help Center.
Implement AI-Powered User Behavior Analytics with Oracle Database 23ai, Oracle Data Safe and Oracle APEX
G28819-01
Copyright ©2025, Oracle and/or its affiliates.