Remarques :
- Ce tutoriel nécessite un accès à Oracle Cloud. Pour vous inscrire à un compte gratuit, reportez-vous à Introduction à Oracle Cloud Infrastructure Free Tier.
- Il utilise des exemples de valeurs pour les informations d'identification, la location et les compartiments Oracle Cloud Infrastructure. Lorsque vous terminez votre atelier, remplacez ces valeurs par celles propres à votre environnement cloud.
Implémentez des analyses du comportement des utilisateurs basées sur l'IA avec Oracle Database 23ai, Oracle Data Safe et Oracle APEX
Introduction
Au fur et à mesure que les environnements de base de données deviennent plus complexes, il est essentiel de sécuriser les données sensibles et de détecter les comportements anormaux des utilisateurs. Ce projet tire parti des journaux Oracle Data Safe, d'Oracle Machine Learning for SQL (OML4SQL) et d'Oracle Database 23ai pour améliorer les analyses de comportement des utilisateurs (UBA), en identifiant les modèles d'accès inhabituels et les menaces de sécurité potentielles.
Ce tutoriel étape par étape explique comment implémenter la détection d'anomalies alimentée par l'IA à l'aide d'Oracle Machine Learning (OML) et d'Oracle APEX, ce qui permet la surveillance de la sécurité en temps réel. Conçue pour les administrateurs de la sécurité des bases de données, les administrateurs AutoML, les administrateurs AI/ML et les développeurs APEX, cette solution renforce la sécurité des bases de données en intégrant les fonctionnalités d'IA/ML d'Oracle pour la détection proactive des menaces.
Au cœur du projet, le projet utilise des machines vectorielles de support à une classe (SVM), un algorithme d'apprentissage automatique non supervisé qui apprend le comportement normal de l'utilisateur et signale les écarts en tant qu'anomalies. En analysant des fonctionnalités telles que le nombre total de connexions et la durée moyenne de session, le modèle identifie les activités irrégulières, ce qui permet de détecter les menaces de sécurité potentielles et les tentatives d'accès non autorisé.
Cas d'emploi : détection d'anomalies des utilisateurs de base de données.
Ce cas d'emploi est axé sur la détection des activités de connexion et de déconnexion utilisateur anormales dans un environnement de base de données Oracle en analysant les événements de connexion et de déconnexion. Le système identifie des modèles suspects, tels que des durées de session inhabituelles ou des fréquences de connexion irrégulières, et visualise les informations via un tableau de bord Oracle APEX, ce qui permet aux administrateurs de sécuriser la base de données de manière proactive.
En tirant parti de l'IA et des analyses de sécurité, cette approche signale les modèles de connexion et de déconnexion anormaux, ce qui contribue à atténuer les menaces de sécurité potentielles.
Points clés :
- Détection basée sur l'IA : les modèles d'apprentissage automatique identifient les écarts par rapport au comportement normal des utilisateurs.
- Surveillance en temps réel : les tableaux de bord Oracle APEX fournissent des informations de sécurité continues.
- Atténuation proactive des risques : la détection précoce des anomalies renforce la sécurité des bases de données et réduit les risques potentiels.
Public
-
Les administrateurs de base de données gèrent les bases de données Oracle.
-
Administrateurs de sécurité OCI assurant la conformité de la sécurité des bases de données.
-
Les analystes de sécurité tirent parti des outils de sécurité Oracle pour la détection des menaces.
Objectifs
Implémentez l'UBA alimenté par l'IA dans un environnement OCI en intégrant :
-
Oracle Database 23ai pour le traitement des données.
-
Oracle Data Safe pour l'audit de sécurité et l'analyse des journaux.
-
OML4SQL pour la détection d'anomalies basée sur l'IA.
-
Oracle APEX pour la visualisation en temps réel.
L'objectif principal est d'identifier les comportements anormaux des utilisateurs en analysant les ensembles de données d'événement de connexion Oracle Data Safe, ce qui permet une détection proactive des menaces et une sécurité améliorée des bases de données.
Prérequis
-
Accès à Oracle Database 23ai avec une instance Data Warehouse en tant que type de charge globale.
-
Oracle Data Safe est configuré et inscrit auprès des bases de données cible.
-
Connaissances de base en matière de SQL, d'apprentissage automatique et d'Oracle APEX.
Tâche 1 : téléchargement de l'ensemble de données d'événement de connexion et de déconnexion à partir d'Oracle Data Safe
Générez et téléchargez un rapport filtré d'événements de connexion et de déconnexion à partir d'Oracle Data Safe, puis convertissez-le au format CSV pour l'import de base de données.
-
Connectez-vous à la console OCI, accédez à Bases de données Oracle, à Data Safe, à Audit d'activité, à Rapports d'audit et cliquez sur Toutes les activités.
-
Appliquez des filtres pour capturer les événements de connexion et de déconnexion.
-
Générez le rapport et téléchargez-le au format
.xls
. Par exemple,Datasafe_LOGIN_DatasetJan2024-Feb2025_V2.xls
. -
Renommez le fichier au format
.csv
pour le chargement dans Oracle Autonomous Database. Par exemple,Datasafe_LOGIN_DatasetJan2024-Feb2025_V2.csv
.
Tâche 2 : création d'un utilisateur dans Oracle Database 23ai Autonomous Database
Créez un utilisateur nommé OML_USER
avec l'OML et l'accès Web nécessaires dans Oracle Database 23ai.
-
Accédez à la console OCI, accédez à Bases de données Oracle et cliquez sur Autonomous Database.
-
Cliquez sur Database Actions et sur Utilisateurs de base de données.
-
Créez un utilisateur nommé
OML_USER
avec OML et Web Access.
Tâche 3 : chargement de l'ensemble de données dans Oracle Database 23ai Autonomous Database
Utilisez le chargement de données pour charger le jeu de données CSV, vérifier l'intégrité des données et garantir un chargement correct.
-
Connectez-vous en tant qu'utilisateur
OML_USER
à l'aide du lien d'accès Web. -
Accédez à Data Studio et cliquez sur Chargement des données.
-
Supprimez la section de commentaire du fichier CSV et assurez-vous qu'elle commence par des en-têtes de colonne.
-
Cliquez sur Charger les données, sélectionnez le fichier CSV et configurez le nom de la table.
-
Cliquez sur Démarrer et exécuter pour charger les données.
-
Vérifiez le statut de chargement des données et corrigez les lignes rejetées.
Tâche 4 : valider et nettoyer les données
Traitez l'ensemble de données à l'aide de procédures SQL pour supprimer les incohérences et préparer les données pour l'analyse.
-
Accédez à Development (Développement) et cliquez sur SQL en tant que
OML_USER
. -
Créez une table intermédiaire (
datasafe_audit_logs
) et traitez les données à l'aide d'une procédure SQL.- Insérer des enregistrements de
DATASAFE_LOGIN_RAW_DATASET
dansdatasafe_audit_logs
. - Supprimer les enregistrements LOGOFF qui n'ont aucun enregistrement LOGON correspondant.
- Supprimer les enregistrements LOGON s'il n'existe aucun événement LOGOFF avec un horodatage ultérieur.
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 );
Exécutez la procédure de nettoyage de l'ensemble de données.
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;
- Insérer des enregistrements de
Tâche 5 : création d'un bloc-notes Oracle Machine Learning
Configurez un bloc-notes OML sous OML_USER
pour effectuer une détection d'anomalies et une analyse du comportement des utilisateurs.
-
Accédez à Développement et cliquez sur Oracle Machine Learning.
-
Connectez-vous en tant qu'utilisateur
OML_USER
et créez un bloc-notes.
Tâche 6 : analyse des anomalies utilisateur de base de données avec OML4SQL
Analysez les anomalies des utilisateurs de base de données en calculant la durée des sessions et en détectant des modèles inhabituels à l'aide de SQL et de OML4SQL.
-
Déplacez le curseur en bas du paragraphe pour sélectionner SQL pour OML4SQL et d'autres composants tels que OML4Py, OML4R, etc. Dans ce tutoriel, nous allons utiliser OML4SQL.
-
Ajoutez le titre du paragraphe.
-
Créez une vue (
user_session_data
) pour capturer les données de session.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;
-
Calculez les durées de session et créez une vue récapitulative (
user_activity_summary
). Ajoutez un autre paragraphe SQL, placez la requête et cliquez sur l'icône Run (Exécuter).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;
Tâche 7 : création d'un modèle de détection d'anomalies
Utilisez SVM à une classe dans OML4SQL pour créer un modèle de détection d'anomalies basé sur l'IA par base de données cible.
-
Déplacez le curseur en bas du paragraphe pour sélectionner le script pour OML4SQL.
-
Créez une table de paramètres (
anomaly_model_settings
) pour le SVM à une 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;
-
Créez un modèle de détection d'anomalies pour chaque base de données cible à l'aide de
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;
-
Vérifiez la création du modèle.
%sql SELECT model_name, mining_function, algorithm, creation_date FROM user_mining_models where model_name like 'ANOMALY_DETECTION_MODEL_%';
Tâche 8 : appliquer le modèle pour détecter les anomalies
Exécutez des prévisions d'anomalies pour classer l'activité des utilisateurs suspects et stocker les résultats dans une table structurée.
-
Créez des tables pour stocker les utilisateurs anormaux pour chaque base de données cible. Déplacez le curseur en bas du paragraphe pour sélectionner le script pour 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;
-
Passez en revue les données utilisateur anormales.
%sql SELECT * FROM ANOMALOUS_USERS_ADBIDCS3 UNION ALL SELECT * FROM ANOMALOUS_USERS_DBAAS23PDB UNION ALL SELECT * FROM ANOMALOUS_USERS_DBAAS23PDB2;
Tâche 9 : visualisation des anomalies dans Oracle APEX
Développez un tableau de bord interactif avec des graphiques pour surveiller et analyser l'activité anormale des bases de données en temps réel.
-
Lancez Oracle APEX à partir de la console OCI.
-
Connectez-vous en tant qu'utilisateur
OML_USER
et créez une application. -
Créez un tableau de bord avec quatre graphiques.
-
Graphique 1 : Table des utilisateurs suspects (état classique).
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;
-
Graphique 2 : Utilisateurs anormaux par base de données (graphique à secteurs).
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;
-
Graphique 3 : Tendances de durée de session (graphique à courbes).
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;
-
Graphique 4 : Principaux utilisateurs présentant le plus d'anomalies (graphique à barres).
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;
-
-
Exécutez la page et partagez l'URL du tableau de bord avec votre équipe.
Etapes suivantes
Ce tutoriel présente une approche de la sécurité des bases de données basée sur l'IA à l'aide d'Oracle Database 23ai, d'Oracle Data Safe et d'Oracle APEX. Ici, nous,
- Données de connexion et de déconnexion traitées pour analyser les durées de session.
- Création d'un modèle de détection d'anomalies à l'aide de OML4SQL.
- Résultats visualisés dans un tableau de bord Oracle APEX pour la surveillance en temps réel.
En intégrant le machine learning et les tableaux de bord interactifs, les équipes de sécurité peuvent détecter et atténuer de manière proactive les activités suspectes. Cette solution évolutive s'étend à la détection des fraudes, à la sécurité réseau, etc., en tirant parti des fonctionnalités d'IA/ML intégrées d'Oracle pour une implémentation transparente.
Liens connexes
-
Introduction à Notebooks Classic pour l'analyse et la visualisation des données
-
Annonce des nouvelles fonctionnalités Oracle Machine Learning dans Oracle Database 23ai
Remerciements
-
Auteur - Alex Kovuru (architecte cloud principal)
-
Contributeur - Indiradarshni Balasundaram (Ingénieur cloud senior)
Ressources de formation supplémentaires
Explorez d'autres ateliers sur docs.oracle.com/learn ou accédez à d'autres contenus de formation gratuits sur le canal Oracle Learning YouTube. De plus, visitez le site education.oracle.com/learning-explorer pour devenir un explorateur Oracle Learning.
Pour obtenir la documentation produit, consultez le site Oracle Help Center.
Implement AI-Powered User Behavior Analytics with Oracle Database 23ai, Oracle Data Safe and Oracle APEX
G28818-01
Copyright ©2025, Oracle and/or its affiliates.