ANAVEM
Languageen
Windows Event Viewer displaying Security log with Event ID 4689 process termination events on a cybersecurity monitoring dashboard
Event ID 4689InformationSecurityWindows

ID d'événement Windows 4689 – Sécurité : Audit de terminaison de processus

L'ID d'événement 4689 enregistre lorsqu'un processus se termine sur les systèmes Windows avec l'audit des processus activé. Cet événement de sécurité fournit des informations détaillées sur la gestion du cycle de vie des processus et est essentiel pour l'analyse judiciaire et la surveillance de la sécurité.

Emanuel DE ALMEIDAEmanuel DE ALMEIDA
18 mars 202612 min de lecture 0
Event ID 4689Security 5 méthodes 12 min
Référence événement

Signification de cet événement

L'ID d'événement 4689 est généré par le sous-système de sécurité Windows chaque fois qu'un processus surveillé se termine. Cet événement fait partie de la catégorie d'audit de suivi détaillé des processus et nécessite une configuration explicite via la stratégie de sécurité locale ou la stratégie de groupe pour devenir actif. L'événement capture le moment où un handle de processus est fermé et le processus est retiré de la table des processus du système.

L'événement contient plusieurs champs critiques, y compris l'ID de processus (PID), le nom du processus, le type d'élévation de jeton, la ligne de commande du processus (si configurée), l'ID du processus créateur et l'ID de sécurité du compte utilisateur qui a lancé le processus. Ces informations s'avèrent inestimables pour les équipes de réponse aux incidents de sécurité qui doivent reconstituer la séquence des événements lors d'une éventuelle violation de sécurité.

Windows génère cet événement pour tous les types de processus, y compris les processus système, les applications utilisateur, les services et même les processus de courte durée comme les utilitaires en ligne de commande. Le timing de l'événement est précis, se produisant au moment exact où le handle du processus est détruit par le noyau Windows. Cela rend l'ID d'événement 4689 extrêmement fiable pour la reconstruction de la chronologie judiciaire et l'analyse du comportement des processus.

Dans les environnements d'entreprise, cet événement est souvent transmis aux systèmes de gestion des informations et des événements de sécurité (SIEM) pour une surveillance et une analyse centralisées. Le format structuré de l'événement le rend idéal pour l'analyse automatisée et la corrélation avec d'autres événements de sécurité afin d'identifier des schémas d'activité malveillante ou d'exécution de processus non autorisée.

S'applique à

Windows 10Windows 11Windows Server 2019/2022/2025
Analyse

Causes possibles

  • Terminaison normale de l'application lorsqu'un utilisateur ferme un programme ou que l'application se termine naturellement
  • Terminaison de processus initiée par le Gestionnaire des tâches ou la commande taskkill
  • Arrêt du service lors du redémarrage du système ou des opérations d'arrêt manuel du service
  • Terminaison automatique du processus en raison de contraintes de ressources système ou de limites de mémoire
  • Crash de processus ou terminaison anormale en raison d'erreurs d'application ou d'instabilité du système
  • Logiciel de sécurité terminant des processus suspects ou malveillants
  • Arrêt ou redémarrage du système entraînant la terminaison de tous les processus en cours d'exécution
  • Terminaison du processus parent forçant la fermeture des processus enfants
  • Mise à jour Windows ou installation de logiciel nécessitant le redémarrage du processus
Méthodes de résolution

Étapes de dépannage

01

Activer l'audit de terminaison des processus

Avant que l'ID d'événement 4689 puisse apparaître, vous devez activer l'audit de terminaison de processus via la stratégie de groupe ou la stratégie de sécurité locale.

  1. Ouvrez Stratégie de sécurité locale en exécutant secpol.msc en tant qu'administrateur
  2. Accédez à Stratégies localesStratégie d'audit
  3. Double-cliquez sur Suivi des processus d'audit
  4. Cochez les options Succès et Échec
  5. Cliquez sur OK et redémarrez le système

Pour l'audit avancé sur Windows 10/11 et Server 2019+ :

  1. Exécutez gpedit.msc en tant qu'administrateur
  2. Accédez à Configuration de l'ordinateurParamètres WindowsParamètres de sécuritéConfiguration avancée de la stratégie d'audit
  3. Développez Suivi détaillé
  4. Activez Audit de la terminaison des processus pour les événements de succès
