0 / 0
Torna alla versione inglese della documentazione
Monitoraggio dell'accesso ai dati con la funzione di audit 'Db2 in Data Virtualization
Ultimo aggiornamento: 26 nov 2024
Monitoraggio dell'accesso ai dati mediante l'uso di criteri di audit nella Data Virtualization

Per gestire l'accesso ai dati sensibili, è possibile utilizzare i meccanismi di autenticazione e controllo accessi per stabilire regole e controlli per l'accesso ai dati. Ma, per proteggere e rilevare comportamenti sconosciuti o non accettabili, è possibile monitorare l'accesso ai dati utilizzando la funzionalità di controllo Db2® .

Il monitoraggio di successo dell'accesso ai dati indesiderati e la successiva analisi possono portare a miglioramenti nel controllo dell'accesso ai dati e nella prevenzione definitiva dell'accesso non autorizzato doloso o negligente ai dati. Il monitoraggio dell'applicazione e l'accesso a singoli utenti, incluse le azioni di gestione del sistema, possono fornire un record cronologico dell'attività sui sistemi di database.

È possibile utilizzare la funzionalità di controllo Db2 per generare e gestire un audit trail per una serie di eventi database predefiniti. Per ogni categoria di eventi disponibile per il controllo, viene utilizzata una parola chiave di una parola per identificare il tipo di categoria dopo il nome della categoria. Le seguenti categorie di eventi sono disponibili per il controllo:
Controllo (AUDIT)
Genera i record quando le impostazioni di controllo vengono modificate o quando si accede al log di controllo.
Controllo autorizzazione (CHECKING)
Genera record durante il controllo di autorizzazione dei tentativi di accedere o manipolare funzioni o oggetti del database Db2 .
Manutenzione oggetto (OBJMAINT)
Genera record durante la creazione o l'eliminazione di oggetti di dati e durante la modifica di determinati oggetti.
Manutenzione sicurezza (SECMAINT)
Genera record per le seguenti condizioni:
  • Concessione o revoca dei privilegi oggetto o delle autorizzazioni database.
  • Concessione o revoca di etichette di sicurezza o esenzioni.
  • Modificare l'autorizzazione del gruppo, l'autorizzazione del ruolo o sovrascrivere o limitare gli attributi di una politica di sicurezza LBAC.
  • Concessione o revoca del privilegio SETSESSIONUSER.
  • Modifica di uno dei parametri di configurazione SYSADM_GROUP, SYSCTRL_GROUP, SYSMAINT_GROUP o SYSMON_GROUP.
Amministrazione del sistema (SYSADMIN)
Genera record quando vengono eseguite operazioni che richiedono l'autorità SYSADM, SYSMAINT o SYSCTRL.
Convalida utente (VALIDATE)
Genera record durante l'autenticazione degli utenti o il richiamo delle informazioni di sicurezza del sistema.
Contesto operazione (CONTEXT)
Genera i record per mostrare il contesto dell'operazione quando viene eseguita un'operazione del database. Questa categoria consente una migliore interpretazione del file di log di controllo. Quando viene utilizzato con il campo del correlatore eventi del log, un gruppo di eventi può essere associato nuovamente a una singola operazione del database. Ad esempio, un'istruzione della query per le query dinamiche, un identificativo del package per le query statiche o un indicatore del tipo di operazione eseguita, come CONNECT, può fornire il contesto necessario durante l'analisi dei risultati del controllo.
Esegui (EXECUTE)
Genera record durante l'esecuzione di istruzioni SQL.

Per una qualsiasi delle categorie elencate, è possibile controllare gli errori, gli esiti positivi o entrambi.

Qualsiasi operazione sul server di database può generare diversi record. Il numero effettivo di record generati nel log di controllo dipende dal numero di categorie di eventi da registrare come specificato dalla configurazione della funzione di verifica. Dipende anche dal fatto che vengano verificati i successi, i fallimenti o entrambi. È importante essere selettivi degli eventi da controllare.

I record generati da questa funzione possono essere visualizzati da una serie di tabelle AUDIT in cui ciascuna tabella corrisponde a ciascuna categoria. L'analisi di questi record può rivelare modelli di uso che possono identificare l'uso improprio del sistema. Quando viene identificato un uso non corretto, è possibile intraprendere azioni per ridurre o eliminare l'uso non corretto del sistema.

