Hinweis:

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.

Instanz-IMDS-Update

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:

Zielgruppe

Ziele

Implementieren Sie KI-gestützte UBA in einer OCI-Umgebung durch Integration von:

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

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.

  1. 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.

  2. Wenden Sie Filter an, um Anmelde- und Abmeldeereignisse zu erfassen.

    Zu Compartments navigieren

  3. Generieren Sie den Bericht, und laden Sie ihn im Format .xls herunter. Beispiel: Datasafe_LOGIN_DatasetJan2024-Feb2025_V2.xls.

  4. 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.

  1. Gehen Sie zur OCI-Konsole, navigieren Sie zu Oracle-Datenbanken, und klicken Sie auf Autonomous Database.

  2. Klicken Sie auf Database Actions und Database Users.

    Compartment erstellen auswählen

  3. Erstellen Sie einen Benutzer namens OML_USER mit OML und Web Access.

    Compartment erstellen auswählen

    Compartment erstellen auswählen

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.

  1. Melden Sie sich mit dem Webzugriffslink als OML_USER an.

    Wählen Sie "Identitätsdomain erstellen" aus.

  2. Navigieren Sie zu Data Studio, und klicken Sie auf Dataload.

    Wählen Sie "Identitätsdomain erstellen" aus.

  3. Entfernen Sie den Kommentarabschnitt aus der CSV-Datei, und stellen Sie sicher, dass er mit den Spaltenüberschriften beginnt.

    Wählen Sie "Identitätsdomain erstellen" aus.

  4. Klicken Sie auf Daten laden, wählen Sie die CSV-Datei aus, und konfigurieren Sie den Tabellennamen.

    Wählen Sie "Identitätsdomain erstellen" aus.

    Wählen Sie "Identitätsdomain erstellen" aus.

    Wählen Sie "Identitätsdomain erstellen" aus.

    Wählen Sie "Identitätsdomain erstellen" aus.

  5. Klicken Sie auf Starten und ausführen, um die Daten zu laden.

    Wählen Sie "Identitätsdomain erstellen" aus.

  6. Prüfen Sie den Dataload-Status, und korrigieren Sie alle abgelehnten Zeilen.

    Wählen Sie "Identitätsdomain erstellen" aus.

Aufgabe 4: Daten validieren und bereinigen

Verarbeiten Sie das Dataset mit SQL-Prozeduren, um Inkonsistenzen zu entfernen und Daten für die Analyse vorzubereiten.

  1. Navigieren Sie zu Development, und klicken Sie als OML_USER auf SQL.

    Wählen Sie "Identitätsdomain erstellen" aus.

  2. Erstellen Sie eine Staging-Tabelle (datasafe_audit_logs), und verarbeiten Sie die Daten mit einer SQL-Prozedur.

    • Datensätze aus DATASAFE_LOGIN_RAW_DATASET in datasafe_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;
    

    Wählen Sie "Identitätsdomain erstellen" aus.

Aufgabe 5: Oracle Machine Learning-Notizbuch erstellen

Richten Sie ein OML-Notizbuch unter OML_USER ein, um Anomalieerkennung und Benutzerverhaltensanalysen durchzuführen.

  1. Navigieren Sie zu Entwicklung, und klicken Sie auf Oracle Machine Learning.

    Wählen Sie "Identitätsdomain erstellen" aus.

  2. Melden Sie sich als OML_USER an, und erstellen Sie ein neues Notizbuch.

    Wählen Sie "Identitätsdomain erstellen" aus.

    Wählen Sie "Identitätsdomain erstellen" aus.

    Wählen Sie "Identitätsdomain erstellen" aus.

Aufgabe 6: Datenbankbenutzeranomalien mit OML4SQL analysieren

Analysieren Sie Datenbankbenutzeranomalien, indem Sie die Sessiondauer berechnen und ungewöhnliche Muster mit SQL und OML4SQL erkennen.

  1. 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.

    Wählen Sie "Identitätsdomain erstellen" aus.

  2. Fügen Sie den Titel für den Absatz hinzu.

    Wählen Sie "Identitätsdomain erstellen" aus.

  3. 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;
    

    Wählen Sie "Identitätsdomain erstellen" aus.

  4. 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;
    

    Wählen Sie "Identitätsdomain erstellen" aus.

Aufgabe 7: Anomalieerkennungsmodell erstellen

Verwenden Sie eine Einklassen-SVM in OML4SQL, um ein KI-basiertes Anomalieerkennungsmodell pro Zieldatenbank zu erstellen.

  1. Bewegen Sie den Cursor an das Ende des Absatzes, um das Skript für OML4SQL auszuwählen.

    Wählen Sie "Identitätsdomain erstellen" aus.

  2. 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;
    

    Wählen Sie "Identitätsdomain erstellen" aus.

  3. 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;
    

    Wählen Sie "Identitätsdomain erstellen" aus.

  4. 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_%';
    

    Wählen Sie "Identitätsdomain erstellen" aus.

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.

  1. 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;
    

    Wählen Sie "Identitätsdomain erstellen" aus.

  2. 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;
    

    Wählen Sie "Identitätsdomain erstellen" aus.

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.

  1. Starten Sie Oracle APEX über die OCI-Konsole.

    Wählen Sie "Identitätsdomain erstellen" aus.

    Wählen Sie "Identitätsdomain erstellen" aus.

  2. Melden Sie sich als OML_USER an, und erstellen Sie eine neue Anwendung.

    Wählen Sie "Identitätsdomain erstellen" aus.

    Wählen Sie "Identitätsdomain erstellen" aus.

  3. Erstellen Sie ein Dashboard mit vier Diagrammen.

    Wählen Sie "Identitätsdomain erstellen" aus.

    Wählen Sie "Identitätsdomain erstellen" aus.

    • 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;
      

      Wählen Sie "Identitätsdomain erstellen" aus.

    • 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;
      

      Wählen Sie "Identitätsdomain erstellen" aus.

      Wählen Sie "Identitätsdomain erstellen" aus.

    • 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;
      

      Wählen Sie "Identitätsdomain erstellen" aus.

      Wählen Sie "Identitätsdomain erstellen" aus.

    • 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;
      

      Wählen Sie "Identitätsdomain erstellen" aus.

      Wählen Sie "Identitätsdomain erstellen" aus.

  4. Führen Sie die Seite aus, und teilen Sie die Dashboard-URL mit Ihrem Team.

    Wählen Sie "Identitätsdomain erstellen" aus.

    Wählen Sie "Identitätsdomain erstellen" aus.

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,

  1. Verarbeitete Anmelde- und Abmeldedaten zur Analyse der Sessiondauer.
  2. Ein Anomalieerkennungsmodell mit OML4SQL wurde erstellt.
  3. 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.

Danksagungen

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.