Aller au contenu

Service SQL IBM i (AS/400) · Fonction table

SYSTOOLS.AUDIT_JOURNAL_AF

Journal d'audit : échecs d'autorisation (AF)

Lit les entrées AF du journal d'audit : échecs d'autorisation, accès refusés et violations de sécurité (objets, IFS, ports, API, PTF).

À quoi ça sert

Cette fonction de table lit les entrées de type AF du journal d'audit. Chaque ligne correspond à un accès refusé ou à une violation de sécurité : droit insuffisant sur un objet, un chemin IFS, un port TCP/IP, une API, etc. VIOLATION_TYPE et VIOLATION_TYPE_DETAIL donnent la nature de l'infraction.

C'est l'une des fonctions les plus utiles pour la sécurité : on repère les tentatives d'accès anormales, ou l'application qui plante parce qu'il lui manque un droit. Les colonnes d'objet (OBJECT_LIBRARY, OBJECT_NAME, PATH_NAME) disent ce qui était visé, et REMOTE_ADDRESS d'où venait la demande.

Les paramètres sont facultatifs et communs aux fonctions d'audit : bornes de récepteurs, d'horodatage et de séquence, utilisateur, travail, programme. Ces entrées n'existent que si l'audit des échecs d'autorisation est activé.

Résultat réel sur un IBM i 7.5

Ce que nous avons exécuté :

SELECT * FROM TABLE( 
  SYSTOOLS.AUDIT_JOURNAL_AF( 
    STARTING_TIMESTAMP => CURRENT TIMESTAMP - 1 DAY )) 
  WHERE PATH_NAME IS NOT NULL

Aucune entrée de ce type dans le journal d'audit sur les 90 derniers jours : ce type d'événement n'est pas audité ou ne s'est pas produit sur notre IBM i de test.

L'exemple d'IBM

Trouver les échecs d'autorisation sur des objets du système de fichiers intégré (IFS) au cours des dernières 24 heures.

-- Description: Find any authority failures for Integrated File System (IFS) objects 
     -- in the past 24 hours. 
 SELECT * FROM TABLE( 
  SYSTOOLS.AUDIT_JOURNAL_AF( 
    STARTING_TIMESTAMP => CURRENT TIMESTAMP - 1 DAY )) 
  WHERE PATH_NAME IS NOT NULL;

Bon à savoir

Pour un tableau de bord, regroupez sur VIOLATION_TYPE_DETAIL et USER_NAME avec COUNT(*) : un utilisateur qui cumule des échecs est un bon signal. Le droit *AUDIT est en général requis.

Paramètres

ParamètreTypePar défautSignification
STARTING_RECEIVER_NAME VARCHAR(10) '*CURAVLCHN' Nom du récepteur de journal de départ
ENDING_RECEIVER_NAME VARCHAR(10) '*CURRENT' Nom du récepteur de journal de fin
STARTING_TIMESTAMP TIMESTAMP NULL Horodatage de début
ENDING_TIMESTAMP TIMESTAMP NULL Horodatage de fin
USER_NAME VARCHAR(10) '*ALL' Nom du profil utilisateur
JOB VARCHAR(28) '*ALL' Nom qualifié du travail
PROGRAM VARCHAR(10) '*ALL' Programme
STARTING_SEQUENCE DECIMAL(21, 0) NULL Numéro de séquence de départ
ENDING_SEQUENCE DECIMAL(21, 0) NULL Numéro de séquence de fin
STARTING_RECEIVER_LIBRARY VARCHAR(10) '*CURRENT' Bibliothèque du récepteur de journal de départ
ENDING_RECEIVER_LIBRARY VARCHAR(10) '*CURRENT' Bibliothèque du récepteur de journal de fin

Colonnes renvoyées (49)

