Splunk® User Behavior Analytics

Get Data into Splunk User Behavior Analytics

Acrobat logo Download manual as PDF


Acrobat logo Download topic as PDF

Add Windows events to Splunk UBA

Windows security events from endpoints such as desktop systems or laptops are used by Splunk UBA to provide insight into system activity. You can also use Windows event data to associate IP addresses to device names and human users. See Which Windows events are used by Splunk UBA?

Windows events can be logged in many formats, with native multiline or XML being the most command formats. Splunk UBA can ingest Windows logs in both multiline and XML formats. A different method of ingestion is required for each, as described below:

How to get multiline Windows events in to Splunk UBA

Perform the following steps to get multiline Windows events in to Splunk UBA:

  1. Verify that your Windows events are in multiline format. See What does a multiline Windows event look like?
  2. Follow the steps in Use the Splunk Raw Events connector to get multiline Windows events in to Splunk UBA.

What does a multiline Windows event look like?

An example multiline Windows event is shown below:

11/18/2020 2:49:32 PM
LogName=Security
SourceName=Microsoft Windows security auditing.
EventCode=4624
EventType=0
Type=Information
ComputerName=ubanode.exampledomain.local
TaskCategory=Logon
OpCode=Info
RecordNumber=989284571
Keywords=Audit Success
Message=An account was successfully logged on.
Subject:
    Security ID:        NULL SID
    Account Name:       -
    Account Domain:     -
    Logon ID:       0x0
Logon Type:         3
Impersonation Level:        Impersonation
New Logon:
    Security ID:        EXAMPLEDOMAIN\ad_user1
    Account Name:       ad_user1
    Account Domain:     EXAMPLEDOMAIN
    Logon ID:       0xF13AE
    Logon GUID:     {3134bb44-1592-fc31-6404-b4b820e7507e}
Process Information:
    Process ID:     0x0
    Process Name:       -
Network Information:
    Workstation Name: 
    Source Network Address: -
    Source Port:        -
Detailed Authentication Information:
    Logon Process:      Kerberos
    Authentication Package: Kerberos
    Transited Services: -
    Package Name (NTLM only):   -
    Key Length:     0

Use the Splunk Raw Events connector to get multiline Windows events in to Splunk UBA

Perform the following steps to get your multiline Windows events in to Splunk UBA. For detailed instructions on adding data sources using the Splunk Raw Events connector, see Add raw events from the Splunk platform to Splunk UBA .

  1. In Splunk UBA, select Manage > Data Sources.
  2. Click New Data Source.
  3. Select Splunk as the data source type.
  4. Click Next.
  5. Specify a name for the data source, such as Splunk.
  6. Type a connection URL that matches the URL for your Splunk platform search head and management port. For example, https://splunksearchhead.splunk.com:8089. If you have search head clustering configured and a load balancer is available, you can specify the load balancer host name to avoid a single point failure. Ensure that port 8089 is accessible on the load balancer.
  7. Type the user name and password for the Splunk platform account.
  8. Select a Connector Type of Splunk Raw Events.
  9. Click Next.
  10. Select a time range, such as Live and All time.
  11. Click Next.
  12. Click Splunk Query and add the name of your index as the query. For example:

    index=<your_multiline_Windows_index_name>

  13. Select Single Format, then click in the drop-down list and select Windows Event Log (Multiline).
  14. Click Next.
  15. To add the data source in test mode, leave the check box selected. See Add data sources to Splunk UBA in test mode.
  16. Click OK.

How to get XML Windows events in to Splunk UBA

Perform the following steps to get multiline Windows events in to Splunk UBA:

  1. Verify that your Windows events are in XML format. See What does an XML Windows event look like?
  2. Follow the steps in Use the Splunk Direct connector to get XML Windows events in to Splunk UBA.

What does an XML Windows event look like?

An example XML Windows event is shown below:

