ANAVEM
Languageen
Windows security monitoring dashboard displaying Event ID 4907 object access audit logs in a professional SOC environment
Event ID 4907InformationMicrosoft-Windows-Security-AuditingWindows

ID d'événement Windows 4907 – Microsoft-Windows-Security-Auditing : Une poignée vers un objet a été demandée

L'ID d'événement 4907 enregistre lorsqu'un processus demande un handle à un objet système. Cet événement d'audit de sécurité suit les tentatives d'accès aux objets à des fins de conformité et de surveillance de la sécurité.

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

Signification de cet événement

L'ID d'événement 4907 représente un composant fondamental de l'infrastructure d'audit de sécurité de Windows. Lorsqu'il est activé, cet événement offre une visibilité granulaire sur les modèles d'accès aux objets à travers le système. L'événement capture le moment où un processus demande un handle pour accéder à un objet système, que l'accès soit finalement accordé ou refusé.

L'événement contient des métadonnées riches, y compris l'ID de processus, l'ID de thread, le contexte du compte utilisateur, le nom de l'objet, le type d'objet et les droits d'accès spécifiques demandés. Ces informations permettent aux équipes de sécurité de construire des modèles d'accès complets et d'identifier les violations potentielles de sécurité ou les infractions aux politiques.

Dans Windows Server 2025 et Windows 11 24H2, Microsoft a amélioré la structure de l'événement pour inclure un contexte supplémentaire sur l'application demandeuse et une meilleure corrélation avec d'autres événements de sécurité. L'événement s'intègre parfaitement avec Windows Defender Advanced Threat Protection (ATP) et Microsoft Sentinel pour des scénarios avancés de détection de menaces.

Les organisations voient généralement de grands volumes d'ID d'événement 4907 lorsque l'audit d'accès aux objets est activé, rendant les outils de filtrage et d'analyse appropriés essentiels pour une surveillance efficace. L'événement est particulièrement précieux lors de l'enquête sur des tentatives d'exfiltration de données, d'escalade de privilèges ou de modifications non autorisées du système.

S'applique à

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

Causes possibles

  • Processus tentant d'ouvrir un descripteur de fichier pour des opérations de lecture, d'écriture ou d'exécution
  • Application demandant l'accès à des clés de registre pour la configuration ou le stockage de données
  • Service ou pilote demandant des descripteurs pour des objets système comme des processus ou des threads
  • Logiciel de sécurité effectuant des analyses système et accédant à des objets protégés
  • Applications utilisateur accédant à des partages réseau ou à des lecteurs mappés
  • Outils de maintenance système accédant à des fichiers ou répertoires système
  • Logiciel de sauvegarde demandant l'accès à des fichiers et dossiers
  • Moteurs antivirus scannant des fichiers et demandant des descripteurs d'objets
Méthodes de résolution

Étapes de dépannage

01

Examiner les détails de l'événement dans le Visualiseur d'événements

Commencez par examiner les détails spécifiques de l'ID d'événement 4907 pour comprendre le contexte de la demande d'accès.

  1. Ouvrez Observateur d'événements en appuyant sur Win + R, en tapant eventvwr.msc, et en appuyant sur Entrée
  2. Accédez à Journaux WindowsSécurité
  3. Filtrez pour l'ID d'événement 4907 en cliquant avec le bouton droit sur le journal Sécurité et en sélectionnant Filtrer le journal actuel
  4. Dans la boîte de dialogue de filtrage, entrez 4907 dans le champ ID d'événements et cliquez sur OK
  5. Double-cliquez sur un événement 4907 pour voir des informations détaillées, y compris :
    • Sujet : Compte utilisateur effectuant la demande
    • Objet : Nom et type de l'objet cible
    • Informations sur le processus : ID et nom du processus
    • Informations sur la demande d'accès : Droits d'accès demandés
  6. Notez le champ Nom de l'objet pour identifier quel objet spécifique a été accédé
  7. Vérifiez la valeur du Masque d'accès pour comprendre le type d'accès demandé
Astuce pro : Utilisez l'onglet Détails en vue XML pour une analyse programmatique des données d'événement.
02

Interroger les événements avec PowerShell

