> Windows Syscalls
ntoskrnl.exeT1562.002T1134

NtPrivilegeObjectAuditAlarm

Émet une entrée du journal Sécurité signalant l'utilisation d'un ou plusieurs privilèges sur un objet spécifique.

Prototype

NTSTATUS NtPrivilegeObjectAuditAlarm(
  PUNICODE_STRING SubsystemName,
  PVOID           HandleId,
  HANDLE          ClientToken,
  ACCESS_MASK     DesiredAccess,
  PPRIVILEGE_SET  Privileges,
  BOOLEAN         AccessGranted
);

Arguments

NameTypeDirDescription
SubsystemNamePUNICODE_STRINGinNom de sous-système affiché dans l'événement résultant, ex. L"Security".
HandleIdPVOIDinIdentifiant opaque par handle pour corréler avec les événements d'ouverture/fermeture associés.
ClientTokenHANDLEinJeton d'impersonation du client dont l'usage de privilège est journalisé.
DesiredAccessACCESS_MASKinMasque d'accès que le client tentait d'exercer lorsque le privilège a été contrôlé.
PrivilegesPPRIVILEGE_SETinEnsemble de privilèges contrôlés, ex. {SE_SECURITY_PRIVILEGE} pour l'accès SACL.
AccessGrantedBOOLEANinTRUE si l'opération a réussi (journalisée en succès 4673/4674), FALSE si elle a échoué.

IDs de syscalls par version de Windows

Version de WindowsID de syscallBuild
Win10 15070x123win10-1507
Win10 16070x129win10-1607
Win10 17030x12Dwin10-1703
Win10 17090x12Fwin10-1709
Win10 18030x131win10-1803
Win10 18090x132win10-1809
Win10 19030x133win10-1903
Win10 19090x133win10-1909
Win10 20040x138win10-2004
Win10 20H20x138win10-20h2
Win10 21H10x138win10-21h1
Win10 21H20x139win10-21h2
Win10 22H20x139win10-22h2
Win11 21H20x13Fwin11-21h2
Win11 22H20x141win11-22h2
Win11 23H20x141win11-23h2
Win11 24H20x143win11-24h2
Server 20160x129winserver-2016
Server 20190x132winserver-2019
Server 20220x13Ewinserver-2022
Server 20250x143winserver-2025

Module noyau

ntoskrnl.exeNtPrivilegeObjectAuditAlarm

APIs liées

ObjectPrivilegeAuditAlarmWPrivilegeCheckNtPrivilegedServiceAuditAlarmNtAccessCheckAndAuditAlarm

Stub du syscall

4C 8B D1            mov r10, rcx
B8 43 01 00 00      mov eax, 0x143
F6 04 25 08 03 FE 7F 01   test byte ptr [0x7FFE0308], 1
75 03               jne short +3
0F 05               syscall
C3                  ret
CD 2E               int 2Eh
C3                  ret

Notes non documentées

Génère l'événement Sécurité 4674 (« Tentative d'opération sur un objet privilégié ») chaque fois qu'une opération privilégiée contre un *objet* (et non une action de service — voir NtPrivilegedServiceAuditAlarm pour ça) est contrôlée. L'exemple classique est l'appel d'API de sauvegarde qui exercent SeBackupPrivilege fichier par fichier : chaque ouverture privilégiée émet un 4674. C'est à l'appelant d'invoquer le syscall — l'usage de privilèges n'est pas audité automatiquement par l'Object Manager, donc un sous-système privilégié qui veut la fidélité de journal doit appeler explicitement. Sysmon Event ID 4673/4674 (avec règles correspondantes) rejoue les mêmes données avec un contexte processus supplémentaire.

Usage courant par les malwares

Quasi nul. Les malwares qui utilisent des privilèges le font typiquement en silence — appeler NtPrivilegeObjectAuditAlarm générerait précisément l'entrée qu'ils cherchent à éviter. Les seuls appelants légitimes sont les sous-systèmes MS qui *veulent* la fidélité d'audit (LSASS, ntdsa.dll, le service Backup, capteurs Defender for Identity). Tout appelant en dehors de ce petit ensemble est suspect avant tout par sa rareté.

Opportunités de détection

Sur poste standard, le volume est quasi nul sauf pendant les jobs de sauvegarde. L'absence soudaine d'événements 4674 attendus pendant une opération privilégiée connue (ex. shadow copy planifié) est un signal plus fort que la présence — elle indique l'altération du sous-système Journal (T1562.002). Pour la détection positive, se concentrer sur les 4674 avec privilège == SeDebugPrivilege, SeTcbPrivilege ou SeLoadDriverPrivilege émis par une image non signée ou par une image inhabituelle avec ces privilèges.

Exemples de syscalls directs

asmx64 direct stub (Win11 24H2)

; Direct syscall stub for NtPrivilegeObjectAuditAlarm (SSN 0x143, Win11 24H2)
NtPrivilegeObjectAuditAlarm PROC
    mov  r10, rcx          ; syscall convention
    mov  eax, 143h         ; SSN
    syscall
    ret
NtPrivilegeObjectAuditAlarm ENDP

cBackup service emitting a 4674 per protected file

// A backup service holding SeBackupPrivilege walks the volume and, for each
// file it opens via FILE_FLAG_BACKUP_SEMANTICS, explicitly emits a 4674
// so the Security log records *which* files were touched with the privilege.

LUID seBackupLuid;
LookupPrivilegeValueW(NULL, SE_BACKUP_NAME, &seBackupLuid);

struct {
    PRIVILEGE_SET ps;
    LUID_AND_ATTRIBUTES extra; // tail for >1 privilege
} pset = {
    .ps = { .PrivilegeCount = 1, .Control = PRIVILEGE_SET_ALL_NECESSARY,
            .Privilege = {{ .Luid = seBackupLuid, .Attributes = SE_PRIVILEGE_USED_FOR_ACCESS }} }
};
UNICODE_STRING sub = RTL_CONSTANT_STRING(L"Security");

NtPrivilegeObjectAuditAlarm(
    &sub,
    (PVOID)hFile,           // handle id
    hClientToken,
    FILE_GENERIC_READ,
    &pset.ps,
    TRUE);                  // access granted

rustWin32 PrivilegeCheck + ObjectPrivilegeAuditAlarmW

// The Win32 wrappers are PrivilegeCheck (decision) +
// ObjectPrivilegeAuditAlarmW (audit emission).
use windows_sys::Win32::Security::Authorization::ObjectPrivilegeAuditAlarmW;
use windows_sys::Win32::Security::*;

unsafe {
    let ok = ObjectPrivilegeAuditAlarmW(
        windows_sys::w!("Security"),
        handle_id as *mut _,
        client_token,
        desired_access,
        &priv_set as *const _ as *mut _,
        1, // access_granted
    );
    // ok != 0 -> the 4674 was emitted (assuming "Audit Privilege Use"
    // policy is enabled).
}

Mappings MITRE ATT&CK

Last verified: 2026-05-20