Note :
- Ce tutoriel nécessite l'accès à Oracle Cloud. Pour vous inscrire à un compte gratuit, voir Démarrer avec le niveau gratuit d'Oracle Cloud Infrastructure.
- Il utilise des exemples de valeurs pour les données d'identification, la location et les compartiments d'Oracle Cloud Infrastructure. À la fin de votre laboratoire, remplacez ces valeurs par celles qui sont propres à votre environnement en nuage.
Mettez en œuvre l'analyse des comportements des utilisateurs reposant sur l'intelligence artificielle avec Oracle Database 23ai, Oracle Data Safe et Oracle APEX
Présentation
À mesure que les environnements de base de données deviennent de plus en 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 d'Oracle Data Safe, d'Oracle Machine Learning for SQL (OML4SQL) et d'Oracle Database 23ai pour améliorer l'analyse du comportement des utilisateurs, en identifiant les modèles d'accès inhabituels et les menaces potentielles pour la sécurité.
Ce tutoriel étape par étape montre comment mettre en œuvre la détection d'anomalies alimentée par l'intelligence artificielle à 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 d'intelligence artificielle et d'apprentissage automatique et les développeurs APEX, cette solution renforce la sécurité des bases de données en intégrant les capacités d'intelligence artificielle et d'apprentissage automatique d'Oracle pour la détection proactive des menaces.
À la base, le projet utilise des machines vectorielles (SVM) de soutien à une classe, un algorithme d'apprentissage automatique non supervisé qui apprend le comportement normal de l'utilisateur et signale les écarts comme des anomalies. En analysant des fonctionnalités telles que le nombre total de connexions et la durée moyenne des sessions, le modèle identifie les activités irrégulières, ce qui aide à détecter les menaces potentielles de sécurité et les tentatives d'accès non autorisé.
Cas d'utilisation : Détection des anomalies des utilisateurs de base de données.
Ce cas d'utilisation est axé sur la détection d'activités anormales de connexion et de déconnexion d'utilisateur dans un environnement de base de données Oracle en analysant les événements de connexion et de déconnexion. Le système identifie les modèles suspects, tels que les durées de session inhabituelles ou les fréquences de connexion irrégulières, et visualise les informations au moyen d'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'intelligence artificielle et des analyses de sécurité, cette approche signale les modèles anormaux d'ouverture de session et de fermeture de session, ce qui aide à atténuer les menaces potentielles à la sécurité.
Éléments clés :
- Détection guidée par l'IA : Les modèles d'apprentissage automatique identifient les écarts par rapport au comportement normal de l'utilisateur.
- Surveillance en temps réel : Les tableaux de bord Oracle APEX fournissent des informations de sécurité continues.
- Atténuation des risques proactive : La détection précoce des anomalies renforce la sécurité de la base de données et réduit les risques potentiels.
Public cible
-
Administrateurs de base de données (DBA) gérant des bases de données Oracle.
-
Administrateurs de la sécurité OCI assurant la conformité de la sécurité de la base de données.
-
Les analystes de la sécurité tirent parti des outils de sécurité d'Oracle pour la détection des menaces.
Objectifs
Mettez en œuvre l'analyse de comportement des utilisateurs basée sur l'IA dans un environnement OCI en intégrant les éléments suivants :
-
Oracle Database 23ai pour le traitement des données.
-
Oracle Data Safe pour la vérification de la sécurité et l'analyse des journaux.
-
OML4SQL pour la détection d'anomalies guidée par l'IA.
-
Oracle APEX pour une visualisation en temps réel.
L'objectif principal est d'identifier un comportement anormal des utilisateurs en analysant les jeux de données d'événement d'ouverture de session Oracle Data Safe, ce qui permet une détection proactive des menaces et une sécurité de base de données améliorée.
Préalables
-
Accès à une instance Oracle Database 23ai avec Data Warehouse en tant que type de charge de travail.
-
Oracle Data Safe configuré et enregistré avec des bases de données cibles.
-
Connaissance de base de SQL, de l'apprentissage automatique et d'Oracle APEX.
Tâche 1 : Télécharger le jeu de données d'événement de connexion et de déconnexion d'Oracle Data Safe
Générer et télécharger un rapport filtré sur les événements de connexion et de déconnexion d'Oracle Data Safe, puis le convertir au format CSV pour l'importation de base de données.
-
Connectez-vous à la console OCI, naviguez jusqu'à Bases de données Oracle, Sécurité des données, Vérification de l'activité, Rapports de vérification et cliquez sur Toutes les activités.
-
Appliquez des filtres pour saisir 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éer un utilisateur dans Oracle Database 23ai Autonomous Database
Créez un utilisateur nommé OML_USER
avec l'accès OML et Web nécessaire dans Oracle Database 23ai.
-
Allez à la console OCI, naviguez jusqu'à 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 : Charger le jeu 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 assurer un chargement approprié.
-
Connectez-vous en tant que
OML_USER
à l'aide du lien d'accès Web. -
Naviguez jusqu'à Data Studio et cliquez sur Chargement de données.
-
Supprimez la section de commentaire du fichier CSV et assurez-vous qu'elle commence par les 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 rangées rejetées.
Tâche 4 : Valider et nettoyer les données
Traitez le jeu de données à l'aide de procédures SQL pour supprimer les incohérences et préparer les données pour l'analyse.
-
Naviguez jusqu'à 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 les 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 pour nettoyer le jeu 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 les enregistrements de
Tâche 5 : Créer un carnet Oracle Machine Learning
Configurez un carnet OML sous OML_USER
pour effectuer la détection d'anomalies et l'analyse du comportement des utilisateurs.
-
Naviguez jusqu'à Développement et cliquez sur Oracle Machine Learning.
-
Connectez-vous en tant que
OML_USER
et créez un nouveau carnet.
Tâche 6 : Analyser les anomalies d'utilisateur de base de données avec OML4SQL
Analysez les anomalies d'utilisateur de base de données en calculant les durées de session et en détectant les modèles inhabituels à l'aide de SQL et OML4SQL.
-
Déplacez le curseur au bas du paragraphe pour sélectionner SQL pour OML4SQL et d'autres composants tels que OML4Py, OML4R, etc. Dans ce tutoriel, nous utiliserons OML4SQL.
-
Ajoutez le titre du paragraphe.
-
Créez une vue (
user_session_data
) pour saisir 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 sommaire (
user_activity_summary
). Ajoutez un autre paragraphe SQL, placez l'interrogation et cliquez sur l'icône Run.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éer 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'intelligence artificielle par base de données cible.
-
Déplacez le curseur au bas du paragraphe pour sélectionner un 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écuter des prédictions 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 au bas du paragraphe pour sélectionner un 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;
-
Vérifiez les données anormales de l'utilisateur.
%sql SELECT * FROM ANOMALOUS_USERS_ADBIDCS3 UNION ALL SELECT * FROM ANOMALOUS_USERS_DBAAS23PDB UNION ALL SELECT * FROM ANOMALOUS_USERS_DBAAS23PDB2;
Tâche 9 : Visualiser les anomalies dans Oracle APEX
Développez un tableau de bord interactif avec des graphiques pour surveiller et analyser l'activité anormale de la base de données en temps réel.
-
Lancez Oracle APEX à partir de la console OCI.
-
Connectez-vous en tant que
OML_USER
et créez une nouvelle application. -
Créez un tableau de bord avec quatre graphiques.
-
Graphique 1 : Table des utilisateurs suspects (rapport 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 la durée de session (graphique linéaire).
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 ayant 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.
Étapes suivantes
Ce tutoriel a présenté une approche axée sur l'IA en matière de sécurité de base de données à l'aide d'Oracle Database 23ai, d'Oracle Data Safe et d'Oracle APEX. Ici nous,
- Traitement des données de connexion et de déconnexion 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 une surveillance en temps réel.
En intégrant l'apprentissage automatique et les tableaux de bord interactifs, les équipes de sécurité peuvent détecter et atténuer les activités suspectes de manière proactive. Cette solution évolutive s'étend à la détection des fraudes, à la sécurité du réseau, et plus encore, en tirant parti des capacités d'intelligence artificielle et d'apprentissage automatique intégrées d'Oracle pour une mise en œuvre transparente.
Liens connexes
-
Commencer avec les carnets version classique pour l'analyse et la visualisation de données
-
Annonce des nouvelles fonctionnalités d'Oracle Machine Learning dans Oracle Database 23ai
Remerciements
-
Auteur - Alex Kovuru (architecte en nuage principal)
-
Contributeur - Indiradarshni Balasundaram (ingénieur en nuage principal)
Autres ressources d'apprentissage
Explorez d'autres laboratoires sur le site docs.oracle.com/learn ou accédez à plus de contenu d'apprentissage gratuit sur le canal Oracle Learning YouTube. De plus, visitez education.oracle.com/learning-explorer pour devenir un explorateur Oracle Learning.
Pour obtenir la documentation sur le produit, visitez Oracle Help Center.
Implement AI-Powered User Behavior Analytics with Oracle Database 23ai, Oracle Data Safe and Oracle APEX
G28817-01
Copyright ©2025, Oracle and/or its affiliates.