Skip to main content

Audit policy

2readings
0conditions
1themes fed
Livestatus

Windows audit subcategory set and framework, with a config-change occurrence when it changes.

Topic id: audit_policy.

Full inventory every day. Supported changes are reported when the agent observes them.

Fields​

Which audit subcategories are recording and which audit framework reports them, with a configuration change when the set changes.

FieldTypeUnitMeaning
sparklogs.data.audit_policy.audit_frameworkstringWhich audit system the policy belongs to. windows_advanced_audit is the Windows Advanced Audit Policy subcategories, the only one reported today. Reserved for other platforms: auditd (Linux audit daemon rules), openbsm (macOS BSM audit classes) and none (no audit system). Always present.
sparklogs.data.audit_policy.audit_eventsstring_arrayWhich events the audit policy records, sorted. Each entry is <family>[_<detail>]_<outcome>, outcome success or failure. A family entry (logon_success) is present whenever any of its subcategories records that outcome, beside each such subcategory's own entry (logon_logon_success). Families: logon, authentication, process_creation, process_termination, detailed_tracking, file_access, object_access, network, account_management, policy_change, privilege_use, system, directory_service. An empty array is a policy that was read and records nothing. Absent when the policy could not be read, preserving the previous result. Under auditd the entries will be the rule keys, with no outcome suffix; under openbsm the classes map to families: lo logon, aa authentication, ex process_creation, pc process_termination, fr/fw/fa/fm/fc/fd file_access_read/write/attribute_read/attribute_modify/create/delete, ad account_management, policy_change, privilege_use and system, nt network, ot object_access.
sparklogs.data.audit_policy.audit_subcategoriesobject_arrayEvery audit subcategory the OS defines, in the order auditpol lists them, category by category. Each entry has native_id, the subcategory GUID in lowercase textual form, and success and failure, whether the policy records that outcome. A subcategory this agent maps also carries audit_event (its audit_events entry without the _success or _failure outcome) and family; its native_name and native_category are the English names auditpol prints, not localized, and it carries no native_name_source. One it does not map carries no audit_event or family; its native_name and native_category come from the OS in the host's display language, with native_name_source os; each name is absent when the OS has none for it, and native_name_source stays. The three IPsec mode subcategories are three entries sharing one audit_event. The native_* members are the audit framework's own: under auditd and openbsm they will carry that framework's identifiers and names. Describes the policy and is never compared: audit_events alone decides a change. Absent when the policy could not be read, preserving the previous result.
sparklogs.data.audit_policy.audit_subcategories[].native_idstringIn each audit_subcategories entry.
sparklogs.data.audit_policy.audit_subcategories[].successboolIn each audit_subcategories entry.
sparklogs.data.audit_policy.audit_subcategories[].failureboolIn each audit_subcategories entry.
sparklogs.data.audit_policy.audit_subcategories[].audit_eventstringIn each audit_subcategories entry.
sparklogs.data.audit_policy.audit_subcategories[].familystringIn each audit_subcategories entry.
sparklogs.data.audit_policy.audit_subcategories[].native_namestringIn each audit_subcategories entry.
sparklogs.data.audit_policy.audit_subcategories[].native_categorystringIn each audit_subcategories entry.
sparklogs.data.audit_policy.audit_subcategories[].native_name_sourcestringIn each audit_subcategories entry.

Changes​

This topic reports what the host looks like, so its news is what CHANGED between two reports. Each change below is a named fact you can ask about across the fleet.

ChangeWhat it means
audit_policy_coverage_reducedAudit coverage reduced
audit_policy_changedAudit policy changed

Example​

Inventory (every day)

audit policy; 24 events enabled, logon success audited.

sparklogs.data.audit_policy.audit_events: ["account_management_failure", "account_management_security_group_success", "account_management_success", "account_management_user_failure", "account_management_user_success", "authentication_credential_validation_failure", "authentication_credential_validation_success", "authentication_failure", "authentication_success", "logon_account_lockout_failure", "logon_failure", "logon_logoff_success", "logon_logon_failure", "logon_logon_success", "logon_special_logon_success", "logon_success", "policy_change_audit_policy_success", "policy_change_authentication_policy_success", "policy_change_success", "system_failure", "system_integrity_failure", "system_integrity_success", "system_security_state_change_success", "system_success"]
sparklogs.data.audit_policy.audit_framework: windows_advanced_audit

SparkLogs: CONTEXT, Info, audit_policy: INVENTORY: audit policy; 24 events enabled, logon success audited.

Inventory (every day)

audit policy; 0 events enabled, logon success not audited.

sparklogs.data.audit_policy.audit_events: []
sparklogs.data.audit_policy.audit_framework: windows_advanced_audit

SparkLogs: CONTEXT, Info, audit_policy: INVENTORY: audit policy; 0 events enabled, logon success not audited.

Change set

2 changed, 2 disabled; "-logon_logon_success" "-logon_success".

sparklogs.data.audit_policy.delta_kind: changed
sparklogs.data.audit_policy.audit_events: ["account_management_success", "account_management_user_success", "logon_account_lockout_failure", "logon_failure", "logon_logon_failure", "policy_change_audit_policy_success", "policy_change_success"]
sparklogs.data.audit_policy.audit_framework: windows_advanced_audit

SparkLogs: CONTEXT, Info, audit_policy: DELTA: 2 changed, 2 disabled; "-logon_logon_success" "-logon_success".

Signal details​

audit_policy_coverage_reduced​

The host's audit policy changed and now records fewer Windows Security events than before.

Impact: Less is recorded than before, so evidence a later investigation needs may never exist on this host.

Where to look next:

  • Compare the removed subcategories against your audit policy baseline for this host's role.
  • Audit scope reductions on a server are worth a closer look; routine management-tool churn on a workstation usually is not.

Related reasons:

audit_policy_changed​

The host's audit policy changed: more Windows Security events are audited, or the audit framework changed.

Also reported by: Windows Security event log

Impact: A broader audit set means more audit volume and more coverage; nothing that was audited stopped being audited.

Where to look next:

  • Compare the added subcategories against your audit policy baseline for this host's role.
  • Routine management-tool churn on a workstation usually is not worth a closer look.

Related reasons: