Authentication schema
Use this reference to identify the fields available in the auth schema and the parser fields used to populate them.
For a field to be populated in Sophos XDR, the corresponding parser field must be present in the source data.
Schema summary
| Property | Value |
|---|---|
| Schema name | Auth |
| Parser field prefix | Auth |
| Supports custom parsers | Yes |
| Schema components | Action, AuthCategory, ActionResult, FailureCategory, TrustFeatures, EncryptionType, LogonType |
Schema components
Auth.Action
The type of authentication event.
| Name | Number | Description |
|---|---|---|
| UNCLASSIFIED | 0 | |
| LOGON | 1 | A user login or authenticate operation, or a start of a user session. |
| ACCOUNT | 2 | |
| PRIVILEGE | 3 | |
| POLICY | 4 | Account/Domain policy changes. For Windows, this computer's Security Settings Account Policy or Account Lockout Policy was modified via Local Security Policy or Group Policy in Active Directory. On a web based Auth platform like Okta, 1. Lifecycle policy changes, 2. User session lifetime, 3. MFA requirements, 4. Password complexity requirements. |
| SYSTEM | 5 | System Audit Policy changes. For web-based Auth providers, 1. API token create/revoke, 2. MFA verification request. |
| LOG | 6 | |
| LOGOFF | 7 | A user logout operation or an end of a user session. |
| FAILURE | 8 | A user authentication attempt failure. |
| USER_MANAGEMENT | 9 | Actions including: 1. Adding a new user to the account, 2. Modifying an existing user, 3. Removing a user from the account, 4. Lifecycle events, 5. Update password/MFA setting. |
Auth.AuthCategory
The category of authentication event.
| Name | Number | Description |
|---|---|---|
| UNKNOWN_AUTH_CATEGORY | 0 | |
| ACCOUNT_LOGON | 10 | |
| ACCOUNT_LOGOFF | 20 | |
| ACCOUNT_LOCK | 30 | |
| ACCOUNT_UNLOCK | 40 | |
| PASSWORD_CHANGE_ATTEMPT | 50 | The user attempted to change their own password. |
| PASSWORD_RESET_ATTEMPT | 60 | The source user attempted to change the target user's password, such as an admin reset. |
| PRE_AUTHENTICATION | 70 | A pre-required step for authentication, such as requesting a Kerberos authentication ticket. |
Auth.ActionResult
The result of the action performed in auth_category.
| Name | Number | Description |
|---|---|---|
| UNKNOWN_ACTION_RESULT | 0 | |
| SUCCESS | 10 | The outcome of the auth_category step was successful. |
| FAILED | 20 | The outcome of the auth_category step was unsuccessful. |
Auth.FailureCategory
The reason if the action_result is FAILED.
| Name | Number | Description |
|---|---|---|
| UNKNOWN_FAILURE_CATEGORY | 0 | |
| INCORRECT_USER_OR_PASSWORD | 10 | |
| EXPIRED_PASSWORD | 20 | |
| INVALID_ACCOUNT | 30 | |
| INCORRECT_MFA | 40 | |
| OUTSIDE_PERMISSIBLE_HOURS | 50 | |
| OVERDUE_PASSWORD_CHANGE | 60 | |
| ACCOUNT_LOCKED_OUT | 70 | |
| ACCOUNT_DISABLED | 80 | |
| OTHER_ERROR | 90 | There is an error reported that is not covered by the other categories. |
Auth.TrustFeatures
| Name | Number | Description |
|---|---|---|
| UNKNOWN_TRUSTED_FEATURES | 0 | |
| MFA_USED | 10 | |
| TRUSTED_IP_ADDRESS | 20 | |
| OTHER_TRUSTED_ACCOUNT | 30 | Account is trusted in some other way, such as Entra ID registered or joined device. |
Auth.EncryptionType
| Name | Number | Description |
|---|---|---|
| ENCRYPTION_UNKNOWN | 0 | |
| DES_CBC_CRC | 1 | |
| DES_CBC_MD4 | 2 | |
| DES_CBC_MD5 | 3 | |
| DES3_CBC_MD5 | 4 | |
| DES3_CBC_SHA1 | 5 | |
| DSA_WITH_SHA1_CMSOID | 6 | |
| MD5_WITH_RSA_ENCRYPTION_CMSOID | 7 | |
| SHA1_WITH_RSA_ENCRYPTION_CMSOID | 8 | |
| RC2CBC_ENVOID | 9 | |
| RSA_ENCRYPTION_ENVOID | 10 | |
| RSA_ES_OAEP_ENV_OID | 11 | |
| DES_EDE3_CBC_ENV_OID | 12 | |
| DES3_CBC_SHA1_KD | 13 | |
| AES128_CTS_HMAC_SHA1_96 | 14 | |
| AES256_CTS_HMAC_SHA1_96 | 15 | |
| RC4_HMAC | 16 | |
| RC4_HMAC_EXP | 17 | |
| SUBKEY_KEYMATERIAL | 18 |
Auth.LogonType
Value logon type that maps to WIN32 values.
| Name | Number | Description |
|---|---|---|
| SYSTEMONLY | 0 | Unused but required for Proto3. |
| UNKNOWN | 1 | |
| INTERACTIVE | 2 | |
| NETWORK | 3 | |
| BATCH | 4 | |
| SERVICE | 5 | |
| PROXY | 6 | |
| UNLOCK | 7 | |
| NETWORKCLEARTEXT | 8 | |
| NEWCREDENTIALS | 9 | |
| REMOTEINTERACTIVE | 10 | |
| CACHEDINTERACTIVE | 11 | |
| CACHEDREMOTEINTERACTIVE | 12 | |
| CACHEDUNLOCKED | 13 |
Schema fields
| Normalized Field | Type | Parser Field | Description |
|---|---|---|---|
| resource_id | string | resourceId$ | Full resource string identifying the record. |
| tenant_id | string | tenantId$ | ID of the tenant. |
| sensor_type | string | sensorType$ | Type of device that generated this event. |
| sensor_event_id | string | sensorEventId$ | Event ID of original_data assigned by the sensor. |
| sensor_tenant | string | sensorTenant$ | A customer ID supplied by the application that originated the data. |
| sensor_id | string | sensorId$ | An ID for the data supplied by the application that originated it. |
| sensor_cpe | string | sensorCpe$ | CPE of the platform producing the alert. |
| original_data | string | originalData$ | Original, unadulterated data prior to any transformation. |
| event_time_usec | uint64 | eventTimeUsec$ | Event time in microseconds (µs). |
| ingest_time_usec | uint64 | ingestTimeUsec$ | Ingest time in microseconds (µs). |
| event_time_fidelity | TimeFidelity | eventTimeFidelity$ | Specifies the original precision of the time used to populate event_time_usec. |
| host_id | string | hostId$ | The host ID that uniquely identifies the host where the event originated, such as IPv(4/6) address or device MAC address. |
| process_id | string | processId$ | Identifier provided by the OS for the running process. |
| process_create_time_usec | uint64 | processCreateTimeUsec$ | Create time of the process requesting authorization. |
| process_correlation_id | string | processCorrelationId$ | Process correlation ID to protect against rolling IDs. |
| process_filename | string | processFilename$ | Name of the file of the process that requested authorization. |
| process_file_hash | FileHash | fileHash$ | Hash of the file of the process that requested authorization. |
| commandline | string | commandline$ | Full command line of the process that made the authorization request. |
| sensor_version | string | sensorVersion$ | The agent version as string. |
| action | Auth.Action | action$ | The type of authentication event, such as LOGON or LOGOFF. |
| auth_category | Auth.AuthCategory | authCategory$ | The type of authentication event, such as ACCOUNT_LOGON or ACCOUNT_LOCK. |
| action_result | Auth.ActionResult | actionResult$ | The result of the action performed in auth_category, such as SUCCESS or FAILED. |
| failure_category | Auth.FailureCategory | failureCategory$ | The reason if the action_result is FAILED. |
| trust_features | Auth.TrustFeatures | trustFeatures$ | Indicates why a user logon could be legitimate, such as MFA was used. |
| auth_system | string | authSystem$ | The system identifying the event, such as Windows, PAM, SSHD, or sudo. |
| target_user_name | string | targetUserName$ | The account impacted by the action. |
| target_domain_name | string | targetDomainName$ | Domain that the user is logging in to. |
| target_address | string | targetAddress$ | IP address that the user is logging in to. |
| target_port | string | targetPort$ | Port that the user is logging in to. |
| target_port_number | uint32 | targetPortNumber$ | Port that the user is logging in to. |
| target_host_name | string | targetHostName$ | Hostname of the target, such as a Windows workstation name. |
| source_user_name | string | sourceUserName$ | Account that the user is logging in from. |
| source_domain_name | string | sourceDomainName$ | Domain that the user is logging in from. |
| source_address | string | sourceAddress$ | IP address that the user is logging in from. |
| source_port | string | sourcePort$ | Port that the user is logging in from. |
| source_port_number | uint32 | sourcePortNumber$ | Port that the user is logging in from. |
| os | OperatingSystem | os$.os$ | Operating system: architecture of the user's machine. |
| logon_application_family | string | logonApplicationFamily$ | The application used by the user to log on, devoid of version information, such as chrome or firefox. |
| user_agent | string | userAgent$ | The user-agent string used in the request. |
| user_display_name | string | userDisplayName$ | User account's display name. |
| member_name | string | memberName$ | Distinguished name of the account that was added to or removed from security-enabled local group. |
| session_id | string | sessionId$ | Identifier of the session to match logon/logoff. |
| logon_type | Auth.LogonType | logonType$ | Value of logon type. |
| mfa_used | bool | mfaUsed$ | Was MFA used when user was authenticated. |
| encryption_type | Auth.EncryptionType | encryptionType$ | Ticket encryption type, such as 0x12 or 0x17. |
| win_event_level | string | winEventLevel$ | The urgency level the event was assigned by Windows. |
| win_summary | string | winSummary$ | The event summary provided by Windows. |
| win_keywords | string | winKeywords$ | Keywords Windows applies to the event. |
| win_task_category | string | winTaskCategory$ | The category Windows has classified the event. |
| win_event_id | string | winEventId$ | Identifier of event generated by the Windows log. |
| device_trust_type | string | deviceTrustType$ | Taken from trustType field in deviceDetails from Microsoft Graph Signin Events. See the Microsoft documentation. Can be used as an indicator of trustworthiness for the sign-in device. |
| src_ipblacklist_hits | string | repeated | Provides the names of blacklists matched by the source. |
| dest_ipblacklist_hits | string | repeated | Provides the names of blacklists matched by the destination. |
| src_ipgeo_summary | GeoSummary | The geographic location of the source IP. Not writable from a custom parser. Populated automatically by Sophos enrichment from source_address. See note at the end of this page. | |
| dest_ipgeo_summary | GeoSummary | The geographic location of the destination IP. Not writable from a custom parser. Populated automatically by Sophos enrichment from target_address. See note at the end of this page. | |
| status | string | status$ | |
| sub_status | string | subStatus$ | |
| extra_authenticationpackagename | string | extraAuthenticationpackagename$ | The system performing authentication, such as NTLM or Kerberos. |
| extra_elevatedtoken | string | extraElevatedtoken$ | Indicates if the session represented by this event has administration privileges. |
| extra_failurereason | string | extraFailurereason$ | The reason for a failed login. |
| extra_homedirectory | string | extraHomedirector$ | The home directory of the user process associated with the log event. |
| extra_impersonationlevel | string | extraImpersonationlevel$ | MS WMI impersonation level. |
| extra_keylength | int32 | extraKeylength$ | Length of key protecting the secure channel. |
| extra_lmpackagename | string | extraLmpackagename$ | If this logon was authenticated via the NTLM protocol (instead of Kerberos, for instance) this field tells you which version of NTLM was used. |
| extra_logonprocessname | string | extraLogonprocessname$ | The name of the MS trusted logon process, such as Winlogon or IKE. |
| extra_restrictedadminmode | string | extraRestrictedadminmode$ | "Yes" for incoming Remote Desktop Connections where the client specified /restrictedAdmin on the command line. |
| extra_samaccountname | string | extraSamaccountname$ | User logon name used to support clients and servers from a previous version of Windows (Pre-Windows 2000). |
| extra_targetoutbounddomainname | string | extraTargetoutbounddomainname$ | MS domain name of target logon. |
| extra_targetoutboundusername | string | extraTargetoutboundusername$ | MS user name of target logon. |
| extra_targetservername | string | extraTargetservername$ | Hostname of target logon. |
| extra_userprincipalname | string | extraUserpricipalname$ | Internet-style login name for the user based on the Internet standard RFC 822. |
| extra_virtualaccount | string | extraVirtualAccount$ | Indicates MS services are configured to logon with a Virtual Account. |
| extra_workstationname | string | extraWorkstationname$ | The computer name where the user is physically present in most cases unless this logon was initiated by a server application acting on behalf of the user. |
| extra_subject_domain_user_id | string | extraSubjectDomainUserId$ | Identifies the account that requested the logon, not the user being logged onto. |
| extra_target_domain_user_id | string | extraTargetDomainUserId$ | Identifies the account being logged on. |
| application_name | string | applicationName$ | Identifies the application being logged into, notably for cloud integrations. |
| service_name | string | serviceName$ | The name of the service where the user is trying to login. |
| service_sid | string | serviceSid$ | Identifies the service where the user is trying to login. |
| ticket_options | string | ticketOptions$ | The logon ticket options. |
| event_metadata | KeyValuePairsIndexed | Event metadata can be provided by the appliance to add context. |
Geographic IP fields are not writable from custom parsers.
The src_ipgeo_summary and dest_ipgeo_summary fields are populated by an automatic Sophos enrichment step that runs after custom parser normalization. Any value a custom parser writes to these fields will be replaced before the event reaches queryable storage.
To get geographic data populated, ensure your parser writes the relevant IP addresses to source_address$ and target_address$. Enrichment uses those fields to look up the geographic data and fill in src_ipgeo_summary (from source_address) and dest_ipgeo_summary (from target_address) automatically.
Enrichment only applies to publicly routable IP addresses; private and loopback addresses are skipped.