schemas/v1/collection/collection.yaml (694 lines of code) (raw):
'@timestamp':
dashed_name: timestamp
description: 'Date/time when the event originated.
This is the date/time extracted from the event, typically representing when the
event was generated by the source.
If the event source has no original timestamp, this value is typically populated
by the first time the event was received by the pipeline.
Required field for all events.'
example: '2016-05-23T08:05:34.853Z'
flat_name: '@timestamp'
level: core
name: '@timestamp'
normalize: []
required: true
short: Date/time when the event originated.
type: date
data_stream.dataset:
dashed_name: data-stream-dataset
description: Data stream dataset name.
example: nginx.access
flat_name: data_stream.dataset
level: custom
name: dataset
normalize: []
short: The field can contain anything that makes sense to signify the source of
the data.
type: constant_keyword
data_stream.namespace:
dashed_name: data-stream-namespace
description: Data stream namespace.
example: production
flat_name: data_stream.namespace
level: custom
name: namespace
normalize: []
short: A user defined namespace. Namespaces are useful to allow grouping of data.
type: constant_keyword
data_stream.type:
dashed_name: data-stream-type
description: Data stream type.
example: logs
flat_name: data_stream.type
level: custom
name: type
normalize: []
short: An overarching type for the data stream.
type: constant_keyword
ecs.version:
dashed_name: ecs-version
description: 'ECS version this event conforms to. `ecs.version` is a required field
and must exist in all events.
When querying across multiple indices -- which may conform to slightly different
ECS versions -- this field lets integrations adjust to the schema version of the
events.'
example: 1.0.0
flat_name: ecs.version
ignore_above: 1024
level: core
name: version
normalize: []
required: true
short: ECS version this event conforms to.
type: keyword
event.action:
dashed_name: event-action
description: 'The action captured by the event.
This describes the information in the event. It is more specific than `event.category`.
Examples are `group-add`, `process-started`, `file-created`. The value is normally
defined by the implementer.'
example: user-password-change
flat_name: event.action
ignore_above: 1024
level: core
name: action
normalize: []
short: The action captured by the event.
type: keyword
event.category:
allowed_values:
- description: Events in this category annotate API calls that occured on a system.
Typical sources for those events could be from the Operating System level through
the native libraries (for example Windows Win32, Linux libc, etc.), or managed
sources of events (such as ETW, syslog), but can also include network protocols
(such as SOAP, RPC, Websocket, REST, etc.)
expected_event_types:
- access
- admin
- allowed
- change
- creation
- deletion
- denied
- end
- info
- start
- user
name: api
- description: Events in this category are related to the challenge and response
process in which credentials are supplied and verified to allow the creation
of a session. Common sources for these logs are Windows event logs and ssh logs.
Visualize and analyze events in this category to look for failed logins, and
other authentication-related activity.
expected_event_types:
- start
- end
- info
name: authentication
- description: 'Events in the configuration category have to deal with creating,
modifying, or deleting the settings or parameters of an application, process,
or system.
Example sources include security policy change logs, configuration auditing
logging, and system integrity monitoring.'
expected_event_types:
- access
- change
- creation
- deletion
- info
name: configuration
- description: The database category denotes events and metrics relating to a data
storage and retrieval system. Note that use of this category is not limited
to relational database systems. Examples include event logs from MS SQL, MySQL,
Elasticsearch, MongoDB, etc. Use this category to visualize and analyze database
activity such as accesses and changes.
expected_event_types:
- access
- change
- info
- error
name: database
- description: 'Events in the driver category have to do with operating system device
drivers and similar software entities such as Windows drivers, kernel extensions,
kernel modules, etc.
Use events and metrics in this category to visualize and analyze driver-related
activity and status on hosts.'
expected_event_types:
- change
- end
- info
- start
name: driver
- description: 'This category is used for events relating to email messages, email
attachments, and email network or protocol activity.
Emails events can be produced by email security gateways, mail transfer agents,
email cloud service providers, or mail server monitoring applications.'
expected_event_types:
- info
name: email
- description: Relating to a set of information that has been created on, or has
existed on a filesystem. Use this category of events to visualize and analyze
the creation, access, and deletions of files. Events in this category can come
from both host-based and network-based sources. An example source of a network-based
detection of a file transfer would be the Zeek file.log.
expected_event_types:
- access
- change
- creation
- deletion
- info
name: file
- description: 'Use this category to visualize and analyze information such as host
inventory or host lifecycle events.
Most of the events in this category can usually be observed from the outside,
such as from a hypervisor or a control plane''s point of view. Some can also
be seen from within, such as "start" or "end".
Note that this category is for information about hosts themselves; it is not
meant to capture activity "happening on a host".'
expected_event_types:
- access
- change
- end
- info
- start
name: host
- description: Identity and access management (IAM) events relating to users, groups,
and administration. Use this category to visualize and analyze IAM-related logs
and data from active directory, LDAP, Okta, Duo, and other IAM systems.
expected_event_types:
- admin
- change
- creation
- deletion
- group
- info
- user
name: iam
- description: Relating to intrusion detections from IDS/IPS systems and functions,
both network and host-based. Use this category to visualize and analyze intrusion
detection alerts from systems such as Snort, Suricata, and Palo Alto threat
detections.
expected_event_types:
- allowed
- denied
- info
name: intrusion_detection
- description: Events in this category refer to the loading of a library, such as
(dll / so / dynlib), into a process. Use this category to visualize and analyze
library loading related activity on hosts. Keep in mind that driver related
activity will be captured under the "driver" category above.
expected_event_types:
- start
name: library
- description: Malware detection events and alerts. Use this category to visualize
and analyze malware detections from EDR/EPP systems such as Elastic Endpoint
Security, Symantec Endpoint Protection, Crowdstrike, and network IDS/IPS systems
such as Suricata, or other sources of malware-related events such as Palo Alto
Networks threat logs and Wildfire logs.
expected_event_types:
- info
name: malware
- description: Relating to all network activity, including network connection lifecycle,
network traffic, and essentially any event that includes an IP address. Many
events containing decoded network protocol transactions fit into this category.
Use events in this category to visualize or analyze counts of network ports,
protocols, addresses, geolocation information, etc.
expected_event_types:
- access
- allowed
- connection
- denied
- end
- info
- protocol
- start
name: network
- description: Relating to software packages installed on hosts. Use this category
to visualize and analyze inventory of software installed on various hosts, or
to determine host vulnerability in the absence of vulnerability scan data.
expected_event_types:
- access
- change
- deletion
- info
- installation
- start
name: package
- description: Use this category of events to visualize and analyze process-specific
information such as lifecycle events or process ancestry.
expected_event_types:
- access
- change
- end
- info
- start
name: process
- description: Having to do with settings and assets stored in the Windows registry.
Use this category to visualize and analyze activity such as registry access
and modifications.
expected_event_types:
- access
- change
- creation
- deletion
name: registry
- description: The session category is applied to events and metrics regarding logical
persistent connections to hosts and services. Use this category to visualize
and analyze interactive or automated persistent connections between assets.
Data for this category may come from Windows Event logs, SSH logs, or stateless
sessions such as HTTP cookie-based sessions, etc.
expected_event_types:
- start
- end
- info
name: session
- description: Use this category to visualize and analyze events describing threat
actors' targets, motives, or behaviors.
expected_event_types:
- indicator
name: threat
- description: Relating to vulnerability scan results. Use this category to analyze
vulnerabilities detected by Tenable, Qualys, internal scanners, and other vulnerability
management sources.
expected_event_types:
- info
name: vulnerability
- description: 'Relating to web server access. Use this category to create a dashboard
of web server/proxy activity from apache, IIS, nginx web servers, etc. Note:
events from network observers such as Zeek http log may also be included in
this category.'
expected_event_types:
- access
- error
- info
name: web
dashed_name: event-category
description: 'This is one of four ECS Categorization Fields, and indicates the second
level in the ECS category hierarchy.
`event.category` represents the "big buckets" of ECS categories. For example,
filtering on `event.category:process` yields all events relating to process activity.
This field is closely related to `event.type`, which is used as a subcategory.
This field is an array. This will allow proper categorization of some events that
fall in multiple categories.'
example: authentication
flat_name: event.category
ignore_above: 1024
level: core
name: category
normalize:
- array
short: Event category. The second categorization field in the hierarchy.
type: keyword
event.code:
dashed_name: event-code
description: 'Identification code for this event, if one exists.
Some event sources use event codes to identify messages unambiguously, regardless
of message language or wording adjustments over time. An example of this is the
Windows Event ID.'
example: 4648
flat_name: event.code
ignore_above: 1024
level: extended
name: code
normalize: []
short: Identification code for this event.
type: keyword
event.created:
dashed_name: event-created
description: '`event.created` contains the date/time when the event was first read
by an agent, or by your pipeline.
This field is distinct from `@timestamp` in that `@timestamp` typically contain
the time extracted from the original event.
In most situations, these two timestamps will be slightly different. The difference
can be used to calculate the delay between your source generating an event, and
the time when your agent first processed it. This can be used to monitor your
agent''s or pipeline''s ability to keep up with your event source.
In case the two timestamps are identical, `@timestamp` should be used.'
example: '2016-05-23T08:05:34.857Z'
flat_name: event.created
level: core
name: created
normalize: []
short: Time when the event was first read by an agent or by your pipeline.
type: date
event.dataset:
dashed_name: event-dataset
description: 'Name of the dataset.
If an event source publishes more than one type of log or events (e.g. access
log, error log), the dataset is used to specify which one the event comes from.
It''s recommended but not required to start the dataset name with the module name,
followed by a dot, then the dataset name.'
example: apache.access
flat_name: event.dataset
ignore_above: 1024
level: core
name: dataset
normalize: []
short: Name of the dataset.
type: keyword
event.hash:
dashed_name: event-hash
description: Hash (perhaps logstash fingerprint) of raw field to be able to demonstrate
log integrity.
example: 123456789012345678901234567890ABCD
flat_name: event.hash
ignore_above: 1024
level: extended
name: hash
normalize: []
short: Hash (perhaps logstash fingerprint) of raw field to be able to demonstrate
log integrity.
type: keyword
event.id:
dashed_name: event-id
description: Unique ID to describe the event.
example: 8a4f500d
flat_name: event.id
ignore_above: 1024
level: core
name: id
normalize: []
short: Unique ID to describe the event.
type: keyword
event.ingested:
dashed_name: event-ingested
description: 'Timestamp when an event arrived in the central data store.
This is different from `@timestamp`, which is when the event originally occurred. It''s
also different from `event.created`, which is meant to capture the first time
an agent saw the event.
In normal conditions, assuming no tampering, the timestamps should chronologically
look like this: `@timestamp` < `event.created` < `event.ingested`.'
example: '2016-05-23T08:05:35.101Z'
flat_name: event.ingested
level: core
name: ingested
normalize: []
short: Timestamp when an event arrived in the central data store.
type: date
event.kind:
allowed_values:
- description: 'This value indicates an event such as an alert or notable event,
triggered by a detection rule executing externally to the Elastic Stack.
`event.kind:alert` is often populated for events coming from firewalls, intrusion
detection systems, endpoint detection and response systems, and so on.
This value is not used by Elastic solutions for alert documents that are created
by rules executing within the Kibana alerting framework.'
name: alert
- beta: This event categorization value is beta and subject to change.
description: 'This value indicates events whose primary purpose is to store an
inventory of assets/entities and their attributes. Assets/entities are objects
(such as users and hosts) that are expected to be subjects of detailed analysis
within the system.
Examples include lists of user identities or accounts ingested from directory
services such as Active Directory (AD), inventory of hosts pulled from configuration
management databases (CMDB), and lists of cloud storage buckets pulled from
cloud provider APIs.
This value is used by Elastic Security for asset management solutions. `event.kind:
asset` is not used for normal system events or logs that are coming from an
asset/entity, nor is it used for system events or logs coming from a directory
or CMDB system.'
name: asset
- description: 'The `enrichment` value indicates an event collected to provide additional
context, often to other events.
An example is collecting indicators of compromise (IOCs) from a threat intelligence
provider with the intent to use those values to enrich other events. The IOC
events from the intelligence provider should be categorized as `event.kind:enrichment`.'
name: enrichment
- description: This value is the most general and most common value for this field.
It is used to represent events that indicate that something happened.
name: event
- description: 'This value is used to indicate that this event describes a numeric
measurement taken at given point in time.
Examples include CPU utilization, memory usage, or device temperature.
Metric events are often collected on a predictable frequency, such as once every
few seconds, or once a minute, but can also be used to describe ad-hoc numeric
metric queries.'
name: metric
- description: 'The state value is similar to metric, indicating that this event
describes a measurement taken at given point in time, except that the measurement
does not result in a numeric value, but rather one of a fixed set of categorical
values that represent conditions or states.
Examples include periodic events reporting Elasticsearch cluster state (green/yellow/red),
the state of a TCP connection (open, closed, fin_wait, etc.), the state of a
host with respect to a software vulnerability (vulnerable, not vulnerable),
and the state of a system regarding compliance with a regulatory standard (compliant,
not compliant).
Note that an event that describes a change of state would not use `event.kind:state`,
but instead would use ''event.kind:event'' since a state change fits the more
general event definition of something that happened.
State events are often collected on a predictable frequency, such as once every
few seconds, once a minute, once an hour, or once a day, but can also be used
to describe ad-hoc state queries.'
name: state
- description: This value indicates that an error occurred during the ingestion
of this event, and that event data may be missing, inconsistent, or incorrect.
`event.kind:pipeline_error` is often associated with parsing errors.
name: pipeline_error
- description: 'This value is used by Elastic solutions (e.g., Security, Observability)
for alert documents that are created by rules executing within the Kibana alerting
framework.
Usage of this value is reserved, and data ingestion pipelines must not populate
`event.kind` with the value "signal".'
name: signal
dashed_name: event-kind
description: 'This is one of four ECS Categorization Fields, and indicates the highest
level in the ECS category hierarchy.
`event.kind` gives high-level information about what type of information the event
contains, without being specific to the contents of the event. For example, values
of this field distinguish alert events from metric events.
The value of this field can be used to inform how these kinds of events should
be handled. They may warrant different retention, different access control, it
may also help understand whether the data is coming in at a regular interval or
not.'
example: alert
flat_name: event.kind
ignore_above: 1024
level: core
name: kind
normalize: []
short: The kind of the event. The highest categorization field in the hierarchy.
type: keyword
event.module:
dashed_name: event-module
description: 'Name of the module this data is coming from.
If your monitoring agent supports the concept of modules or plugins to process
events of a given source (e.g. Apache logs), `event.module` should contain the
name of this module.'
example: apache
flat_name: event.module
ignore_above: 1024
level: core
name: module
normalize: []
short: Name of the module this data is coming from.
type: keyword
event.outcome:
allowed_values:
- description: Indicates that this event describes a failed result. A common example
is `event.category:file AND event.type:access AND event.outcome:failure` to
indicate that a file access was attempted, but was not successful.
name: failure
- description: Indicates that this event describes a successful result. A common
example is `event.category:file AND event.type:create AND event.outcome:success`
to indicate that a file was successfully created.
name: success
- description: Indicates that this event describes only an attempt for which the
result is unknown from the perspective of the event producer. For example, if
the event contains information only about the request side of a transaction
that results in a response, populating `event.outcome:unknown` in the request
event is appropriate. The unknown value should not be used when an outcome doesn't
make logical sense for the event. In such cases `event.outcome` should not be
populated.
name: unknown
dashed_name: event-outcome
description: 'This is one of four ECS Categorization Fields, and indicates the lowest
level in the ECS category hierarchy.
`event.outcome` simply denotes whether the event represents a success or a failure
from the perspective of the entity that produced the event.
Note that when a single transaction is described in multiple events, each event
may populate different values of `event.outcome`, according to their perspective.
Also note that in the case of a compound event (a single event that contains multiple
logical events), this field should be populated with the value that best captures
the overall success or failure from the perspective of the event producer.
Further note that not all events will have an associated outcome. For example,
this field is generally not populated for metric events, events with `event.type:info`,
or any events for which an outcome does not make logical sense.'
example: success
flat_name: event.outcome
ignore_above: 1024
level: core
name: outcome
normalize: []
short: The outcome of the event. The lowest level categorization field in the hierarchy.
type: keyword
event.provider:
dashed_name: event-provider
description: 'Source of the event.
Event transports such as Syslog or the Windows Event Log typically mention the
source of an event. It can be the name of the software that generated the event
(e.g. Sysmon, httpd), or of a subsystem of the operating system (kernel, Microsoft-Windows-Security-Auditing).'
example: kernel
flat_name: event.provider
ignore_above: 1024
level: extended
name: provider
normalize: []
short: Source of the event.
type: keyword
event.sequence:
dashed_name: event-sequence
description: 'Sequence number of the event.
The sequence number is a value published by some event sources, to make the exact
ordering of events unambiguous, regardless of the timestamp precision.'
flat_name: event.sequence
format: string
level: extended
name: sequence
normalize: []
short: Sequence number of the event.
type: long
event.severity:
dashed_name: event-severity
description: 'The numeric severity of the event according to your event source.
What the different severity values mean can be different between sources and use
cases. It''s up to the implementer to make sure severities are consistent across
events from the same source.
The Syslog severity belongs in `log.syslog.severity.code`. `event.severity` is
meant to represent the severity according to the event source (e.g. firewall,
IDS). If the event source does not publish its own severity, you may optionally
copy the `log.syslog.severity.code` to `event.severity`.'
example: 7
flat_name: event.severity
format: string
level: core
name: severity
normalize: []
short: Numeric severity of the event.
type: long
event.type:
allowed_values:
- description: The access event type is used for the subset of events within a category
that indicate that something was accessed. Common examples include `event.category:database
AND event.type:access`, or `event.category:file AND event.type:access`. Note
for file access, both directory listings and file opens should be included in
this subcategory. You can further distinguish access operations using the ECS
`event.action` field.
name: access
- description: 'The admin event type is used for the subset of events within a category
that are related to admin objects. For example, administrative changes within
an IAM framework that do not specifically affect a user or group (e.g., adding
new applications to a federation solution or connecting discrete forests in
Active Directory) would fall into this subcategory. Common example: `event.category:iam
AND event.type:change AND event.type:admin`. You can further distinguish admin
operations using the ECS `event.action` field.'
name: admin
- description: The allowed event type is used for the subset of events within a
category that indicate that something was allowed. Common examples include `event.category:network
AND event.type:connection AND event.type:allowed` (to indicate a network firewall
event for which the firewall disposition was to allow the connection to complete)
and `event.category:intrusion_detection AND event.type:allowed` (to indicate
a network intrusion prevention system event for which the IPS disposition was
to allow the connection to complete). You can further distinguish allowed operations
using the ECS `event.action` field, populating with values of your choosing,
such as "allow", "detect", or "pass".
name: allowed
- description: The change event type is used for the subset of events within a category
that indicate that something has changed. If semantics best describe an event
as modified, then include them in this subcategory. Common examples include
`event.category:process AND event.type:change`, and `event.category:file AND
event.type:change`. You can further distinguish change operations using the
ECS `event.action` field.
name: change
- description: Used primarily with `event.category:network` this value is used for
the subset of network traffic that includes sufficient information for the event
to be included in flow or connection analysis. Events in this subcategory will
contain at least source and destination IP addresses, source and destination
TCP/UDP ports, and will usually contain counts of bytes and/or packets transferred.
Events in this subcategory may contain unidirectional or bidirectional information,
including summary information. Use this subcategory to visualize and analyze
network connections. Flow analysis, including Netflow, IPFIX, and other flow-related
events fit in this subcategory. Note that firewall events from many Next-Generation
Firewall (NGFW) devices will also fit into this subcategory. A common filter
for flow/connection information would be `event.category:network AND event.type:connection
AND event.type:end` (to view or analyze all completed network connections, ignoring
mid-flow reports). You can further distinguish connection events using the ECS
`event.action` field, populating with values of your choosing, such as "timeout",
or "reset".
name: connection
- description: The "creation" event type is used for the subset of events within
a category that indicate that something was created. A common example is `event.category:file
AND event.type:creation`.
name: creation
- description: The deletion event type is used for the subset of events within a
category that indicate that something was deleted. A common example is `event.category:file
AND event.type:deletion` to indicate that a file has been deleted.
name: deletion
- description: The denied event type is used for the subset of events within a category
that indicate that something was denied. Common examples include `event.category:network
AND event.type:denied` (to indicate a network firewall event for which the firewall
disposition was to deny the connection) and `event.category:intrusion_detection
AND event.type:denied` (to indicate a network intrusion prevention system event
for which the IPS disposition was to deny the connection to complete). You can
further distinguish denied operations using the ECS `event.action` field, populating
with values of your choosing, such as "blocked", "dropped", or "quarantined".
name: denied
- description: The end event type is used for the subset of events within a category
that indicate something has ended. A common example is `event.category:process
AND event.type:end`.
name: end
- description: The error event type is used for the subset of events within a category
that indicate or describe an error. A common example is `event.category:database
AND event.type:error`. Note that pipeline errors that occur during the event
ingestion process should not use this `event.type` value. Instead, they should
use `event.kind:pipeline_error`.
name: error
- description: 'The group event type is used for the subset of events within a category
that are related to group objects. Common example: `event.category:iam AND event.type:creation
AND event.type:group`. You can further distinguish group operations using the
ECS `event.action` field.'
name: group
- description: 'The indicator event type is used for the subset of events within
a category that contain details about indicators of compromise (IOCs).
A common example is `event.category:threat AND event.type:indicator`.'
name: indicator
- description: The info event type is used for the subset of events within a category
that indicate that they are purely informational, and don't report a state change,
or any type of action. For example, an initial run of a file integrity monitoring
system (FIM), where an agent reports all files under management, would fall
into the "info" subcategory. Similarly, an event containing a dump of all currently
running processes (as opposed to reporting that a process started/ended) would
fall into the "info" subcategory. An additional common examples is `event.category:intrusion_detection
AND event.type:info`.
name: info
- description: The installation event type is used for the subset of events within
a category that indicate that something was installed. A common example is `event.category:package`
AND `event.type:installation`.
name: installation
- description: The protocol event type is used for the subset of events within a
category that indicate that they contain protocol details or analysis, beyond
simply identifying the protocol. Generally, network events that contain specific
protocol details will fall into this subcategory. A common example is `event.category:network
AND event.type:protocol AND event.type:connection AND event.type:end` (to indicate
that the event is a network connection event sent at the end of a connection
that also includes a protocol detail breakdown). Note that events that only
indicate the name or id of the protocol should not use the protocol value. Further
note that when the protocol subcategory is used, the identified protocol is
populated in the ECS `network.protocol` field.
name: protocol
- description: The start event type is used for the subset of events within a category
that indicate something has started. A common example is `event.category:process
AND event.type:start`.
name: start
- description: 'The user event type is used for the subset of events within a category
that are related to user objects. Common example: `event.category:iam AND event.type:deletion
AND event.type:user`. You can further distinguish user operations using the
ECS `event.action` field.'
name: user
dashed_name: event-type
description: 'This is one of four ECS Categorization Fields, and indicates the third
level in the ECS category hierarchy.
`event.type` represents a categorization "sub-bucket" that, when used along with
the `event.category` field values, enables filtering events down to a level appropriate
for single visualization.
This field is an array. This will allow proper categorization of some events that
fall in multiple event types.'
flat_name: event.type
ignore_above: 1024
level: core
name: type
normalize:
- array
short: Event type. The third categorization field in the hierarchy.
type: keyword