0 / 0
Retourner à la version anglaise de la documentation
Contrôle de l'accès aux données avec la fonction d'audit " Db2 dans la Data Virtualization
Dernière mise à jour : 26 nov. 2024
Contrôle de l'accès aux données à l'aide de politiques d'audit dans le cadre de la Data Virtualization

Pour gérer l'accès à vos données sensibles, vous pouvez utiliser des mécanismes d'authentification et de contrôle d'accès pour établir des règles et des contrôles pour l'accès aux données. Cependant, pour vous protéger et découvrir des comportements inconnus ou inacceptables, vous pouvez surveiller l'accès aux données à l'aide de la fonction d'audit Db2®.

Une surveillance réussie de l'accès aux données non désirées et une analyse subséquente peuvent mener à des améliorations dans le contrôle de l'accès aux données et à la prévention ultime d'un accès non autorisé malveillant ou négligent aux données. La surveillance de l'accès à l'application et à l'utilisateur individuel, y compris les actions d'administration système, peut fournir un enregistrement d'historique d'activité sur vos systèmes de base de données.

Vous pouvez utiliser la fonction d'audit Db2 pour générer et gérer une trace d'audit pour une série d'événements de base de données prédéfinis. Pour chaque catégorie d'événements disponibles pour l'audit, un mot clé d'un mot est utilisé pour identifier le type de catégorie après le nom de la catégorie. Les catégories d'événements suivantes sont disponibles pour l'audit :
Audit (AUDIT)
Génère des enregistrements lorsque les paramètres d'audit sont modifiés ou lorsque le journal d'audit est accessible.
Vérification d'autorisation (CHECKING)
Génère des enregistrements lors de la vérification d'autorisation des tentatives d'accès ou de manipulation des objets ou des fonctions de base de données Db2.
Maintenance des objets (OBJMAINT)
Génère des enregistrements lors de la création ou de la suppression d'objets de données et lors de la modification de certains objets.
Maintenance de la sécurité (SECMAINT)
Génère des enregistrements pour les conditions suivantes :
  • Octrode ou révocation de privilèges d'objet ou d'autorités de base de données.
  • Octroer ou révoquer des étiquettes de sécurité ou des exemptions.
  • Modification de l'autorisation de groupe, de l'autorisation de rôle ou de la substitution ou restriction des attributs d'une stratégie de sécurité LBAC.
  • Octrode ou révocation du privilège SETSESSIONUSER.
  • Modification de l'un des paramètres de configuration SYSADM_GROUP, SYSCTRL_GROUP, SYSMAINT_GROUP ou SYSMON_GROUP.
Administration système (SYSADMIN)
Génère des enregistrements lorsque des opérations nécessitant des droits SYSADM, SYSMAINT ou SYSCTRL sont exécutées.
Validation utilisateur (VALIDATE)
Génère des enregistrements lors de l'authentification des utilisateurs ou de l'extraction des informations de sécurité du système.
Contexte de l'opération (CONTEXTE)
Génère des enregistrements pour afficher le contexte d'opération lorsqu'une opération de base de données est effectuée. Cette catégorie permet une meilleure interprétation du fichier journal d'audit. Lorsqu'il est utilisé avec la zone corrélateur d'événements du journal, un groupe d'événements peut être associé à une opération de base de données unique. Par exemple, une instruction de requête pour les requêtes dynamiques, un identificateur de package pour les requêtes statiques ou un indicateur du type d'opération en cours d'exécution, comme CONNECT, peut fournir le contexte nécessaire lors de l'analyse des résultats d'audit.
Exécuter (EXECUTE)
Génère des enregistrements lors de l'exécution d'instructions SQL.

Pour toutes les catégories répertoriées, vous pouvez vérifier les échecs, les réussites ou les deux.

Toutes les opérations sur le serveur de base de données peuvent générer plusieurs enregistrements. Le nombre réel d'enregistrements générés dans le journal d'audit dépend du nombre de catégories d'événements à enregistrer comme indiqué par la configuration de la fonction d'audit. Cela dépend aussi de la vérification des succès, des échecs ou des deux. Il est important d'être sélectif des événements à vérifier.

Les enregistrements générés à partir de cette fonction peuvent être visualisés à partir d'un ensemble de tables AUDIT où chaque table correspond à chaque catégorie. L'analyse de ces enregistrements peut révéler des modèles d'utilisation qui permettent d'identifier le mauvais usage du système. Lorsqu'une mauvaise utilisation est identifiée, des mesures peuvent être prises pour réduire ou éliminer le mauvais usage du système.

La fonction d'audit permet d'effectuer une vérification au niveau de la base de données. Tout membre du groupe administrateur peut configurer une règle d'audit pour contrôler le moment où ces informations d'audit sont collectées, telles que les ID d'autorisation de surveillance, les droits de base de données, les contextes sécurisés ou les tables particulières.