Afficher les 49 colonnes
ColonneTypeSignification
ENTRY_TIMESTAMP TIMESTAMP Horodatage de l'entrée
SEQUENCE_NUMBER DECIMAL(21, 0) Numéro de séquence
USER_NAME VARCHAR(10) Nom du profil utilisateur
QUALIFIED_JOB_NAME VARCHAR(28) Nom qualifié du travail
JOB_NAME VARCHAR(10) Nom du travail
JOB_USER VARCHAR(10) Profil utilisateur du travail
JOB_NUMBER VARCHAR(6) Numéro du travail
THREAD BIGINT Unité d'exécution (thread)
PROGRAM_LIBRARY VARCHAR(10) Bibliothèque du programme
PROGRAM_NAME VARCHAR(10) Nom du programme
PROGRAM_LIBRARY_ASP_DEVICE VARCHAR(10) Unité ASP de la bibliothèque du programme
PROGRAM_LIBRARY_ASP_NUMBER INTEGER Numéro de l'ASP de la bibliothèque du programme
REMOTE_PORT INTEGER Port distant
REMOTE_ADDRESS VARCHAR(46) Adresse distante
SYSTEM_NAME VARCHAR(8) Nom du système
SYSTEM_SEQUENCE_NUMBER DECIMAL(21, 0) Numéro de séquence système
RECEIVER_LIBRARY VARCHAR(10) Bibliothèque du récepteur de journal
RECEIVER_NAME VARCHAR(10) Nom du récepteur de journal
RECEIVER_ASP_DEVICE VARCHAR(10) Unité ASP du récepteur de journal
RECEIVER_ASP_NUMBER INTEGER Numéro d'ASP du récepteur de journal
ARM_NUMBER INTEGER Numéro ARM
VIOLATION_TYPE CHAR(1) Type de violation
VIOLATION_TYPE_DETAIL VARCHAR(200) Détail du type de violation
VALIDATION_ERROR_ACTION CHAR(1) Action sur erreur de validation
VALIDATION_ERROR_ACTION_DETAIL VARCHAR(200) Détail de l'action sur erreur de validation
OPERATION_VIOLATION_CODE CHAR(3) Code de violation de l'opération
OBJECT_LIBRARY VARCHAR(10) Bibliothèque de l'objet
OBJECT_NAME VARCHAR(10) Nom de l'objet
OBJECT_TYPE VARCHAR(7) Type de l'objet
OBJECT_ASP_NAME VARCHAR(10) Nom de l'ASP de l'objet
OBJECT_ASP_NUMBER INTEGER Numéro de l'ASP de l'objet
FIELD_NAME VARCHAR(10) Nom de la zone
TCPIP_PORT INTEGER Port TCP/IP
API_NAME VARCHAR(20) Nom de l'API
PTF_NUMBER CHAR(7) Numéro de la PTF
AAC_NAME VARCHAR(30) Nom de l'entrée de contrôle d'accès à l'application
USER_PROFILE_NAME VARCHAR(10) Nom du profil utilisateur
WORKSTATION_NAME VARCHAR(10) Nom du poste de travail
PROGRAM_INSTRUCTION INTEGER Instruction du programme
PATH_NAME GRAPHIC VARYING Chemin
PATH_NAME_INDICATOR VARCHAR(3) Indicateur du chemin
RELATIVE_DIRECTORY_FILE_ID BINARY(16) Identifiant de fichier du répertoire relatif
IFS_OBJECT_NAME GRAPHIC VARYING Nom de l'objet IFS
OBJECT_FILE_ID BINARY(16) Identifiant de fichier de l'objet
PARENT_FILE_ID BINARY(16) Identifiant du fichier parent
OFFICE_USER VARCHAR(10) Utilisateur Bureautique
OFFICE_ON_BEHALF_OF_USER VARCHAR(10) Utilisateur Bureautique représenté
DLO_NAME VARCHAR(12) Nom de l'objet bibliothèque de documents (DLO)
FOLDER_PATH VARCHAR(63) Chemin du dossier