Utilisez PowerShell pour interroger et analyser efficacement les occurrences de l'ID d'événement 4907 sur des plages de temps.

  1. Ouvrez PowerShell en tant qu'administrateur
  2. Interrogez les entrées récentes de l'ID d'événement 4907 :
    Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4907} -MaxEvents 50 | Format-Table TimeCreated, Id, LevelDisplayName, Message -Wrap
  3. Filtrez les événements par plage de temps spécifique :
    $StartTime = (Get-Date).AddHours(-24)
    $EndTime = Get-Date
    Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4907; StartTime=$StartTime; EndTime=$EndTime}
  4. Extrayez des propriétés d'événement spécifiques pour l'analyse :
    Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4907} -MaxEvents 100 | ForEach-Object {
        $Event = [xml]$_.ToXml()
        [PSCustomObject]@{
            TimeCreated = $_.TimeCreated
            ProcessName = $Event.Event.EventData.Data | Where-Object {$_.Name -eq 'ProcessName'} | Select-Object -ExpandProperty '#text'
            ObjectName = $Event.Event.EventData.Data | Where-Object {$_.Name -eq 'ObjectName'} | Select-Object -ExpandProperty '#text'
            SubjectUserName = $Event.Event.EventData.Data | Where-Object {$_.Name -eq 'SubjectUserName'} | Select-Object -ExpandProperty '#text'
        }
    }
  5. Exportez les résultats vers un fichier CSV pour une analyse plus approfondie :
    Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4907} -MaxEvents 1000 | Export-Csv -Path "C:\Temp\Event4907_Analysis.csv" -NoTypeInformation
Avertissement : Les requêtes volumineuses peuvent affecter les performances du système. Utilisez le paramètre -MaxEvents pour limiter les résultats.
03

Configurer la stratégie d'audit d'accès aux objets

