Aller au contenu

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

SYSTOOLS.AUDIT_JOURNAL_PW

Journal d'audit : mots de passe invalides (PW)

Lit les entrées PW du journal d'audit : mots de passe ou profils invalides, avec le type de violation, l'unité, l'interface et l'origine de la connexion.

À quoi ça sert

Cette fonction de table lit les entrées de type PW du journal d'audit, écrites lors d'une tentative de connexion avec un mot de passe ou un profil incorrect. VIOLATION_TYPE et VIOLATION_TYPE_DETAIL donnent la raison. AUDIT_USER_NAME, DEVICE_NAME, INTERFACE_NAME et les colonnes de localisation indiquent qui a tenté de se connecter, depuis où et par quelle interface.

C'est l'outil de base pour détecter une attaque par force brute ou des comptes verrouillés à répétition. Le SQL permet de compter par type, par adresse ou par profil. L'exemple d'IBM compte chaque type de violation depuis hier, en appelant la fonction sans paramètre.

Appelée sans paramètre, la fonction renvoie la période par défaut. Les paramètres sont facultatifs et communs aux fonctions d'audit.

Résultat réel sur un IBM i 7.5

Ce que nous avons exécuté :

SELECT VIOLATION_TYPE CONCAT ' - ' CONCAT VIOLATION_TYPE_DETAIL,  
       COUNT(*) AS VIOLATION_COUNT 
  FROM TABLE ( 
      SYSTOOLS.AUDIT_JOURNAL_PW ( )  ) 
  GROUP BY VIOLATION_TYPE CONCAT ' - ' CONCAT VIOLATION_TYPE_DETAIL 
  ORDER BY 2 DESC

Ce que l'IBM i a renvoyé le 01/10/2026 (3 lignes au plus) :

00001 VIOLATION_COUNT
P - Mot de passe non valide 13
Q - Echec ouverture de session (authentification util) car profil utilisateur désactivé 3
U - Nom d’utilisateur non valide 3

Données anonymisées : les noms de système, de profils, de bibliothèques, de postes et les adresses IP ont été remplacés. Les objets du schéma JOBISQL sont des objets de démonstration créés pour ce site.

L'exemple d'IBM

Pour toutes les entrées d'audit de mots de passe d'hier et d'aujourd'hui, compter le nombre de chaque type de violation.

-- Description: For all the password audit journal entries from yesterday and today, 
   -- list the number of each type of audit violation. 
 SELECT VIOLATION_TYPE CONCAT ' - ' CONCAT VIOLATION_TYPE_DETAIL,  
       COUNT(*) AS VIOLATION_COUNT 
  FROM TABLE ( 
      SYSTOOLS.AUDIT_JOURNAL_PW ( )  ) 
  GROUP BY VIOLATION_TYPE CONCAT ' - ' CONCAT VIOLATION_TYPE_DETAIL 
  ORDER BY 2 DESC;

Bon à savoir

Regroupez aussi par REMOTE_LOCATION pour repérer une même source qui essaie plusieurs profils. Ces entrées dépendent de l'audit des échecs d'autorisation.

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 (35)

Afficher les 35 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
AUDIT_USER_NAME VARCHAR(10) Nom du profil utilisateur audité
DEVICE_NAME VARCHAR(40) Nom de l'unité
INTERFACE_NAME VARCHAR(40) Nom de l'interface
REMOTE_LOCATION VARCHAR(8) Emplacement distant
LOCAL_LOCATION VARCHAR(8) Emplacement local
NETWORK_ID VARCHAR(8) Identifiant du réseau
DECRYPT_HOST_VARIABLE VARCHAR(3) Variable hôte de déchiffrement
DECRYPT_OBJECT_LIBRARY VARCHAR(10) Bibliothèque de l'objet de déchiffrement
DECRYPT_OBJECT_NAME VARCHAR(10) Nom de l'objet de déchiffrement
DECRYPT_OBJECT_TYPE VARCHAR(8) Type de l'objet de déchiffrement
DECRYPT_OBJECT_ASP_NAME VARCHAR(10) Nom de l'ASP de l'objet de déchiffrement
DECRYPT_OBJECT_ASP_NUMBER INTEGER Numéro de l'ASP de l'objet de déchiffrement