# Activer via PowerShell (nécessite des droits d'administrateur)
auditpol /set /subcategory:"Process Termination" /success:enable /failure:enable
Astuce pro : Utilisez des stratégies d'audit avancées pour un contrôle granulaire sur les événements de terminaison de processus enregistrés.
02

Interroger l'ID d'événement 4689 dans le Visualiseur d'événements

Une fois l'audit activé, les événements ID 4689 apparaîtront dans le journal de sécurité. Voici comment les localiser et les analyser :

  1. Ouvrez Observateur d'événements en exécutant eventvwr.msc
  2. Accédez à Journaux WindowsSécurité
  3. Dans le volet Actions, cliquez sur Filtrer le journal actuel
  4. Entrez 4689 dans le champ ID d'événements
  5. Cliquez sur OK pour filtrer les résultats

Utilisez PowerShell pour des requêtes plus avancées :

# Obtenir les 50 derniers événements de terminaison de processus
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4689} -MaxEvents 50 | Format-Table TimeCreated, Id, LevelDisplayName, Message -Wrap

# Filtrer par nom de processus spécifique
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4689} | Where-Object {$_.Message -like "*notepad.exe*"}

# Exporter vers CSV pour analyse
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4689} -MaxEvents 1000 | Select-Object TimeCreated, Id, LevelDisplayName, Message | Export-Csv -Path "C:\Temp\ProcessTermination.csv" -NoTypeInformation
Avertissement : Le journal de sécurité peut rapidement devenir volumineux avec l'audit des processus activé. Surveillez l'espace disque et configurez les politiques de rotation des journaux.
03

Analyser les modèles de terminaison de processus

Utilisez PowerShell pour identifier les modèles de terminaison de processus inhabituels qui pourraient indiquer des problèmes de sécurité :

# Grouper les événements de terminaison par nom de processus pour identifier les processus se terminant fréquemment
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4689} -MaxEvents 5000 | ForEach-Object {
    if ($_.Message -match 'Process Name:\s+(.+?)\r?\n') {
        $matches[1]
    }
} | Group-Object | Sort-Object Count -Descending | Select-Object Name, Count

# Trouver les processus terminés dans une fenêtre temporelle spécifique
$StartTime = (Get-Date).AddHours(-24)
$EndTime = Get-Date
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4689; StartTime=$StartTime; EndTime=$EndTime} | Format-Table TimeCreated, Message -Wrap

# Identifier les processus terminés par des utilisateurs spécifiques
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4689} | Where-Object {$_.Message -like "*DOMAIN\username*"}

Créez une fonction PowerShell personnalisée pour une analyse détaillée :

function Get-ProcessTerminationDetails {
    param(
        [int]$MaxEvents = 100,
        [string]$ProcessName = "*"
    )
    
    Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4689} -MaxEvents $MaxEvents | ForEach-Object {
        $Message = $_.Message
        $ProcessNameMatch = if ($Message -match 'Process Name:\s+(.+?)\r?\n') { $matches[1] } else { "Unknown" }
        $ProcessIdMatch = if ($Message -match 'Process ID:\s+(0x[0-9a-fA-F]+)') { $matches[1] } else { "Unknown" }
        
        if ($ProcessNameMatch -like $ProcessName) {
            [PSCustomObject]@{
                TimeCreated = $_.TimeCreated
                ProcessName = $ProcessNameMatch
                ProcessId = $ProcessIdMatch
                User = if ($Message -match 'Subject:\s+Security ID:\s+(.+?)\r?\n') { $matches[1] } else { "Unknown" }
            }
        }
    }
}
04

Configurer la surveillance avancée des processus

Pour une surveillance complète du cycle de vie des processus, configurez des paramètres d'audit supplémentaires et une corrélation avec l'ID d'événement 4688 :

  1. Activez l'audit de la ligne de commande pour capturer les détails complets de l'exécution des processus :
# Activer l'audit des processus de ligne de commande via le registre
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\Audit" -Name "ProcessCreationIncludeCmdLine_Enabled" -Value 1 -Type DWord

# Ou via la stratégie de groupe : Configuration de l'ordinateur > Modèles d'administration > Système > Création de processus d'audit > Inclure la ligne de commande dans les événements de création de processus
  1. Créez un script PowerShell pour corréler la création de processus (4688) avec la terminaison (4689) :
