event_simpleName=UserIdentity Falcon sensor event

UserIdentity: CrowdStrike Event That Maps UserSid to UserName

Published

A description of an account that logged on to a host — its name, SID, domain, logon server and authentication package — sent about once per account, mainly useful for turning the UserSid in other events into a name.

Fields that matter in an investigation

FieldWhat it tells you
UserSid Panther FDR schema SID of the account. Other events, ProcessRollup2 among them, identify the user only by this value.
UserName Panther FDR schema The account name for that SID on that host. Machine accounts end in $; DWM- and UMFD- names are per-session Windows system accounts.
LogonDomain Panther FDR schema The account's domain, or the computer name for a local account.
UserPrincipal Panther FDR schema The account's user principal name (name@domain) when it has one.
LogonServer Panther FDR schema The server that authenticated the account, usually a domain controller.
AuthenticationPackage Panther FDR schema The Windows authentication package used, such as Kerberos or NTLM.
LogonType Panther FDR schema The logon type of the session it was seen in — 2 interactive, 3 network, 10 remote desktop.
UserIsAdmin Panther FDR schema 1 if the account has administrator rights on the host.
UserFlags Panther FDR schema Logon flags; Panther's schema lists LOGON_OPTIMIZED (0x4000), LOGON_WINLOGON (0x8000), LOGON_PKINIT (0x10000) and LOGON_NOT_OPTIMIZED (0x20000). PKINIT is a certificate-based Kerberos logon, as with a smart card.
PasswordLastSet Panther FDR schema When the password was last changed, in Unix epoch seconds.
AuthenticationId Panther FDR schema The Windows logon session ID of the session the account was seen in; 999 is SYSTEM.
aid Panther FDR schema Sensor ID of the host. A SID-to-name mapping is safest per host for local accounts.
All 20 documented UserIdentity fields, besides the generic sensor fields
  • AuthenticationIdPanther FDR schema
  • AuthenticationPackagePanther FDR schema
  • AuthenticationUuidPanther FDR schema
  • AuthenticationUuidAsStringPanther FDR schema
  • LogonDomainPanther FDR schema
  • LogonIdPanther FDR schema
  • LogonServerPanther FDR schema
  • LogonTimePanther FDR schema
  • LogonTypePanther FDR schema
  • PasswordLastSetPanther FDR schema
  • RemoteAccountPanther FDR schema
  • SessionIdPanther FDR schema
  • UIDPanther FDR schema
  • UserCanonicalPanther FDR schema
  • UserFlagsPanther FDR schema
  • UserIsAdminPanther FDR schema
  • UserLogonFlagsPanther FDR schema
  • UserNamePanther FDR schema
  • UserPrincipalPanther FDR schema
  • UserSidPanther FDR schema

Panther's generic schema for all Falcon Data Replicator events adds the sensor and context fields (not every event type fills each one): ComputerName, ConfigBuild, ConfigStateHash, ContextProcessId, ContextThreadId, ContextTimeStamp, Entitlements, FileName, FilePath, InContext, TargetProcessId, TreeId, aid, aip, cid, event_platform, event_simpleName, id, name, timestamp.

What the numbers mean

These fields hold numbers that the Falcon console turns into words. The tables are CrowdStrike's own, from the decoding transforms in its public LogScale content repository, shown as published.

LogonType source ↗︎

0 System
2 Interactive
3 Network
4 Batch
5 Service
6 Proxy
7 Unlock
8 Network Cleartext
9 New Credential
10 Remote Interactive
11 Cached Interactive
12 Cached Remote Interactive
13 Cached Unlock

UserIsAdmin source ↗︎

0 No
1 Yes

AuthenticationId source ↗︎

0 Invalid Luid
996 Network Service
997 Local Service
999 System
1000 Reserved Luid Max

What it records

UserIdentity describes an account that logged on to a host: its name (UserName), SID (UserSid), domain (LogonDomain), principal name (UserPrincipal), the server that authenticated it (LogonServer) and how — AuthenticationPackage, such as Kerberos or NTLM, and LogonType. It adds facts about the account itself: UserIsAdmin for administrator rights on the host, PasswordLastSet, and UserFlags, whose LOGON_PKINIT value marks a certificate-based Kerberos logon such as a smart card.