Démarrage rapide

  • AUDIT_ALL est une règle prédéfinie configurée lors du déploiement. Cette politique vérifie toutes les réussites et tous les échecs pour chaque catégorie de dossiers de vérification. Il est recommandé de créer une règle personnalisée qui correspond à vos besoins.
  • AUDIT_UPDATE est une procédure prédéfinie qui extrait et charge les enregistrements d'audit au format AUDIT.* tables.
  • Les instructions AUDIT exigent que les utilisateurs possèdent les droits SECADM. Pour afficher les données dans AUDIT.* , les utilisateurs qui reçoivent le privilège SELECT sur ces tables sont en mesure d'y accéder.
Important: Lorsqu'une règle d'audit est activée et que la tâche d'audit est planifiée, AUDIT.* Les tables accumulent de l'espace sur votre système. Vous devez gérer le stockage utilisé par le AUDIT.* tables. Vous devez exporter périodiquement les données d'audit pour le stocker hors ligne et nettoyer les données dans le AUDIT.* tables.
Pour permettre à AUDIT de capturer tous les événements du service pour chaque rôle
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;
Créer une tâche de mise à jour d'audit planifiée pour obtenir les derniers enregistrements d'audit dans les tables d'audit toutes les 15 minutes (intervalle minimal entre les mises à jour)
CALL SYSPROC.ADMIN_TASK_ADD( 'AUDIT_UPDATE', NULL, NULL, NULL, '*/15 * * * *', 'AUDIT', 'UPDATE', NULL, NULL, 'Periodically update to audit tables' );
Pour afficher les enregistrements d'audit des 8 catégories d'événements d'audit
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;

Pour plus d'informations, voir Règles d'audit.


Créer une règle d'audit
CREATE AUDIT POLICY policy_name CATEGORIES category or ALL STATUS status ERROR TYPE NORMAL;

Pour plus d'informations, voir Instruction CREATE AUDIT POLICY.

Noms des règles d'audit
Vérifiez que le nom est unique et que son objectif est facilement identifiable, par exemple, AUDIT_SOC2_COMPLIANCE ou AUDIT_LOGIN_ONLY. Ne commencez pas le nom par SYS car il est réservé aux noms de système internes dans la base de données.
Catégories à vérifier
La politique détermine les catégories à vérifier. Cette règle peut être appliquée à d'autres objets de base de données pour déterminer comment l'utilisation de ces objets doit être auditée. Il y a huit catégories à vérifier. Plus les catégories sont configurées, plus les informations sont auditées et s'accumulent dans la mémoire tampon d'audit qui prend en compte l'espace de traitement. Il est important de comprendre ce qui est nécessaire à votre fin pour éviter de surcharger l'espace de traitement de votre système. Le résumé décrit chaque catégorie disponible. Si ALL est spécifié en tant qu'option de catégorie, aucune autre catégorie ne peut être spécifiée.
Pour se conformer à la plupart des normes de sécurité, les catégories recommandées dans la liste suivante traitent du contrôle d'accès, de l'authentification et du contrôle d'accès privilégié. La configuration des règles avec ces catégories fera en sorte qu'il y aura un minimum de temps système tout en maintenant la sécurité.
  • EXECUTE WITHOUT DATA - Contrôle d'accès
  • VALIDATE - Authentification
  • SECMAINT - Contrôle d'accès privilégié
En outre, pour chaque catégorie, les scénarios de réussite et d'échec doivent être vérifiés et le type d'erreur ne doit consigner que les erreurs de code SQL.
  • STATUS BOTH
  • ERROR TYPE NORMAL


Commencez à utiliser votre politique d'audit
AUDIT database_entity USING POLICY policy_name;

Pour plus d'informations, voir Instruction AUDIT.



Configurer une règle d'audit personnalisée

Vous pouvez configurer une règle d'audit personnalisée pour capturer les demandes d'authentification et les commandes SQL correctement exécutées et l'activer.

CREATE AUDIT POLICY AUDIT_VALIDATE_EXECUTE CATEGORIES VALIDATE STATUS BOTH, EXECUTE STATUS SUCCESS ERROR TYPE NORMAL;
Objets de base de données à vérifier
La vérification de l'ensemble de la base de données entraînera une surcharge de l'espace de calcul. La recommandation consiste à identifier la table et la table de requêtes matérialisées (MQT) associées pour appliquer une règle.
Remarque: La règle d'audit qui s'applique à une table ne s'applique pas à une table de requêtes matérialisée (MQT) basée sur cette table. Il est recommandé que si vous associez une règle d'audit à une table, vous associez également cette règle à un MQT basé sur cette table. Le compilateur peut utiliser automatiquement un MQT, même si une instruction SQL fait référence à la table de base ; cependant, la règle d'audit utilisée pour la table de base sera toujours en vigueur.

