DocumentationAPI ReferenceRelease Notes
Log In
Documentation

EPM Elastic events

Why change to Elastic Common Schema (ECS)?

EPM is developing a more scalable data infrastructure to better support your reporting, analytics, and insights needs.

We’re using the elastic stack to provide scale and speed in ingesting and searching the millions of events we process every day.

To enable better correlation of our data with others sources and make our events easier to work with, we have adopted the well-known open source schema that was built for Elastic: the Elastic Common Schema (ECS).

ℹ️

Note

For more information, see Elastics Docs.

What does it mean for me?

There is no change in your existing analytics or SIEM integrations in EPM.

A new API is exposed to extract the events in bulk.

get /v{version}/Events/FromStartDate

The following is an example PowerShell usage script.

## Example Usage .\Events_FromStartDate.ps1 -nextDate "YYYY-MM-DDTHH:MM:SSZ" -tenantName "Prefix" -apiClientId "CLIENT ID" -apiClientSecret "CLIENT SECRET"

param (
    [Parameter(mandatory = $true)] $nextDate,
    [Parameter(mandatory = $true)] $tenantName,
    [Parameter(mandatory = $true)] $apiClientId,
    [Parameter(mandatory = $true)] $apiClientSecret
)

$_baseUrl = "https://$tenantName-services.pm.beyondtrustcloud.com"
$scriptDir = $PSScriptRoot
$finalFile = Join-Path $scriptDir "Events.json"

function Get-AccessToken(
    [Parameter(mandatory = $true)][string] $apiClientId,
    [Parameter(mandatory = $true)][string] $apiClientSecret) {

    $authBody = @{
        client_id     = "$apiClientId"
        client_secret = "$apiClientSecret"
        scope         = "urn:management:api"
        grant_type    = "client_credentials"
    }
    $tokenUrl = "$_baseUrl/oauth/token"
    $response = Invoke-WebRequest -Uri $tokenUrl -ContentType "application/x-www-form-urlencoded" -Body $authBody -Method Post -ErrorAction Stop
    $accessToken = $response.content | ConvertFrom-Json
    return $accessToken
}

function Fix-DuplicateKeys($jsonString) {
    $fixedJsonString = $jsonString -replace '"Owner":', '"owner":'
    return $fixedJsonString
}