La funzione di controllo consente di eseguire il controllo a livello di database. Qualsiasi membro del gruppo di amministratori può configurare una politica di controllo per controllare quando vengono raccolte tali informazioni di controllo, come gli ID di autorizzazione di monitoraggio, le autorizzazioni del database, i contesti attendibili o le tabelle particolari.

Avvio rapido

  • AUDIT_ALL è una politica predefinita configurata durante la distribuzione. Questa politica controlla tutti gli esiti positivi e negativi per ogni categoria di record di controllo. Si consiglia di creare una politica personalizzata adatta alle proprie esigenze.
  • AUDIT_UPDATE è una procedura predefinita che estrae e carica i record di controllo in AUDIT.* tabelle.
  • Le istruzioni AUDIT richiedono agli utenti l'autorizzazione SECADM. Per visualizzare i dati in AUDIT.* tabelle, gli utenti che dispongono del privilegio SELECT per tali tabelle sono in grado di accedervi.
Importante: quando una politica di verifica è abilitata e l'attività di verifica viene pianificata, AUDIT.* le tabelle accumulano spazio sul sistema. È necessario gestire la memoria utilizzata da AUDIT.* tabelle. È necessario esportare periodicamente i dati di controllo per memorizzarli offline e ripulire i dati in AUDIT.* tabelle.
Per abilitare AUDIT per catturare tutti gli eventi nel servizio per ogni ruolo
AUDIT ROLE DV_ADMIN USING POLICY AUDIT_ALL;
AUDIT ROLE DV_ENGINEER USING POLICY AUDIT_ALL;
AUDIT ROLE DV_STEWARD USING POLICY AUDIT_ALL;
AUDIT ROLE DV_WORKER USING POLICY AUDIT_ALL;
Per creare un'attività di aggiornamento di controllo pianificata per ottenere i record di verifica più recenti nelle tabelle di verifica ogni 15 minuti (l'intervallo minimo tra gli aggiornamenti)
CALL SYSPROC.ADMIN_TASK_ADD( 'AUDIT_UPDATE', NULL, NULL, NULL, '*/15 * * * *', 'AUDIT', 'UPDATE', NULL, NULL, 'Periodically update to audit tables' );
Per visualizzare i record di controllo dalle 8 categorie di eventi di verifica
select * from AUDIT.AUDIT;
select * from AUDIT.CHECKING;
select * from AUDIT.CONTEXT;
select * from AUDIT.EXCUTE;
select * from AUDIT.OBJMAINT;
select * from AUDIT.SECMAINT;
select * from AUDIT.SYSADMIN;
select * from AUDIT.VALIDATE;

Per ulteriori informazioni, consultare Criteri di controllo.


Crea una normativa di controllo
CREATE AUDIT POLICY policy_name CATEGORIES category or ALL STATUS status ERROR TYPE NORMAL;

Per ulteriori informazioni, consultare Istruzione CREATE AUDIT POLICY.

Nomi della politica di verifica
Accertarsi che il nome sia univoco e che il relativo scopo sia facilmente identificabile, ad esempio AUDIT_SOC2_COMPLIANCE o AUDIT_LOGIN_ONLY. Non iniziare il nome con SYS poiché è riservato per i nomi di sistema interni nel database.
Categorie da controllare
La politica determina quali categorie devono essere controllate. Questa politica può essere applicata ad altri oggetti di database per determinare il modo in cui deve essere controllato l'utilizzo di tali oggetti. Ci sono otto categorie disponibili da controllare. Più categorie sono configurate, più informazioni vengono controllate e si accumulano nel buffer di controllo che occupa spazio di calcolo. La comprensione di ciò che è necessario per il proprio scopo è importante per evitare il sovraccarico dello spazio di calcolo del sistema. Il riepilogo descrive ogni categoria disponibile. Se ALL è specificato come opzione di categoria, nessun' altra categoria può essere specificata.
Per rispettare la maggior parte degli standard di sicurezza, le categorie consigliate nel seguente elenco si occuperanno del controllo degli accessi, dell'autenticazione e del monitoraggio degli accessi privilegiati. La configurazione delle politiche con queste categorie garantisce un sovraccarico minimo mantenendo la sicurezza.
  • EXECUTE WITHOUT DATA - Controllo degli accessi
  • VALIDATE - autenticazione
  • SECMAINT - Monitoraggio accesso privilegiato