<?xml version="1.0"?>
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
  <System>
    <Provider Name="Microsoft-Windows-Security-Auditing" Guid="{54849625-5478-4994-A5BA-3E3B0328C30D}"/>
    <EventID>4624</EventID>
    <Version>2</Version>
    <Level>0</Level>
    <Task>12544</Task>
    <Opcode>0</Opcode>
    <Keywords>0x8020000000000000</Keywords>
    <TimeCreated SystemTime="2015-11-12T00:24:35.079785200Z"/>
    <EventRecordID>211</EventRecordID>
    <Correlation ActivityID="{00D66690-1CDF-0000-AC66-D600DF1CD101}"/>
    <Execution ProcessID="716" ThreadID="760"/>
    <Channel>Security</Channel>
    <Computer>WIN-GG82ULGC9GO</Computer>
    <Security/>
  </System>
  <EventData>
    <Data Name="SubjectUserSid">S-1-5-18</Data>
    <Data Name="SubjectUserName">WIN-GG82ULGC9GO$</Data>
    <Data Name="SubjectDomainName">WORKGROUP</Data>
    <Data Name="SubjectLogonId">0x3e7</Data>
    <Data Name="TargetUserSid">S-1-5-21-1377283216-344919071-3415362939-500</Data>
    <Data Name="TargetUserName">Administrator</Data>
    <Data Name="TargetDomainName">WIN-GG82ULGC9GO</Data>
    <Data Name="TargetLogonId">0x8dcdc</Data>
    <Data Name="LogonType">2</Data>
    <Data Name="LogonProcessName">User32</Data>
    <Data Name="AuthenticationPackageName">Negotiate</Data>
    <Data Name="WorkstationName">WIN-GG82ULGC9GO</Data>
    <Data Name="LogonGuid">{00000000-0000-0000-0000-000000000000}</Data>
    <Data Name="TransmittedServices">-</Data>
    <Data Name="LmPackageName">-</Data>
    <Data Name="KeyLength">0</Data>
    <Data Name="ProcessId">0x44c</Data>
    <Data Name="ProcessName">C:\\Windows\\System32\\svchost.exe</Data>
    <Data Name="IpAddress">127.0.0.1</Data>
    <Data Name="IpPort">0</Data>
    <Data Name="ImpersonationLevel">%%1833</Data>
    <Data Name="RestrictedAdminMode">-</Data>
    <Data Name="TargetOutboundUserName">-</Data>
    <Data Name="TargetOutboundDomainName">-</Data>
    <Data Name="VirtualAccount">%%1843</Data>
    <Data Name="TargetLinkedLogonId">0x0</Data>
    <Data Name="ElevatedToken">%%1842</Data>
  </EventData>
</Event>

Use the Splunk Direct connector to get XML Windows events in to Splunk UBA