Configurez correctement les politiques d'audit pour garantir que l'ID d'événement 4907 capture les événements de sécurité pertinents sans surcharger le système.

  1. Ouvrez Éditeur de stratégie de groupe locale en exécutant gpedit.msc
  2. Accédez à Configuration de l'ordinateurParamètres WindowsParamètres de sécuritéConfiguration avancée de la stratégie d'auditStratégies d'auditAccès aux objets
  3. Configurez les politiques suivantes:
    • Audit du système de fichiers: Réglez sur Succès et Échec pour une surveillance complète
    • Audit du registre: Activez pour la surveillance de l'accès au registre
    • Audit de la manipulation des poignées: Activez pour suivre les opérations de poignée
  4. Appliquez un audit spécifique aux objets critiques en utilisant auditpol.exe:
    auditpol /set /subcategory:"File System" /success:enable /failure:enable
    auditpol /set /subcategory:"Registry" /success:enable /failure:enable
    auditpol /set /subcategory:"Handle Manipulation" /success:enable /failure:enable
  5. Configurez la SACL (Liste de contrôle d'accès système) sur des fichiers ou dossiers spécifiques:
    $Path = "C:\Sensitive\Data"
    $AccessRule = New-Object System.Security.AccessControl.FileSystemAuditRule("Everyone", "FullControl", "ContainerInherit,ObjectInherit", "None", "Success,Failure")
    $ACL = Get-Acl $Path
    $ACL.SetAuditRule($AccessRule)
    Set-Acl -Path $Path -AclObject $ACL
  6. Vérifiez les paramètres actuels de la politique d'audit:
    auditpol /get /category:"Object Access"
Astuce pro : Commencez par un audit sélectif sur des objets critiques avant d'activer un audit à l'échelle du système pour gérer le volume des journaux.
04

Analyser les modèles d'accès et corréler les événements

Effectuer une analyse avancée pour identifier les modèles d'accès suspects et corréler l'ID d'événement 4907 avec d'autres événements de sécurité.

  1. Créer un script PowerShell pour analyser les modèles d'accès:
    # Analyser les modèles de l'événement 4907
    $Events = Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4907} -MaxEvents 5000
    $Analysis = $Events | ForEach-Object {
        $Event = [xml]$_.ToXml()
        $EventData = $Event.Event.EventData.Data
        [PSCustomObject]@{
            Time = $_.TimeCreated
            User = ($EventData | Where-Object {$_.Name -eq 'SubjectUserName'}).'#text'
            Process = ($EventData | Where-Object {$_.Name -eq 'ProcessName'}).'#text'
            Object = ($EventData | Where-Object {$_.Name -eq 'ObjectName'}).'#text'
            AccessMask = ($EventData | Where-Object {$_.Name -eq 'AccessMask'}).'#text'
        }
    }
    
    # Regrouper par utilisateur et processus pour identifier les modèles
    $UserPatterns = $Analysis | Group-Object User | Sort-Object Count -Descending
    $ProcessPatterns = $Analysis | Group-Object Process | Sort-Object Count -Descending
    
    Write-Host "Utilisateurs principaux par demandes d'accès :"
    $UserPatterns | Select-Object Name, Count | Format-Table
    
    Write-Host "Processus principaux par demandes d'accès :"
    $ProcessPatterns | Select-Object Name, Count | Format-Table
  2. Corréler avec les événements de connexion échouée (ID d'événement 4625):
    # Trouver une corrélation potentielle entre les connexions échouées et l'accès aux objets
    $FailedLogons = Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4625} -MaxEvents 1000
    $ObjectAccess = Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4907} -MaxEvents 1000
    
    # Analyser la corrélation temporelle (dans les 5 minutes)
    $Correlations = foreach ($Logon in $FailedLogons) {
        $LogonTime = $Logon.TimeCreated
        $RelatedAccess = $ObjectAccess | Where-Object {
            $_.TimeCreated -gt $LogonTime.AddMinutes(-5) -and
            $_.TimeCreated -lt $LogonTime.AddMinutes(5)
        }
        if ($RelatedAccess) {
            [PSCustomObject]@{
                FailedLogonTime = $LogonTime
                RelatedAccessCount = $RelatedAccess.Count
                AccessEvents = $RelatedAccess
            }
        }
    }
  3. Configurer la surveillance automatisée avec le Planificateur de tâches Windows:
    # Créer un script de surveillance
    $ScriptPath = "C:\Scripts\Monitor4907.ps1"
    $ScriptContent = @'
    $RecentEvents = Get-WinEvent -FilterHashtable @{LogName="Security"; Id=4907; StartTime=(Get-Date).AddMinutes(-15)}
    if ($RecentEvents.Count -gt 100) {
        Write-EventLog -LogName Application -Source "Security Monitor" -EventId 1001 -EntryType Warning -Message "Volume élevé d'événements ID 4907 détecté : $($RecentEvents.Count) événements dans les 15 dernières minutes"
    }
    '@
    $ScriptContent | Out-File -FilePath $ScriptPath -Encoding UTF8
    
    # Enregistrer la tâche planifiée
    Register-ScheduledTask -TaskName "Monitor Event 4907" -Trigger (New-ScheduledTaskTrigger -RepetitionInterval (New-TimeSpan -Minutes 15) -Once -At (Get-Date)) -Action (New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument "-File $ScriptPath")
05

Mettre en œuvre un filtrage avancé et une intégration SIEM

