Hinweis:
- Dieses Tutorial erfordert Zugriff auf Oracle Cloud. Informationen zur Registrierung für einen kostenlosen Account finden Sie unter Erste Schritte mit Oracle Cloud Infrastructure Free Tier.
- Es verwendet Beispielwerte für Oracle Cloud Infrastructure-Zugangsdaten, -Mandanten und -Compartments. Ersetzen Sie diese Werte nach Abschluss der Übung durch Werte, die für Ihre Cloud-Umgebung spezifisch sind.
Implementieren Sie KI-gestützte Benutzerverhaltensanalysen mit Oracle Database 23ai, Oracle Data Safe und Oracle APEX
Einführung
Wenn Datenbankumgebungen komplexer werden, ist die Sicherung sensibler Daten und die Erkennung anomalen Benutzerverhaltens von entscheidender Bedeutung. Dieses Projekt nutzt Oracle Data Safe-Logs, Oracle Machine Learning for SQL (OML4SQL) und Oracle Database 23ai, um User Behavior Analytics (UBA) zu verbessern und ungewöhnliche Zugriffsmuster und potenzielle Sicherheitsbedrohungen zu identifizieren.
Dieses schrittweise Tutorial zeigt, wie Sie die KI-gestützte Anomalieerkennung mit Oracle Machine Learning (OML) und Oracle APEX implementieren und so eine Sicherheitsüberwachung in Echtzeit ermöglichen. Diese Lösung wurde für Datenbanksicherheitsadministratoren, AutoML-Administratoren, KI/ML-Administratoren und APEX-Entwickler entwickelt und stärkt die Datenbanksicherheit, indem sie die KI/ML-Funktionen von Oracle für die proaktive Erkennung von Bedrohungen integriert.
Im Kern verwendet das Projekt One Class Support Vector Machines (SVMs), einen nicht überwachten Algorithmus für maschinelles Lernen, der normales Benutzerverhalten lernt und Abweichungen als Anomalien kennzeichnet. Durch die Analyse von Features wie Gesamtanmeldungen und durchschnittlicher Sitzungsdauer identifiziert das Modell unregelmäßige Aktivitäten und hilft dabei, potenzielle Sicherheitsbedrohungen und nicht autorisierte Zugriffsversuche zu erkennen.
Anwendungsfall: Anomalieerkennung für Datenbankbenutzer.
In diesem Anwendungsfall werden ungewöhnliche Anmelde- und Abmeldeaktivitäten von Benutzern in einer Oracle-Datenbankumgebung ermittelt, indem Anmelde- und Abmeldeereignisse analysiert werden. Das System identifiziert verdächtige Muster wie ungewöhnliche Sessiondauer oder unregelmäßige Anmeldehäufigkeiten und visualisiert Erkenntnisse über ein Oracle APEX-Dashboard, sodass Administratoren die Datenbank proaktiv sichern können.
Durch die Nutzung von KI- und Sicherheitsanalysen kennzeichnet dieser Ansatz abnormale Anmelde- und Abmeldemuster und hilft dabei, potenzielle Sicherheitsbedrohungen zu mindern.
Wichtigste Merkmale:
- KI-gesteuerte Erkennung: Modelle für maschinelles Lernen identifizieren Abweichungen vom normalen Benutzerverhalten.
- Echtzeitüberwachung: Oracle APEX-Dashboards bieten kontinuierliche Sicherheitseinblicke.
- Proaktive Risikominderung: Die Früherkennung von Anomalien stärkt die Datenbanksicherheit und reduziert potenzielle Risiken.
Zielgruppe
-
Datenbankadministratoren (DBAs) verwalten Oracle-Datenbanken.
-
OCI-Sicherheitsadministratoren stellen die Einhaltung der Datenbanksicherheit sicher.
-
Sicherheitsanalysten nutzen die Sicherheitstools von Oracle zur Bedrohungserkennung.
Ziele
Implementieren Sie KI-gestützte UBA in einer OCI-Umgebung durch Integration von:
-
Oracle Database 23ai für die Datenverarbeitung.
-
Oracle Data Safe für Sicherheitsauditing und Loganalyse.
-
OML4SQL für die KI-gesteuerte Anomalieerkennung.
-
Oracle APEX für Echtzeitvisualisierungen.
Das Hauptziel besteht darin, anomales Benutzerverhalten zu identifizieren, indem Oracle Data Safe-Anmeldeereignis-Datasets analysiert werden, um eine proaktive Bedrohungserkennung und erweiterte Datenbanksicherheit zu ermöglichen.
Voraussetzungen
-
Zugriff auf eine Oracle Database 23ai mit einer Data Warehouse-Instanz als Workload-Typ.
-
Oracle Data Safe wurde mit Zieldatenbanken konfiguriert und registriert.
-
Grundlegende Kenntnisse in SQL, maschinellem Lernen (ML) und Oracle APEX.
Aufgabe 1: Dataset für Anmelde- und Abmeldeereignisse aus Oracle Data Safe herunterladen
Generieren und laden Sie einen gefilterten Bericht mit Anmelde- und Abmeldeereignissen aus Oracle Data Safe herunter, und konvertieren Sie ihn für den Datenbankimport in CSV.
-
Melden Sie sich bei der OCI-Konsole an, navigieren Sie zu Oracle-Datenbanken, Data Safe, Aktivitätsauditing, Auditberichte, und klicken Sie auf Alle Aktivitäten.
-
Wenden Sie Filter an, um Anmelde- und Abmeldeereignisse zu erfassen.
-
Generieren Sie den Bericht, und laden Sie ihn im Format
.xls
herunter. Beispiel:Datasafe_LOGIN_DatasetJan2024-Feb2025_V2.xls
. -
Benennen Sie die Datei zum Laden in Oracle Autonomous Database in das Format
.csv
um. Beispiel:Datasafe_LOGIN_DatasetJan2024-Feb2025_V2.csv
.
Aufgabe 2: Benutzer in Oracle Database 23ai Autonomous Database erstellen
Erstellen Sie einen Benutzer namens OML_USER
mit dem erforderlichen OML- und Webzugriff in Oracle Database 23ai.
-
Gehen Sie zur OCI-Konsole, navigieren Sie zu Oracle-Datenbanken, und klicken Sie auf Autonomous Database.
-
Klicken Sie auf Database Actions und Database Users.
-
Erstellen Sie einen Benutzer namens
OML_USER
mit OML und Web Access.
Aufgabe 3: Dataset in Oracle Database 23ai Autonomous Database laden
Verwenden Sie Dataload, um das CSV-Dataset hochzuladen, die Datenintegrität zu prüfen und das ordnungsgemäße Laden sicherzustellen.
-
Melden Sie sich mit dem Webzugriffslink als
OML_USER
an. -
Navigieren Sie zu Data Studio, und klicken Sie auf Dataload.
-
Entfernen Sie den Kommentarabschnitt aus der CSV-Datei, und stellen Sie sicher, dass er mit den Spaltenüberschriften beginnt.
-
Klicken Sie auf Daten laden, wählen Sie die CSV-Datei aus, und konfigurieren Sie den Tabellennamen.
-
Klicken Sie auf Starten und ausführen, um die Daten zu laden.
-
Prüfen Sie den Dataload-Status, und korrigieren Sie alle abgelehnten Zeilen.
Aufgabe 4: Daten validieren und bereinigen
Verarbeiten Sie das Dataset mit SQL-Prozeduren, um Inkonsistenzen zu entfernen und Daten für die Analyse vorzubereiten.
-
Navigieren Sie zu Development, und klicken Sie als
OML_USER
auf SQL. -
Erstellen Sie eine Staging-Tabelle (
datasafe_audit_logs
), und verarbeiten Sie die Daten mit einer SQL-Prozedur.- Datensätze aus
DATASAFE_LOGIN_RAW_DATASET
indatasafe_audit_logs
einfügen. - LOGOFF-Datensätze löschen, für die keine entsprechenden LOGON-Datensätze vorhanden sind.
- LOGON-Datensätze löschen, wenn kein LOGOFF-Ereignis mit einem späteren Zeitstempel vorhanden ist.
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 );
Führen Sie das Verfahren zum Bereinigen des Datasets aus.
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;
- Datensätze aus
Aufgabe 5: Oracle Machine Learning-Notizbuch erstellen
Richten Sie ein OML-Notizbuch unter OML_USER
ein, um Anomalieerkennung und Benutzerverhaltensanalysen durchzuführen.
-
Navigieren Sie zu Entwicklung, und klicken Sie auf Oracle Machine Learning.
-
Melden Sie sich als
OML_USER
an, und erstellen Sie ein neues Notizbuch.
Aufgabe 6: Datenbankbenutzeranomalien mit OML4SQL analysieren
Analysieren Sie Datenbankbenutzeranomalien, indem Sie die Sessiondauer berechnen und ungewöhnliche Muster mit SQL und OML4SQL erkennen.
-
Bewegen Sie den Cursor an das Ende des Absatzes, um SQL für OML4SQL und andere Komponenten wie OML4Py, OML4R usw. auszuwählen. In diesem Tutorial verwenden wir OML4SQL.
-
Fügen Sie den Titel für den Absatz hinzu.
-
Erstellen Sie eine Ansicht (
user_session_data
), um Sessiondaten zu erfassen.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;
-
Berechnen Sie die Sessiondauer, und erstellen Sie eine Übersichtsansicht (
user_activity_summary
). Fügen Sie einen weiteren SQL-Absatz hinzu, platzieren Sie die Abfrage, und klicken Sie auf das Symbol "Ausführen".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;
Aufgabe 7: Anomalieerkennungsmodell erstellen
Verwenden Sie eine Einklassen-SVM in OML4SQL, um ein KI-basiertes Anomalieerkennungsmodell pro Zieldatenbank zu erstellen.
-
Bewegen Sie den Cursor an das Ende des Absatzes, um das Skript für OML4SQL auszuwählen.
-
Erstellen Sie eine Einstellungstabelle (
anomaly_model_settings
) für eine Einklassen-SVM.%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;
-
Erstellen Sie mit
DBMS_DATA_MINING.CREATE_MODEL
ein Anomalieerkennungsmodell für jede Zieldatenbank.%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;
-
Prüfen Sie die Modellerstellung.
%sql SELECT model_name, mining_function, algorithm, creation_date FROM user_mining_models where model_name like 'ANOMALY_DETECTION_MODEL_%';
Aufgabe 8: Modell zur Erkennung von Anomalien anwenden
Führen Sie Anomalievorhersagen aus, um verdächtige Benutzeraktivitäten zu klassifizieren und Ergebnisse in einer strukturierten Tabelle zu speichern.
-
Erstellen Sie Tabellen, um anomale Benutzer für jede Zieldatenbank zu speichern. Bewegen Sie den Cursor an das Ende des Absatzes, um das Skript für OML4SQL auszuwählen.
.%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;
-
Prüfen Sie die anomalen Benutzerdaten.
%sql SELECT * FROM ANOMALOUS_USERS_ADBIDCS3 UNION ALL SELECT * FROM ANOMALOUS_USERS_DBAAS23PDB UNION ALL SELECT * FROM ANOMALOUS_USERS_DBAAS23PDB2;
Aufgabe 9: Anomalien in Oracle APEX visualisieren
Entwickeln Sie ein interaktives Dashboard mit Diagrammen, um anomale Datenbankaktivitäten in Echtzeit zu überwachen und zu analysieren.
-
Starten Sie Oracle APEX über die OCI-Konsole.
-
Melden Sie sich als
OML_USER
an, und erstellen Sie eine neue Anwendung. -
Erstellen Sie ein Dashboard mit vier Diagrammen.
-
Diagramm 1: Tabelle für verdächtige Benutzer (klassischer Bericht).
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;
-
Diagramm 2: Anomale Benutzer pro Datenbank (Kreisdiagramm).
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;
-
Diagramm 3: Trends der Sessiondauer (Liniendiagramm).
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;
-
Diagramm 4: Top-Benutzer mit den meisten Anomalien (Balkendiagramm).
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;
-
-
Führen Sie die Seite aus, und teilen Sie die Dashboard-URL mit Ihrem Team.
Nächste Schritte
Dieses Tutorial zeigte einen KI-gesteuerten Ansatz für die Datenbanksicherheit mit Oracle Database 23ai, Oracle Data Safe und Oracle APEX. Hier sind wir,
- Verarbeitete Anmelde- und Abmeldedaten zur Analyse der Sessiondauer.
- Ein Anomalieerkennungsmodell mit OML4SQL wurde erstellt.
- Visualisierte Ergebnisse in einem Oracle APEX-Dashboard für die Echtzeitüberwachung.
Durch die Integration von maschinellem Lernen und interaktiven Dashboards können Sicherheitsteams verdächtige Aktivitäten proaktiv erkennen und mindern. Diese skalierbare Lösung erstreckt sich auf die Betrugserkennung, Netzwerksicherheit und mehr und nutzt die integrierten KI-/ML-Funktionen von Oracle für eine nahtlose Implementierung.
Verwandte Links
-
Erste Schritte mit Notebooks Classic für Datenanalyse und Datenvisualisierung
-
Ankündigung neuer Oracle Machine Learning-Funktionen in Oracle Database 23ai
Danksagungen
-
Autor - Alex Kovuru (Principal Cloud Architect)
-
Beitragender – Indiradarshni Balasundaram (Senior Cloud Engineer)
Weitere Lernressourcen
Sehen Sie sich andere Übungen zu docs.oracle.com/learn an, oder greifen Sie im Oracle Learning YouTube-Channel auf weitere kostenlose Lerninhalte zu. Besuchen Sie außerdem education.oracle.com/learning-explorer, um Oracle Learning Explorer zu werden.
Die Produktdokumentation finden Sie im Oracle Help Center.
Implement AI-Powered User Behavior Analytics with Oracle Database 23ai, Oracle Data Safe and Oracle APEX
G28815-01
Copyright ©2025, Oracle and/or its affiliates.