Perform the following steps to get your XML Windows events in to Splunk UBA. For detailed instructions on adding data sources using the Splunk Direct connector, see Add CIM-compliant data from the Splunk platform to Splunk UBA. The procedure for adding XML Windows events into Splunk UBA is the same as adding a CIM-compliant data source, except that you will not select the CIM Compliant checkbox during the procedure.

  1. In Splunk UBA, select Manage > Data Sources.
  2. Click New Data Source.
  3. Select a data source type of Splunk.
  4. Click Next.
  5. Specify a name for the data source, such as Splunk.
  6. Type a connection URL that matches the URL for your Splunk platform search head and management port. For example, https://splunksearchhead.splunk.com:8089. If you have search head clustering configured and a load balancer is available, you can specify the load balancer host name to avoid a single point failure. Ensure that port 8089 is accessible on the load balancer.
  7. Type the user name and password for the Splunk platform account.
  8. Leave or select Splunk Direct as the connector type.

    Do not check the CIM Compliant check box.

  9. Click Next.
  10. Select a time range, such as Live and All time.
  11. Click Next.
  12. Select Splunk Query and enter the following search in the field. Replace <YOUR_INDEX_NAME> with the name of your XML Windows events index.

    index="<YOUR_INDEX_NAME>" | spath output='Event.System.Computer' path=Event.System.Computer | spath output='Event.System.Level' path=Event.System.Level | spath output='Event.System.Version' path=Event.System.Version | rex "\<Provider Name=\'(?<SourceName>[^\']+)\'" | rex "\<EventID.*?\>(?<EventCode>[^\<]+)\<" | eval Application_Name=if(isnotnull(Application), Application, app), Caller_Computer_Name=if(isnotnull(TargetDomainName), TargetDomainName, CallerComputerName),Caller_Process_ID=if(isnotnull(CallerProcessId), CallerProcessId, ProcessId),Caller_Process_Name=if(isnotnull(CallerProcessName), CallerProcessName, ProcessName), EventType=if(isnotnull(EventType),EventType, "0"), Logon_ID=if(isnotnull(SubjectLogonId), SubjectLogonId, TargetLogonId), Source_Port=if(isnotnull(IpPort), IpPort, SourcePort), Workstation_Name=if(isnotnull(WorkstationName), WorkstationName, Workstation_Name) | rename SubjectDomainName as Account_Domain, SubjectUserName as Account_Name, IpAddress as Client_Address, IpPort as Client_Port, CommandLine as commandArgs, Computer as ComputerName,ProcessId as Creator_Process_ID, Status as Error_Code,Status as Failure_Code, FailureReason as Failure_Reason, TargetUserName as Group_Domain, TargetDomainName as Group_Name, HandleId as Handle_ID, ImpersonationLevel as Impersonation_Level, Channel as LogName, TargetUserName as Logon_Account, LogonGuid as Logon_GUID, LogonProcessName as Logon_Process, LogonType as Logon_Type, IpAddress as Network_Address, TargetUserName as New_Account_Name, NewProcessId as New_Process_ID, NewProcessName as New_Process_Name, TargetUserSid as New_Security_ID, ObjectName as Object_Name, ObjectServer as Object_Server, ObjectType as Object_Type, OperationType as Operation_Type, PrivilegeList as Privileges, PrivilegeList as Privileges_Used_for_Access_Check, CommandLine as Process_Command_Line, ProcessId as Process_ID, ProcessName as Process_Name, Protocol as Protocol, Status as Result_Code, SubjectUserSid as Security_ID, Computer as Server, ServiceSid as Service_ID, ServiceName as Service_Name,ShareLocalPath as Share_Path, SourceAddress as Source_Address, IpAddress as Source_Network_Address, Workstation as Source_Workstation, Status as Status, SubStatus as Sub_Status, TargetDomainName as Supplied_Realm_Name, TargetServerName as Target_Server_Name, TicketEncryptionType as Ticket_Encryption_Type, TicketOptions as Ticket_Options, TokenElevationType as Token_Elevation_Type, TransactionId as Transaction_ID, TargetSid as User_ID | fields 'Event.System.Computer', 'Event.System.Level', 'Event.System.Version', Access_Mask, Accesses, Account_Domain, Account_Name, Application_Name, Authentication_Package, Caller_Computer_Name, Caller_Process_ID, Caller_Process_Name, Client_Address, Client_Port, commandArgs, ComputerName, Creator_Process_ID, Disabled_Privileges, Enabled_Privileges, Error_Code, EventCode, EventType, Failure_Code, Failure_Reason, Group_Domain, Group_Name, Handle_ID, Impersonation_Level, Keywords, LogName, Logon_Account, Logon_GUID, Logon_Process, Logon_Type, Network_Address, New_Account_Name, New_Process_ID, New_Process_Name, New_Security_ID, Object_Name, Object_Server, Object_Type, Operation_Type, Privileges, Privileges_Used_for_Access_Check, Process_ID, Process_Name, Protocol, Result_Code, Security_ID, Server, Service_ID,Service_Name, Share_Path, SourceName, Source_Address, Source_Network_Address, Source_Port, Source_Workstation, Status, Sub_Status, Supplied_Realm_Name, Target_Server_Name, Ticket_Encryption_Type, Ticket_Options, Token_Elevation_Type, Transaction_ID, User_ID, Workstation_Name, action, privilege_id, sourcetype, uba_source_type

  13. Click Next.
  14. Select Single Format as the data format, then click in the drop-down list and select AD.
  15. Click Next.
  16. Remove everything in the Splunk Query field, and paste the same search from earlier in this procedure here.
  17. Click Next.
  18. To add the data source in test mode, leave the check box selected. See Add data sources to Splunk UBA in test mode.
  19. Click OK to save the data source.
Last modified on 09 December, 2023
PREVIOUS
Use allow and deny lists to generate or suppress anomalies
  NEXT
Which Windows events are used by Splunk UBA?

This documentation applies to the following versions of Splunk® User Behavior Analytics: 5.0.0, 5.0.1, 5.0.2, 5.0.3, 5.0.4, 5.0.4.1, 5.0.5, 5.0.5.1, 5.1.0, 5.1.0.1, 5.2.0, 5.2.1, 5.3.0


Was this documentation topic helpful?


You must be logged into splunk.com in order to post comments. Log in now.

Please try to keep this discussion focused on the content covered in this documentation topic. If you have a more general question about Splunk functionality or are experiencing a difficulty with Splunk, consider posting a question to Splunkbase Answers.

0 out of 1000 Characters