Configurez le filtrage avancé et intégrez l'ID d'événement 4907 avec les systèmes de gestion des informations et des événements de sécurité (SIEM) pour la surveillance d'entreprise.

  1. Créez des filtres XML personnalisés pour le Visualiseur d'événements :
    <QueryList>
      <Query Id="0" Path="Security">
        <Select Path="Security">
          *[System[EventID=4907]] and
          *[EventData[Data[@Name='ObjectName'] and (contains(., 'C:\Sensitive') or contains(., 'HKLM\SOFTWARE\Company'))]]
        </Select>
      </Query>
    </QueryList>
  2. Configurez le transfert d'événements Windows (WEF) pour la collecte centralisée :
    wecutil cs C:\Config\4907-Subscription.xml
    Où l'abonnement XML inclut :
    <Subscription xmlns="http://schemas.microsoft.com/2006/03/windows/events/subscription">
        <SubscriptionId>Event4907Collection</SubscriptionId>
        <Description>Collecter l'ID d'événement 4907 des ordinateurs du domaine</Description>
        <Query><![CDATA[
            <QueryList>
                <Query Id="0">
                    <Select Path="Security">Event[System[EventID=4907]]</Select>
                </Query>
            </QueryList>
        ]]></Query>
    </Subscription>
  3. Exportez les événements pour l'ingestion SIEM en utilisant PowerShell :
    # Exporter en JSON pour la consommation SIEM
    $Events = Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4907} -MaxEvents 1000
    $JsonOutput = $Events | ForEach-Object {
        $Event = [xml]$_.ToXml()
        $EventData = @{}
        $Event.Event.EventData.Data | ForEach-Object {
            $EventData[$_.Name] = $_.'#text'
        }
        [PSCustomObject]@{
            Timestamp = $_.TimeCreated.ToString('yyyy-MM-ddTHH:mm:ss.fffZ')
            EventId = $_.Id
            Level = $_.LevelDisplayName
            Computer = $_.MachineName
            EventData = $EventData
        }
    } | ConvertTo-Json -Depth 3
    
    $JsonOutput | Out-File -FilePath "C:\Logs\Event4907_$(Get-Date -Format 'yyyyMMdd_HHmmss').json" -Encoding UTF8
  4. Configurez la rotation et les politiques de rétention des journaux :
    # Définir la taille et la rétention du journal de sécurité
    $LogName = "Security"
    $MaxSize = 1GB
    $Retention = "OverwriteOlder"
    $RetentionDays = 90
    
    Limit-EventLog -LogName $LogName -MaximumSize $MaxSize -OverflowAction $Retention -RetentionDays $RetentionDays
  5. Créez des règles d'alerte pour les modèles suspects :
    # Alerte sur les modèles d'accès inhabituels
    $Threshold = 50
    $TimeWindow = 10 # minutes
    $RecentEvents = Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4907; StartTime=(Get-Date).AddMinutes(-$TimeWindow)}
    
    if ($RecentEvents.Count -gt $Threshold) {
        $AlertMessage = "ALERTE DE SÉCURITÉ : Activité d'accès à l'objet inhabituelle détectée. $($RecentEvents.Count) occurrences de l'ID d'événement 4907 dans les dernières $TimeWindow minutes."
        Write-EventLog -LogName Application -Source "Security Monitor" -EventId 2001 -EntryType Warning -Message $AlertMessage
        
        # Envoyer une notification par email (configurer les paramètres SMTP)
        Send-MailMessage -To "security@company.com" -From "monitoring@company.com" -Subject "Alerte de sécurité : Volume élevé d'accès aux objets" -Body $AlertMessage -SmtpServer "smtp.company.com"
    }
Avertissement : Un enregistrement volumineux de l'ID d'événement 4907 peut affecter les performances du système et le stockage. Mettez en œuvre des stratégies de filtrage et de gestion des journaux appropriées.

Aperçu

L'ID d'événement 4907 se déclenche lorsqu'un processus demande un handle à un objet système tel qu'un fichier, une clé de registre, un processus ou un thread. Cet événement fait partie du cadre d'audit d'accès aux objets de Windows et apparaît dans le journal de sécurité lorsque l'audit d'accès aux objets est activé via la stratégie de groupe ou la stratégie de sécurité locale. L'événement capture des détails critiques, y compris le processus demandeur, l'objet cible, les droits d'accès demandés et le contexte de sécurité dans lequel la demande a été faite.

Cet événement est essentiel pour la surveillance de la sécurité, l'audit de conformité et les enquêtes judiciaires. Il aide les administrateurs à suivre quels processus accèdent à des objets système sensibles et peut révéler des tentatives d'accès non autorisées ou des comportements suspects. L'événement se déclenche avant que l'accès réel ne se produise, ce qui le rend précieux pour la surveillance de la sécurité en temps réel et la validation du contrôle d'accès.

Comprendre l'ID d'événement 4907 est crucial pour les environnements nécessitant des pistes d'audit détaillées, tels que les institutions financières, les organisations de santé ou tout environnement soumis à des exigences de conformité réglementaire comme SOX, HIPAA ou PCI-DSS.

Questions Fréquentes