function Get-ProcessLifecycle {
    param([string]$ProcessName)
    
    # Obtenir les événements de création de processus
    $CreationEvents = Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4688} -MaxEvents 1000 | Where-Object {$_.Message -like "*$ProcessName*"}
    
    # Obtenir les événements de terminaison de processus
    $TerminationEvents = Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4689} -MaxEvents 1000 | Where-Object {$_.Message -like "*$ProcessName*"}
    
    # Corréler par ID de processus et heure
    foreach ($creation in $CreationEvents) {
        $creationPid = if ($creation.Message -match 'New Process ID:\s+(0x[0-9a-fA-F]+)') { $matches[1] }
        $termination = $TerminationEvents | Where-Object {
            $_.Message -match "Process ID:\s+$creationPid" -and $_.TimeCreated -gt $creation.TimeCreated
        } | Select-Object -First 1
        
        if ($termination) {
            $duration = $termination.TimeCreated - $creation.TimeCreated
            [PSCustomObject]@{
                ProcessName = $ProcessName
                ProcessId = $creationPid
                StartTime = $creation.TimeCreated
                EndTime = $termination.TimeCreated
                Duration = $duration.ToString()
            }
        }
    }
}
Conseil pro : Utilisez Windows Performance Toolkit (WPT) avec l'ID d'événement 4689 pour une analyse complète du comportement des processus dans les environnements d'entreprise.
05

Mettre en œuvre la surveillance et l'alerte automatisées

Configurez la surveillance automatisée pour les modèles de terminaison de processus suspects en utilisant PowerShell et le Planificateur de tâches :

  1. Créez un script de surveillance qui vérifie les modèles de terminaison inhabituels :
# ProcessTerminationMonitor.ps1
param(
    [int]$ThresholdCount = 10,
    [int]$TimeWindowMinutes = 60
)

$StartTime = (Get-Date).AddMinutes(-$TimeWindowMinutes)
$Events = Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4689; StartTime=$StartTime}

# Vérifiez les processus se terminant trop fréquemment
$ProcessCounts = $Events | ForEach-Object {
    if ($_.Message -match 'Process Name:\s+(.+?)\r?\n') {
        $matches[1]
    }
} | Group-Object | Where-Object {$_.Count -gt $ThresholdCount}

if ($ProcessCounts) {
    $AlertMessage = "Taux élevé de terminaison de processus détecté:`n"
    $ProcessCounts | ForEach-Object {
        $AlertMessage += "$($_.Name): $($_.Count) terminaisons`n"
    }
    
    # Envoyer une alerte (personnaliser si nécessaire)
    Write-EventLog -LogName Application -Source "ProcessMonitor" -EventId 1001 -EntryType Warning -Message $AlertMessage
    
    # Optionnel : Envoyer une alerte par email
    # Send-MailMessage -To "admin@company.com" -From "monitor@company.com" -Subject "Process Termination Alert" -Body $AlertMessage -SmtpServer "mail.company.com"
}
  1. Créez une tâche planifiée pour exécuter le script de surveillance :
# Créer une tâche planifiée pour la surveillance des processus
$Action = New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument "-ExecutionPolicy Bypass -File C:\Scripts\ProcessTerminationMonitor.ps1"
$Trigger = New-ScheduledTaskTrigger -RepetitionInterval (New-TimeSpan -Minutes 15) -RepetitionDuration (New-TimeSpan -Days 365) -At (Get-Date)
$Settings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -DontStopIfGoingOnBatteries -StartWhenAvailable
$Principal = New-ScheduledTaskPrincipal -UserId "SYSTEM" -LogonType ServiceAccount -RunLevel Highest

Register-ScheduledTask -TaskName "ProcessTerminationMonitor" -Action $Action -Trigger $Trigger -Settings $Settings -Principal $Principal
  1. Configurez le transfert d'événements Windows pour une surveillance centralisée :
# Configurer WinRM pour le transfert d'événements
winrm quickconfig -q
wecutil qc /q

# Créer un abonnement personnalisé de transfert d'événements
$SubscriptionXML = @"

    ProcessTermination
    SourceInitiated
    Forward Process Termination Events
    true
    http://schemas.microsoft.com/wbem/wsman/1/windows/EventLog
    Normal
    
            
                
            
        
    ]]>

"@