Inoltre, per ogni categoria, devono essere controllati sia gli scenari di esito positivo che quelli di errore e il tipo di errore deve solo registrare gli errori del codice SQL.
  • STATUS BOTH
  • ERROR TYPE NORMAL


Inizia a utilizzare la tua politica di verifica
AUDIT database_entity USING POLICY policy_name;

Per ulteriori informazioni, consultare Istruzione AUDIT.



Configura una politica di verifica personalizzata

È possibile configurare una politica di verifica personalizzata per catturare le richieste di autenticazione e eseguire correttamente i comandi SQL e abilitarla.

CREATE AUDIT POLICY AUDIT_VALIDATE_EXECUTE CATEGORIES VALIDATE STATUS BOTH, EXECUTE STATUS SUCCESS ERROR TYPE NORMAL;
Oggetti database da controllare
Il controllo dell'intero database determinerà un sovraccarico di spazio di calcolo. Si consiglia di identificare la tabella e la tabella di query materializzata (MQT) associata a cui applicare una politica.
Nota: la politica di controllo che si applica a una tabella non si applica a una tabella di query materializzata (MQT) basata su tale tabella. Si consiglia di associare una politica di controllo a una tabella, associandola anche a qualsiasi MQT basata su tale tabella. Il compilatore potrebbe utilizzare automaticamente una MQT, anche se un'istruzione SQL fa riferimento alla tabella di base; tuttavia, la politica di controllo in uso per la tabella di base sarà ancora attiva.

Un'altra configurazione consigliata consiste nell'applicare una politica a un gruppo o a un ruolo. È possibile utilizzare questa configurazione per monitorare gli utenti in cui il gruppo e il ruolo eseguono azioni impreviste. Se si sceglie di applicare una politica all'intero database, assicurarsi che la politica non conservi un record di tutte le categorie.

Abilita la politica di verifica per una tabella
AUDIT TABLE CUSTOMTABLE USING POLICY AUDIT_VALIDATE_EXECUTE;

È anche possibile configurare una politica di verifica personalizzata per catturare solo le richieste di autenticazione (sia riuscite che non riuscite) e abilitarle.

CREATE AUDIT POLICY AUDIT_VALIDATE_ONLY CATEGORIES VALIDATE STATUS BOTH ERROR TYPE NORMAL;


Visualizzare tutte le politiche di verifica che sono state create
select * from SYSCAT.AUDITPOLICIES;
Il seguente output di esempio è il risultato dell'esecuzione della precedente istruzione SELECT:

AUDITPOLICYNAME              AUDITPOLICYID CREATE_TIME                ALTER_TIME                 AUDITSTATUS CONTEXTSTATUS VALIDATESTATUS CHECKINGSTATUS SECMAINTSTATUS OBJMAINTSTATUS SYSADMINSTATUS EXECUTESTATUS EXECUTEWITHDATA ERRORTYPE REMARKS

---------------------------- ------------- -------------------------- -------------------------- ----------- ------------- -------------- -------------- -------------- -------------- -------------- ------------- --------------- --------- -------

AUDIT_VALIDATE_ONLY                    108 2018-07-23-21.00.57.024758 2018-07-23-21.00.57.024758 N           N             B              N              N              N              N              N             N               N         -

AUDIT_ALL                              106 2018-07-23-20.51.18.017062 2018-07-23-20.51.18.017062 B           B             B              B              B              B              B              B             N               N         -

  2 record(s) selected.


Verificare quali politiche di verifica sono attualmente utilizzate
select * from SYSCAT.AUDITUSE;
Il seguente output di esempio è il risultato dell'esecuzione della precedente istruzione SELECT:

AUDITPOLICYNAME           AUDITPOLICYID OBJECTTYPE SUBOBJECTTYPE OBJECTSCHEMA  OBJECTNAME        AUDITEXCEPTIONENABLED

------------------------- ------------- ---------- ------------- ------------- ----------------- ---------------------