Que signifie l'ID d'événement 4907 et quand se produit-il ?+
L'ID d'événement 4907 indique qu'un processus a demandé un handle à un objet système tel qu'un fichier, une clé de registre, un processus ou un thread. Cet événement se produit chaque fois que l'audit d'accès aux objets est activé et qu'un processus tente d'accéder à un objet audité. L'événement se déclenche avant que l'accès réel ne se produise, offrant une visibilité précoce sur les tentatives d'accès. Il est généré par le sous-système d'audit de sécurité de Windows et apparaît dans le journal des événements de sécurité. L'événement inclut des détails sur le processus demandeur, l'objet cible, le contexte utilisateur et les droits d'accès spécifiques demandés.
Comment puis-je réduire le volume des journaux d'ID d'événement 4907 sans perdre la visibilité de sécurité ?+
Pour gérer efficacement le volume de l'ID d'événement 4907, mettez en œuvre des stratégies d'audit sélectif. Tout d'abord, auditez uniquement les objets critiques en configurant les Listes de Contrôle d'Accès Système (SACL) sur des fichiers, dossiers ou clés de registre spécifiques plutôt que d'activer l'audit à l'échelle du système. Utilisez la Stratégie de Groupe pour cibler les politiques d'audit sur des unités organisationnelles ou des groupes d'ordinateurs spécifiques. Configurez des filtres XML personnalisés dans le Visualiseur d'Événements pour vous concentrer sur les événements prioritaires. Mettez en œuvre le transfert de journaux pour centraliser les événements et utilisez des politiques de rétention pour gérer le stockage. Envisagez d'auditer uniquement les événements de 'Échec' pour certains objets afin de détecter les tentatives d'accès non autorisées tout en réduisant le bruit des accès réussis.
Quelle est la différence entre l'ID d'événement 4907 et d'autres événements d'accès aux objets comme 4656 ?+
L'ID d'événement 4907 suit spécifiquement les demandes de poignée aux objets, tandis que l'ID d'événement 4656 enregistre lorsqu'une poignée à un objet est demandée avec des informations d'accès plus détaillées. L'événement 4656 inclut le masque d'accès réel et si la demande a réussi ou échoué. L'ID d'événement 4658 enregistre lorsqu'une poignée est fermée, et l'ID d'événement 4660 indique qu'un objet a été supprimé. L'événement 4907 est plus axé sur la phase initiale de demande de poignée, ce qui le rend utile pour suivre les schémas d'accès et les activités de reconnaissance potentielles. Pour une surveillance complète de l'accès aux objets, ces événements fonctionnent ensemble pour fournir une piste d'audit complète.
L'ID d'événement 4907 peut-il aider à détecter les menaces de sécurité et comment ?+
Oui, l'ID d'événement 4907 est précieux pour la détection des menaces lorsqu'il est correctement analysé. Il peut révéler des activités de reconnaissance où les attaquants sondent les objets système pour comprendre l'environnement. Des schémas d'accès inhabituels, tels qu'un seul utilisateur ou processus accédant à de nombreux objets en peu de temps, peuvent indiquer une activité malveillante. La corrélation de l'événement 4907 avec des événements d'authentification échoués peut identifier des tentatives potentielles d'escalade de privilèges. L'événement aide à détecter l'exfiltration de données en surveillant l'accès à des fichiers ou répertoires sensibles. La détection avancée des menaces implique l'analyse des schémas d'accès, des corrélations temporelles et la comparaison avec le comportement de référence pour identifier les anomalies qui méritent une enquête.
Comment puis-je dépanner l'absence d'entrées d'ID d'événement 4907 lorsque je m'attends à ce qu'elles soient enregistrées ?+
Les entrées manquantes de l'ID d'événement 4907 indiquent généralement des problèmes de politique d'audit. Tout d'abord, vérifiez que l'audit d'accès aux objets est activé dans la stratégie de groupe sous Configuration avancée de la stratégie d'audit > Accès aux objets > Manipulation des poignées d'audit. Vérifiez que les objets spécifiques ont des Listes de contrôle d'accès système (SACL) appropriées configurées en utilisant 'icacls' ou PowerShell. Assurez-vous que le journal de sécurité dispose de suffisamment d'espace et n'est pas écrasé trop rapidement. Vérifiez que le compte utilisateur dispose du privilège 'Générer des audits de sécurité'. Utilisez 'auditpol /get /category:"Object Access"' pour confirmer les paramètres d'audit actuels. Testez avec un objet et un processus connus pour valider que la configuration d'audit fonctionne correctement.
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...