Une autre configuration recommandée consiste à appliquer une règle à un groupe ou un rôle. Vous pouvez utiliser cette configuration pour surveiller les utilisateurs dans lesquels le groupe et le rôle effectuent des actions inattendues. Si vous choisissez d'appliquer une règle à l'ensemble de la base de données, assurez-vous que la règle ne conserve pas un enregistrement de toutes les catégories.

Activer la règle d'audit pour une table
AUDIT TABLE CUSTOMTABLE USING POLICY AUDIT_VALIDATE_EXECUTE;

Vous pouvez également configurer une règle d'audit personnalisée pour capturer uniquement les demandes d'authentification (succès et échecs) et l'activer.

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


Afficher toutes les règles d'audit qui ont été créées
select * from SYSCAT.AUDITPOLICIES;
L'exemple de sortie suivant est le résultat de l'exécution de l'instruction SELECT précédente :

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.


Vérifier quelles règles d'audit sont actuellement utilisées
select * from SYSCAT.AUDITUSE;
L'exemple de sortie suivant est le résultat de l'exécution de l'instruction SELECT précédente :

AUDITPOLICYNAME           AUDITPOLICYID OBJECTTYPE SUBOBJECTTYPE OBJECTSCHEMA  OBJECTNAME        AUDITEXCEPTIONENABLED

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

AUDIT_VALIDATE_ONLY                 108                          -             CURRENT SERVER    N

  1 record(s) selected.


Arrêter l'audit sur une entité de base de données

Pour arrêter un audit sur une entité de base de données, la règle doit être supprimée.

AUDIT database_entity REMOVE POLICY;

Pour plus d'informations, voir Instruction AUDIT.



Arrêter l'audit d'un groupe
AUDIT GROUP BLUUSERS REMOVE POLICY;


Créer une tâche planifiée

Pour plus d'informations, voir Procédure ADMIN_TASK_ADD-Planification d'une nouvelle tâche.

Pour créer une tâche de mise à jour d'audit planifiée pour obtenir les derniers enregistrements d'audit dans les tables d'audit toutes les 20 minutes :
CALL SYSPROC.ADMIN_TASK_ADD( 'AUDIT_UPDATE', NULL, NULL, NULL, '*/20 * * * *', 'AUDIT', 'UPDATE', NULL, NULL, 'Periodically update to audit tables' );
Pour plus d'informations, voir Format cron UNIX pour le format de planification.
Fréquence de planification
Fréquence d'exécution de la tâche prédéfinie qui archive les journaux d'audit hors de la portée de ce test, mais il convient de noter les recommandations qui sont collectées à partir de situations client réelles. Avec des bases de données plus grandes, la recommandation est d'exécuter la tâche d'archivage tous les jours pendant 15 minutes. Cela permet à la base de données de récupérer s'il existe des problèmes de performances inattendus. Si les politiques sont configurées comme recommandé, les tampons d'audit devraient être en mesure de contenir la charge de travail dans ce délai. Comme les tests de performances l'ont montré, si des requêtes compliquées sont exécutées en même temps que les archives des enregistrements d'audit, des problèmes de performances sont attendus.


Modifier une tâche planifiée

Pour plus d'informations, voir la procédure ADMIN_TASK_UPDATE - Mise à jour d'une tâche existante.

Pour modifier une tâche de mise à jour d'audit planifiée pour obtenir les derniers enregistrements d'audit dans les tables d'audit toutes les 20 minutes :
CALL SYSPROC.ADMIN_TASK_UPDATE( 'AUDIT_UPDATE', NULL, NULL, NULL, '*/20 * * * *', 'Periodically update to audit tables every 20 minutes' );
Pour supprimer la tâche de mise à jour d'audit planifiée :
CALL SYSPROC.ADMIN_TASK_REMOVE( 'AUDIT_UPDATE', NULL );
Pour plus d'informations, voir Procédure ADMIN_TASK_REMOVE-Suppression des tâches planifiées ou des enregistrements d'état des tâches.


Surveillance de l'état de la tâche de mise à jour d'audit planifiée
select * from SYSTOOLS.ADMIN_TASK_STATUS;
L'exemple de sortie suivant est le résultat de l'exécution de l'instruction SELECT précédente :

  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.
  


Charger les enregistrements d'audit les plus récents dans la base de données AUDIT.* Tables immédiatement
CALL AUDIT.UPDATE();
Remarque: Après avoir exécuté cet appel de procédure, vous pouvez rencontrer le message suivant:
SQL1307N Une erreur s'est produite lors de l'appel de la fonction d'audit de sécurité.  Code anomalie : "9".

Ce message indique qu'il n'y a pas eu d'activité depuis la dernière fois que les tables d'audit ont été chargées avec des données. Il n'indique pas une erreur du système.


Recherche et réponse à l'IA générative
Ces réponses sont générées par un modèle de langue de grande taille dans watsonx.ai en fonction du contenu de la documentation du produit. En savoir plus