Service SQL IBM i (AS/400) · Fonction table
SYSTOOLS.AUDIT_JOURNAL_IM
Journal d'audit : détection d'intrusion (IM)
Lit les entrées IM du journal d'audit : événements de détection d'intrusion (adresses, ports, type d'attaque) signalés par le système.
À quoi ça sert
Cette fonction de table lit les entrées de type IM du journal d'audit, écrites par la détection d'intrusion de l'IBM i. Chaque ligne décrit un événement : horodatage (EVENT_TIMESTAMP), adresses et ports local et distant, type de sonde (PROBE_TYPE) et type d'attaque (EVENT_ATTACK_TYPE), avec une version détaillée en clair.
C'est utile pour la sécurité réseau : on voit quelle adresse a sondé la machine, avec quel protocole, et à quelle fréquence. Le SQL permet de regrouper par adresse distante ou par type d'attaque, et de conserver les résultats pour suivre une campagne d'attaque dans le temps.
Les paramètres de sélection sont facultatifs, comme pour les autres fonctions d'audit. L'exemple d'IBM liste tous les événements d'intrusion de la semaine.
Résultat réel sur un IBM i 7.5
Ce que nous avons exécuté :
SELECT * FROM TABLE(SYSTOOLS.AUDIT_JOURNAL_IM(STARTING_TIMESTAMP => CURRENT TIMESTAMP - 90 DAYS)) X
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
Lister tous les événements d'intrusion de cette semaine.
-- Description: List all intrusion events for this week.
SELECT * FROM TABLE(
SYSTOOLS.AUDIT_JOURNAL_IM(
STARTING_TIMESTAMP => CURRENT TIMESTAMP - 7 DAYS ) );
Bon à savoir
Ces entrées dépendent de la configuration de la détection d'intrusion. Une machine exposée sur Internet gagne à regrouper les résultats par EVENT_REMOTE_ADDRESS pour repérer les sources récurrentes.
Paramètres
| Paramètre | Type | Par défaut | Signification |
|---|---|---|---|
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 (44)
Afficher les 44 colonnes
| Colonne | Type | Signification |
|---|---|---|
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 |
ENTRY_TYPE |
CHAR(1) | Type de l'entrée |
ENTRY_TYPE_DETAIL |
VARCHAR(200) | Détail du type de l'entrée |
EVENT_TIMESTAMP |
TIMESTAMP | Horodatage de l'événement |
EVENT_LOCAL_ADDRESS_FAMILY |
CHAR(4) | Famille d'adresses locales de l'événement |
EVENT_LOCAL_ADDRESS |
VARCHAR(45) | Adresse locale de l'événement |
EVENT_LOCAL_PORT |
INTEGER | Port local de l'événement |
EVENT_REMOTE_ADDRESS_FAMILY |
CHAR(4) | Famille d'adresses distantes de l'événement |
EVENT_REMOTE_ADDRESS |
VARCHAR(45) | Adresse distante de l'événement |
EVENT_REMOTE_PORT |
INTEGER | Port distant de l'événement |
PROBE_TYPE |
VARCHAR(6) | Type de sonde |
PROBE_TYPE_DETAIL |
VARCHAR(200) | Détail du type de sonde |
EVENT_CORRELATOR |
VARCHAR(4) | Corrélateur de l'événement |
EVENT_ATTACK_TYPE |
VARCHAR(8) | Type d'attaque de l'événement |
EVENT_ATTACK_TYPE_DETAIL |
VARCHAR(200) | Détail du type d'attaque de l'événement |
PROTOCOL |
VARCHAR(6) | Protocole |
CONDITION_NUMBER |
INTEGER | Numéro de condition |
THROTTLING_ACTIVE |
VARCHAR(3) | Limitation de débit active |
DISCARDED_PACKETS |
INTEGER | Paquets rejetés |
TARGET_TCPIP_STACK |
VARCHAR(10) | Pile TCP/IP cible |
SUSPECTED_PACKET |
BINARY VARYING | Paquet suspect |
FAILING_HANDSHAKE_LOCATION |
VARCHAR(6) | Emplacement de la négociation (handshake) en échec |
FAILING_HANDSHAKE_ERROR |
VARCHAR(40) | Erreur de la négociation (handshake) en échec |
DETECTION_POINT_ID |
VARCHAR(4) | Identifiant du point de détection |