function Get-AllPages( 
    [Parameter(mandatory = $true)][System.Object] $accessToken, 
    [Parameter(mandatory = $true)][string] $nextDate) {

    $page = 1
    $eventIds = @{}
    $totalEvents = 0

    try {
        $writer = [System.IO.StreamWriter]::new($finalFile)
        $writer.WriteLine("{") | Out-Null
        $writer.WriteLine("\`"totalRecordsReturned\`": 0,") | Out-Null
        $writer.WriteLine("\`"events\`": [") | Out-Null

        $firstEvent = $true

        while ($true) {
            if (($accessToken.expires_in - $TotalStopwatch.Elapsed.Seconds) -lt 10) {
                Write-Host "******* AccessToken Expiring in 10 Sec So Requesting New Accesstoken ********"
                $accessToken = Get-AccessToken $apiClientId $apiClientSecret
            }
            $headers = @{
                'Authorization'     = "Bearer " + $accessToken.access_token
                'Content-Type'      = 'application/json'
                'ExpiresOn'         = $accessToken.expires_in
                'client-request-id' = New-Guid
            }
            $Stopwatch = [System.Diagnostics.Stopwatch]::StartNew()
            $resourceUrl = "$_baseUrl/management-api/v2/Events/FromStartDate?StartDate=$nextDate&RecordSize=1000"
            $Response = Invoke-WebRequest -Uri $resourceUrl -Headers $headers -Method Get -ErrorAction Stop
            $Stopwatch.Stop()

            $fixedJsonString = Fix-DuplicateKeys $Response.content
            $jsonObj = $fixedJsonString | ConvertFrom-Json

            foreach ($event in $jsonObj.events) {
                if (-not $eventIds.ContainsKey($event.event.id)) {
                    $eventIds[$event.event.id] = $true
                    $eventJson = $event | ConvertTo-Json -Depth 10 -Compress
                    if (-not $firstEvent) {
                        $writer.WriteLine(",") | Out-Null
                    }
                    $writer.Write($eventJson) | Out-Null
                    $firstEvent = $false
                    $totalEvents++
                }
            }

            $lastEvent = $jsonObj.events[$jsonObj.events.Count - 1].event
            $lastTimeStamp = [DateTime]::Parse($lastEvent.ingested).ToUniversalTime().ToString('o')

            $timetake = $Stopwatch.ElapsedMilliseconds 
            $line = "$page*1000 -- $nextDate  TimeTake: $timetake"
            Write-Host $line 

            $page++
            $nextDate = $lastTimeStamp
            if ($jsonObj.events.Count -lt 1000) { break; }
        }

        $writer.WriteLine("]") | Out-Null
        $writer.WriteLine("}") | Out-Null
        $writer.Close()
    (Get-Content $finalFile) -replace '"totalRecordsReturned": 0,', "\`"totalRecordsReturned\`": $totalEvents," | Set-Content $finalFile
    }
    catch {
        Write-Host "An error occurred: $_"
    }
}

$TotalStopwatch = [System.Diagnostics.Stopwatch]::StartNew()
$accessToken = Get-AccessToken $apiClientId $apiClientSecret
Get-AllPages $accessToken $nextDate
$TotalStopwatch.Stop()
$sec = $TotalStopwatch.Elapsed.TotalSeconds
$finishLine = "Total Time Taken To Fetch All Pages $sec Seconds"
Write-Host $finishLine
exit(0)

Elastic based events

The following tables indicate the presence of field sets for each event type currently raised.

The Field Sets tables contain the following:

  • Some field sets are always present.
  • Some are always present for that event type.
  • Some always present for a given application type.
  • Some are always optional, present when a particular rule configuration drives them.

The Fields Sets Details tables contain fields within a field set and whether they are mandatory or optional (within that field set).

Some ECS field sets are extended with custom fields where necessary. For those properties specific to Endpoint Privilege Management, there is a EPMWinMac field set too.

ℹ️

Note

For more information on Elastic custom fields, see Elastic's Custom Fields documentation.

Field sets

Key for field sets

Cell ValueDefinitionDescription
mmandatoryField set will always be populated.
ooptionalField set populated if the feature was used on that rule. Configuration driven.

Windows processes - field sets

Event Action

(event.action)
process-start-*process requires-elevationprocess-start-*
Event Codes100-200100-200100-200100-200100-200100-200100-200
Application Typesexeunin, unex'cpl, msc, msi, wsh, ps1, bat, regunin, unex^comocxappx
Commonmmmmmmm
Usermmmmmmm
Configurationmmmmmm
Processmmmmmm
Win Processmmmm
Filemmm
Win Exe Filemmm
Win Hosted Filemm
Win Installersm
Win Uninstallersmm
COMm
ActiveXm
Store Appsm
Authorizing Userooooooo
Rule Scriptoooooo
TAPoooo

'- when Parent Process is not msiexec.exe

^- when Parent Process is msiexec.exe

Mac processes - field sets

Event Action

(event.action)
process-start-*process-start-*bundle-*
Events codes100-120100-120130,131
Application typesbin, bund, pref, pkgsudo, scrbund
Commonmmm
Usermmm
Configurationmmm
Processmmm
mac Processmm
Filem
mac Exe Filem
mac Hosted Filem
Authorizing Userooo

Other - field sets

Event Action

(event.action)
license-unlicensedservice-*privileged-group-modification-blockedchallenge-response-authorization-failed-process-blockeduser-logonepm-service-startepm-service-stopfile-*dll-load-*
Operating systemWin, macOSWinWinWin, macOSWinWinWinWinWin
Event Code(s)10150-162198199300400401600-606706,716,720
Application Types-svc-----contdll
Commonmmmmmmmmm
Usermmmmmm
EPM Startmm
EPM Stop
User Sessionm
Configurationmmmm
Processmmmm
Win Processm
Filemm
Servicesm
PPAMm
DLL
Authorizing Userom
TAPm

Field sets detail

Key for field sets detail

Cell ValueDefinitionDescription
mmandatoryField will always be populated
ooptionalField populated if the data exists and can be sourced for this event

Common

All events raised will have these fields.

Field ECSECS TypeRequiredExamples
@timestampdatem2023-03-16T08:05:34.853Z
agent.idkeywordm4965825c-0da2-4cce-a99e-af655d1fcc0d
agent.versionkeywordm23.1.0.1
event.actionkeywordmprocess-start-blocked, privileged-group-modification-blocked
event.codekeywordm100, 116, 400
event.idkeywordma5239a3a-e352-416d-9927-708d7ef65910
host.domainkeywordoStanLand
host.hostnamekeywordmStan-Win-PC
host.idkeywordmS-1-5-21-995079707-3417812545-548763902-4783
host.DomainIdentifierkeywordoS-1-5-21-995079707-3417812545-548763902
host.os.typekeywordmwindows, macos
host.os.versionkeywordm12.4
EPMWinMac.Event.TypekeywordmProcess, Content
EPMWinMac.GroupIdkeywordm099ce279-5d33-4331-8a94-2b1c76073085
EPMWinMac.SchemaVersionkeywordm4.4.0

User

Field ECSECS TypeRequired (when this field is present)Examples
user.namekeywordmStan
user.domainkeywordoStanLand
user.idkeywordmS-1-5-21-1234567890-1212121212-635717638-56524798
user.DomainIdentifierkeywordoS-1-5-21-1234567890-1212121212-635717638
user.LocalIdentifierkeywordo501

Configuration

Any event raised by an Endpoint Privilege Management for Windows or Endpoint Privilege Management for Mac rule match has these fields.

Field ECSECS TypeRequired(when this field set is present)Examples
EPMWinMac.Configuration.Application.Typekeywordmexe, bund, svc, bat
EPMWinMac.Configuration.Identifierkeywordm3732243d-6206-4c6c-8a17-bb60c1235b52
EPMWinMac.Configuration.Message.NamekeywordoAllow Message (enter Reason)
EPMWinMac.Configuration.Message.TypekeywordoPrompt, Notification
EPMWinMac.Configuration.Message.Identifierkeywordoefa4004d-e1b7-4f85-a49a-375160aa65fc
EPMWinMac.Configuration.Workstyle.NamekeywordmAll Users
EPMWinMac.Configuration.Workstyle.Identifierkeywordm8506a411-979d-4f14-aee4-1fb65a8e68ea
EPMWinMac.Configuration.ApplicationGroup.Namekeywordm(Default) Any UAC Prompt
EPMWinMac.Configuration.ApplicationGroup.Identifierkeywordma875788d-bcbc-4d63-b43d-d6224a50ea7b
EPMWinMac.Configuration.Application.DescriptionkeywordmAny COM Class
EPMWinMac.Configuration.Application.Identifierkeywordm9d541a2f-3347-448f-8146-797a833c62ed
EPMWinMac.Configuration.Rule.Identifierkeywordmb70bb7cb-6202-440e-abe0-f6a93b6ebc39
EPMWinMac.Configuration.Rule.Actionkeywordoallow, block
EPMWinMac.Configuration.Rule.OnDemandbooleanotrue
EPMWinMac.Configuration.Token.Identifierkeywordof8d4ce02-e95d-4700-b69a-957dc5c1de6f
EPMWinMac.Configuration.Token.NamekeywordoAdd Basic Admin Rights, Passive (No Change)
EPMWinMac.Configuration.Token.DescriptionkeywordoEndpoint Privilege Management Support Token
EPMWinMac.Configuration.Message.UserReasonkeyword & textoOther: Reason not listed
EPMWinMac.Configuration.Message.AuthMethodskeywordo 
EPMWinMac.Configuration.Message.Authentication.Userkeyword & texto 
EPMWinMac.Configuration.Message.Authorization.ChallengeCodekeywordm123456
EPMWinMac.Configuration.Message.Authorization.ResponseStatuskeywordm 
EPMWinMac.Event.ActionkeywordmAllowed, Cancelled, Blocked, Elevated

Process

Field ECSECS TypeRequired(when this field set is present)Examples
process.startdatem2023-03-16T08:05:34.853Z
process.command_linekeyword & texto"C:\Program Files\Google\Chrome\Application\chrome.exe"
process.pidkeywordm17501
process.executablekeyword & textmc:\windows\system32\svchost.exe
process.parent.executablekeyword & textoc:\windows\explorer.exe
process.parent.pidkeywordo6332
process.user.DomainIdentifierkeywordoS-1-5-21-1234567890-1212121212-635717638
process.user.domainkeywordoStanLand
process.user.idkeywordoS-1-5-21-1234567890-1212121212-635717638-56524798
process.user.namekeywordoStan

Windows process

Field ECSECS TypeRequired(when this field set is present)Examples
process.entity_idkeywordm248d7b79-73df-4478-9328-84f1b9e04e52
process.parent.entity_idkeywordobce44920-8c58-4282-a2a4-90d21664d8de
EPMWinMac.ElevationRequiredbooleanmtrue, false
client.Namekeywordm 

macOS process

Field ECSECS TypeRequired(when this field set is present)Examples
process.namekeywordmDateAndTime
EPMWinMac.AuthorizationRequest.AuthRequestURIkeywordosystem.install.software

File

Field ECSECS TypeRequiredExamples
file.code_signature.subject_namekeywordoMicrosoft Windows
file.DriveTypekeywordmFixed Disk
file.hash.sha1keywordmacf9e85f6a590925c13bb2bced82978a431d706e
file.hash.sha256keywordmc3eb055c9bc5b53d16be3cc7fc7ac27cefa553ed5612738e568869fe0cf28e8e
file.hash.md5keywordo5DA8C98136D98DFEC4716EDD79C7145F
file.Owner.IdentifierkeywordmS-1-5-80-956008885-3418522649-1831038044-1853292631-2271478464
file.ownerkeywordmTrustedInstaller, Stan
file.Owner.DomainIdentifierkeywordoS-1-5-80
file.Owner.DomainNamekeywordoNT SERVICE
file.pathkeyword & textmc:\program files\windows nt\accessories\wordpad.exe
file.SourceUrlkeywordohttps://github.com/notepad-plus-plus/notepad-plus-plus/releases/download/v8.4.9/npp.8.4.9.Installer.x64.exe

Windows executable file

Field ECSECS TypeRequiredExamples
file.pe.descriptionkeywordoPaint
file.pe.productkeywordoMicrosoft® Windows® Operating System
file.pe.file_versionkeywordo10.0.19041.1766 (WinBuild.160101.0800)
file.pe.ProductVersionkeywordo10.0.19041.1766
file.Owner.DomainNetBIOSNamekeywordoNT SERVICE
file.ZoneTagkeywordo3

macOS executable file

Field ECSECS TypeRequiredExamples
file.Bundle.Creatorkeywordm 
file.Bundle.InfoDescriptionkeywordo 
file.Bundle.NamekeywordmNotes
file.Bundle.TypekeywordmAPPL, BNDL,
file.Bundle.Urikeywordocom.apple.Notes
file.Bundle.Versionkeywordm4.9
file.gidkeywordm 
file.groupkeywordm 

Hosted file

Field ECSECS TypeRequiredExamples
process.HostedFile.code_signature.subject_namekeywordoMicrosoft Windows
process.HostedFile.DriveTypekeywordmFixed Disk
process.HostedFile.hash.sha1keywordmacf9e85f6a590925c13bb2bced82978a431d706e
process.HostedFile.hash.sha256keywordmc3eb055c9bc5b53d16be3cc7fc7ac27cefa553ed5612738e568869fe0cf28e8e
process.HostedFile.hash.md5keywordo5DA8C98136D98DFEC4716EDD79C7145F
process.HostedFile.Owner.IdentifierkeywordoS-1-5-80-956008885-3418522649-1831038044-1853292631-2271478464
process.HostedFile.ownerkeywordoTrustedInstaller
process.HostedFile.Owner.DomainIdentifierkeywordoS-1-5-80
process.HostedFile.Owner.DomainNamekeywordoNT SERVICE
process.HostedFile.pathkeyword & textmc:\program process.HostedFiles\windows nt\accessories\wordpad.exe
process.HostedFile.SourceUrlkeywordohttps://github.com/notepad-plus-plus/notepad-plus-plus/releases/download/v8.4.9/npp.8.4.9.Installer.x64.exe

macOS hosted file

Field ECSECS TypeRequiredExamples
process.HostedFile.gidkeywordm20
process.HostedFile.groupkeywordmstaff

Windows COM

Field ECSECS TypeRequiredExamples
EPMWinMac.Com.ClsIdentifierkeywordm 
EPMWinMac.Com.AppIdentifierkeywordm 
EPMWinMac.Com.DisplayNamekeywordm 

Windows ActiveX

Field ECSECS TypeRequiredExamples
EPMWinMac.ActiveX.Codebasekeyword & textm"https://qa-webserver-01/ActiveX/JONTESTOCX.ocx"
EPMWinMac.ActiveX.CLSIDkeywordm{5A2BF647-7719-4A60-BD9B-E86F4E262312}
EPMWinMac.ActiveX.Versionkeywordm"0.0.0.0"

Windows Store apps

Field ECSECS TypeRequiredExamples
EPMWinMac.StoreApp.Namekeywordm 
EPMWinMac.StoreApp.Publisherkeywordm 
EPMWinMac.StoreApp.Versionkeywordm 

Windows remote PowerShell

Field ECSECS TypeRequiredExamples
EPMWinMac.RemotePowerShell.Commandkeywordm 

Windows installers

Field ECSECS TypeRequiredExamples
EPMWinMac.Installer.ProductCodekeywordm 
EPMWinMac.Installer.UpgradeCodekeywordm 

Uninstallers

Field ECSECS TypeRequiredExamples
EPMWinMac.Installer.ActionkeywordmUninstall, Remove, Repair

Services

ECS FieldECS TypeRequiredExamples
EPMWinMac.ServiceControl.Service.ActionkeywordmStart, Stop, Configure
EPMWinMac.ServiceControl.Service.DisplayNamekeywordmMicrosoft Intune Management Extension
EPMWinMac.ServiceControl.Service.NamekeywordmIntuneManagementExtension

PPAM

ECS FieldECS TypeRequiredExamples
EPMWinMac.PreventPrivilegedGroup.AccesskeywordmWrite General Information Attributes, Read Account Attributes, Write Account Attributes, Set User's Password, Query Membership
EPMWinMac.PreventPrivilegedGroup.NamekeywordmAdministrators
EPMWinMac.PreventPrivilegedGroup.Ridkeywordm544

DLL

ECS FieldECS TypeRequiredExamples
dll.code_signature.subject_namekeyword & texto 

User session

Field ECSECS TypeRequiredExamples
EPMWinMac.Session.Administratorbooleanmtrue, false
EPMWinMac.Session.Localekeywordmen-GB
EPMWinMac.Session.Identifierkeywordm25194188-61fe-4e51-9015-330c5a2f44fc
EPMWinMac.Session.PowerUserbooleanmtrue, false
EPMWinMac.Session.WindowsSessionIdkeywordm8
EPMWinMac.Session.UILanguagekeywordmen-GB

EPM start

Field ECSECS TypeRequired(when this field set is present)Examples
agent.ephemeral_idkeywordm043AB647-338D-4A89-BF4C-61019DBC9AEE
host.os.versionkeywordm10.14.1
host.uptimenumberm63579
host.ChassisTypekeywordmDesktop, Laptop, Rack Mount Chassis
host.DefaultLocalekeywordmeb-GB
host.DefaultUILanguagekeywordmeb-GB
host.geo.TimezoneOffsetkeywordm+120, -60
host.os.ProductTypekeywordmWorkstation, Server

EPM stop

Field ECSECS TypeRequired(when this field set is present)Examples
agent.ephemeral_idkeywordm043AB647-338D-4A89-BF4C-61019DBC9AEE

Authorizing user

Field ECSECS TypeRequiredExamples
EPMWinMac.AuthorizingUser.Identifierkeywordm 
EPMWinMac.AuthorizingUser.Namekeyword & textm 
EPMWinMac.AuthorizingUser.DomainIdentifierkeywordo 
EPMWinMac.AuthorizingUser.DomainNamekeyword & texto 
EPMWinMac.AuthorizingUser.DomainNetBIOSNamekeyword & texto 

Rule script

Field ECSECS TypeRequiredExamples
EPMWinMac.Configuration.RuleScript.FileNamekeywordm 
EPMWinMac.Configuration.RuleScript.Outcome.Namekeywordo 
EPMWinMac.Configuration.RuleScript.Outcome.Outputkeywordo 
EPMWinMac.Configuration.RuleScript.Publisherkeyword & texto 
EPMWinMac.Configuration.RuleScript.Outcome.Resultkeyword & texto 
EPMWinMac.Configuration.RuleScript.Outcome.RuleAffectedbooleanm 
EPMWinMac.Configuration.RuleScript.Outcome.Versionkeyword & texto 

Trusted application protection

These fields are populated when the Trusted Application Workstyles are enabled and a Trusted Application has a child process launch or DLL load blocked.

Field ECSECS TypeRequiredExamples
EPMWinMac.TrustedApplication.NamekeywordmAdobe Acrobat Reader DC
EPMWinMac.TrustedApplication.Versionkeywordm20.6.20042.371103

©2003-2025 BeyondTrust Corporation. All Rights Reserved. Other trademarks identified on this page are owned by their respective owners. BeyondTrust is not a chartered bank or trust company, or depository institution. It is not authorized to accept deposits or trust accounts and is not licensed or regulated by any state or federal banking authority.