According to Panther’s schema the sensor normally sends it about once per account rather than at every logon, which makes it a reference record. That matters because other events name the user only by SID: ProcessRollup2 carries UserSid, and CrowdStrike’s ProcessRollup2 curation query notes that the user name is not in those records when they come through Falcon Data Replicator. UserIdentity (together with UserLogon) is how CrowdStrike’s own queries — that curation query and its join example — turn those SIDs into names.

When it matters

  • Naming the user behind a process. In exported Falcon data, a suspicious command line comes with a SID. Joining UserIdentity on aid and UserSid gives the account, domain and principal name you need for the report and for disabling the account.
  • New administrators. An account appearing with UserIsAdmin 1 on hosts where it never had administrator rights is worth asking about.
  • NTLM where Kerberos is expected. Domain accounts that authenticate with NTLM on hosts that normally use Kerberos can be older software, or credentials used in ways Kerberos would not allow; either way it is a list worth having when hardening.

How to investigate

  1. Build a SID-to-name table per host from UserIdentity, leaving out machine accounts and Windows session accounts.
  2. Join it to the events you are investigating on aid and UserSid.
  3. For an account of interest, review LogonServer, AuthenticationPackage and UserIsAdmin across hosts, then its logons and failed logons.

PowerShell executions with the account name added from UserIdentity, in Falcon’s event search:

#event_simpleName=ProcessRollup2 event_platform=Win ImageFileName=/\\powershell\.exe$/i
| join({#event_simpleName=UserIdentity}, field=[aid, UserSid], include=[UserName, LogonDomain], mode=left)
| groupBy([aid, UserSid, UserName, LogonDomain], function=count(as=Executions), limit=max)
| sort(Executions, order=desc)

Accounts seen authenticating with NTLM, by number of hosts:

#event_simpleName=UserIdentity event_platform=Win
| AuthenticationPackage=/ntlm/i
| UserName!=/(\$$|^DWM-|^UMFD-)/
| groupBy([UserName, LogonDomain, LogonServer], function=count(aid, distinct=true, as=Hosts), limit=max)
| sort(Hosts, order=desc)

A SID-to-name table over Falcon Data Replicator data in Splunk (add your index):

sourcetype="crowdstrike:events:sensor" event_simpleName=UserIdentity
| stats latest(UserName) AS LastName, latest(LogonDomain) AS Domain, values(AuthenticationPackage) AS Packages by aid, UserSid

The CrowdStrike field reference covers the export format itself.

Where these facts come from

CrowdStrike's event dictionary sits behind the Falcon console login, so the field list above is assembled from public sources that agree with one another, and checked on every build:

A field counts as documented when Panther or Splunk lists it for this event, or when at least two of CrowdStrike's query files read it from this event alone. The explanations are LogTriage's own.

Related events

Frequently Asked Questions

Is a UserIdentity event a sign of suspicious activity?
No. Panther's schema notes that the sensor normally sends it about once per account, to tell CrowdStrike's cloud who that account is. Its value is as a reference table, mapping each UserSid seen in other events to a name, domain and principal name, rather than as a signal in itself.
How do I put user names on ProcessRollup2 events from Falcon Data Replicator?
ProcessRollup2 identifies the user by UserSid, and a CrowdStrike query notes that the name is not in those records when they come through Falcon Data Replicator. Join UserIdentity events on aid and UserSid and take UserName from them, as CrowdStrike's own ProcessRollup2 curation query does.
Which UserName values should a lookup leave out?
CrowdStrike's own join leaves out names ending in $ (computer accounts), names starting with DWM- and UMFD- (the Desktop Window Manager and font driver accounts Windows creates for each session), LOCAL SERVICE and empty names. What remains are the people and service accounts you are investigating.
Why does the same UserSid have different names on different hosts?
Local accounts are numbered per computer, so a local SID belongs to one machine, and a renamed domain account keeps its SID while the name changes. Map SIDs per host for local accounts and take the most recent name for domain accounts.

Find every UserIdentity in your own Falcon export

Load a Falcon Data Replicator or event-stream export into the free browser analyzer: suspicious command lines, LSASS access, logon failures, reverse-shell ports and Falcon's own detections are flagged, with event names linked to their pages here. Nothing is uploaded.

Investigating something right now? LogTriage checks every address in the file against threat intelligence and writes the incident report: 10 analyses a month free. The incident pack adds the in-depth AI analysis and files up to 100 MB: 25 analyses for $19, one payment, no subscription. Pricing