$SubscriptionXML | Out-File -FilePath "C:\Temp\ProcessTermination.xml"
wecutil cs "C:\Temp\ProcessTermination.xml"
Avertissement : La surveillance de la terminaison de processus à haute fréquence peut générer un volume de journaux important. Mettez en œuvre des stratégies de rotation et d'archivage des journaux pour éviter les problèmes d'espace disque.

Aperçu

L'ID d'événement 4689 se déclenche chaque fois qu'un processus se termine sur un système Windows qui a l'audit de processus et de terminaison de processus activé via la stratégie de groupe. Cet événement fait partie du cadre d'audit de sécurité Windows et apparaît dans le journal de sécurité, pas dans les journaux système ou application. L'événement capture des détails critiques sur le processus terminé, y compris son nom, l'ID de processus, l'ID de connexion et le compte utilisateur sous lequel il fonctionnait.

Cet événement est particulièrement précieux pour les professionnels de la sécurité menant des enquêtes judiciaires, surveillant un comportement de processus suspect ou suivant la gestion du cycle de vie des applications. Contrairement à l'ID d'événement 4688 qui enregistre la création de processus, l'ID d'événement 4689 se concentre spécifiquement sur les événements de terminaison de processus. L'événement nécessite que des politiques d'audit spécifiques soient configurées et n'apparaîtra pas par défaut sur la plupart des installations Windows.

Les administrateurs système utilisent souvent cet événement en conjonction avec l'ID d'événement 4688 pour construire des chronologies complètes d'exécution de processus. L'événement fournit des données essentielles pour comprendre quand les processus se terminent, s'ils se sont terminés normalement ou anormalement, et quel contexte utilisateur était responsable de l'exécution du processus.

Questions Fréquentes