AUDIT_VALIDATE_ONLY                 108                          -             CURRENT SERVER    N

  1 record(s) selected.


Arresta il controllo su un'entità database

Per arrestare un controllo su un'entità database, è necessario rimuovere la politica.

AUDIT database_entity REMOVE POLICY;

Per ulteriori informazioni, consultare Istruzione AUDIT.



Arresta controllo su un gruppo
AUDIT GROUP BLUUSERS REMOVE POLICY;


Creare un'attività pianificata

Per ulteriori informazioni, consultare Procedura ADMIN_TASK_ADD - Pianificazione di una nuova attività.

Per creare un'attività di aggiornamento di controllo pianificata per ottenere i record di controllo più recenti nelle tabelle di controllo ogni 20 minuti:
CALL SYSPROC.ADMIN_TASK_ADD( 'AUDIT_UPDATE', NULL, NULL, NULL, '*/20 * * * *', 'AUDIT', 'UPDATE', NULL, NULL, 'Periodically update to audit tables' );
Per ulteriori informazioni, consultare Formato cron UNIX per il formato della pianificazione.
Frequenza di programmazione
La frequenza di esecuzione dell'attività predefinita che archivia i log di controllo era fuori dall'ambito di questo test, ma vale la pena notare i consigli raccolti dalle situazioni dei clienti reali. Con database più grandi, si consiglia di eseguire l'attività di archivio ogni giorno per 15 minuti. Ciò consente al database di eseguire il ripristino in caso di problemi di prestazioni imprevisti. Se le politiche sono configurate come consigliato, i buffer di verifica dovrebbero essere in grado di contenere il carico di lavoro entro tale intervallo di tempo. Come i test delle prestazioni hanno mostrato, se le query complesse vengono eseguite simultaneamente all'archivio dei record di controllo, ci sono problemi di prestazioni previsti.


Modificare un'attività pianificata

Per ulteriori informazioni, consultare Procedura ADMIN_TASK_UPDATE - Aggiornamento di un'attività esistente.

Per modificare un'attività di aggiornamento di controllo pianificata per ottenere i record di controllo più recenti nelle tabelle di controllo ogni 20 minuti:
CALL SYSPROC.ADMIN_TASK_UPDATE( 'AUDIT_UPDATE', NULL, NULL, NULL, '*/20 * * * *', 'Periodically update to audit tables every 20 minutes' );
Per rimuovere l'attività di aggiornamento di controllo pianificata:
CALL SYSPROC.ADMIN_TASK_REMOVE( 'AUDIT_UPDATE', NULL );
Per ulteriori informazioni, consultare Procedura ADMIN_TASK_REMOVE - Rimuovi attività pianificate o record di stato attività.


Monitorare lo stato dell'attività di aggiornamento di controllo pianificata
select * from SYSTOOLS.ADMIN_TASK_STATUS;
Il seguente output di esempio è il risultato dell'esecuzione della precedente istruzione SELECT:

  NAME          TASKID  STATUS     AGENT_ID     INVOCATION  BEGIN_TIME                 END_TIME                   SQLCODE  SQLSTATE SQLERRMC RC
  ------------- ------- ---------- ------------ ----------- -------------------------- -------------------------- -------- -------- -------- -----
  AUDIT_UPDATE        1 COMPLETE          16433           1 2018-07-23-21.50.00.135211 2018-07-23-21.50.10.584127        0          x''          0
  AUDIT_UPDATE        1 RUNNING           16448           2 2018-07-23-21.55.00.608060 -                                 - -        -            -

    2 record(s) selected.
  


Carica i record di controllo più recenti in AUDIT.* tabelle immediatamente
CALL AUDIT.UPDATE();
Nota: dopo aver eseguito questa chiamata di procedura, è possibile che venga visualizzato il seguente messaggio:
SQL1307N Si S verificato un errore durante il richiamo della funzione di verifica della sicurezza.  Codice di errore: "9".

Questo messaggio indica che non vi è stata alcuna attività dall'ultima volta che le tabelle di controllo sono state caricate con i dati. Non indica un errore di sistema.


Ricerca e risposta AI generativa
Queste risposte sono generate da un modello di lingua di grandi dimensioni in watsonx.ai basato sul contenuto della documentazione del prodotto. Ulteriori informazioni