Level 1: Ephemeral Values

Description: Observables that are trivial for an adversary to change, or that change even without adversary intervention.

Ephemeral values capture the context of what is currently happening to a user, process, or system. This includes observables such as process IDs, hash values, domain names, file names, and others. While these observables offer high precision, they are often easy to evade.

Why are these observables the lowest level?

These observables cannot be relied on to identify adversary behavior. These indicators take minimal effort for an adversary to change 1. A new hash value can be created if one bit is changed in a file. A file name can be obfuscated within an image. When building out analytics, these observables will mostly capture values which point to the context of a certain application, user, or process. While these observables can detect known malicious applications or processes, these will not detect anything new, or if the adversary decides to change an operational or environmental variable to evade detection. To ensure detection in-depth, these observables should be combined observables from other levels.

Examples: Hash values, IP addresses, protocol-specific ports, file names, domain names, processes, user oriented observables, others

Observables

Category

Observables

Generating Activity

Evade Behavior

Hash values

Hashes (Sysmon)

Passing file or object through mathmatical formula to create unique identifying number

Change one bit in file and regenerate hash

IP address

SourceIp (Sysmon)
DestinationIp (Sysmon)

Assigned by ISP 2

Connect to a different ISP, restart router or modem, or utilize a VPN

Protocol-specific ports

DestinationPort (Sysmon)
SourcePort (Sysmon)

Ports are standardized across network devices 3, while others aren’t associated with a protocol standard

Change port configuration settings in code or computer

Filenames

Image (Sysmon)
Parent image (Sysmon)
CurrentDirectory (Sysmon)
Extension (Sysmon)
TargetFilename (Sysmon)

Created by user to identify file

Filename can be changed by user or can be obfuscated in code deployment

Domain names

SourceHostname (Sysmon)
DestinationHostname (Sysmon)

Reigster domain name with registrar 4

Map tools or website to different domain name

Processes

ProcessGuid (Sysmon)
ProcessId (Sysmon)
Parent process GUID (Sysmon)
Subject SID (EID)
Target SID (EID)
New process ID (EID)
Creator Process ID (WEID)

New processes create creates a child process. The parent and child processes each are assigned a PID 5

Operating System Kernel creates a new process and associated metadata

Pipes

Pipe names (Sysmon)

A pipe server or user specifies a name for a pipe when it calls CreateNamedPipe functon 6

Change the name of the pipe

References

1

http://detect-respond.blogspot.com/2013/03/the-pyramid-of-pain.html

2

https://usa.kaspersky.com/resource-center/definitions/what-is-an-ip-address

3

https://www.cloudflare.com/learning/network-layer/what-is-a-computer-port/

4

https://www.codecademy.com/resources/blog/what-is-a-domain-name/#domain-name-registrars-and-registries

5

https://www.tutorialspoint.com/inter_process_communication/inter_process_communication_process_creation_termination.htm

6

https://learn.microsoft.com/en-us/windows/win32/ipc/pipe-names