Que signifie l'ID d'événement 4689 et quand apparaît-il ?+
L'ID d'événement 4689 indique qu'un processus s'est terminé sur un système Windows avec l'audit des processus activé. Cet événement apparaît dans le journal de sécurité chaque fois qu'un processus surveillé se termine, que ce soit par une terminaison normale, une action de l'utilisateur, un arrêt du système ou un crash du processus. L'événement nécessite que des politiques d'audit spécifiques soient configurées via la stratégie de groupe ou la stratégie de sécurité locale avant qu'il n'apparaisse. Il fournit des informations détaillées sur le processus terminé, y compris son nom, son ID de processus, le contexte utilisateur et l'heure de terminaison, ce qui le rend précieux pour la surveillance de la sécurité et l'analyse judiciaire.
Pourquoi ne vois-je pas l'ID d'événement 4689 dans mon Observateur d'événements ?+
L'ID d'événement 4689 n'apparaîtra pas par défaut car l'audit de terminaison des processus est désactivé sur la plupart des installations Windows. Vous devez l'activer explicitement via la Stratégie de sécurité locale (secpol.msc) en configurant 'Suivi des processus d'audit' ou via la Stratégie de groupe en utilisant 'Audit de la terminaison des processus' sous Configuration avancée de la stratégie d'audit. Après avoir activé la stratégie, vous devez redémarrer le système ou exécuter 'gpupdate /force' pour que les modifications prennent effet. De plus, assurez-vous de consulter le journal de sécurité, et non les journaux Système ou Application, car c'est là que les événements d'audit de sécurité sont enregistrés.
Comment puis-je corréler l'ID d'événement 4689 avec les événements de création de processus ?+
L'ID d'événement 4689 (arrêt de processus) doit être corrélé avec l'ID d'événement 4688 (création de processus) pour construire des chronologies complètes du cycle de vie des processus. Les deux événements partagent des champs communs tels que l'ID de processus, le nom du processus et le contexte utilisateur qui peuvent être utilisés pour la corrélation. Utilisez PowerShell pour faire correspondre les processus par leur ID de processus et assurez-vous que l'événement d'arrêt se produit après l'événement de création. L'ID de processus est généralement affiché au format hexadécimal (0x1234) dans les deux événements. Cette corrélation est essentielle pour comprendre le comportement des processus, identifier les activités suspectes et mener des enquêtes judiciaires où vous devez suivre le cycle de vie complet de processus spécifiques.
Quelle information l'ID d'événement 4689 fournit-il sur les processus terminés ?+
L'ID d'événement 4689 fournit des détails complets sur les processus terminés, y compris le nom du processus (chemin complet vers l'exécutable), l'ID du processus au format hexadécimal, le type d'élévation de jeton (indiquant le niveau de privilège), l'ID de sécurité du sujet (compte utilisateur qui a lancé le processus), l'ID de connexion pour la corrélation de session, et l'horodatage précis de la terminaison. Si l'audit de la ligne de commande est activé, il peut également inclure les arguments de la ligne de commande utilisés pour lancer le processus. Ces informations sont structurées dans un format cohérent qui les rend idéales pour l'analyse et le traitement automatisés par des outils de sécurité, des systèmes SIEM et des scripts PowerShell pour la surveillance de la sécurité et la réponse aux incidents.
L'ID d'événement 4689 peut-il aider à détecter une activité de processus malveillant ?+
Oui, l'ID d'événement 4689 est précieux pour détecter une activité de processus malveillant lorsqu'il est utilisé dans le cadre d'une stratégie de surveillance de sécurité complète. Des schémas inhabituels comme la terminaison fréquente d'outils de sécurité, des processus se terminant immédiatement après leur création, ou des processus étant terminés par des comptes utilisateurs inattendus peuvent indiquer une activité malveillante. Corréler les événements de terminaison avec les événements de création (4688) aide à identifier les processus malveillants de courte durée, les tentatives d'injection de processus, ou les techniques d'évasion des outils de sécurité. Cependant, cet événement doit être analysé en parallèle avec d'autres événements de sécurité, les journaux réseau, et l'activité du système de fichiers pour une détection efficace des menaces. Des scripts de surveillance automatisés peuvent alerter sur des schémas de terminaison suspects qui nécessitent une enquête plus approfondie.
Documentation

Références (2)

Emanuel DE ALMEIDA
Écrit par

Emanuel DE ALMEIDA

Senior IT Journalist & Cloud Architect

Microsoft MCSA-certified Cloud Architect | Fortinet-focused. I modernize cloud, hybrid & on-prem infrastructure for reliability, security, performance and cost control - sharing field-tested ops & troubleshooting.

Événements Windows associés

Windows security monitoring dashboard displaying audit events and privilege tracking logs
Event 6276
Microsoft-Windows-Security-Auditing
Windows EventInformation

ID d'événement Windows 6276 – Microsoft-Windows-Security-Auditing : Privilèges spéciaux attribués à une nouvelle connexion

L'ID d'événement 6276 enregistre lorsque des privilèges spéciaux sont attribués à un compte utilisateur lors de la connexion, indiquant que des droits d'accès élevés ont été accordés pour la session.

18 mars9 min
Windows security monitoring dashboard displaying privilege assignment events in a professional SOC environment
Event 6274
Microsoft-Windows-Security-Auditing
Windows EventInformation

ID d'événement Windows 6274 – Microsoft-Windows-Security-Auditing : Privilèges spéciaux attribués à une nouvelle connexion

L'ID d'événement 6274 enregistre lorsque des privilèges spéciaux sont attribués à une nouvelle session de connexion utilisateur, indiquant que des droits d'accès élevés ont été accordés pour des opérations sensibles à la sécurité.

18 mars9 min
Network Policy Server monitoring dashboard showing authentication events and security logs
Event 6273
Microsoft-Windows-Security-Auditing
Windows EventInformation

ID d'événement Windows 6273 – Microsoft-Windows-Security-Auditing : Accès accordé par le serveur de stratégie réseau

L'ID d'événement 6273 indique que le serveur de politique réseau (NPS) a accordé l'accès au réseau à un utilisateur ou un appareil après une authentification et une autorisation réussies via les protocoles RADIUS.

18 mars9 min
Network operations center displaying Windows NPS authentication monitoring dashboards and security event logs
Event 6272
Microsoft-Windows-Security-Auditing
Windows EventInformation

ID d'événement Windows 6272 – Microsoft-Windows-Security-Auditing : Serveur de stratégie réseau a accordé l'accès

L'ID d'événement 6272 indique que le serveur de politique réseau (NPS) a accordé l'accès au réseau à un utilisateur ou un appareil après une authentification et une autorisation réussies via les protocoles RADIUS.

18 mars12 min

Discussion

Partagez vos réflexions et analyses

Vous devez être connecté pour commenter.

Chargement des commentaires...