search.elastic.co
Open in
urlscan Pro
76.76.21.22
Public Scan
Submitted URL: http://search.elastic.co/
Effective URL: https://search.elastic.co/de
Submission: On August 26 via manual from UA — Scanned from DE
Effective URL: https://search.elastic.co/de
Submission: On August 26 via manual from UA — Scanned from DE
Form analysis
1 forms found in the DOM<form action="" novalidate="" role="search"><input autocapitalize="off" autocomplete="off" autocorrect="off" class="SearchInput_search__input__QfAlG" placeholder="Elastic durchsuchen" spellcheck="false" type="search" value="">
<div class="SearchInput_search__submit__FPtJ8"><svg class="icon" width="24" height="24" aria-hidden="true">
<use href="/icons/svg-sprite.svg#search-icon"></use>
</svg></div>
<div class="SearchInput_search__focus__VEc5A"></div>
</form>
Text Content
DE * Deutsch * English * Español * Français * 日本語 * 한국어 * 简体中文 * Português Schließen Anzeigen Filter FilterClear SORTIEREN NACH Relevanz ORT * Documentation16991 * Blog4238 * Website889 * Videos677 * Press Releases252 * Search Labs237 * Security Labs163 * Observability Labs101 Zeige 1–20 von 23.551 Ergebnissen für Bereitgestellt von ESREMehr erfahren 1. TRUST MANAGEMENT https://www.elastic.co/guide/en/cloud-enterprise/current/ece-trust-management.html Dokumentation In order to establish a remote connection between two remote clusters, they must both trust each other. Trust is bi-directional: If one of the clusters doesn’t trust the other, the remote connection won’t be established. Mutual trust between two clusters is required to enable cross-cluster search and cross-cluster replication . Trust can be configured individually for each deployment. Default trust with other clusters in the same ECE environment By default, any deployment that you or your users create trusts all other deployments in the same Elastic Cloud Enterprise environment. You can change this behavior in the Cloud UI under Platform > Trust Management , so that when a new deployment is created it does not trust any other deployment.You can choose one of the following options: Trust all my deployments - New deployments will by default trust any other deployment from your ECE environment (even deployments that don’t exist when the deployment is created). Trust no deployment - New deployments won’t trust any other deployment when they are created. (This can be changed later in the deployment trust settings ) Note the following behaviours with this trust setting: Changing the trust settings affects only deployments that you create in the future. The level of trust of existing deployments is not modified by this setting. Deployments created before Elastic Cloud Enterprise version 2.9.0 trust only themselves.You need to update the trust setting for each deployment that you want to either use as a remote cluster or configure to work with a remote cluster. Update the trust settings of a deployment A deployment can be configured to trust all, specific, or no deployments in the same ECE environment, other remote ECE environments, Elastic Cloud, or self-managed environments. This can be done in the Security page of your deployment: Log into the Cloud UI . On the deployments page, select your deployment. Narrow the list by name, ID, or choose from several other filters. To further define the list, use a combination of filters. From the Security menu, find the Trust Management section. The page shows a list of all the deployments that this deployment trusts, grouped by environment. Initially only the Local Environment appears, which represents the current ECE environment, but you can trust deployments in other ECE environments , in Elastic Cloud , or any self-managed environment . Configuring trust with clusters in the same ECE environment Edit the Local Environment trust level (this represents the current ECE environment). Choose one of following options to configure the level of trust on each of your deployments: Trust all deployments - This deployment trusts all other deployments in this ECE environment, including new deployments when they are created. Trust specific deployments - Choose which of the existing deployments from your ECE environment you want to trust. Trust no deployment - No deployment in this ECE environment is trusted. Using the API You can update a deployment using the appropriate trust settings for the elasticsearch payload. The current trust settings can be found in the path .resources.elasticsearch[0].info.settings.trust when calling: curl -k -X GET -H "Authorization: ApiKey $ECE_API_KEY" https://COORDINATOR_HOST:12443/api/v1/deployments/$DEPLOYMENT_ID?show_settings=true For example: { "accounts": [ { "account_id": "ec38dd0aa45f4a69909ca5c81c27138a", "trust_all": true } ]} The account_id above represents the only account in an ECE environment, and therefore is the one used to update the trust level with deployments in the current ECE environment.For example, to update the trust level to trust only the deployment with cluster ID cf659f7fe6164d9691b284ae36811be1 , the trust settings in the body would look like this: { "trust":{ "accounts":[ { "account_id":"ec38dd0aa45f4a69909ca5c81c27138a", "trust_all":false, "trust_allowlist":[ "cf659f7fe6164d9691b284ae36811be1" ] } ] }} Configuring trust with clusters in other remote ECE environments In order to configure remote clusters in other ECE environments, you will first need to establish a bi-directional trust relationship between both ECE environments: Download the certificate and copy the environment ID from your first ECE environment under Platform > Trust Management > Trust parameters Create a new trust relationship in the other ECE environment under Platform > Trust Management > Trusted environments using the certificate and environment ID from the previous step Download the certificate and copy the environment ID from your second ECE environment and create a new trust relationship with those in the first ECE environment Now, deployments in those environments will be able to configure trust with deployments in the other environment. Trust must always be bi-directional (local cluster must trust remote cluster and viceversa) and it can be configured in each deployment page, under Security > Trust Management : Select Add trusted environment to configure trust with deployments in another ECE environment whose trust relationship has been created in the previous step. For each trusted ECE environment you can edit the trust level to trust all deployments or just specific ones. For the specific ones option, you can introduce a list of Elasticsearch cluster IDs to trust from that ECE environment. The Elasticsearch Cluster ID can be found in the deployment overview page under Applications . Using the API You can update a deployment using the appropriate trust settings for the elasticsearch payload. Establishing the trust between the two Elastic Cloud Enterprise environments can be done using the trust relationships API .For example, the list of trusted environments can be obtained calling the list trust relationships endpoint : curl -k -X GET -H "Authorization: ApiKey $ECE_API_KEY" https://COORDINATOR_HOST:12443//api/v1/regions/ece-region/platform/configuration/trust-relationships?include_certificate=false For each remote ECE environment, it will return something like this: { "id":"83a7b03f2a4343fe99f09bd27ca3d9ec", "name":"ECE2", "trust_by_default":false, "account_ids":[ "651598b101e54ccab1bfdcd8b6e3b8be" ], "local":false, "last_modified":"2022-01-9T14:33:20.465Z"} In order to trust a deployment with cluster id 123456789 in this environment named ECE2 , you need to update the trust settings with an external trust relationship like this: { "trust":{ "accounts":[ { "account_id":"ec38dd0aa45f4a69909ca5c81c27138a", "trust_all":true } ], "external":[ { "trust_relationship_id":"83a7b03f2a4343fe99f09bd27ca3d9ec", "trust_all":false, "trust_allowlist":[ "123456789" ] } ] }} Configuring trust with clusters in Elastic Cloud A deployment can be configured to trust all or specific deployments from an organization in Elastic Cloud : From the Security menu, select Trusted deployments > Add trusted environment and select Elastic Cloud Organization . Enter the organization ID (which can be found near the organization name). Upload the Certificate Authorities of the deployments you want to trust. These can be downloaded from the Security page of each deployment (not only the current CA, but also future certificates in case they are expiring soon since they are periodically rotated). Deployments from the same region are signed by the same CA, so you will only need to upload one for each region. Choose one of following options to configure the level of trust with the Organization: All deployments - This deployment trusts all deployments in the organization in the regions whose certificate authorities have been uploaded, including new deployments when they are created. Specific deployments - Specify which of the existing deployments you want to trust from this organization. The full Elasticsearch cluster ID must be entered for each remote cluster. The Elasticsearch Cluster ID can be found in the deployment overview page under Applications . Configure the deployment in Elastic Cloud to trust this deployment , so that both deployments are configured to trust each other. Note that the organization ID and cluster IDs must be entered fully and correctly. For security reasons, no verification of the IDs is possible. If cross-environment trust does not appear to be working, double-checking the IDs is a good place to start. Using the API You can update a deployment using the appropriate trust settings for the elasticsearch payload. In order to trust a deployment with cluster id cf659f7fe6164d9691b284ae36811be1 in an organization with organization ID 803289842 , you need to update the trust settings with an additional direct trust relationship like this: { "trust":{ "accounts":[ { "account_id":"ec38dd0aa45f4a69909ca5c81c27138a", "trust_all":true } ], "direct": [ { "type" : "ESS", "name" : "My Organization", "scope_id" : "803289842", "certificates" : [ { "pem" : "-----BEGIN CERTIFICATE-----\nMIIDTzCCA...H0=\n-----END CERTIFICATE-----" } ], "trust_all":false, "trust_allowlist":[ "cf659f7fe6164d9691b284ae36811be1" ] } ] }} Configuring trust with clusters in a self-managed environment A deployment can be configured to trust all or specific deployments in any environment: From the Security menu, select Trusted deployments > Add trusted environment and select Self managed Elasticsearch . Upload the public certificate for the Certificate Authority of the self-managed environment (the one used to sign all the cluster certificates). The certificate needs to be in PEM format and should not contain the private key. If you only have the key in p12 format, then you can create the necessary file like this: openssl pkcs12 -in elastic-stack-ca.p12 -out newfile.crt.pem -clcerts -nokeys Select the clusters to trust. There are two options here depending on the subject name of the certificates presented by the nodes in your self managed cluster: Following the Elastic Cloud pattern. In Elastic Cloud, the certificates of all Elasticsearch nodes follow this convention: CN = {node_id}.node.{cluster_id}.cluster.{scope_id} . If you follow the same convention in your self-managed environment, then choose this option and you will be able to select all or specific clusters to trust. If your clusters don’t follow the previous convention for the certificates subject name of your nodes, you can still specify the node name of each of the nodes that should be trusted by this deployment. (Keep in mind that following this convention will simplify the management of this cluster since otherwise this configuration will need to be updated every time the topology of your self-managed cluster changes along with the trust restriction file. For this reason, it is recommended migrating your cluster certificates to follow the previous convention). Trust management will not work properly in clusters without an otherName value specified, as is the case by default in an out-of-the-box Elasticsearch installation . To have the Elasticsearch certutil generate new certificates with the otherName attribute, use the file input with the cn attribute as in the example below. Configure the self-managed cluster to trust this deployment, so that both deployments are configured to trust each other: Download the Certificate Authority used to sign the certificates of your deployment nodes (it can be found in the Security page of your deployment) Trust this CA either using the setting xpack.security.transport.ssl.certificate_authorities in elasticsearch.yml or by adding it to the trust store . Generate certificates with an otherName attribute using the Elasticsearch certutil. Create a file called instances.yaml with all the details of the nodes in your on-premise cluster like below. The dns and ip settings are optional, but cn is mandatory for use with the trust_restrictions path setting in the next step. Next, run ./bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12 -in instances.yaml to create new certificates for all the nodes at once. You can then copy the resulting files into each node. instances: - name: "node1" dns: ["node1.mydomain.com"] ip: ["192.168.1.1"] cn: ["node1.node.1234567abcd.cluster.myscope.account"] - name: "node2" dns: ["node2.mydomain.com"] ip: ["192.168.1.2"] cn: ["node2.node.1234567abcd.cluster.myscope.account"] Restrict the trusted clusters to allow only the ones which your self-managed cluster should trust. All the clusters in your Elastic Cloud Enterprise environment are signed by the same certificate authority. Therefore, adding this CA would make the self-managed cluster trust all your clusters in your ECE environment. This should be limited using the setting xpack.security.transport.ssl.trust_restrictions.path in elasticsearch.yml , which points to a file that limits the certificates to trust based on their otherName -attribute. For example, the following file would trust: two specific clusters with cluster ids aaaabbbbaaaabbbb <1> and xxxxyyyyxxxxyyyy <2> in an ECE environment with Environment ID 1053523734 : <3> any cluster from an ECE environment with Environment ID 83988631 : <4> The nodes from its own cluster (whose certificates follow a different convention: CN = node1.example.com , CN = node2.example.com and CN = node3.example.com ) trust.subject_name: - *.node.aaaabbbbaaaabbbb.cluster.1053523734.account - *.node.xxxxyyyyxxxxyyyy.cluster.1053523734.account - *.node.*.cluster.83988631.account - node*.example.com Generate new node certificates for an entire cluster using the file input mode of the certutil. Using the API You can update a deployment using the appropriate trust settings for the elasticsearch payload. In order to trust a cluster whose nodes present certificates with the subject names: "CN = node1.example.com", "CN = node2.example.com" and "CN = node3.example.com" in a self-managed environment, you could update the trust settings with an additional direct trust relationship like this: { "trust":{ "accounts":[ { "account_id":"ec38dd0aa45f4a69909ca5c81c27138a", "trust_all":true } ], "direct": [ { "type" : "generic", "name" : "My Self-managed environment", "additional_node_names" : ["node1.example.com", "node2.example.com", "node3.example.com",], "certificates" : [ { "pem" : "-----BEGIN CERTIFICATE-----\nMIIDTzCCA...H0=\n-----END CERTIFICATE-----" } ], "trust_all":false } ] }} 2. EXPORT SAVED OBJECTS https://www.elastic.co/docs/api/doc/serverless/operation/operation-exportsavedobjects Dokumentation Export saved objects POST /s/{spaceId}/api/saved_objects/_export Serverless saved objects api key auth Retrieves sets of saved objects that you want to import into Kibana.You must include type or objects in the request body. NOTE: The savedObjects.maxImportExportSize configuration setting limits the number of saved objects which may be exported. This functionality is in technical preview and may be changed or removed in a future release. Elastic will work to fix any issues, but features in technical preview are not subject to the support SLA of official GA features. Headers kbn-xsrf string Required Cross-site request forgery protection Path parameters spaceId string Required An identifier for the space. If /s/ and the identifier are omitted from the path, the default space is used. application/json Body Required excludeExportDetails boolean Do not add export details entry at the end of the stream. Default value is false . includeReferencesDeep boolean Includes all of the referenced objects in the exported objects. objects array[object] A list of objects to export. type string | array[string] The saved object types to include in the export. Use * to export all the types. One of: string-1 string array-2 array[string] Responses 200 application/x-ndjson Indicates a successful call. Hide response attribute Show response attribute object Additional properties are allowed 400 application/json Bad request. Hide response attributes Show response attributes object error string Required Value is Bad Request . message string Required statusCode integer Required Value is 400 . POST /s/{spaceId}/api/saved_objects/_export curl \ -X POST https://localhost:5601/s/default/api/saved_objects/_export \ -H "Authorization: $API_KEY" \ -H "Content-Type: application/json" \ -H "kbn-xsrf: string" \ -d '{"objects":[{"id":"de71f4f0-1902-11e9-919b-ffe5949a18d2","type":"map"}],"excludeExportDetails":true,"includeReferencesDeep":false}' Request example { "objects": [ { "id": "de71f4f0-1902-11e9-919b-ffe5949a18d2", "type": "map" } ], "excludeExportDetails": true, "includeReferencesDeep": false} Response examples (200) { "id": "de71f4f0-1902-11e9-919b-ffe5949a18d2", "type": "map", "managed": false, "version": "WzEzLDFd", "attributes": { "title": "[Logs] Total Requests and Bytes", "description": "", "uiStateJSON": "{\"isDarkMode\":false}", "mapStateJSON": "{\"zoom\":3.64,\"center\":{\"lon\":-88.92107,\"lat\":42.16337},\"timeFilters\":{\"from\":\"now-7d\",\"to\":\"now\"},\"refreshConfig\":{\"isPaused\":true,\"interval\":0},\"query\":{\"language\":\"kuery\",\"query\":\"\"},\"settings\":{\"autoFitToDataBounds\":false}}", "layerListJSON": "[{\"id\":\"0hmz5\",\"alpha\":1,\"sourceDescriptor\":{\"type\":\"EMS_TMS\",\"isAutoSelect\":true,\"lightModeDefault\":\"road_map_desaturated\"},\"visible\":true,\"style\":{},\"type\":\"EMS_VECTOR_TILE\",\"minZoom\":0,\"maxZoom\":24},{\"id\":\"edh66\",\"label\":\"Total Requests by Destination\",\"minZoom\":0,\"maxZoom\":24,\"alpha\":0.5,\"sourceDescriptor\":{\"type\":\"EMS_FILE\",\"id\":\"world_countries\",\"tooltipProperties\":[\"name\",\"iso2\"]},\"visible\":true,\"style\":{\"type\":\"VECTOR\",\"properties\":{\"fillColor\":{\"type\":\"DYNAMIC\",\"options\":{\"field\":{\"name\":\"__kbnjoin__count__673ff994-fc75-4c67-909b-69fcb0e1060e\",\"origin\":\"join\"},\"color\":\"Greys\",\"fieldMetaOptions\":{\"isEnabled\":false,\"sigma\":3}}},\"lineColor\":{\"type\":\"STATIC\",\"options\":{\"color\":\"#FFFFFF\"}},\"lineWidth\":{\"type\":\"STATIC\",\"options\":{\"size\":1}},\"iconSize\":{\"type\":\"STATIC\",\"options\":{\"size\":10}},\"symbolizeAs\":{\"options\":{\"value\":\"circle\"}},\"icon\":{\"type\":\"STATIC\",\"options\":{\"value\":\"marker\"}}}},\"type\":\"GEOJSON_VECTOR\",\"joins\":[{\"leftField\":\"iso2\",\"right\":{\"type\":\"ES_TERM_SOURCE\",\"id\":\"673ff994-fc75-4c67-909b-69fcb0e1060e\",\"indexPatternTitle\":\"kibana_sample_data_logs\",\"term\":\"geo.dest\",\"indexPatternRefName\":\"layer_1_join_0_index_pattern\",\"metrics\":[{\"type\":\"count\",\"label\":\"web logs count\"}],\"applyGlobalQuery\":true}}]},{\"id\":\"gaxya\",\"label\":\"Actual Requests\",\"minZoom\":9,\"maxZoom\":24,\"alpha\":1,\"sourceDescriptor\":{\"id\":\"b7486535-171b-4d3b-bb2e-33c1a0a2854c\",\"type\":\"ES_SEARCH\",\"geoField\":\"geo.coordinates\",\"limit\":2048,\"filterByMapBounds\":true,\"tooltipProperties\":[\"clientip\",\"timestamp\",\"host\",\"request\",\"response\",\"machine.os\",\"agent\",\"bytes\"],\"indexPatternRefName\":\"layer_2_source_index_pattern\",\"applyGlobalQuery\":true,\"scalingType\":\"LIMIT\"},\"visible\":true,\"style\":{\"type\":\"VECTOR\",\"properties\":{\"fillColor\":{\"type\":\"STATIC\",\"options\":{\"color\":\"#2200ff\"}},\"lineColor\":{\"type\":\"STATIC\",\"options\":{\"color\":\"#FFFFFF\"}},\"lineWidth\":{\"type\":\"STATIC\",\"options\":{\"size\":2}},\"iconSize\":{\"type\":\"DYNAMIC\",\"options\":{\"field\":{\"name\":\"bytes\",\"origin\":\"source\"},\"minSize\":1,\"maxSize\":23,\"fieldMetaOptions\":{\"isEnabled\":false,\"sigma\":3}}},\"symbolizeAs\":{\"options\":{\"value\":\"circle\"}},\"icon\":{\"type\":\"STATIC\",\"options\":{\"value\":\"marker\"}}}},\"type\":\"GEOJSON_VECTOR\"},{\"id\":\"tfi3f\",\"label\":\"Total Requests and Bytes\",\"minZoom\":0,\"maxZoom\":9,\"alpha\":1,\"sourceDescriptor\":{\"type\":\"ES_GEO_GRID\",\"resolution\":\"COARSE\",\"id\":\"8aaa65b5-a4e9-448b-9560-c98cb1c5ac5b\",\"geoField\":\"geo.coordinates\",\"requestType\":\"point\",\"metrics\":[{\"type\":\"count\",\"label\":\"web logs count\"},{\"type\":\"sum\",\"field\":\"bytes\"}],\"indexPatternRefName\":\"layer_3_source_index_pattern\",\"applyGlobalQuery\":true},\"visible\":true,\"style\":{\"type\":\"VECTOR\",\"properties\":{\"fillColor\":{\"type\":\"DYNAMIC\",\"options\":{\"field\":{\"name\":\"doc_count\",\"origin\":\"source\"},\"color\":\"Blues\",\"fieldMetaOptions\":{\"isEnabled\":false,\"sigma\":3}}},\"lineColor\":{\"type\":\"STATIC\",\"options\":{\"color\":\"#cccccc\"}},\"lineWidth\":{\"type\":\"STATIC\",\"options\":{\"size\":1}},\"iconSize\":{\"type\":\"DYNAMIC\",\"options\":{\"field\":{\"name\":\"sum_of_bytes\",\"origin\":\"source\"},\"minSize\":7,\"maxSize\":25,\"fieldMetaOptions\":{\"isEnabled\":false,\"sigma\":3}}},\"labelText\":{\"type\":\"DYNAMIC\",\"options\":{\"field\":{\"name\":\"doc_count\",\"origin\":\"source\"},\"fieldMetaOptions\":{\"isEnabled\":false,\"sigma\":3}}},\"labelSize\":{\"type\":\"DYNAMIC\",\"options\":{\"field\":{\"name\":\"doc_count\",\"origin\":\"source\"},\"minSize\":12,\"maxSize\":24,\"fieldMetaOptions\":{\"isEnabled\":false,\"sigma\":3}}},\"symbolizeAs\":{\"options\":{\"value\":\"circle\"}},\"icon\":{\"type\":\"STATIC\",\"options\":{\"value\":\"marker\"}}}},\"type\":\"GEOJSON_VECTOR\"}]" }, "created_at": "2023-08-23T20:03:32.204Z", "references": [ { "id": "90943e30-9a47-11e8-b64d-95841ca0b247", "name": "layer_1_join_0_index_pattern", "type": "index-pattern" }, { "id": "90943e30-9a47-11e8-b64d-95841ca0b247", "name": "layer_2_source_index_pattern", "type": "index-pattern" }, { "id": "90943e30-9a47-11e8-b64d-95841ca0b247", "name": "layer_3_source_index_pattern", "type": "index-pattern" } ], "updated_at": "2023-08-23T20:03:32.204Z", "coreMigrationVersion": "8.8.0", "typeMigrationVersion": "8.4.0"} Response examples (400) { "error": "Bad Request", "message": "string", "statusCode": 400} 3. GRANT ACCESS USING API KEYS https://www.elastic.co/guide/en/beats/winlogbeat/current/beats-api-keys.html Dokumentation Instead of using usernames and passwords, you can use API keys to grantaccess to Elasticsearch resources. You can set API keys to expire at a certain time,and you can explicitly invalidate them. Any user with the manage_api_key or manage_own_api_key cluster privilege can create API keys. Winlogbeat instances typically send both collected data and monitoringinformation to Elasticsearch. If you are sending both to the same cluster, you can use the sameAPI key. For different clusters, you need to use an API key per cluster. For security reasons, we recommend using a unique API key per Winlogbeat instance.You can create as many API keys per user as necessary. Review Grant users access to secured resources before creating API keys for Winlogbeat. Create an API key for publishing To create an API key to use for writing data to Elasticsearch, use the Create API key API , for example: POST /_security/api_key{ "name": "winlogbeat_host001", "role_descriptors": { "winlogbeat_writer": { "cluster": ["monitor", "read_ilm", "read_pipeline"], "index": [ { "names": ["winlogbeat-*"], "privileges": ["view_index_metadata", "create_doc", "auto_configure"] } ] } }} See Create a publishing user for the list of privileges required to publish events. The return value will look something like this: { "id":"TiNAGG4BaaMdaH1tRfuU", "name":"winlogbeat_host001", "api_key":"KnR6yE41RrSowb0kQ0HWoA" } You can now use this API key in your winlogbeat.yml configuration file like this: output.elasticsearch: api_key: TiNAGG4BaaMdaH1tRfuU:KnR6yE41RrSowb0kQ0HWoA Create an API key for monitoring To create an API key to use for sending monitoring data to Elasticsearch, use the Create API key API , for example: POST /_security/api_key{ "name": "winlogbeat_host001", "role_descriptors": { "winlogbeat_monitoring": { "cluster": ["monitor"], "index": [ { "names": [".monitoring-beats-*"], "privileges": ["create_index", "create"] } ] } }} See Create a monitoring user for the list of privileges required to send monitoring data. The return value will look something like this: { "id":"TiNAGG4BaaMdaH1tRfuU", "name":"winlogbeat_host001", "api_key":"KnR6yE41RrSowb0kQ0HWoA" } You can now use this API key in your winlogbeat.yml configuration file like this: monitoring.elasticsearch: api_key: TiNAGG4BaaMdaH1tRfuU:KnR6yE41RrSowb0kQ0HWoA Learn more about API keys See the Elasticsearch API key documentation for more information: Create API key Get API key information Invalidate API key 4. CONFIGURE WINLOGBEAT https://www.elastic.co/guide/en/beats/winlogbeat/current/configuration-winlogbeat-options.html Dokumentation The winlogbeat section of the winlogbeat.yml config file specifies all options that are specific to Winlogbeat.Most importantly, it contains the list of event logs to monitor. Here is a sample configuration: winlogbeat.event_logs: - name: Application ignore_older: 72h - name: Security - name: System Configuration options You can specify the following options in the winlogbeat section of the winlogbeat.yml config file: registry_file The name of the file where Winlogbeat stores information that it uses to resumemonitoring after a restart. By default the file is stored as .winlogbeat.yml in the directory where the Beat was started. When you run the process as aWindows service, it’s recommended that you set the value to C:/ProgramData/winlogbeat/.winlogbeat.yml . winlogbeat.registry_file: C:/ProgramData/winlogbeat/.winlogbeat.yml The forward slashes (/) in the path are automatically changed tobackslashes (\) for Windows compatibility. You can use either forward orbackslashes. Forward slashes are easier to work with in YAML because there is noneed to escape them. registry_flush The timeout value that controls when registry entries are written to disk(flushed). When an unwritten update exceeds this value, it triggers a writeto disk. When flush is set to 0s, the registry is written to disk after eachbatch of events has been published successfully. The default value is 5s. Valid time units are ns , us , ms , s , m , h . winlogbeat.registry_flush: 5s shutdown_timeout The amount of time to wait for all events to be published when shutting down.By default there is no shutdown timeout so Winlogbeat will stop without waiting.When you restart it will resume from the last successfully published event ineach event log. In some use cases you do want to wait for the publishing queue to drain beforeexiting and that’s when you would use this option. Valid time units are ns , us , ms , s , m , h . winlogbeat.shutdown_timeout: 30s event_logs A list of entries (called dictionaries in YAML) that specify which event logsto monitor. Each entry in the list defines an event log to monitor as well asany information to be associated with the event log (filter, tags, and so on). winlogbeat.event_logs: - name: Application event_logs.batch_read_size The maximum number of event log records to read from the Windows API in a singlebatch. The default batch size is 100. Most Windows versions return an error ifthe value is larger than 1024. This option is only available on operating systems supporting the Windows Event Log API (Microsoft Windows Vista and newer). Winlogbeat starts a goroutine (a lightweight thread) to read from eachindividual event log. The goroutine reads a batch of event log records using theWindows API, applies any processors to the events, publishes them to theconfigured outputs, and waits for an acknowledgement from the outputs beforereading additional event log records. event_logs.name The name of the event log to monitor. Each dictionary under event_logs musthave a name field, except for those which use a custom XML query.A channel is a named stream of events that transports events from an eventsource to an event log. Most channels are tied to specific event publishers.You can get a list of available event logs by using the PowerShell Get-WinEvent cmdleton Windows Vista or newer. Here is a sample of the output from the command: PS C:\> Get-WinEvent -ListLog * | Format-List -Property LogNameLogName : ApplicationLogName : HardwareEventsLogName : Internet ExplorerLogName : Key Management ServiceLogName : SecurityLogName : SystemLogName : Windows PowerShellLogName : ForwardedEventsLogName : Microsoft-Management-UI/AdminLogName : Microsoft-Rdms-UI/AdminLogName : Microsoft-Rdms-UI/OperationalLogName : Microsoft-Windows-Windows Firewall With Advanced Security/Firewall... If Get-WinEvent is not available, the Get-EventLog cmdlet can be used in itsplace. PS C:\Users\vagrant> Get-EventLog * Max(K) Retain OverflowAction Entries Log ------ ------ -------------- ------- --- 20,480 0 OverwriteAsNeeded 75 Application 20,480 0 OverwriteAsNeeded 0 HardwareEvents 512 7 OverwriteOlder 0 Internet Explorer 20,480 0 OverwriteAsNeeded 0 Key Management Service 20,480 0 OverwriteAsNeeded 1,609 Security 20,480 0 OverwriteAsNeeded 1,184 System 15,360 0 OverwriteAsNeeded 464 Windows PowerShell You must specify the full name of the channel in the configuration file. winlogbeat.event_logs: - name: Microsoft-Windows-Windows Firewall With Advanced Security/Firewall To read events from an archived .evtx file you can specify the name as theabsolute path (it cannot be relative) to the file. There’s a complete exampleof how to read from an .evtx file in the FAQ . winlogbeat.event_logs: - name: 'C:\backup\sysmon-2019.08.evtx' The name key must not be used with custom XML queries. event_logs.id A unique identifier for the event log. This key is required when using a customXML query. It is used to uniquely identify the event log reader in the registry file. This isuseful if multiple event logs are being set up to watch the same channel or file. If anID is not given, the event_logs.name value will be used. This value must be unique. winlogbeat.event_logs: - name: Application id: application-logs ignore_older: 168h event_logs.ignore_older If this option is specified, Winlogbeat filters events that are older than thespecified amount of time. Valid time units are "ns", "us" (or "µs"), "ms", "s","m", "h". This option is useful when you are beginning to monitor an event logthat contains older records that you would like to ignore. This field isoptional. winlogbeat.event_logs: - name: Application ignore_older: 168h event_logs.forwarded A boolean flag to indicate that the log contains only events collected fromremote hosts using the Windows Event Collector. The value defaults to true forthe ForwardedEvents log and false for any other log. This option is only available on operating systems supporting the Windows Event Log API (Microsoft Windows Vista and newer). This settings allows Winlogbeat to optimize reads for forwarded events that arealready rendered. When the value is true Winlogbeat does not attempt to renderthe event using message files from the host computer. The Windows EventCollector subscription should be configured to use the "RenderedText" format(this is the default) to ensure that the events are distributed with messagesand descriptions. event_logs.event_id A whitelist and blacklist of event IDs. The value is a comma-separated list. Theaccepted values are single event IDs to include (e.g. 4624), a range of eventIDs to include (e.g. 4700-4800), and single event IDs to exclude (e.g. -4735). This option is only available on operating systems supporting the Windows Event Log API (Microsoft Windows Vista and newer). winlogbeat.event_logs: - name: Security event_id: 4624, 4625, 4700-4800, -4735 If you specify more than 22 query conditions (event IDs or event ID ranges), someversions of Windows will prevent Winlogbeat from reading the event log due tolimits in the query system. If this occurs a similar warning as shown below willbe logged by Winlogbeat, and it will continue processing data from other eventlogs. WARN EventLog[Application] Open() error. No events will be read from thissource. The specified query is invalid. In some cases, the limit may be lower than 22 conditions. For instance, using amixture of ranges and single event IDs, along with an additional parameter suchas ignore older , results in a limit of 21 conditions. If you have more than 22 conditions, you can workaround this Windows limitationby using a drop_event[drop-event] processor to do the filtering afterWinlogbeat has received the events from Windows. The filter shown below isequivalent to event_id: 903, 1024, 4624 but can be expanded beyond 22event IDs. winlogbeat.event_logs: - name: Security processors: - drop_event.when.not.or: - equals.winlog.event_id: 903 - equals.winlog.event_id: 1024 - equals.winlog.event_id: 4624 event_logs.language The language ID the events will be rendered in. The language will be forced regardlessof the system language. A complete list of language IDs can be found here .It defaults to 0 , which indicates to use the system language. winlogbeat.event_logs: - name: Security event_id: 4624, 4625, 4700-4800, -4735 language: 0x0409 # en-US event_logs.level A list of event levels to include. The value is a comma-separated list oflevels. This option is only available on operating systems supporting the Windows Event Log API (Microsoft Windows Vista and newer). winlogbeat.event_logs: - name: Security level: critical, error, warning event_logs.provider A list of providers (source names) to include. The value is a YAML list. This option is only available on operating systems supporting the Windows Event Log API (Microsoft Windows Vista and newer). winlogbeat.event_logs: - name: Application provider: - Application Error - Application Hang - Windows Error Reporting - EMET You can obtain a list of providers associated with a log by using PowerShell.Here is an example showing the providers associated with the Security log. PS C:\> (Get-WinEvent -ListLog Security).ProviderNamesDSLSASC ManagerSecuritySecurity Account ManagerServiceModel 4.0.0.0SpoolerTCP/IPVSSAuditMicrosoft-Windows-Security-AuditingMicrosoft-Windows-Eventlog event_logs.xml_query Provide a custom XML query. This option is mutually exclusive with the name , event_id , ignore_older , level , and provider options. These options should be included inthe XML query directly. Furthermore, an id must be provided. Custom XML queriesprovide more flexibility and advanced options than the simpler query options in Winlogbeat. This option is only available on operating systems supporting the Windows Event Log API (Microsoft Windows Vista and newer). Here is a configuration which will collect DHCP server events from multiple channels: winlogbeat.event_logs: - id: dhcp-server-logs xml_query: > <QueryList> <Query Id="0" Path="DhcpAdminEvents"> <Select Path="DhcpAdminEvents">*</Select> <Select Path="Microsoft-Windows-Dhcp-Server/FilterNotifications">*</Select> <Select Path="Microsoft-Windows-Dhcp-Server/Operational">*</Select> </Query> </QueryList> XML queries may also be created in Windows Event Viewer using custom views. The querycan be created using a graphical interface and the corresponding XML can beretrieved from the XML tab. event_logs.include_xml Boolean option that controls if the raw XML representation of an event isincluded in the data sent by Winlogbeat. The default is false. This option is only available on operating systems supporting the Windows Event Log API (Microsoft Windows Vista and newer). The XML representation of the event is useful for troubleshooting purposes. Thedata in the fields reported by Winlogbeat can be compared to the data in the XMLto diagnose problems. Example: winlogbeat.event_logs: - name: Microsoft-Windows-Windows Defender/Operational include_xml: true event_logs.tags A list of tags that the Beat includes in the tags field of each publishedevent. Tags make it easy to select specific events in Kibana or applyconditional filtering in Logstash. These tags will be appended to the list oftags specified in the general configuration. Example: winlogbeat.event_logs: - name: CustomLog tags: ["web"] event_logs.fields Optional fields that you can specify to add additional information to theoutput. For example, you might add fields that you can use for filtering eventdata. Fields can be scalar values, arrays, dictionaries, or any nestedcombination of these. By default, the fields that you specify here will begrouped under a fields sub-dictionary in the output document. To store thecustom fields as top-level fields, set the fields_under_root option to true.If a duplicate field is declared in the general configuration, then its valuewill be overwritten by the value declared here. winlogbeat.event_logs: - name: CustomLog fields: customer_id: 51415432 event_logs.fields_under_root If this option is set to true, the custom fields are stored as top-level fields in the output document instead of being groupedunder a fields sub-dictionary. If the custom field names conflict with otherfield names added by Winlogbeat, then the custom fields overwrite the otherfields. event_logs.processors A list of processors to apply to the data generated by the event log. See Processors for information about specifyingprocessors in your config. event_logs.index If present, this formatted string overrides the index for events from thisevent log (for elasticsearch outputs), or sets the raw_index field of the event’smetadata (for other outputs). This string can only refer to the agent name andversion and the event timestamp; for access to dynamic fields, use output.elasticsearch.index or a processor. Example value: "%{[agent.name]}-myindex-%{+yyyy.MM.dd}" mightexpand to "winlogbeat-myindex-2019.12.13" . event_logs.keep_null If this option is set to true, fields with null values will be published inthe output document. By default, keep_null is set to false . event_logs.no_more_events The action that the event log reader should take when it receives a signal fromWindows that there are no more events to read. It can either wait for moreevents to be written (the default behavior) or it can stop . The overallWinlogbeat process will stop when all of the individual event log readers havestopped. This option is only available on operating systems supporting the Windows Event Log API (Microsoft Windows Vista and newer). Setting no_more_events to stop is useful when reading from archived eventlog files where you want to read the whole file then exit. There’s a completeexample of how to read from an .evtx file in the FAQ . event_logs.api This selects the event log reader implementation that is used to read eventsfrom the Windows APIs. You should only set this option when testing experimentalfeatures. When the value is set to wineventlog-experimental Winlogbeat willreplace the default event log reader with the experimental implementation.We are evaluating this implementation to see if it can provide increasedperformance and reduce CPU usage. This option is only available on operating systems supporting the Windows Event Log API (Microsoft Windows Vista and newer). winlogbeat.event_logs: - name: ForwardedEvents api: wineventlog-experimental There are a few notable differences in the events: Events that contained data under winlog.user_data will now have it under winlog.event_data . Setting include_xml: true has no effect. overwrite_pipelines By default Ingest pipelines are not updated if a pipeline with the same IDalready exists. If this option is enabled Winlogbeat overwrites pipelinesevery time a new Elasticsearch connection is established. The default value is false . 5. ECS FIELDS https://www.elastic.co/guide/en/beats/winlogbeat/current/exported-fields-ecs.html Dokumentation This section defines Elastic Common Schema (ECS) fields—a common set of fieldsto be used when storing event data in Elasticsearch. This is an exhaustive list, and fields listed here are not necessarily used by Winlogbeat.The goal of ECS is to enable and encourage users of Elasticsearch to normalize their event data,so that they can better analyze, visualize, and correlate the data represented in their events. See the ECS reference for more information. @timestamp 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. type: date example: 2016-05-23T08:05:34.853Z required: True labels Custom key/value pairs.Can be used to add meta information to events. Should not contain nested objects. All values are stored as keyword.Example: docker and k8s labels. type: object example: {"application": "foo-bar", "env": "production"} message For log events the message field contains the log message, optimized for viewing in a log viewer.For structured logs without an original message field, other fields can be concatenated to form a human-readable summary of the event.If multiple messages exist, they can be combined into one message. type: match_only_text example: Hello World tags List of keywords used to tag each event. type: keyword example: ["production", "env2"] agent The agent fields contain the data about the software entity, if any, that collects, detects, or observes events on a host, or takes measurements on a host.Examples include Beats. Agents may also run on observers. ECS agent.* fields shall be populated with details of the agent running on the host or observer where the event happened or the measurement was taken. agent.build.original Extended build information for the agent.This field is intended to contain any build information that a data source may provide, no specific formatting is required. type: keyword example: metricbeat version 7.6.0 (amd64), libbeat 7.6.0 [6a23e8f8f30f5001ba344e4e54d8d9cb82cb107c built 2020-02-05 23:10:10 +0000 UTC] agent.ephemeral_id Ephemeral identifier of this agent (if one exists).This id normally changes across restarts, but agent.id does not. type: keyword example: 8a4f500f agent.id Unique identifier of this agent (if one exists).Example: For Beats this would be beat.id. type: keyword example: 8a4f500d agent.name Custom name of the agent.This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from.If no name is given, the name is often left empty. type: keyword example: foo agent.type Type of the agent.The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. type: keyword example: filebeat agent.version Version of the agent. type: keyword example: 6.0.0-rc2 as An autonomous system (AS) is a collection of connected Internet Protocol (IP) routing prefixes under the control of one or more network operators on behalf of a single administrative entity or domain that presents a common, clearly defined routing policy to the internet. as.number Unique number allocated to the autonomous system. The autonomous system number (ASN) uniquely identifies each network on the Internet. type: long example: 15169 as.organization.name Organization name. type: keyword example: Google LLC as.organization.name.text type: match_only_text client A client is defined as the initiator of a network connection for events regarding sessions, connections, or bidirectional flow records.For TCP events, the client is the initiator of the TCP connection that sends the SYN packet(s). For other protocols, the client is generally the initiator or requestor in the network transaction. Some systems use the term "originator" to refer the client in TCP connections. The client fields describe details about the system acting as the client in the network event. Client fields are usually populated in conjunction with server fields. Client fields are generally not populated for packet-level events.Client / server representations can add semantic context to an exchange, which is helpful to visualize the data in certain situations. If your context falls in that category, you should still ensure that source and destination are filled appropriately. client.address Some event client addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the .address field.Then it should be duplicated to .ip or .domain , depending on which one it is. type: keyword client.as.number Unique number allocated to the autonomous system. The autonomous system number (ASN) uniquely identifies each network on the Internet. type: long example: 15169 client.as.organization.name Organization name. type: keyword example: Google LLC client.as.organization.name.text type: match_only_text client.bytes Bytes sent from the client to the server. type: long example: 184 format: bytes client.domain The domain name of the client system.This value may be a host name, a fully qualified domain name, or another host naming format. The value may derive from the original event or be added from enrichment. type: keyword example: foo.example.com client.geo.city_name City name. type: keyword example: Montreal client.geo.continent_code Two-letter code representing continent’s name. type: keyword example: NA client.geo.continent_name Name of the continent. type: keyword example: North America client.geo.country_iso_code Country ISO code. type: keyword example: CA client.geo.country_name Country name. type: keyword example: Canada client.geo.location Longitude and latitude. type: geo_point example: { "lon": -73.614830, "lat": 45.505918 } client.geo.name User-defined description of a location, at the level of granularity they care about.Could be the name of their data centers, the floor number, if this describes a local physical entity, city names.Not typically used in automated geolocation. type: keyword example: boston-dc client.geo.postal_code Postal code associated with the location.Values appropriate for this field may also be known as a postcode or ZIP code and will vary widely from country to country. type: keyword example: 94040 client.geo.region_iso_code Region ISO code. type: keyword example: CA-QC client.geo.region_name Region name. type: keyword example: Quebec client.geo.timezone The time zone of the location, such as IANA time zone name. type: keyword example: America/Argentina/Buenos_Aires client.ip IP address of the client (IPv4 or IPv6). type: ip client.mac MAC address of the client.The notation format from RFC 7042 is suggested: Each octet (that is, 8-bit byte) is represented by two [uppercase] hexadecimal digits giving the value of the octet as an unsigned integer. Successive octets are separated by a hyphen. type: keyword example: 00-00-5E-00-53-23 client.nat.ip Translated IP of source based NAT sessions (e.g. internal client to internet).Typically connections traversing load balancers, firewalls, or routers. type: ip client.nat.port Translated port of source based NAT sessions (e.g. internal client to internet).Typically connections traversing load balancers, firewalls, or routers. type: long format: string client.packets Packets sent from the client to the server. type: long example: 12 client.port Port of the client. type: long format: string client.registered_domain The highest registered client domain, stripped of the subdomain.For example, the registered domain for "foo.example.com" is "example.com".This value can be determined precisely with a list like the public suffix list ( http://publicsuffix.org ). Trying to approximate this by simply taking the last two labels will not work well for TLDs such as "co.uk". type: keyword example: example.com client.subdomain The subdomain portion of a fully qualified domain name includes all of the names except the host name under the registered_domain. In a partially qualified domain, or if the the qualification level of the full name cannot be determined, subdomain contains all of the names below the registered domain.For example the subdomain portion of "www.east.mydomain.co.uk" is "east". If the domain has multiple levels of subdomain, such as "sub2.sub1.example.com", the subdomain field should contain "sub2.sub1", with no trailing period. type: keyword example: east client.top_level_domain The effective top level domain (eTLD), also known as the domain suffix, is the last part of the domain name. For example, the top level domain for example.com is "com".This value can be determined precisely with a list like the public suffix list ( http://publicsuffix.org ). Trying to approximate this by simply taking the last label will not work well for effective TLDs such as "co.uk". type: keyword example: co.uk client.user.domain Name of the directory the user is a member of.For example, an LDAP or Active Directory domain name. type: keyword client.user.email User email address. type: keyword client.user.full_name User’s full name, if available. type: keyword example: Albert Einstein client.user.full_name.text type: match_only_text client.user.group.domain Name of the directory the group is a member of.For example, an LDAP or Active Directory domain name. type: keyword client.user.group.id Unique identifier for the group on the system/platform. type: keyword client.user.group.name Name of the group. type: keyword client.user.hash Unique user hash to correlate information for a user in anonymized form.Useful if user.id or user.name contain confidential information and cannot be used. type: keyword client.user.id Unique identifier of the user. type: keyword example: S-1-5-21-202424912787-2692429404-2351956786-1000 client.user.name Short name or login of the user. type: keyword example: a.einstein client.user.name.text type: match_only_text client.user.roles Array of user roles at the time of the event. type: keyword example: ["kibana_admin", "reporting_user"] cloud Fields related to the cloud or infrastructure the events are coming from. cloud.account.id The cloud account or organization id used to identify different entities in a multi-tenant environment.Examples: AWS account id, Google Cloud ORG Id, or other unique identifier. type: keyword example: 666777888999 cloud.account.name The cloud account name or alias used to identify different entities in a multi-tenant environment.Examples: AWS account name, Google Cloud ORG display name. type: keyword example: elastic-dev cloud.availability_zone Availability zone in which this host, resource, or service is located. type: keyword example: us-east-1c cloud.instance.id Instance ID of the host machine. type: keyword example: i-1234567890abcdef0 cloud.instance.name Instance name of the host machine. type: keyword cloud.machine.type Machine type of the host machine. type: keyword example: t2.medium cloud.origin.account.id The cloud account or organization id used to identify different entities in a multi-tenant environment.Examples: AWS account id, Google Cloud ORG Id, or other unique identifier. type: keyword example: 666777888999 cloud.origin.account.name The cloud account name or alias used to identify different entities in a multi-tenant environment.Examples: AWS account name, Google Cloud ORG display name. type: keyword example: elastic-dev cloud.origin.availability_zone Availability zone in which this host, resource, or service is located. type: keyword example: us-east-1c cloud.origin.instance.id Instance ID of the host machine. type: keyword example: i-1234567890abcdef0 cloud.origin.instance.name Instance name of the host machine. type: keyword cloud.origin.machine.type Machine type of the host machine. type: keyword example: t2.medium cloud.origin.project.id The cloud project identifier.Examples: Google Cloud Project id, Azure Project id. type: keyword example: my-project cloud.origin.project.name The cloud project name.Examples: Google Cloud Project name, Azure Project name. type: keyword example: my project cloud.origin.provider Name of the cloud provider. Example values are aws, azure, gcp, or digitalocean. type: keyword example: aws cloud.origin.region Region in which this host, resource, or service is located. type: keyword example: us-east-1 cloud.origin.service.name The cloud service name is intended to distinguish services running on different platforms within a provider, eg AWS EC2 vs Lambda, GCP GCE vs App Engine, Azure VM vs App Server.Examples: app engine, app service, cloud run, fargate, lambda. type: keyword example: lambda cloud.project.id The cloud project identifier.Examples: Google Cloud Project id, Azure Project id. type: keyword example: my-project cloud.project.name The cloud project name.Examples: Google Cloud Project name, Azure Project name. type: keyword example: my project cloud.provider Name of the cloud provider. Example values are aws, azure, gcp, or digitalocean. type: keyword example: aws cloud.region Region in which this host, resource, or service is located. type: keyword example: us-east-1 cloud.service.name The cloud service name is intended to distinguish services running on different platforms within a provider, eg AWS EC2 vs Lambda, GCP GCE vs App Engine, Azure VM vs App Server.Examples: app engine, app service, cloud run, fargate, lambda. type: keyword example: lambda cloud.target.account.id The cloud account or organization id used to identify different entities in a multi-tenant environment.Examples: AWS account id, Google Cloud ORG Id, or other unique identifier. type: keyword example: 666777888999 cloud.target.account.name The cloud account name or alias used to identify different entities in a multi-tenant environment.Examples: AWS account name, Google Cloud ORG display name. type: keyword example: elastic-dev cloud.target.availability_zone Availability zone in which this host, resource, or service is located. type: keyword example: us-east-1c cloud.target.instance.id Instance ID of the host machine. type: keyword example: i-1234567890abcdef0 cloud.target.instance.name Instance name of the host machine. type: keyword cloud.target.machine.type Machine type of the host machine. type: keyword example: t2.medium cloud.target.project.id The cloud project identifier.Examples: Google Cloud Project id, Azure Project id. type: keyword example: my-project cloud.target.project.name The cloud project name.Examples: Google Cloud Project name, Azure Project name. type: keyword example: my project cloud.target.provider Name of the cloud provider. Example values are aws, azure, gcp, or digitalocean. type: keyword example: aws cloud.target.region Region in which this host, resource, or service is located. type: keyword example: us-east-1 cloud.target.service.name The cloud service name is intended to distinguish services running on different platforms within a provider, eg AWS EC2 vs Lambda, GCP GCE vs App Engine, Azure VM vs App Server.Examples: app engine, app service, cloud run, fargate, lambda. type: keyword example: lambda code_signature These fields contain information about binary code signatures. code_signature.digest_algorithm The hashing algorithm used to sign the process.This value can distinguish signatures when a file is signed multiple times by the same signer but with a different digest algorithm. type: keyword example: sha256 code_signature.exists Boolean to capture if a signature is present. type: boolean example: true code_signature.signing_id The identifier used to sign the process.This is used to identify the application manufactured by a software vendor. The field is relevant to Apple *OS only. type: keyword example: com.apple.xpc.proxy code_signature.status Additional information about the certificate status.This is useful for logging cryptographic errors with the certificate validity or trust status. Leave unpopulated if the validity or trust of the certificate was unchecked. type: keyword example: ERROR_UNTRUSTED_ROOT code_signature.subject_name Subject name of the code signer type: keyword example: Microsoft Corporation code_signature.team_id The team identifier used to sign the process.This is used to identify the team or vendor of a software product. The field is relevant to Apple *OS only. type: keyword example: EQHXZ8M8AV code_signature.timestamp Date and time when the code signature was generated and signed. type: date example: 2021-01-01T12:10:30Z code_signature.trusted Stores the trust status of the certificate chain.Validating the trust of the certificate chain may be complicated, and this field should only be populated by tools that actively check the status. type: boolean example: true code_signature.valid Boolean to capture if the digital signature is verified against the binary content.Leave unpopulated if a certificate was unchecked. type: boolean example: true container Container fields are used for meta information about the specific container that is the source of information. These fields help correlate data based containers from any runtime. container.cpu.usage Percent CPU used which is normalized by the number of CPU cores and it ranges from 0 to 1. Scaling factor: 1000. type: scaled_float container.disk.read.bytes The total number of bytes (gauge) read successfully (aggregated from all disks) since the last metric collection. type: long container.disk.write.bytes The total number of bytes (gauge) written successfully (aggregated from all disks) since the last metric collection. type: long container.id Unique container id. type: keyword container.image.name Name of the image the container was built on. type: keyword container.image.tag Container image tags. type: keyword container.labels Image labels. type: object container.memory.usage Memory usage percentage and it ranges from 0 to 1. Scaling factor: 1000. type: scaled_float container.name Container name. type: keyword container.network.egress.bytes The number of bytes (gauge) sent out on all network interfaces by the container since the last metric collection. type: long container.network.ingress.bytes The number of bytes received (gauge) on all network interfaces by the container since the last metric collection. type: long container.runtime Runtime managing this container. type: keyword example: docker data_stream The data_stream fields take part in defining the new data stream naming scheme.In the new data stream naming scheme the value of the data stream fields combine to the name of the actual data stream in the following manner: {data_stream.type}-{data_stream.dataset}-{data_stream.namespace} . This means the fields can only contain characters that are valid as part of names of data streams. More details about this can be found in this blog post .An Elasticsearch data stream consists of one or more backing indices, and a data stream name forms part of the backing indices names. Due to this convention, data streams must also follow index naming restrictions. For example, data stream names cannot include \ , / , * , ? , " , < , > , | , ` ` (space character), , , or # . Please see the Elasticsearch reference for additional restrictions . data_stream.dataset The field can contain anything that makes sense to signify the source of the data.Examples include nginx.access , prometheus , endpoint etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. event.dataset should have the same value as data_stream.dataset .Beyond the Elasticsearch data stream naming criteria noted above, the dataset value has additional restrictions: * Must not contain - * No longer than 100 characters type: constant_keyword example: nginx.access data_stream.namespace A user defined namespace. Namespaces are useful to allow grouping of data.Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with default . If no value is used, it falls back to default .Beyond the Elasticsearch index naming criteria noted above, namespace value has the additional restrictions: * Must not contain - * No longer than 100 characters type: constant_keyword example: production data_stream.type An overarching type for the data stream.Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. type: constant_keyword example: logs destination Destination fields capture details about the receiver of a network exchange/packet. These fields are populated from a network event, packet, or other event containing details of a network transaction.Destination fields are usually populated in conjunction with source fields. The source and destination fields are considered the baseline and should always be filled if an event contains source and destination details from a network transaction. If the event also contains identification of the client and server roles, then the client and server fields should also be populated. destination.address Some event destination addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the .address field.Then it should be duplicated to .ip or .domain , depending on which one it is. type: keyword destination.as.number Unique number allocated to the autonomous system. The autonomous system number (ASN) uniquely identifies each network on the Internet. type: long example: 15169 destination.as.organization.name Organization name. type: keyword example: Google LLC destination.as.organization.name.text type: match_only_text destination.bytes Bytes sent from the destination to the source. type: long example: 184 format: bytes destination.domain The domain name of the destination system.This value may be a host name, a fully qualified domain name, or another host naming format. The value may derive from the original event or be added from enrichment. type: keyword example: foo.example.com destination.geo.city_name City name. type: keyword example: Montreal destination.geo.continent_code Two-letter code representing continent’s name. type: keyword example: NA destination.geo.continent_name Name of the continent. type: keyword example: North America destination.geo.country_iso_code Country ISO code. type: keyword example: CA destination.geo.country_name Country name. type: keyword example: Canada destination.geo.location Longitude and latitude. type: geo_point example: { "lon": -73.614830, "lat": 45.505918 } destination.geo.name User-defined description of a location, at the level of granularity they care about.Could be the name of their data centers, the floor number, if this describes a local physical entity, city names.Not typically used in automated geolocation. type: keyword example: boston-dc destination.geo.postal_code Postal code associated with the location.Values appropriate for this field may also be known as a postcode or ZIP code and will vary widely from country to country. type: keyword example: 94040 destination.geo.region_iso_code Region ISO code. type: keyword example: CA-QC destination.geo.region_name Region name. type: keyword example: Quebec destination.geo.timezone The time zone of the location, such as IANA time zone name. type: keyword example: America/Argentina/Buenos_Aires destination.ip IP address of the destination (IPv4 or IPv6). type: ip destination.mac MAC address of the destination.The notation format from RFC 7042 is suggested: Each octet (that is, 8-bit byte) is represented by two [uppercase] hexadecimal digits giving the value of the octet as an unsigned integer. Successive octets are separated by a hyphen. type: keyword example: 00-00-5E-00-53-23 destination.nat.ip Translated ip of destination based NAT sessions (e.g. internet to private DMZ)Typically used with load balancers, firewalls, or routers. type: ip destination.nat.port Port the source session is translated to by NAT Device.Typically used with load balancers, firewalls, or routers. type: long format: string destination.packets Packets sent from the destination to the source. type: long example: 12 destination.port Port of the destination. type: long format: string destination.registered_domain The highest registered destination domain, stripped of the subdomain.For example, the registered domain for "foo.example.com" is "example.com".This value can be determined precisely with a list like the public suffix list ( http://publicsuffix.org ). Trying to approximate this by simply taking the last two labels will not work well for TLDs such as "co.uk". type: keyword example: example.com destination.subdomain The subdomain portion of a fully qualified domain name includes all of the names except the host name under the registered_domain. In a partially qualified domain, or if the the qualification level of the full name cannot be determined, subdomain contains all of the names below the registered domain.For example the subdomain portion of "www.east.mydomain.co.uk" is "east". If the domain has multiple levels of subdomain, such as "sub2.sub1.example.com", the subdomain field should contain "sub2.sub1", with no trailing period. type: keyword example: east destination.top_level_domain The effective top level domain (eTLD), also known as the domain suffix, is the last part of the domain name. For example, the top level domain for example.com is "com".This value can be determined precisely with a list like the public suffix list ( http://publicsuffix.org ). Trying to approximate this by simply taking the last label will not work well for effective TLDs such as "co.uk". type: keyword example: co.uk destination.user.domain Name of the directory the user is a member of.For example, an LDAP or Active Directory domain name. type: keyword destination.user.email User email address. type: keyword destination.user.full_name User’s full name, if available. type: keyword example: Albert Einstein destination.user.full_name.text type: match_only_text destination.user.group.domain Name of the directory the group is a member of.For example, an LDAP or Active Directory domain name. type: keyword destination.user.group.id Unique identifier for the group on the system/platform. type: keyword destination.user.group.name Name of the group. type: keyword destination.user.hash Unique user hash to correlate information for a user in anonymized form.Useful if user.id or user.name contain confidential information and cannot be used. type: keyword destination.user.id Unique identifier of the user. type: keyword example: S-1-5-21-202424912787-2692429404-2351956786-1000 destination.user.name Short name or login of the user. type: keyword example: a.einstein destination.user.name.text type: match_only_text destination.user.roles Array of user roles at the time of the event. type: keyword example: ["kibana_admin", "reporting_user"] dll These fields contain information about code libraries dynamically loaded into processes. Many operating systems refer to "shared code libraries" with different names, but this field set refers to all of the following:* Dynamic-link library ( .dll ) commonly used on Windows* Shared Object ( .so ) commonly used on Unix-like operating systems* Dynamic library ( .dylib ) commonly used on macOS dll.code_signature.digest_algorithm The hashing algorithm used to sign the process.This value can distinguish signatures when a file is signed multiple times by the same signer but with a different digest algorithm. type: keyword example: sha256 dll.code_signature.exists Boolean to capture if a signature is present. type: boolean example: true dll.code_signature.signing_id The identifier used to sign the process.This is used to identify the application manufactured by a software vendor. The field is relevant to Apple *OS only. type: keyword example: com.apple.xpc.proxy dll.code_signature.status Additional information about the certificate status.This is useful for logging cryptographic errors with the certificate validity or trust status. Leave unpopulated if the validity or trust of the certificate was unchecked. type: keyword example: ERROR_UNTRUSTED_ROOT dll.code_signature.subject_name Subject name of the code signer type: keyword example: Microsoft Corporation dll.code_signature.team_id The team identifier used to sign the process.This is used to identify the team or vendor of a software product. The field is relevant to Apple *OS only. type: keyword example: EQHXZ8M8AV dll.code_signature.timestamp Date and time when the code signature was generated and signed. type: date example: 2021-01-01T12:10:30Z dll.code_signature.trusted Stores the trust status of the certificate chain.Validating the trust of the certificate chain may be complicated, and this field should only be populated by tools that actively check the status. type: boolean example: true dll.code_signature.valid Boolean to capture if the digital signature is verified against the binary content.Leave unpopulated if a certificate was unchecked. type: boolean example: true dll.hash.md5 MD5 hash. type: keyword dll.hash.sha1 SHA1 hash. type: keyword dll.hash.sha256 SHA256 hash. type: keyword dll.hash.sha512 SHA512 hash. type: keyword dll.hash.ssdeep SSDEEP hash. type: keyword dll.name Name of the library.This generally maps to the name of the file on disk. type: keyword example: kernel32.dll dll.path Full file path of the library. type: keyword example: C:\Windows\System32\kernel32.dll dll.pe.architecture CPU architecture target for the file. type: keyword example: x64 dll.pe.company Internal company name of the file, provided at compile-time. type: keyword example: Microsoft Corporation dll.pe.description Internal description of the file, provided at compile-time. type: keyword example: Paint dll.pe.file_version Internal version of the file, provided at compile-time. type: keyword example: 6.3.9600.17415 dll.pe.imphash A hash of the imports in a PE file. An imphash — or import hash — can be used to fingerprint binaries even after recompilation or other code-level transformations have occurred, which would change more traditional hash values.Learn more at https://www.fireeye.com/blog/threat-research/2014/01/tracking-malware-import-hashing.html . type: keyword example: 0c6803c4e922103c4dca5963aad36ddf dll.pe.original_file_name Internal name of the file, provided at compile-time. type: keyword example: MSPAINT.EXE dll.pe.product Internal product name of the file, provided at compile-time. type: keyword example: Microsoft® Windows® Operating System dns Fields describing DNS queries and answers.DNS events should either represent a single DNS query prior to getting answers ( dns.type:query ) or they should represent a full exchange and contain the query details as well as all of the answers that were provided for this query ( dns.type:answer ). dns.answers An array containing an object for each answer section returned by the server.The main keys that should be present in these objects are defined by ECS. Records that have more information may contain more keys than what ECS defines.Not all DNS data sources give all details about DNS answers. At minimum, answer objects must contain the data key. If more information is available, map as much of it to ECS as possible, and add any additional fields to the answer objects as custom fields. type: object dns.answers.class The class of DNS data contained in this resource record. type: keyword example: IN dns.answers.data The data describing the resource.The meaning of this data depends on the type and class of the resource record. type: keyword example: 10.10.10.10 dns.answers.name The domain name to which this resource record pertains.If a chain of CNAME is being resolved, each answer’s name should be the one that corresponds with the answer’s data . It should not simply be the original question.name repeated. type: keyword example: www.example.com dns.answers.ttl The time interval in seconds that this resource record may be cached before it should be discarded. Zero values mean that the data should not be cached. type: long example: 180 dns.answers.type The type of data contained in this resource record. type: keyword example: CNAME dns.header_flags Array of 2 letter DNS header flags.Expected values are: AA, TC, RD, RA, AD, CD, DO. type: keyword example: ["RD", "RA"] dns.id The DNS packet identifier assigned by the program that generated the query. The identifier is copied to the response. type: keyword example: 62111 dns.op_code The DNS operation code that specifies the kind of query in the message. This value is set by the originator of a query and copied into the response. type: keyword example: QUERY dns.question.class The class of records being queried. type: keyword example: IN dns.question.name The name being queried.If the name field contains non-printable characters (below 32 or above 126), those characters should be represented as escaped base 10 integers (\DDD). Back slashes and quotes should be escaped. Tabs, carriage returns, and line feeds should be converted to \t, \r, and \n respectively. type: keyword example: www.example.com dns.question.registered_domain The highest registered domain, stripped of the subdomain.For example, the registered domain for "foo.example.com" is "example.com".This value can be determined precisely with a list like the public suffix list ( http://publicsuffix.org ). Trying to approximate this by simply taking the last two labels will not work well for TLDs such as "co.uk". type: keyword example: example.com dns.question.subdomain The subdomain is all of the labels under the registered_domain.If the domain has multiple levels of subdomain, such as "sub2.sub1.example.com", the subdomain field should contain "sub2.sub1", with no trailing period. type: keyword example: www dns.question.top_level_domain The effective top level domain (eTLD), also known as the domain suffix, is the last part of the domain name. For example, the top level domain for example.com is "com".This value can be determined precisely with a list like the public suffix list ( http://publicsuffix.org ). Trying to approximate this by simply taking the last label will not work well for effective TLDs such as "co.uk". type: keyword example: co.uk dns.question.type The type of record being queried. type: keyword example: AAAA dns.resolved_ip Array containing all IPs seen in answers.data .The answers array can be difficult to use, because of the variety of data formats it can contain. Extracting all IP addresses seen in there to dns.resolved_ip makes it possible to index them as IP addresses, and makes them easier to visualize and query for. type: ip example: ["10.10.10.10", "10.10.10.11"] dns.response_code The DNS response code. type: keyword example: NOERROR dns.type The type of DNS event captured, query or answer.If your source of DNS events only gives you DNS queries, you should only create dns events of type dns.type:query .If your source of DNS events gives you answers as well, you should create one event per query (optionally as soon as the query is seen). And a second event containing all query details as well as an array of answers. type: keyword example: answer ecs Meta-information specific to ECS. ecs.version 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. type: keyword example: 1.0.0 required: True elf These fields contain Linux Executable Linkable Format (ELF) metadata. elf.architecture Machine architecture of the ELF file. type: keyword example: x86-64 elf.byte_order Byte sequence of ELF file. type: keyword example: Little Endian elf.cpu_type CPU type of the ELF file. type: keyword example: Intel elf.creation_date Extracted when possible from the file’s metadata. Indicates when it was built or compiled. It can also be faked by malware creators. type: date elf.exports List of exported element names and types. type: flattened elf.header.abi_version Version of the ELF Application Binary Interface (ABI). type: keyword elf.header.class Header class of the ELF file. type: keyword elf.header.data Data table of the ELF header. type: keyword elf.header.entrypoint Header entrypoint of the ELF file. type: long format: string elf.header.object_version "0x1" for original ELF files. type: keyword elf.header.os_abi Application Binary Interface (ABI) of the Linux OS. type: keyword elf.header.type Header type of the ELF file. type: keyword elf.header.version Version of the ELF header. type: keyword elf.imports List of imported element names and types. type: flattened elf.sections An array containing an object for each section of the ELF file.The keys that should be present in these objects are defined by sub-fields underneath elf.sections.* . type: nested elf.sections.chi2 Chi-square probability distribution of the section. type: long format: number elf.sections.entropy Shannon entropy calculation from the section. type: long format: number elf.sections.flags ELF Section List flags. type: keyword elf.sections.name ELF Section List name. type: keyword elf.sections.physical_offset ELF Section List offset. type: keyword elf.sections.physical_size ELF Section List physical size. type: long format: bytes elf.sections.type ELF Section List type. type: keyword elf.sections.virtual_address ELF Section List virtual address. type: long format: string elf.sections.virtual_size ELF Section List virtual size. type: long format: string elf.segments An array containing an object for each segment of the ELF file.The keys that should be present in these objects are defined by sub-fields underneath elf.segments.* . type: nested elf.segments.sections ELF object segment sections. type: keyword elf.segments.type ELF object segment type. type: keyword elf.shared_libraries List of shared libraries used by this ELF object. type: keyword elf.telfhash telfhash symbol hash for ELF file. type: keyword error These fields can represent errors of any kind.Use them for errors that happen while fetching events or in cases where the event itself contains an error. error.code Error code describing the error. type: keyword error.id Unique identifier for the error. type: keyword error.message Error message. type: match_only_text error.stack_trace The stack trace of this error in plain text. type: wildcard error.stack_trace.text type: match_only_text error.type The type of the error, for example the class name of the exception. type: keyword example: java.lang.NullPointerException event The event fields are used for context information about the log or metric event itself.A log is defined as an event containing details of something that happened. Log events must include the time at which the thing happened. Examples of log events include a process starting on a host, a network packet being sent from a source to a destination, or a network connection between a client and a server being initiated or closed. A metric is defined as an event containing one or more numerical measurements and the time at which the measurement was taken. Examples of metric events include memory pressure measured on a host and device temperature. See the event.kind definition in this section for additional details about metric and state events. event.action 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. type: keyword example: user-password-change event.agent_id_status Agents are normally responsible for populating the agent.id field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation.For example if the agent’s connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the agent.id value in events can be checked against the certificate. If the values match then event.agent_id_status: verified is added to the event, otherwise one of the other allowed values should be used.If no validation is performed then the field should be omitted.The allowed values are: verified - The agent.id field value matches expected value obtained from auth metadata. mismatch - The agent.id field value does not match the expected value obtained from auth metadata. missing - There was no agent.id field in the event to validate. auth_metadata_missing - There was no auth metadata or it was missing information about the agent ID. type: keyword example: verified event.category 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. type: keyword example: authentication event.code 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. type: keyword example: 4648 event.created 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. type: date example: 2016-05-23T08:05:34.857Z event.dataset 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. type: keyword example: apache.access event.duration Duration of the event in nanoseconds.If event.start and event.end are known this value should be the difference between the end and start time. type: long format: duration event.end event.end contains the date when the event ended or when the activity was last observed. type: date event.hash Hash (perhaps logstash fingerprint) of raw field to be able to demonstrate log integrity. type: keyword example: 123456789012345678901234567890ABCD event.id Unique ID to describe the event. type: keyword example: 8a4f500d event.ingested 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 . type: date example: 2016-05-23T08:05:35.101Z event.kind 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 coming in at a regular interval or not. type: keyword example: alert event.module 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. type: keyword example: apache event.original Raw text message of entire event. Used to demonstrate log integrity or where the full log message (before splitting it up in multiple parts) may be required, e.g. for reindex.This field is not indexed and doc_values are disabled. It cannot be searched, but it can be retrieved from _source . If users wish to override this and index this field, please see Field data types in the Elasticsearch Reference . type: keyword example: Sep 19 08:26:10 host CEF:0|Security| threatmanager|1.0|100| worm successfully stopped|10|src=10.0.0.1 dst=2.1.2.2spt=1232 Field is not indexed. event.outcome 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. type: keyword example: success event.provider 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). type: keyword example: kernel event.reason Reason why this event happened, according to the source.This describes the why of a particular action or outcome captured in the event. Where event.action captures the action from the event, event.reason describes why that action was taken. For example, a web proxy with an event.action which denied the request may also populate event.reason with the reason why (e.g. blocked site ). type: keyword example: Terminated an unexpected process event.reference Reference URL linking to additional information about this event.This URL links to a static definition of this event. Alert events, indicated by event.kind:alert , are a common use case for this field. type: keyword example: https://system.example.com/event/#0001234 event.risk_score Risk score or priority of the event (e.g. security solutions). Use your system’s original value here. type: float event.risk_score_norm Normalized risk score or priority of the event, on a scale of 0 to 100.This is mainly useful if you use more than one system that assigns risk scores, and you want to see a normalized value across all systems. type: float event.sequence 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. type: long format: string event.severity 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 . type: long example: 7 format: string event.start event.start contains the date when the event started or when the activity was first observed. type: date event.timezone This field should be populated when the event’s timestamp does not include timezone information already (e.g. default Syslog timestamps). It’s optional otherwise.Acceptable timezone formats are: a canonical ID (e.g. "Europe/Amsterdam"), abbreviated (e.g. "EST") or an HH:mm differential (e.g. "-05:00"). type: keyword event.type 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. type: keyword event.url URL linking to an external system to continue investigation of this event.This URL links to another system where in-depth investigation of the specific occurrence of this event can take place. Alert events, indicated by event.kind:alert , are a common use case for this field. type: keyword example: https://mysystem.example.com/alert/5271dedb-f5b0-4218-87f0-4ac4870a38fe faas The user fields describe information about the function as a service that is relevant to the event. faas.coldstart Boolean value indicating a cold start of a function. type: boolean faas.execution The execution ID of the current function execution. type: keyword example: af9d5aa4-a685-4c5f-a22b-444f80b3cc28 faas.trigger Details about the function trigger. type: nested faas.trigger.request_id The ID of the trigger request , message, event, etc. type: keyword example: 123456789 faas.trigger.type The trigger for the function execution.Expected values are: * http * pubsub * datasource * timer * other type: keyword example: http file A file is defined as a set of information that has been created on, or has existed on a filesystem.File objects can be associated with host events, network events, and/or file events (e.g., those produced by File Integrity Monitoring [FIM] products or services). File fields provide details about the affected file associated with the event or metric. file.accessed Last time the file was accessed.Note that not all filesystems keep track of access time. type: date file.attributes Array of file attributes.Attributes names will vary by platform. Here’s a non-exhaustive list of values that are expected in this field: archive, compressed, directory, encrypted, execute, hidden, read, readonly, system, write. type: keyword example: ["readonly", "system"] file.code_signature.digest_algorithm The hashing algorithm used to sign the process.This value can distinguish signatures when a file is signed multiple times by the same signer but with a different digest algorithm. type: keyword example: sha256 file.code_signature.exists Boolean to capture if a signature is present. type: boolean example: true file.code_signature.signing_id The identifier used to sign the process.This is used to identify the application manufactured by a software vendor. The field is relevant to Apple *OS only. type: keyword example: com.apple.xpc.proxy file.code_signature.status Additional information about the certificate status.This is useful for logging cryptographic errors with the certificate validity or trust status. Leave unpopulated if the validity or trust of the certificate was unchecked. type: keyword example: ERROR_UNTRUSTED_ROOT file.code_signature.subject_name Subject name of the code signer type: keyword example: Microsoft Corporation file.code_signature.team_id The team identifier used to sign the process.This is used to identify the team or vendor of a software product. The field is relevant to Apple *OS only. type: keyword example: EQHXZ8M8AV file.code_signature.timestamp Date and time when the code signature was generated and signed. type: date example: 2021-01-01T12:10:30Z file.code_signature.trusted Stores the trust status of the certificate chain.Validating the trust of the certificate chain may be complicated, and this field should only be populated by tools that actively check the status. type: boolean example: true file.code_signature.valid Boolean to capture if the digital signature is verified against the binary content.Leave unpopulated if a certificate was unchecked. type: boolean example: true file.created File creation time.Note that not all filesystems store the creation time. type: date file.ctime Last time the file attributes or metadata changed.Note that changes to the file content will update mtime . This implies ctime will be adjusted at the same time, since mtime is an attribute of the file. type: date file.device Device that is the source of the file. type: keyword example: sda file.directory Directory where the file is located. It should include the drive letter, when appropriate. type: keyword example: /home/alice file.drive_letter Drive letter where the file is located. This field is only relevant on Windows.The value should be uppercase, and not include the colon. type: keyword example: C file.elf.architecture Machine architecture of the ELF file. type: keyword example: x86-64 file.elf.byte_order Byte sequence of ELF file. type: keyword example: Little Endian file.elf.cpu_type CPU type of the ELF file. type: keyword example: Intel file.elf.creation_date Extracted when possible from the file’s metadata. Indicates when it was built or compiled. It can also be faked by malware creators. type: date file.elf.exports List of exported element names and types. type: flattened file.elf.header.abi_version Version of the ELF Application Binary Interface (ABI). type: keyword file.elf.header.class Header class of the ELF file. type: keyword file.elf.header.data Data table of the ELF header. type: keyword file.elf.header.entrypoint Header entrypoint of the ELF file. type: long format: string file.elf.header.object_version "0x1" for original ELF files. type: keyword file.elf.header.os_abi Application Binary Interface (ABI) of the Linux OS. type: keyword file.elf.header.type Header type of the ELF file. type: keyword file.elf.header.version Version of the ELF header. type: keyword file.elf.imports List of imported element names and types. type: flattened file.elf.sections An array containing an object for each section of the ELF file.The keys that should be present in these objects are defined by sub-fields underneath elf.sections.* . type: nested file.elf.sections.chi2 Chi-square probability distribution of the section. type: long format: number file.elf.sections.entropy Shannon entropy calculation from the section. type: long format: number file.elf.sections.flags ELF Section List flags. type: keyword file.elf.sections.name ELF Section List name. type: keyword file.elf.sections.physical_offset ELF Section List offset. type: keyword file.elf.sections.physical_size ELF Section List physical size. type: long format: bytes file.elf.sections.type ELF Section List type. type: keyword file.elf.sections.virtual_address ELF Section List virtual address. type: long format: string file.elf.sections.virtual_size ELF Section List virtual size. type: long format: string file.elf.segments An array containing an object for each segment of the ELF file.The keys that should be present in these objects are defined by sub-fields underneath elf.segments.* . type: nested file.elf.segments.sections ELF object segment sections. type: keyword file.elf.segments.type ELF object segment type. type: keyword file.elf.shared_libraries List of shared libraries used by this ELF object. type: keyword file.elf.telfhash telfhash symbol hash for ELF file. type: keyword file.extension File extension, excluding the leading dot.Note that when the file name has multiple extensions (example.tar.gz), only the last one should be captured ("gz", not "tar.gz"). type: keyword example: png file.fork_name A fork is additional data associated with a filesystem object.On Linux, a resource fork is used to store additional data with a filesystem object. A file always has at least one fork for the data portion, and additional forks may exist.On NTFS, this is analogous to an Alternate Data Stream (ADS), and the default data stream for a file is just called $DATA. Zone.Identifier is commonly used by Windows to track contents downloaded from the Internet. An ADS is typically of the form: C:\path\to\filename.extension:some_fork_name , and some_fork_name is the value that should populate fork_name . filename.extension should populate file.name , and extension should populate file.extension . The full path, file.path , will include the fork name. type: keyword example: Zone.Identifer file.gid Primary group ID (GID) of the file. type: keyword example: 1001 file.group Primary group name of the file. type: keyword example: alice file.hash.md5 MD5 hash. type: keyword file.hash.sha1 SHA1 hash. type: keyword file.hash.sha256 SHA256 hash. type: keyword file.hash.sha512 SHA512 hash. type: keyword file.hash.ssdeep SSDEEP hash. type: keyword file.inode Inode representing the file in the filesystem. type: keyword example: 256383 file.mime_type MIME type should identify the format of the file or stream of bytes using IANA official types , where possible. When more than one type is applicable, the most specific type should be used. type: keyword file.mode Mode of the file in octal representation. type: keyword example: 0640 file.mtime Last time the file content was modified. type: date file.name Name of the file including the extension, without the directory. type: keyword example: example.png file.owner File owner’s username. type: keyword example: alice file.path Full path to the file, including the file name. It should include the drive letter, when appropriate. type: keyword example: /home/alice/example.png file.path.text type: match_only_text file.pe.architecture CPU architecture target for the file. type: keyword example: x64 file.pe.company Internal company name of the file, provided at compile-time. type: keyword example: Microsoft Corporation file.pe.description Internal description of the file, provided at compile-time. type: keyword example: Paint file.pe.file_version Internal version of the file, provided at compile-time. type: keyword example: 6.3.9600.17415 file.pe.imphash A hash of the imports in a PE file. An imphash — or import hash — can be used to fingerprint binaries even after recompilation or other code-level transformations have occurred, which would change more traditional hash values.Learn more at https://www.fireeye.com/blog/threat-research/2014/01/tracking-malware-import-hashing.html . type: keyword example: 0c6803c4e922103c4dca5963aad36ddf file.pe.original_file_name Internal name of the file, provided at compile-time. type: keyword example: MSPAINT.EXE file.pe.product Internal product name of the file, provided at compile-time. type: keyword example: Microsoft® Windows® Operating System file.size File size in bytes.Only relevant when file.type is "file". type: long example: 16384 file.target_path Target path for symlinks. type: keyword file.target_path.text type: match_only_text file.type File type (file, dir, or symlink). type: keyword example: file file.uid The user ID (UID) or security identifier (SID) of the file owner. type: keyword example: 1001 file.x509.alternative_names List of subject alternative names (SAN). Name types vary by certificate authority and certificate type but commonly contain IP addresses, DNS names (and wildcards), and email addresses. type: keyword example: *.elastic.co file.x509.issuer.common_name List of common name (CN) of issuing certificate authority. type: keyword example: Example SHA2 High Assurance Server CA file.x509.issuer.country List of country © codes type: keyword example: US file.x509.issuer.distinguished_name Distinguished name (DN) of issuing certificate authority. type: keyword example: C=US, O=Example Inc, OU=www.example.com, CN=Example SHA2 High Assurance Server CA file.x509.issuer.locality List of locality names (L) type: keyword example: Mountain View file.x509.issuer.organization List of organizations (O) of issuing certificate authority. type: keyword example: Example Inc file.x509.issuer.organizational_unit List of organizational units (OU) of issuing certificate authority. type: keyword example: www.example.com file.x509.issuer.state_or_province List of state or province names (ST, S, or P) type: keyword example: California file.x509.not_after Time at which the certificate is no longer considered valid. type: date example: 2020-07-16 03:15:39+00:00 file.x509.not_before Time at which the certificate is first considered valid. type: date example: 2019-08-16 01:40:25+00:00 file.x509.public_key_algorithm Algorithm used to generate the public key. type: keyword example: RSA file.x509.public_key_curve The curve used by the elliptic curve public key algorithm. This is algorithm specific. type: keyword example: nistp521 file.x509.public_key_exponent Exponent used to derive the public key. This is algorithm specific. type: long example: 65537 Field is not indexed. file.x509.public_key_size The size of the public key space in bits. type: long example: 2048 file.x509.serial_number Unique serial number issued by the certificate authority. For consistency, if this value is alphanumeric, it should be formatted without colons and uppercase characters. type: keyword example: 55FBB9C7DEBF09809D12CCAA file.x509.signature_algorithm Identifier for certificate signature algorithm. We recommend using names found in Go Lang Crypto library. See https://github.com/golang/go/blob/go1.14/src/crypto/x509/x509.go#L337-L353 . type: keyword example: SHA256-RSA file.x509.subject.common_name List of common names (CN) of subject. type: keyword example: shared.global.example.net file.x509.subject.country List of country © code type: keyword example: US file.x509.subject.distinguished_name Distinguished name (DN) of the certificate subject entity. type: keyword example: C=US, ST=California, L=San Francisco, O=Example, Inc., CN=shared.global.example.net file.x509.subject.locality List of locality names (L) type: keyword example: San Francisco file.x509.subject.organization List of organizations (O) of subject. type: keyword example: Example, Inc. file.x509.subject.organizational_unit List of organizational units (OU) of subject. type: keyword file.x509.subject.state_or_province List of state or province names (ST, S, or P) type: keyword example: California file.x509.version_number Version of x509 format. type: keyword example: 3 geo Geo fields can carry data about a specific location related to an event.This geolocation information can be derived from techniques such as Geo IP, or be user-supplied. geo.city_name City name. type: keyword example: Montreal geo.continent_code Two-letter code representing continent’s name. type: keyword example: NA geo.continent_name Name of the continent. type: keyword example: North America geo.country_iso_code Country ISO code. type: keyword example: CA geo.country_name Country name. type: keyword example: Canada geo.location Longitude and latitude. type: geo_point example: { "lon": -73.614830, "lat": 45.505918 } geo.name User-defined description of a location, at the level of granularity they care about.Could be the name of their data centers, the floor number, if this describes a local physical entity, city names.Not typically used in automated geolocation. type: keyword example: boston-dc geo.postal_code Postal code associated with the location.Values appropriate for this field may also be known as a postcode or ZIP code and will vary widely from country to country. type: keyword example: 94040 geo.region_iso_code Region ISO code. type: keyword example: CA-QC geo.region_name Region name. type: keyword example: Quebec geo.timezone The time zone of the location, such as IANA time zone name. type: keyword example: America/Argentina/Buenos_Aires group The group fields are meant to represent groups that are relevant to the event. group.domain Name of the directory the group is a member of.For example, an LDAP or Active Directory domain name. type: keyword group.id Unique identifier for the group on the system/platform. type: keyword group.name Name of the group. type: keyword hash The hash fields represent different bitwise hash algorithms and their values.Field names for common hashes (e.g. MD5, SHA1) are predefined. Add fields for other hashes by lowercasing the hash algorithm name and using underscore separators as appropriate (snake case, e.g. sha3_512).Note that this fieldset is used for common hashes that may be computed over a range of generic bytes. Entity-specific hashes such as ja3 or imphash are placed in the fieldsets to which they relate (tls and pe, respectively). hash.md5 MD5 hash. type: keyword hash.sha1 SHA1 hash. type: keyword hash.sha256 SHA256 hash. type: keyword hash.sha512 SHA512 hash. type: keyword hash.ssdeep SSDEEP hash. type: keyword host A host is defined as a general computing instance.ECS host.* fields should be populated with details about the host on which the event happened, or from which the measurement was taken. Host types include hardware, virtual machines, Docker containers, and Kubernetes nodes. host.architecture Operating system architecture. type: keyword example: x86_64 host.cpu.usage Percent CPU used which is normalized by the number of CPU cores and it ranges from 0 to 1.Scaling factor: 1000.For example: For a two core host, this value should be the average of the two cores, between 0 and 1. type: scaled_float host.disk.read.bytes The total number of bytes (gauge) read successfully (aggregated from all disks) since the last metric collection. type: long host.disk.write.bytes The total number of bytes (gauge) written successfully (aggregated from all disks) since the last metric collection. type: long host.domain Name of the domain of which the host is a member.For example, on Windows this could be the host’s Active Directory domain or NetBIOS domain name. For Linux this could be the domain of the host’s LDAP provider. type: keyword example: CONTOSO host.geo.city_name City name. type: keyword example: Montreal host.geo.continent_code Two-letter code representing continent’s name. type: keyword example: NA host.geo.continent_name Name of the continent. type: keyword example: North America host.geo.country_iso_code Country ISO code. type: keyword example: CA host.geo.country_name Country name. type: keyword example: Canada host.geo.location Longitude and latitude. type: geo_point example: { "lon": -73.614830, "lat": 45.505918 } host.geo.name User-defined description of a location, at the level of granularity they care about.Could be the name of their data centers, the floor number, if this describes a local physical entity, city names.Not typically used in automated geolocation. type: keyword example: boston-dc host.geo.postal_code Postal code associated with the location.Values appropriate for this field may also be known as a postcode or ZIP code and will vary widely from country to country. type: keyword example: 94040 host.geo.region_iso_code Region ISO code. type: keyword example: CA-QC host.geo.region_name Region name. type: keyword example: Quebec host.geo.timezone The time zone of the location, such as IANA time zone name. type: keyword example: America/Argentina/Buenos_Aires host.hostname Hostname of the host.It normally contains what the hostname command returns on the host machine. type: keyword host.id Unique host id.As hostname is not always unique, use values that are meaningful in your environment.Example: The current usage of beat.name . type: keyword host.ip Host ip addresses. type: ip host.mac Host MAC addresses.The notation format from RFC 7042 is suggested: Each octet (that is, 8-bit byte) is represented by two [uppercase] hexadecimal digits giving the value of the octet as an unsigned integer. Successive octets are separated by a hyphen. type: keyword example: ["00-00-5E-00-53-23", "00-00-5E-00-53-24"] host.name Name of the host.It can contain what hostname returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use. type: keyword host.network.egress.bytes The number of bytes (gauge) sent out on all network interfaces by the host since the last metric collection. type: long host.network.egress.packets The number of packets (gauge) sent out on all network interfaces by the host since the last metric collection. type: long host.network.ingress.bytes The number of bytes received (gauge) on all network interfaces by the host since the last metric collection. type: long host.network.ingress.packets The number of packets (gauge) received on all network interfaces by the host since the last metric collection. type: long host.os.family OS family (such as redhat, debian, freebsd, windows). type: keyword example: debian host.os.full Operating system name, including the version or code name. type: keyword example: Mac OS Mojave host.os.full.text type: match_only_text host.os.kernel Operating system kernel version as a raw string. type: keyword example: 4.4.0-112-generic host.os.name Operating system name, without the version. type: keyword example: Mac OS X host.os.name.text type: match_only_text host.os.platform Operating system platform (such centos, ubuntu, windows). type: keyword example: darwin host.os.type Use the os.type field to categorize the operating system into one of the broad commercial families.One of these following values should be used (lowercase): linux, macos, unix, windows.If the OS you’re dealing with is not in the list, the field should not be populated. Please let us know by opening an issue with ECS, to propose its addition. type: keyword example: macos host.os.version Operating system version as a raw string. type: keyword example: 10.14.1 host.type Type of host.For Cloud providers this can be the machine type like t2.medium . If vm, this could be the container, for example, or other information meaningful in your environment. type: keyword host.uptime Seconds the host has been up. type: long example: 1325 http Fields related to HTTP activity. Use the url field set to store the url of the request. http.request.body.bytes Size in bytes of the request body. type: long example: 887 format: bytes http.request.body.content The full HTTP request body. type: wildcard example: Hello world http.request.body.content.text type: match_only_text http.request.bytes Total size in bytes of the request (body and headers). type: long example: 1437 format: bytes http.request.id A unique identifier for each HTTP request to correlate logs between clients and servers in transactions.The id may be contained in a non-standard HTTP header, such as X-Request-ID or X-Correlation-ID . type: keyword example: 123e4567-e89b-12d3-a456-426614174000 http.request.method HTTP request method.The value should retain its casing from the original event. For example, GET , get , and GeT are all considered valid values for this field. type: keyword example: POST http.request.mime_type Mime type of the body of the request.This value must only be populated based on the content of the request body, not on the Content-Type header. Comparing the mime type of a request with the request’s Content-Type header can be helpful in detecting threats or misconfigured clients. type: keyword example: image/gif http.request.referrer Referrer for this HTTP request. type: keyword example: https://blog.example.com/ http.response.body.bytes Size in bytes of the response body. type: long example: 887 format: bytes http.response.body.content The full HTTP response body. type: wildcard example: Hello world http.response.body.content.text type: match_only_text http.response.bytes Total size in bytes of the response (body and headers). type: long example: 1437 format: bytes http.response.mime_type Mime type of the body of the response.This value must only be populated based on the content of the response body, not on the Content-Type header. Comparing the mime type of a response with the response’s Content-Type header can be helpful in detecting misconfigured servers. type: keyword example: image/gif http.response.status_code HTTP response status code. type: long example: 404 format: string http.version HTTP version. type: keyword example: 1.1 interface The interface fields are used to record ingress and egress interface information when reported by an observer (e.g. firewall, router, load balancer) in the context of the observer handling a network connection. In the case of a single observer interface (e.g. network sensor on a span port) only the observer.ingress information should be populated. interface.alias Interface alias as reported by the system, typically used in firewall implementations for e.g. inside, outside, or dmz logical interface naming. type: keyword example: outside interface.id Interface ID as reported by an observer (typically SNMP interface ID). type: keyword example: 10 interface.name Interface name as reported by the system. type: keyword example: eth0 log Details about the event’s logging mechanism or logging transport.The log.* fields are typically populated with details about the logging mechanism used to create and/or transport the event. For example, syslog details belong under log.syslog.* .The details specific to your event source are typically not logged under log.* , but rather in event.* or in other ECS fields. log.file.path Full path to the log file this event came from, including the file name. It should include the drive letter, when appropriate.If the event wasn’t read from a log file, do not populate this field. type: keyword example: /var/log/fun-times.log log.level Original log level of the log event.If the source of the event provides a log level or textual severity, this is the one that goes in log.level . If your source doesn’t specify one, you may put your event transport’s severity here (e.g. Syslog severity).Some examples are warn , err , i , informational . type: keyword example: error log.logger The name of the logger inside an application. This is usually the name of the class which initialized the logger, or can be a custom name. type: keyword example: org.elasticsearch.bootstrap.Bootstrap log.origin.file.line The line number of the file containing the source code which originated the log event. type: long example: 42 log.origin.file.name The name of the file containing the source code which originated the log event.Note that this field is not meant to capture the log file. The correct field to capture the log file is log.file.path . type: keyword example: Bootstrap.java log.origin.function The name of the function or method which originated the log event. type: keyword example: init log.syslog The Syslog metadata of the event, if the event was transmitted via Syslog. Please see RFCs 5424 or 3164. type: object log.syslog.facility.code The Syslog numeric facility of the log event, if available.According to RFCs 5424 and 3164, this value should be an integer between 0 and 23. type: long example: 23 format: string log.syslog.facility.name The Syslog text-based facility of the log event, if available. type: keyword example: local7 log.syslog.priority Syslog numeric priority of the event, if available.According to RFCs 5424 and 3164, the priority is 8 * facility + severity. This number is therefore expected to contain a value between 0 and 191. type: long example: 135 format: string log.syslog.severity.code The Syslog numeric severity of the log event, if available.If the event source publishing via Syslog provides a different numeric severity value (e.g. firewall, IDS), your source’s numeric severity should go to event.severity . If the event source does not specify a distinct severity, you can optionally copy the Syslog severity to event.severity . type: long example: 3 log.syslog.severity.name The Syslog numeric severity of the log event, if available.If the event source publishing via Syslog provides a different severity value (e.g. firewall, IDS), your source’s text severity should go to log.level . If the event source does not specify a distinct severity, you can optionally copy the Syslog severity to log.level . type: keyword example: Error network The network is defined as the communication path over which a host or network event happens.The network.* fields should be populated with details about the network activity associated with an event. network.application When a specific application or service is identified from network connection details (source/dest IPs, ports, certificates, or wire format), this field captures the application’s or service’s name.For example, the original event identifies the network connection being from a specific web service in a https network connection, like facebook or twitter .The field value must be normalized to lowercase for querying. type: keyword example: aim network.bytes Total bytes transferred in both directions.If source.bytes and destination.bytes are known, network.bytes is their sum. type: long example: 368 format: bytes network.community_id A hash of source and destination IPs and ports, as well as the protocol used in a communication. This is a tool-agnostic standard to identify flows.Learn more at https://github.com/corelight/community-id-spec . type: keyword example: 1:hO+sN4H+MG5MY/8hIrXPqc4ZQz0= network.direction Direction of the network traffic.Recommended values are: * ingress * egress * inbound * outbound * internal * external * unknown When mapping events from a host-based monitoring context, populate this field from the host’s point of view, using the values "ingress" or "egress".When mapping events from a network or perimeter-based monitoring context, populate this field from the point of view of the network perimeter, using the values "inbound", "outbound", "internal" or "external".Note that "internal" is not crossing perimeter boundaries, and is meant to describe communication between two hosts within the perimeter. Note also that "external" is meant to describe traffic between two hosts that are external to the perimeter. This could for example be useful for ISPs or VPN service providers. type: keyword example: inbound network.forwarded_ip Host IP address when the source IP address is the proxy. type: ip example: 192.1.1.2 network.iana_number IANA Protocol Number ( https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml ). Standardized list of protocols. This aligns well with NetFlow and sFlow related logs which use the IANA Protocol Number. type: keyword example: 6 network.inner Network.inner fields are added in addition to network.vlan fields to describe the innermost VLAN when q-in-q VLAN tagging is present. Allowed fields include vlan.id and vlan.name. Inner vlan fields are typically used when sending traffic with multiple 802.1q encapsulations to a network sensor (e.g. Zeek, Wireshark.) type: object network.inner.vlan.id VLAN ID as reported by the observer. type: keyword example: 10 network.inner.vlan.name Optional VLAN name as reported by the observer. type: keyword example: outside network.name Name given by operators to sections of their network. type: keyword example: Guest Wifi network.packets Total packets transferred in both directions.If source.packets and destination.packets are known, network.packets is their sum. type: long example: 24 network.protocol In the OSI Model this would be the Application Layer protocol. For example, http , dns , or ssh .The field value must be normalized to lowercase for querying. type: keyword example: http network.transport Same as network.iana_number, but instead using the Keyword name of the transport layer (udp, tcp, ipv6-icmp, etc.)The field value must be normalized to lowercase for querying. type: keyword example: tcp network.type In the OSI Model this would be the Network Layer. ipv4, ipv6, ipsec, pim, etcThe field value must be normalized to lowercase for querying. type: keyword example: ipv4 network.vlan.id VLAN ID as reported by the observer. type: keyword example: 10 network.vlan.name Optional VLAN name as reported by the observer. type: keyword example: outside observer An observer is defined as a special network, security, or application device used to detect, observe, or create network, security, or application-related events and metrics.This could be a custom hardware appliance or a server that has been configured to run special network, security, or application software. Examples include firewalls, web proxies, intrusion detection/prevention systems, network monitoring sensors, web application firewalls, data loss prevention systems, and APM servers. The observer.* fields shall be populated with details of the system, if any, that detects, observes and/or creates a network, security, or application event or metric. Message queues and ETL components used in processing events or metrics are not considered observers in ECS. observer.egress Observer.egress holds information like interface number and name, vlan, and zone information to classify egress traffic. Single armed monitoring such as a network sensor on a span port should only use observer.ingress to categorize traffic. type: object observer.egress.interface.alias Interface alias as reported by the system, typically used in firewall implementations for e.g. inside, outside, or dmz logical interface naming. type: keyword example: outside observer.egress.interface.id Interface ID as reported by an observer (typically SNMP interface ID). type: keyword example: 10 observer.egress.interface.name Interface name as reported by the system. type: keyword example: eth0 observer.egress.vlan.id VLAN ID as reported by the observer. type: keyword example: 10 observer.egress.vlan.name Optional VLAN name as reported by the observer. type: keyword example: outside observer.egress.zone Network zone of outbound traffic as reported by the observer to categorize the destination area of egress traffic, e.g. Internal, External, DMZ, HR, Legal, etc. type: keyword example: Public_Internet observer.geo.city_name City name. type: keyword example: Montreal observer.geo.continent_code Two-letter code representing continent’s name. type: keyword example: NA observer.geo.continent_name Name of the continent. type: keyword example: North America observer.geo.country_iso_code Country ISO code. type: keyword example: CA observer.geo.country_name Country name. type: keyword example: Canada observer.geo.location Longitude and latitude. type: geo_point example: { "lon": -73.614830, "lat": 45.505918 } observer.geo.name User-defined description of a location, at the level of granularity they care about.Could be the name of their data centers, the floor number, if this describes a local physical entity, city names.Not typically used in automated geolocation. type: keyword example: boston-dc observer.geo.postal_code Postal code associated with the location.Values appropriate for this field may also be known as a postcode or ZIP code and will vary widely from country to country. type: keyword example: 94040 observer.geo.region_iso_code Region ISO code. type: keyword example: CA-QC observer.geo.region_name Region name. type: keyword example: Quebec observer.geo.timezone The time zone of the location, such as IANA time zone name. type: keyword example: America/Argentina/Buenos_Aires observer.hostname Hostname of the observer. type: keyword observer.ingress Observer.ingress holds information like interface number and name, vlan, and zone information to classify ingress traffic. Single armed monitoring such as a network sensor on a span port should only use observer.ingress to categorize traffic. type: object observer.ingress.interface.alias Interface alias as reported by the system, typically used in firewall implementations for e.g. inside, outside, or dmz logical interface naming. type: keyword example: outside observer.ingress.interface.id Interface ID as reported by an observer (typically SNMP interface ID). type: keyword example: 10 observer.ingress.interface.name Interface name as reported by the system. type: keyword example: eth0 observer.ingress.vlan.id VLAN ID as reported by the observer. type: keyword example: 10 observer.ingress.vlan.name Optional VLAN name as reported by the observer. type: keyword example: outside observer.ingress.zone Network zone of incoming traffic as reported by the observer to categorize the source area of ingress traffic. e.g. internal, External, DMZ, HR, Legal, etc. type: keyword example: DMZ observer.ip IP addresses of the observer. type: ip observer.mac MAC addresses of the observer.The notation format from RFC 7042 is suggested: Each octet (that is, 8-bit byte) is represented by two [uppercase] hexadecimal digits giving the value of the octet as an unsigned integer. Successive octets are separated by a hyphen. type: keyword example: ["00-00-5E-00-53-23", "00-00-5E-00-53-24"] observer.name Custom name of the observer.This is a name that can be given to an observer. This can be helpful for example if multiple firewalls of the same model are used in an organization.If no custom name is needed, the field can be left empty. type: keyword example: 1_proxySG observer.os.family OS family (such as redhat, debian, freebsd, windows). type: keyword example: debian observer.os.full Operating system name, including the version or code name. type: keyword example: Mac OS Mojave observer.os.full.text type: match_only_text observer.os.kernel Operating system kernel version as a raw string. type: keyword example: 4.4.0-112-generic observer.os.name Operating system name, without the version. type: keyword example: Mac OS X observer.os.name.text type: match_only_text observer.os.platform Operating system platform (such centos, ubuntu, windows). type: keyword example: darwin observer.os.type Use the os.type field to categorize the operating system into one of the broad commercial families.One of these following values should be used (lowercase): linux, macos, unix, windows.If the OS you’re dealing with is not in the list, the field should not be populated. Please let us know by opening an issue with ECS, to propose its addition. type: keyword example: macos observer.os.version Operating system version as a raw string. type: keyword example: 10.14.1 observer.product The product name of the observer. type: keyword example: s200 observer.serial_number Observer serial number. type: keyword observer.type The type of the observer the data is coming from.There is no predefined list of observer types. Some examples are forwarder , firewall , ids , ips , proxy , poller , sensor , APM server . type: keyword example: firewall observer.vendor Vendor name of the observer. type: keyword example: Symantec observer.version Observer version. type: keyword orchestrator Fields that describe the resources which container orchestrators manage or act upon. orchestrator.api_version API version being used to carry out the action type: keyword example: v1beta1 orchestrator.cluster.name Name of the cluster. type: keyword orchestrator.cluster.url URL of the API used to manage the cluster. type: keyword orchestrator.cluster.version The version of the cluster. type: keyword orchestrator.namespace Namespace in which the action is taking place. type: keyword example: kube-system orchestrator.organization Organization affected by the event (for multi-tenant orchestrator setups). type: keyword example: elastic orchestrator.resource.name Name of the resource being acted upon. type: keyword example: test-pod-cdcws orchestrator.resource.type Type of resource being acted upon. type: keyword example: service orchestrator.type Orchestrator cluster type (e.g. kubernetes, nomad or cloudfoundry). type: keyword example: kubernetes organization The organization fields enrich data with information about the company or entity the data is associated with.These fields help you arrange or filter data stored in an index by one or multiple organizations. organization.id Unique identifier for the organization. type: keyword organization.name Organization name. type: keyword organization.name.text type: match_only_text os The OS fields contain information about the operating system. os.family OS family (such as redhat, debian, freebsd, windows). type: keyword example: debian os.full Operating system name, including the version or code name. type: keyword example: Mac OS Mojave os.full.text type: match_only_text os.kernel Operating system kernel version as a raw string. type: keyword example: 4.4.0-112-generic os.name Operating system name, without the version. type: keyword example: Mac OS X os.name.text type: match_only_text os.platform Operating system platform (such centos, ubuntu, windows). type: keyword example: darwin os.type Use the os.type field to categorize the operating system into one of the broad commercial families.One of these following values should be used (lowercase): linux, macos, unix, windows.If the OS you’re dealing with is not in the list, the field should not be populated. Please let us know by opening an issue with ECS, to propose its addition. type: keyword example: macos os.version Operating system version as a raw string. type: keyword example: 10.14.1 package These fields contain information about an installed software package. It contains general information about a package, such as name, version or size. It also contains installation details, such as time or location. package.architecture Package architecture. type: keyword example: x86_64 package.build_version Additional information about the build version of the installed package.For example use the commit SHA of a non-released package. type: keyword example: 36f4f7e89dd61b0988b12ee000b98966867710cd package.checksum Checksum of the installed package for verification. type: keyword example: 68b329da9893e34099c7d8ad5cb9c940 package.description Description of the package. type: keyword example: Open source programming language to build simple/reliable/efficient software. package.install_scope Indicating how the package was installed, e.g. user-local, global. type: keyword example: global package.installed Time when package was installed. type: date package.license License under which the package was released.Use a short name, e.g. the license identifier from SPDX License List where possible ( https://spdx.org/licenses/ ). type: keyword example: Apache License 2.0 package.name Package name type: keyword example: go package.path Path where the package is installed. type: keyword example: /usr/local/Cellar/go/1.12.9/ package.reference Home page or reference URL of the software in this package, if available. type: keyword example: https://golang.org package.size Package size in bytes. type: long example: 62231 format: string package.type Type of package.This should contain the package file type, rather than the package manager name. Examples: rpm, dpkg, brew, npm, gem, nupkg, jar. type: keyword example: rpm package.version Package version type: keyword example: 1.12.9 pe These fields contain Windows Portable Executable (PE) metadata. pe.architecture CPU architecture target for the file. type: keyword example: x64 pe.company Internal company name of the file, provided at compile-time. type: keyword example: Microsoft Corporation pe.description Internal description of the file, provided at compile-time. type: keyword example: Paint pe.file_version Internal version of the file, provided at compile-time. type: keyword example: 6.3.9600.17415 pe.imphash A hash of the imports in a PE file. An imphash — or import hash — can be used to fingerprint binaries even after recompilation or other code-level transformations have occurred, which would change more traditional hash values.Learn more at https://www.fireeye.com/blog/threat-research/2014/01/tracking-malware-import-hashing.html . type: keyword example: 0c6803c4e922103c4dca5963aad36ddf pe.original_file_name Internal name of the file, provided at compile-time. type: keyword example: MSPAINT.EXE pe.product Internal product name of the file, provided at compile-time. type: keyword example: Microsoft® Windows® Operating System process These fields contain information about a process.These fields can help you correlate metrics information with a process id/name from a log message. The process.pid often stays in the metric itself and is copied to the global field for correlation. process.args Array of process arguments, starting with the absolute path to the executable.May be filtered to protect sensitive information. type: keyword example: ["/usr/bin/ssh", "-l", "user", "10.0.0.16"] process.args_count Length of the process.args array.This field can be useful for querying or performing bucket analysis on how many arguments were provided to start a process. More arguments may be an indication of suspicious activity. type: long example: 4 process.code_signature.digest_algorithm The hashing algorithm used to sign the process.This value can distinguish signatures when a file is signed multiple times by the same signer but with a different digest algorithm. type: keyword example: sha256 process.code_signature.exists Boolean to capture if a signature is present. type: boolean example: true process.code_signature.signing_id The identifier used to sign the process.This is used to identify the application manufactured by a software vendor. The field is relevant to Apple *OS only. type: keyword example: com.apple.xpc.proxy process.code_signature.status Additional information about the certificate status.This is useful for logging cryptographic errors with the certificate validity or trust status. Leave unpopulated if the validity or trust of the certificate was unchecked. type: keyword example: ERROR_UNTRUSTED_ROOT process.code_signature.subject_name Subject name of the code signer type: keyword example: Microsoft Corporation process.code_signature.team_id The team identifier used to sign the process.This is used to identify the team or vendor of a software product. The field is relevant to Apple *OS only. type: keyword example: EQHXZ8M8AV process.code_signature.timestamp Date and time when the code signature was generated and signed. type: date example: 2021-01-01T12:10:30Z process.code_signature.trusted Stores the trust status of the certificate chain.Validating the trust of the certificate chain may be complicated, and this field should only be populated by tools that actively check the status. type: boolean example: true process.code_signature.valid Boolean to capture if the digital signature is verified against the binary content.Leave unpopulated if a certificate was unchecked. type: boolean example: true process.command_line Full command line that started the process, including the absolute path to the executable, and all arguments.Some arguments may be filtered to protect sensitive information. type: wildcard example: /usr/bin/ssh -l user 10.0.0.16 process.command_line.text type: match_only_text process.elf.architecture Machine architecture of the ELF file. type: keyword example: x86-64 process.elf.byte_order Byte sequence of ELF file. type: keyword example: Little Endian process.elf.cpu_type CPU type of the ELF file. type: keyword example: Intel process.elf.creation_date Extracted when possible from the file’s metadata. Indicates when it was built or compiled. It can also be faked by malware creators. type: date process.elf.exports List of exported element names and types. type: flattened process.elf.header.abi_version Version of the ELF Application Binary Interface (ABI). type: keyword process.elf.header.class Header class of the ELF file. type: keyword process.elf.header.data Data table of the ELF header. type: keyword process.elf.header.entrypoint Header entrypoint of the ELF file. type: long format: string process.elf.header.object_version "0x1" for original ELF files. type: keyword process.elf.header.os_abi Application Binary Interface (ABI) of the Linux OS. type: keyword process.elf.header.type Header type of the ELF file. type: keyword process.elf.header.version Version of the ELF header. type: keyword process.elf.imports List of imported element names and types. type: flattened process.elf.sections An array containing an object for each section of the ELF file.The keys that should be present in these objects are defined by sub-fields underneath elf.sections.* . type: nested process.elf.sections.chi2 Chi-square probability distribution of the section. type: long format: number process.elf.sections.entropy Shannon entropy calculation from the section. type: long format: number process.elf.sections.flags ELF Section List flags. type: keyword process.elf.sections.name ELF Section List name. type: keyword process.elf.sections.physical_offset ELF Section List offset. type: keyword process.elf.sections.physical_size ELF Section List physical size. type: long format: bytes process.elf.sections.type ELF Section List type. type: keyword process.elf.sections.virtual_address ELF Section List virtual address. type: long format: string process.elf.sections.virtual_size ELF Section List virtual size. type: long format: string process.elf.segments An array containing an object for each segment of the ELF file.The keys that should be present in these objects are defined by sub-fields underneath elf.segments.* . type: nested process.elf.segments.sections ELF object segment sections. type: keyword process.elf.segments.type ELF object segment type. type: keyword process.elf.shared_libraries List of shared libraries used by this ELF object. type: keyword process.elf.telfhash telfhash symbol hash for ELF file. type: keyword process.end The time the process ended. type: date example: 2016-05-23T08:05:34.853Z process.entity_id Unique identifier for the process.The implementation of this is specified by the data source, but some examples of what could be used here are a process-generated UUID, Sysmon Process GUIDs, or a hash of some uniquely identifying components of a process.Constructing a globally unique identifier is a common practice to mitigate PID reuse as well as to identify a specific process over time, across multiple monitored hosts. type: keyword example: c2c455d9f99375d process.executable Absolute path to the process executable. type: keyword example: /usr/bin/ssh process.executable.text type: match_only_text process.exit_code The exit code of the process, if this is a termination event.The field should be absent if there is no exit code for the event (e.g. process start). type: long example: 137 process.hash.md5 MD5 hash. type: keyword process.hash.sha1 SHA1 hash. type: keyword process.hash.sha256 SHA256 hash. type: keyword process.hash.sha512 SHA512 hash. type: keyword process.hash.ssdeep SSDEEP hash. type: keyword process.name Process name.Sometimes called program name or similar. type: keyword example: ssh process.name.text type: match_only_text process.parent.args Array of process arguments, starting with the absolute path to the executable.May be filtered to protect sensitive information. type: keyword example: ["/usr/bin/ssh", "-l", "user", "10.0.0.16"] process.parent.args_count Length of the process.args array.This field can be useful for querying or performing bucket analysis on how many arguments were provided to start a process. More arguments may be an indication of suspicious activity. type: long example: 4 process.parent.code_signature.digest_algorithm The hashing algorithm used to sign the process.This value can distinguish signatures when a file is signed multiple times by the same signer but with a different digest algorithm. type: keyword example: sha256 process.parent.code_signature.exists Boolean to capture if a signature is present. type: boolean example: true process.parent.code_signature.signing_id The identifier used to sign the process.This is used to identify the application manufactured by a software vendor. The field is relevant to Apple *OS only. type: keyword example: com.apple.xpc.proxy process.parent.code_signature.status Additional information about the certificate status.This is useful for logging cryptographic errors with the certificate validity or trust status. Leave unpopulated if the validity or trust of the certificate was unchecked. type: keyword example: ERROR_UNTRUSTED_ROOT process.parent.code_signature.subject_name Subject name of the code signer type: keyword example: Microsoft Corporation process.parent.code_signature.team_id The team identifier used to sign the process.This is used to identify the team or vendor of a software product. The field is relevant to Apple *OS only. type: keyword example: EQHXZ8M8AV process.parent.code_signature.timestamp Date and time when the code signature was generated and signed. type: date example: 2021-01-01T12:10:30Z process.parent.code_signature.trusted Stores the trust status of the certificate chain.Validating the trust of the certificate chain may be complicated, and this field should only be populated by tools that actively check the status. type: boolean example: true process.parent.code_signature.valid Boolean to capture if the digital signature is verified against the binary content.Leave unpopulated if a certificate was unchecked. type: boolean example: true process.parent.command_line Full command line that started the process, including the absolute path to the executable, and all arguments.Some arguments may be filtered to protect sensitive information. type: wildcard example: /usr/bin/ssh -l user 10.0.0.16 process.parent.command_line.text type: match_only_text process.parent.elf.architecture Machine architecture of the ELF file. type: keyword example: x86-64 process.parent.elf.byte_order Byte sequence of ELF file. type: keyword example: Little Endian process.parent.elf.cpu_type CPU type of the ELF file. type: keyword example: Intel process.parent.elf.creation_date Extracted when possible from the file’s metadata. Indicates when it was built or compiled. It can also be faked by malware creators. type: date process.parent.elf.exports List of exported element names and types. type: flattened process.parent.elf.header.abi_version Version of the ELF Application Binary Interface (ABI). type: keyword process.parent.elf.header.class Header class of the ELF file. type: keyword process.parent.elf.header.data Data table of the ELF header. type: keyword process.parent.elf.header.entrypoint Header entrypoint of the ELF file. type: long format: string process.parent.elf.header.object_version "0x1" for original ELF files. type: keyword process.parent.elf.header.os_abi Application Binary Interface (ABI) of the Linux OS. type: keyword process.parent.elf.header.type Header type of the ELF file. type: keyword process.parent.elf.header.version Version of the ELF header. type: keyword process.parent.elf.imports List of imported element names and types. type: flattened process.parent.elf.sections An array containing an object for each section of the ELF file.The keys that should be present in these objects are defined by sub-fields underneath elf.sections.* . type: nested process.parent.elf.sections.chi2 Chi-square probability distribution of the section. type: long format: number process.parent.elf.sections.entropy Shannon entropy calculation from the section. type: long format: number process.parent.elf.sections.flags ELF Section List flags. type: keyword process.parent.elf.sections.name ELF Section List name. type: keyword process.parent.elf.sections.physical_offset ELF Section List offset. type: keyword process.parent.elf.sections.physical_size ELF Section List physical size. type: long format: bytes process.parent.elf.sections.type ELF Section List type. type: keyword process.parent.elf.sections.virtual_address ELF Section List virtual address. type: long format: string process.parent.elf.sections.virtual_size ELF Section List virtual size. type: long format: string process.parent.elf.segments An array containing an object for each segment of the ELF file.The keys that should be present in these objects are defined by sub-fields underneath elf.segments.* . type: nested process.parent.elf.segments.sections ELF object segment sections. type: keyword process.parent.elf.segments.type ELF object segment type. type: keyword process.parent.elf.shared_libraries List of shared libraries used by this ELF object. type: keyword process.parent.elf.telfhash telfhash symbol hash for ELF file. type: keyword process.parent.end The time the process ended. type: date example: 2016-05-23T08:05:34.853Z process.parent.entity_id Unique identifier for the process.The implementation of this is specified by the data source, but some examples of what could be used here are a process-generated UUID, Sysmon Process GUIDs, or a hash of some uniquely identifying components of a process.Constructing a globally unique identifier is a common practice to mitigate PID reuse as well as to identify a specific process over time, across multiple monitored hosts. type: keyword example: c2c455d9f99375d process.parent.executable Absolute path to the process executable. type: keyword example: /usr/bin/ssh process.parent.executable.text type: match_only_text process.parent.exit_code The exit code of the process, if this is a termination event.The field should be absent if there is no exit code for the event (e.g. process start). type: long example: 137 process.parent.hash.md5 MD5 hash. type: keyword process.parent.hash.sha1 SHA1 hash. type: keyword process.parent.hash.sha256 SHA256 hash. type: keyword process.parent.hash.sha512 SHA512 hash. type: keyword process.parent.hash.ssdeep SSDEEP hash. type: keyword process.parent.name Process name.Sometimes called program name or similar. type: keyword example: ssh process.parent.name.text type: match_only_text process.parent.pe.architecture CPU architecture target for the file. type: keyword example: x64 process.parent.pe.company Internal company name of the file, provided at compile-time. type: keyword example: Microsoft Corporation process.parent.pe.description Internal description of the file, provided at compile-time. type: keyword example: Paint process.parent.pe.file_version Internal version of the file, provided at compile-time. type: keyword example: 6.3.9600.17415 process.parent.pe.imphash A hash of the imports in a PE file. An imphash — or import hash — can be used to fingerprint binaries even after recompilation or other code-level transformations have occurred, which would change more traditional hash values.Learn more at https://www.fireeye.com/blog/threat-research/2014/01/tracking-malware-import-hashing.html . type: keyword example: 0c6803c4e922103c4dca5963aad36ddf process.parent.pe.original_file_name Internal name of the file, provided at compile-time. type: keyword example: MSPAINT.EXE process.parent.pe.product Internal product name of the file, provided at compile-time. type: keyword example: Microsoft® Windows® Operating System process.parent.pgid Identifier of the group of processes the process belongs to. type: long format: string process.parent.pid Process id. type: long example: 4242 format: string process.parent.start The time the process started. type: date example: 2016-05-23T08:05:34.853Z process.parent.thread.id Thread ID. type: long example: 4242 format: string process.parent.thread.name Thread name. type: keyword example: thread-0 process.parent.title Process title.The proctitle, some times the same as process name. Can also be different: for example a browser setting its title to the web page currently opened. type: keyword process.parent.title.text type: match_only_text process.parent.uptime Seconds the process has been up. type: long example: 1325 process.parent.working_directory The working directory of the process. type: keyword example: /home/alice process.parent.working_directory.text type: match_only_text process.pe.architecture CPU architecture target for the file. type: keyword example: x64 process.pe.company Internal company name of the file, provided at compile-time. type: keyword example: Microsoft Corporation process.pe.description Internal description of the file, provided at compile-time. type: keyword example: Paint process.pe.file_version Internal version of the file, provided at compile-time. type: keyword example: 6.3.9600.17415 process.pe.imphash A hash of the imports in a PE file. An imphash — or import hash — can be used to fingerprint binaries even after recompilation or other code-level transformations have occurred, which would change more traditional hash values.Learn more at https://www.fireeye.com/blog/threat-research/2014/01/tracking-malware-import-hashing.html . type: keyword example: 0c6803c4e922103c4dca5963aad36ddf process.pe.original_file_name Internal name of the file, provided at compile-time. type: keyword example: MSPAINT.EXE process.pe.product Internal product name of the file, provided at compile-time. type: keyword example: Microsoft® Windows® Operating System process.pgid Identifier of the group of processes the process belongs to. type: long format: string process.pid Process id. type: long example: 4242 format: string process.start The time the process started. type: date example: 2016-05-23T08:05:34.853Z process.thread.id Thread ID. type: long example: 4242 format: string process.thread.name Thread name. type: keyword example: thread-0 process.title Process title.The proctitle, some times the same as process name. Can also be different: for example a browser setting its title to the web page currently opened. type: keyword process.title.text type: match_only_text process.uptime Seconds the process has been up. type: long example: 1325 process.working_directory The working directory of the process. type: keyword example: /home/alice process.working_directory.text type: match_only_text registry Fields related to Windows Registry operations. registry.data.bytes Original bytes written with base64 encoding.For Windows registry operations, such as SetValueEx and RegQueryValueEx, this corresponds to the data pointed by lp_data . This is optional but provides better recoverability and should be populated for REG_BINARY encoded values. type: keyword example: ZQBuAC0AVQBTAAAAZQBuAAAAAAA= registry.data.strings Content when writing string types.Populated as an array when writing string data to the registry. For single string registry types (REG_SZ, REG_EXPAND_SZ), this should be an array with one string. For sequences of string with REG_MULTI_SZ, this array will be variable length. For numeric data, such as REG_DWORD and REG_QWORD, this should be populated with the decimal representation (e.g "1" ). type: wildcard example: ["C:\rta\red_ttp\bin\myapp.exe"] registry.data.type Standard registry type for encoding contents type: keyword example: REG_SZ registry.hive Abbreviated name for the hive. type: keyword example: HKLM registry.key Hive-relative path of keys. type: keyword example: SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\winword.exe registry.path Full path, including hive, key and value type: keyword example: HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\winword.exe\Debugger registry.value Name of the value written. type: keyword example: Debugger related This field set is meant to facilitate pivoting around a piece of data.Some pieces of information can be seen in many places in an ECS event. To facilitate searching for them, store an array of all seen values to their corresponding field in related. .A concrete example is IP addresses, which can be under host, observer, source, destination, client, server, and network.forwarded_ip. If you append all IPs to related.ip , you can then search for a given IP trivially, no matter where it appeared, by querying related.ip:192.0.2.15 . related.hash All the hashes seen on your event. Populating this field, then using it to search for hashes can help in situations where you’re unsure what the hash algorithm is (and therefore which key name to search). type: keyword related.hosts All hostnames or other host identifiers seen on your event. Example identifiers include FQDNs, domain names, workstation names, or aliases. type: keyword related.ip All of the IPs seen on your event. type: ip related.user All the user names or other user identifiers seen on the event. type: keyword rule Rule fields are used to capture the specifics of any observer or agent rules that generate alerts or other notable events.Examples of data sources that would populate the rule fields include: network admission control platforms, network or host IDS/IPS, network firewalls, web application firewalls, url filters, endpoint detection and response (EDR) systems, etc. rule.author Name, organization, or pseudonym of the author or authors who created the rule used to generate this event. type: keyword example: ["Star-Lord"] rule.category A categorization value keyword used by the entity using the rule for detection of this event. type: keyword example: Attempted Information Leak rule.description The description of the rule generating the event. type: keyword example: Block requests to public DNS over HTTPS / TLS protocols rule.id A rule ID that is unique within the scope of an agent, observer, or other entity using the rule for detection of this event. type: keyword example: 101 rule.license Name of the license under which the rule used to generate this event is made available. type: keyword example: Apache 2.0 rule.name The name of the rule or signature generating the event. type: keyword example: BLOCK_DNS_over_TLS rule.reference Reference URL to additional information about the rule used to generate this event.The URL can point to the vendor’s documentation about the rule. If that’s not available, it can also be a link to a more general page describing this type of alert. type: keyword example: https://en.wikipedia.org/wiki/DNS_over_TLS rule.ruleset Name of the ruleset, policy, group, or parent category in which the rule used to generate this event is a member. type: keyword example: Standard_Protocol_Filters rule.uuid A rule ID that is unique within the scope of a set or group of agents, observers, or other entities using the rule for detection of this event. type: keyword example: 1100110011 rule.version The version / revision of the rule being used for analysis. type: keyword example: 1.1 server A Server is defined as the responder in a network connection for events regarding sessions, connections, or bidirectional flow records.For TCP events, the server is the receiver of the initial SYN packet(s) of the TCP connection. For other protocols, the server is generally the responder in the network transaction. Some systems actually use the term "responder" to refer the server in TCP connections. The server fields describe details about the system acting as the server in the network event. Server fields are usually populated in conjunction with client fields. Server fields are generally not populated for packet-level events.Client / server representations can add semantic context to an exchange, which is helpful to visualize the data in certain situations. If your context falls in that category, you should still ensure that source and destination are filled appropriately. server.address Some event server addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the .address field.Then it should be duplicated to .ip or .domain , depending on which one it is. type: keyword server.as.number Unique number allocated to the autonomous system. The autonomous system number (ASN) uniquely identifies each network on the Internet. type: long example: 15169 server.as.organization.name Organization name. type: keyword example: Google LLC server.as.organization.name.text type: match_only_text server.bytes Bytes sent from the server to the client. type: long example: 184 format: bytes server.domain The domain name of the server system.This value may be a host name, a fully qualified domain name, or another host naming format. The value may derive from the original event or be added from enrichment. type: keyword example: foo.example.com server.geo.city_name City name. type: keyword example: Montreal server.geo.continent_code Two-letter code representing continent’s name. type: keyword example: NA server.geo.continent_name Name of the continent. type: keyword example: North America server.geo.country_iso_code Country ISO code. type: keyword example: CA server.geo.country_name Country name. type: keyword example: Canada server.geo.location Longitude and latitude. type: geo_point example: { "lon": -73.614830, "lat": 45.505918 } server.geo.name User-defined description of a location, at the level of granularity they care about.Could be the name of their data centers, the floor number, if this describes a local physical entity, city names.Not typically used in automated geolocation. type: keyword example: boston-dc server.geo.postal_code Postal code associated with the location.Values appropriate for this field may also be known as a postcode or ZIP code and will vary widely from country to country. type: keyword example: 94040 server.geo.region_iso_code Region ISO code. type: keyword example: CA-QC server.geo.region_name Region name. type: keyword example: Quebec server.geo.timezone The time zone of the location, such as IANA time zone name. type: keyword example: America/Argentina/Buenos_Aires server.ip IP address of the server (IPv4 or IPv6). type: ip server.mac MAC address of the server.The notation format from RFC 7042 is suggested: Each octet (that is, 8-bit byte) is represented by two [uppercase] hexadecimal digits giving the value of the octet as an unsigned integer. Successive octets are separated by a hyphen. type: keyword example: 00-00-5E-00-53-23 server.nat.ip Translated ip of destination based NAT sessions (e.g. internet to private DMZ)Typically used with load balancers, firewalls, or routers. type: ip server.nat.port Translated port of destination based NAT sessions (e.g. internet to private DMZ)Typically used with load balancers, firewalls, or routers. type: long format: string server.packets Packets sent from the server to the client. type: long example: 12 server.port Port of the server. type: long format: string server.registered_domain The highest registered server domain, stripped of the subdomain.For example, the registered domain for "foo.example.com" is "example.com".This value can be determined precisely with a list like the public suffix list ( http://publicsuffix.org ). Trying to approximate this by simply taking the last two labels will not work well for TLDs such as "co.uk". type: keyword example: example.com server.subdomain The subdomain portion of a fully qualified domain name includes all of the names except the host name under the registered_domain. In a partially qualified domain, or if the the qualification level of the full name cannot be determined, subdomain contains all of the names below the registered domain.For example the subdomain portion of "www.east.mydomain.co.uk" is "east". If the domain has multiple levels of subdomain, such as "sub2.sub1.example.com", the subdomain field should contain "sub2.sub1", with no trailing period. type: keyword example: east server.top_level_domain The effective top level domain (eTLD), also known as the domain suffix, is the last part of the domain name. For example, the top level domain for example.com is "com".This value can be determined precisely with a list like the public suffix list ( http://publicsuffix.org ). Trying to approximate this by simply taking the last label will not work well for effective TLDs such as "co.uk". type: keyword example: co.uk server.user.domain Name of the directory the user is a member of.For example, an LDAP or Active Directory domain name. type: keyword server.user.email User email address. type: keyword server.user.full_name User’s full name, if available. type: keyword example: Albert Einstein server.user.full_name.text type: match_only_text server.user.group.domain Name of the directory the group is a member of.For example, an LDAP or Active Directory domain name. type: keyword server.user.group.id Unique identifier for the group on the system/platform. type: keyword server.user.group.name Name of the group. type: keyword server.user.hash Unique user hash to correlate information for a user in anonymized form.Useful if user.id or user.name contain confidential information and cannot be used. type: keyword server.user.id Unique identifier of the user. type: keyword example: S-1-5-21-202424912787-2692429404-2351956786-1000 server.user.name Short name or login of the user. type: keyword example: a.einstein server.user.name.text type: match_only_text server.user.roles Array of user roles at the time of the event. type: keyword example: ["kibana_admin", "reporting_user"] service The service fields describe the service for or from which the data was collected.These fields help you find and correlate logs for a specific service and version. service.address Address where data about this service was collected from.This should be a URI, network address (ipv4:port or [ipv6]:port) or a resource path (sockets). type: keyword example: 172.26.0.2:5432 service.environment Identifies the environment where the service is running.If the same service runs in different environments (production, staging, QA, development, etc.), the environment can identify other instances of the same service. Can also group services and applications from the same environment. type: keyword example: production service.ephemeral_id Ephemeral identifier of this service (if one exists).This id normally changes across restarts, but service.id does not. type: keyword example: 8a4f500f service.id Unique identifier of the running service. If the service is comprised of many nodes, the service.id should be the same for all nodes.This id should uniquely identify the service. This makes it possible to correlate logs and metrics for one specific service, no matter which particular node emitted the event.Note that if you need to see the events from one specific host of the service, you should filter on that host.name or host.id instead. type: keyword example: d37e5ebfe0ae6c4972dbe9f0174a1637bb8247f6 service.name Name of the service data is collected from.The name of the service is normally user given. This allows for distributed services that run on multiple hosts to correlate the related instances based on the name.In the case of Elasticsearch the service.name could contain the cluster name. For Beats the service.name is by default a copy of the service.type field if no name is specified. type: keyword example: elasticsearch-metrics service.node.name Name of a service node.This allows for two nodes of the same service running on the same host to be differentiated. Therefore, service.node.name should typically be unique across nodes of a given service.In the case of Elasticsearch, the service.node.name could contain the unique node name within the Elasticsearch cluster. In cases where the service doesn’t have the concept of a node name, the host name or container name can be used to distinguish running instances that make up this service. If those do not provide uniqueness (e.g. multiple instances of the service running on the same host) - the node name can be manually set. type: keyword example: instance-0000000016 service.origin.address Address where data about this service was collected from.This should be a URI, network address (ipv4:port or [ipv6]:port) or a resource path (sockets). type: keyword example: 172.26.0.2:5432 service.origin.environment Identifies the environment where the service is running.If the same service runs in different environments (production, staging, QA, development, etc.), the environment can identify other instances of the same service. Can also group services and applications from the same environment. type: keyword example: production service.origin.ephemeral_id Ephemeral identifier of this service (if one exists).This id normally changes across restarts, but service.id does not. type: keyword example: 8a4f500f service.origin.id Unique identifier of the running service. If the service is comprised of many nodes, the service.id should be the same for all nodes.This id should uniquely identify the service. This makes it possible to correlate logs and metrics for one specific service, no matter which particular node emitted the event.Note that if you need to see the events from one specific host of the service, you should filter on that host.name or host.id instead. type: keyword example: d37e5ebfe0ae6c4972dbe9f0174a1637bb8247f6 service.origin.name Name of the service data is collected from.The name of the service is normally user given. This allows for distributed services that run on multiple hosts to correlate the related instances based on the name.In the case of Elasticsearch the service.name could contain the cluster name. For Beats the service.name is by default a copy of the service.type field if no name is specified. type: keyword example: elasticsearch-metrics service.origin.node.name Name of a service node.This allows for two nodes of the same service running on the same host to be differentiated. Therefore, service.node.name should typically be unique across nodes of a given service.In the case of Elasticsearch, the service.node.name could contain the unique node name within the Elasticsearch cluster. In cases where the service doesn’t have the concept of a node name, the host name or container name can be used to distinguish running instances that make up this service. If those do not provide uniqueness (e.g. multiple instances of the service running on the same host) - the node name can be manually set. type: keyword example: instance-0000000016 service.origin.state Current state of the service. type: keyword service.origin.type The type of the service data is collected from.The type can be used to group and correlate logs and metrics from one service type.Example: If logs or metrics are collected from Elasticsearch, service.type would be elasticsearch . type: keyword example: elasticsearch service.origin.version Version of the service the data was collected from.This allows to look at a data set only for a specific version of a service. type: keyword example: 3.2.4 service.state Current state of the service. type: keyword service.target.address Address where data about this service was collected from.This should be a URI, network address (ipv4:port or [ipv6]:port) or a resource path (sockets). type: keyword example: 172.26.0.2:5432 service.target.environment Identifies the environment where the service is running.If the same service runs in different environments (production, staging, QA, development, etc.), the environment can identify other instances of the same service. Can also group services and applications from the same environment. type: keyword example: production service.target.ephemeral_id Ephemeral identifier of this service (if one exists).This id normally changes across restarts, but service.id does not. type: keyword example: 8a4f500f service.target.id Unique identifier of the running service. If the service is comprised of many nodes, the service.id should be the same for all nodes.This id should uniquely identify the service. This makes it possible to correlate logs and metrics for one specific service, no matter which particular node emitted the event.Note that if you need to see the events from one specific host of the service, you should filter on that host.name or host.id instead. type: keyword example: d37e5ebfe0ae6c4972dbe9f0174a1637bb8247f6 service.target.name Name of the service data is collected from.The name of the service is normally user given. This allows for distributed services that run on multiple hosts to correlate the related instances based on the name.In the case of Elasticsearch the service.name could contain the cluster name. For Beats the service.name is by default a copy of the service.type field if no name is specified. type: keyword example: elasticsearch-metrics service.target.node.name Name of a service node.This allows for two nodes of the same service running on the same host to be differentiated. Therefore, service.node.name should typically be unique across nodes of a given service.In the case of Elasticsearch, the service.node.name could contain the unique node name within the Elasticsearch cluster. In cases where the service doesn’t have the concept of a node name, the host name or container name can be used to distinguish running instances that make up this service. If those do not provide uniqueness (e.g. multiple instances of the service running on the same host) - the node name can be manually set. type: keyword example: instance-0000000016 service.target.state Current state of the service. type: keyword service.target.type The type of the service data is collected from.The type can be used to group and correlate logs and metrics from one service type.Example: If logs or metrics are collected from Elasticsearch, service.type would be elasticsearch . type: keyword example: elasticsearch service.target.version Version of the service the data was collected from.This allows to look at a data set only for a specific version of a service. type: keyword example: 3.2.4 service.type The type of the service data is collected from.The type can be used to group and correlate logs and metrics from one service type.Example: If logs or metrics are collected from Elasticsearch, service.type would be elasticsearch . type: keyword example: elasticsearch service.version Version of the service the data was collected from.This allows to look at a data set only for a specific version of a service. type: keyword example: 3.2.4 source Source fields capture details about the sender of a network exchange/packet. These fields are populated from a network event, packet, or other event containing details of a network transaction.Source fields are usually populated in conjunction with destination fields. The source and destination fields are considered the baseline and should always be filled if an event contains source and destination details from a network transaction. If the event also contains identification of the client and server roles, then the client and server fields should also be populated. source.address Some event source addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the .address field.Then it should be duplicated to .ip or .domain , depending on which one it is. type: keyword source.as.number Unique number allocated to the autonomous system. The autonomous system number (ASN) uniquely identifies each network on the Internet. type: long example: 15169 source.as.organization.name Organization name. type: keyword example: Google LLC source.as.organization.name.text type: match_only_text source.bytes Bytes sent from the source to the destination. type: long example: 184 format: bytes source.domain The domain name of the source system.This value may be a host name, a fully qualified domain name, or another host naming format. The value may derive from the original event or be added from enrichment. type: keyword example: foo.example.com source.geo.city_name City name. type: keyword example: Montreal source.geo.continent_code Two-letter code representing continent’s name. type: keyword example: NA source.geo.continent_name Name of the continent. type: keyword example: North America source.geo.country_iso_code Country ISO code. type: keyword example: CA source.geo.country_name Country name. type: keyword example: Canada source.geo.location Longitude and latitude. type: geo_point example: { "lon": -73.614830, "lat": 45.505918 } source.geo.name User-defined description of a location, at the level of granularity they care about.Could be the name of their data centers, the floor number, if this describes a local physical entity, city names.Not typically used in automated geolocation. type: keyword example: boston-dc source.geo.postal_code Postal code associated with the location.Values appropriate for this field may also be known as a postcode or ZIP code and will vary widely from country to country. type: keyword example: 94040 source.geo.region_iso_code Region ISO code. type: keyword example: CA-QC source.geo.region_name Region name. type: keyword example: Quebec source.geo.timezone The time zone of the location, such as IANA time zone name. type: keyword example: America/Argentina/Buenos_Aires source.ip IP address of the source (IPv4 or IPv6). type: ip source.mac MAC address of the source.The notation format from RFC 7042 is suggested: Each octet (that is, 8-bit byte) is represented by two [uppercase] hexadecimal digits giving the value of the octet as an unsigned integer. Successive octets are separated by a hyphen. type: keyword example: 00-00-5E-00-53-23 source.nat.ip Translated ip of source based NAT sessions (e.g. internal client to internet)Typically connections traversing load balancers, firewalls, or routers. type: ip source.nat.port Translated port of source based NAT sessions. (e.g. internal client to internet)Typically used with load balancers, firewalls, or routers. type: long format: string source.packets Packets sent from the source to the destination. type: long example: 12 source.port Port of the source. type: long format: string source.registered_domain The highest registered source domain, stripped of the subdomain.For example, the registered domain for "foo.example.com" is "example.com".This value can be determined precisely with a list like the public suffix list ( http://publicsuffix.org ). Trying to approximate this by simply taking the last two labels will not work well for TLDs such as "co.uk". type: keyword example: example.com source.subdomain The subdomain portion of a fully qualified domain name includes all of the names except the host name under the registered_domain. In a partially qualified domain, or if the the qualification level of the full name cannot be determined, subdomain contains all of the names below the registered domain.For example the subdomain portion of "www.east.mydomain.co.uk" is "east". If the domain has multiple levels of subdomain, such as "sub2.sub1.example.com", the subdomain field should contain "sub2.sub1", with no trailing period. type: keyword example: east source.top_level_domain The effective top level domain (eTLD), also known as the domain suffix, is the last part of the domain name. For example, the top level domain for example.com is "com".This value can be determined precisely with a list like the public suffix list ( http://publicsuffix.org ). Trying to approximate this by simply taking the last label will not work well for effective TLDs such as "co.uk". type: keyword example: co.uk source.user.domain Name of the directory the user is a member of.For example, an LDAP or Active Directory domain name. type: keyword source.user.email User email address. type: keyword source.user.full_name User’s full name, if available. type: keyword example: Albert Einstein source.user.full_name.text type: match_only_text source.user.group.domain Name of the directory the group is a member of.For example, an LDAP or Active Directory domain name. type: keyword source.user.group.id Unique identifier for the group on the system/platform. type: keyword source.user.group.name Name of the group. type: keyword source.user.hash Unique user hash to correlate information for a user in anonymized form.Useful if user.id or user.name contain confidential information and cannot be used. type: keyword source.user.id Unique identifier of the user. type: keyword example: S-1-5-21-202424912787-2692429404-2351956786-1000 source.user.name Short name or login of the user. type: keyword example: a.einstein source.user.name.text type: match_only_text source.user.roles Array of user roles at the time of the event. type: keyword example: ["kibana_admin", "reporting_user"] threat Fields to classify events and alerts according to a threat taxonomy such as the MITRE ATT&CK® framework.These fields are for users to classify alerts from all of their sources (e.g. IDS, NGFW, etc.) within a common taxonomy. The threat.tactic.* fields are meant to capture the high level category of the threat (e.g. "impact"). The threat.technique.* fields are meant to capture which kind of approach is used by this detected threat, to accomplish the goal (e.g. "endpoint denial of service"). threat.enrichments A list of associated indicators objects enriching the event, and the context of that association/enrichment. type: nested threat.enrichments.indicator Object containing associated indicators enriching the event. type: object threat.enrichments.indicator.as.number Unique number allocated to the autonomous system. The autonomous system number (ASN) uniquely identifies each network on the Internet. type: long example: 15169 threat.enrichments.indicator.as.organization.name Organization name. type: keyword example: Google LLC threat.enrichments.indicator.as.organization.name.text type: match_only_text threat.enrichments.indicator.confidence Identifies the vendor-neutral confidence rating using the None/Low/Medium/High scale defined in Appendix A of the STIX 2.1 framework. Vendor-specific confidence scales may be added as custom fields.Expected values are: * Not Specified * None * Low * Medium * High type: keyword example: Medium threat.enrichments.indicator.description Describes the type of action conducted by the threat. type: keyword example: IP x.x.x.x was observed delivering the Angler EK. threat.enrichments.indicator.email.address Identifies a threat indicator as an email address (irrespective of direction). type: keyword example: phish@example.com threat.enrichments.indicator.file.accessed Last time the file was accessed.Note that not all filesystems keep track of access time. type: date threat.enrichments.indicator.file.attributes Array of file attributes.Attributes names will vary by platform. Here’s a non-exhaustive list of values that are expected in this field: archive, compressed, directory, encrypted, execute, hidden, read, readonly, system, write. type: keyword example: ["readonly", "system"] threat.enrichments.indicator.file.code_signature.digest_algorithm The hashing algorithm used to sign the process.This value can distinguish signatures when a file is signed multiple times by the same signer but with a different digest algorithm. type: keyword example: sha256 threat.enrichments.indicator.file.code_signature.exists Boolean to capture if a signature is present. type: boolean example: true threat.enrichments.indicator.file.code_signature.signing_id The identifier used to sign the process.This is used to identify the application manufactured by a software vendor. The field is relevant to Apple *OS only. type: keyword example: com.apple.xpc.proxy threat.enrichments.indicator.file.code_signature.status Additional information about the certificate status.This is useful for logging cryptographic errors with the certificate validity or trust status. Leave unpopulated if the validity or trust of the certificate was unchecked. type: keyword example: ERROR_UNTRUSTED_ROOT threat.enrichments.indicator.file.code_signature.subject_name Subject name of the code signer type: keyword example: Microsoft Corporation threat.enrichments.indicator.file.code_signature.team_id The team identifier used to sign the process.This is used to identify the team or vendor of a software product. The field is relevant to Apple *OS only. type: keyword example: EQHXZ8M8AV threat.enrichments.indicator.file.code_signature.timestamp Date and time when the code signature was generated and signed. type: date example: 2021-01-01T12:10:30Z threat.enrichments.indicator.file.code_signature.trusted Stores the trust status of the certificate chain.Validating the trust of the certificate chain may be complicated, and this field should only be populated by tools that actively check the status. type: boolean example: true threat.enrichments.indicator.file.code_signature.valid Boolean to capture if the digital signature is verified against the binary content.Leave unpopulated if a certificate was unchecked. type: boolean example: true threat.enrichments.indicator.file.created File creation time.Note that not all filesystems store the creation time. type: date threat.enrichments.indicator.file.ctime Last time the file attributes or metadata changed.Note that changes to the file content will update mtime . This implies ctime will be adjusted at the same time, since mtime is an attribute of the file. type: date threat.enrichments.indicator.file.device Device that is the source of the file. type: keyword example: sda threat.enrichments.indicator.file.directory Directory where the file is located. It should include the drive letter, when appropriate. type: keyword example: /home/alice threat.enrichments.indicator.file.drive_letter Drive letter where the file is located. This field is only relevant on Windows.The value should be uppercase, and not include the colon. type: keyword example: C threat.enrichments.indicator.file.elf.architecture Machine architecture of the ELF file. type: keyword example: x86-64 threat.enrichments.indicator.file.elf.byte_order Byte sequence of ELF file. type: keyword example: Little Endian threat.enrichments.indicator.file.elf.cpu_type CPU type of the ELF file. type: keyword example: Intel threat.enrichments.indicator.file.elf.creation_date Extracted when possible from the file’s metadata. Indicates when it was built or compiled. It can also be faked by malware creators. type: date threat.enrichments.indicator.file.elf.exports List of exported element names and types. type: flattened threat.enrichments.indicator.file.elf.header.abi_version Version of the ELF Application Binary Interface (ABI). type: keyword threat.enrichments.indicator.file.elf.header.class Header class of the ELF file. type: keyword threat.enrichments.indicator.file.elf.header.data Data table of the ELF header. type: keyword threat.enrichments.indicator.file.elf.header.entrypoint Header entrypoint of the ELF file. type: long format: string threat.enrichments.indicator.file.elf.header.object_version "0x1" for original ELF files. type: keyword threat.enrichments.indicator.file.elf.header.os_abi Application Binary Interface (ABI) of the Linux OS. type: keyword threat.enrichments.indicator.file.elf.header.type Header type of the ELF file. type: keyword threat.enrichments.indicator.file.elf.header.version Version of the ELF header. type: keyword threat.enrichments.indicator.file.elf.imports List of imported element names and types. type: flattened threat.enrichments.indicator.file.elf.sections An array containing an object for each section of the ELF file.The keys that should be present in these objects are defined by sub-fields underneath elf.sections.* . type: nested threat.enrichments.indicator.file.elf.sections.chi2 Chi-square probability distribution of the section. type: long format: number threat.enrichments.indicator.file.elf.sections.entropy Shannon entropy calculation from the section. type: long format: number threat.enrichments.indicator.file.elf.sections.flags ELF Section List flags. type: keyword threat.enrichments.indicator.file.elf.sections.name ELF Section List name. type: keyword threat.enrichments.indicator.file.elf.sections.physical_offset ELF Section List offset. type: keyword threat.enrichments.indicator.file.elf.sections.physical_size ELF Section List physical size. type: long format: bytes threat.enrichments.indicator.file.elf.sections.type ELF Section List type. type: keyword threat.enrichments.indicator.file.elf.sections.virtual_address ELF Section List virtual address. type: long format: string threat.enrichments.indicator.file.elf.sections.virtual_size ELF Section List virtual size. type: long format: string threat.enrichments.indicator.file.elf.segments An array containing an object for each segment of the ELF file.The keys that should be present in these objects are defined by sub-fields underneath elf.segments.* . type: nested threat.enrichments.indicator.file.elf.segments.sections ELF object segment sections. type: keyword threat.enrichments.indicator.file.elf.segments.type ELF object segment type. type: keyword threat.enrichments.indicator.file.elf.shared_libraries List of shared libraries used by this ELF object. type: keyword threat.enrichments.indicator.file.elf.telfhash telfhash symbol hash for ELF file. type: keyword threat.enrichments.indicator.file.extension File extension, excluding the leading dot.Note that when the file name has multiple extensions (example.tar.gz), only the last one should be captured ("gz", not "tar.gz"). type: keyword example: png threat.enrichments.indicator.file.fork_name A fork is additional data associated with a filesystem object.On Linux, a resource fork is used to store additional data with a filesystem object. A file always has at least one fork for the data portion, and additional forks may exist.On NTFS, this is analogous to an Alternate Data Stream (ADS), and the default data stream for a file is just called $DATA. Zone.Identifier is commonly used by Windows to track contents downloaded from the Internet. An ADS is typically of the form: C:\path\to\filename.extension:some_fork_name , and some_fork_name is the value that should populate fork_name . filename.extension should populate file.name , and extension should populate file.extension . The full path, file.path , will include the fork name. type: keyword example: Zone.Identifer threat.enrichments.indicator.file.gid Primary group ID (GID) of the file. type: keyword example: 1001 threat.enrichments.indicator.file.group Primary group name of the file. type: keyword example: alice threat.enrichments.indicator.file.hash.md5 MD5 hash. type: keyword threat.enrichments.indicator.file.hash.sha1 SHA1 hash. type: keyword threat.enrichments.indicator.file.hash.sha256 SHA256 hash. type: keyword threat.enrichments.indicator.file.hash.sha512 SHA512 hash. type: keyword threat.enrichments.indicator.file.hash.ssdeep SSDEEP hash. type: keyword threat.enrichments.indicator.file.inode Inode representing the file in the filesystem. type: keyword example: 256383 threat.enrichments.indicator.file.mime_type MIME type should identify the format of the file or stream of bytes using IANA official types , where possible. When more than one type is applicable, the most specific type should be used. type: keyword threat.enrichments.indicator.file.mode Mode of the file in octal representation. type: keyword example: 0640 threat.enrichments.indicator.file.mtime Last time the file content was modified. type: date threat.enrichments.indicator.file.name Name of the file including the extension, without the directory. type: keyword example: example.png threat.enrichments.indicator.file.owner File owner’s username. type: keyword example: alice threat.enrichments.indicator.file.path Full path to the file, including the file name. It should include the drive letter, when appropriate. type: keyword example: /home/alice/example.png threat.enrichments.indicator.file.path.text type: match_only_text threat.enrichments.indicator.file.pe.architecture CPU architecture target for the file. type: keyword example: x64 threat.enrichments.indicator.file.pe.company Internal company name of the file, provided at compile-time. type: keyword example: Microsoft Corporation threat.enrichments.indicator.file.pe.description Internal description of the file, provided at compile-time. type: keyword example: Paint threat.enrichments.indicator.file.pe.file_version Internal version of the file, provided at compile-time. type: keyword example: 6.3.9600.17415 threat.enrichments.indicator.file.pe.imphash A hash of the imports in a PE file. An imphash — or import hash — can be used to fingerprint binaries even after recompilation or other code-level transformations have occurred, which would change more traditional hash values.Learn more at https://www.fireeye.com/blog/threat-research/2014/01/tracking-malware-import-hashing.html . type: keyword example: 0c6803c4e922103c4dca5963aad36ddf threat.enrichments.indicator.file.pe.original_file_name Internal name of the file, provided at compile-time. type: keyword example: MSPAINT.EXE threat.enrichments.indicator.file.pe.product Internal product name of the file, provided at compile-time. type: keyword example: Microsoft® Windows® Operating System threat.enrichments.indicator.file.size File size in bytes.Only relevant when file.type is "file". type: long example: 16384 threat.enrichments.indicator.file.target_path Target path for symlinks. type: keyword threat.enrichments.indicator.file.target_path.text type: match_only_text threat.enrichments.indicator.file.type File type (file, dir, or symlink). type: keyword example: file threat.enrichments.indicator.file.uid The user ID (UID) or security identifier (SID) of the file owner. type: keyword example: 1001 threat.enrichments.indicator.file.x509.alternative_names List of subject alternative names (SAN). Name types vary by certificate authority and certificate type but commonly contain IP addresses, DNS names (and wildcards), and email addresses. type: keyword example: *.elastic.co threat.enrichments.indicator.file.x509.issuer.common_name List of common name (CN) of issuing certificate authority. type: keyword example: Example SHA2 High Assurance Server CA threat.enrichments.indicator.file.x509.issuer.country List of country © codes type: keyword example: US threat.enrichments.indicator.file.x509.issuer.distinguished_name Distinguished name (DN) of issuing certificate authority. type: keyword example: C=US, O=Example Inc, OU=www.example.com, CN=Example SHA2 High Assurance Server CA threat.enrichments.indicator.file.x509.issuer.locality List of locality names (L) type: keyword example: Mountain View threat.enrichments.indicator.file.x509.issuer.organization List of organizations (O) of issuing certificate authority. type: keyword example: Example Inc threat.enrichments.indicator.file.x509.issuer.organizational_unit List of organizational units (OU) of issuing certificate authority. type: keyword example: www.example.com threat.enrichments.indicator.file.x509.issuer.state_or_province List of state or province names (ST, S, or P) type: keyword example: California threat.enrichments.indicator.file.x509.not_after Time at which the certificate is no longer considered valid. type: date example: 2020-07-16 03:15:39+00:00 threat.enrichments.indicator.file.x509.not_before Time at which the certificate is first considered valid. type: date example: 2019-08-16 01:40:25+00:00 threat.enrichments.indicator.file.x509.public_key_algorithm Algorithm used to generate the public key. type: keyword example: RSA threat.enrichments.indicator.file.x509.public_key_curve The curve used by the elliptic curve public key algorithm. This is algorithm specific. type: keyword example: nistp521 threat.enrichments.indicator.file.x509.public_key_exponent Exponent used to derive the public key. This is algorithm specific. type: long example: 65537 Field is not indexed. threat.enrichments.indicator.file.x509.public_key_size The size of the public key space in bits. type: long example: 2048 threat.enrichments.indicator.file.x509.serial_number Unique serial number issued by the certificate authority. For consistency, if this value is alphanumeric, it should be formatted without colons and uppercase characters. type: keyword example: 55FBB9C7DEBF09809D12CCAA threat.enrichments.indicator.file.x509.signature_algorithm Identifier for certificate signature algorithm. We recommend using names found in Go Lang Crypto library. See https://github.com/golang/go/blob/go1.14/src/crypto/x509/x509.go#L337-L353 . type: keyword example: SHA256-RSA threat.enrichments.indicator.file.x509.subject.common_name List of common names (CN) of subject. type: keyword example: shared.global.example.net threat.enrichments.indicator.file.x509.subject.country List of country © code type: keyword example: US threat.enrichments.indicator.file.x509.subject.distinguished_name Distinguished name (DN) of the certificate subject entity. type: keyword example: C=US, ST=California, L=San Francisco, O=Example, Inc., CN=shared.global.example.net threat.enrichments.indicator.file.x509.subject.locality List of locality names (L) type: keyword example: San Francisco threat.enrichments.indicator.file.x509.subject.organization List of organizations (O) of subject. type: keyword example: Example, Inc. threat.enrichments.indicator.file.x509.subject.organizational_unit List of organizational units (OU) of subject. type: keyword threat.enrichments.indicator.file.x509.subject.state_or_province List of state or province names (ST, S, or P) type: keyword example: California threat.enrichments.indicator.file.x509.version_number Version of x509 format. type: keyword example: 3 threat.enrichments.indicator.first_seen The date and time when intelligence source first reported sighting this indicator. type: date example: 2020-11-05T17:25:47.000Z threat.enrichments.indicator.geo.city_name City name. type: keyword example: Montreal threat.enrichments.indicator.geo.continent_code Two-letter code representing continent’s name. type: keyword example: NA threat.enrichments.indicator.geo.continent_name Name of the continent. type: keyword example: North America threat.enrichments.indicator.geo.country_iso_code Country ISO code. type: keyword example: CA threat.enrichments.indicator.geo.country_name Country name. type: keyword example: Canada threat.enrichments.indicator.geo.location Longitude and latitude. type: geo_point example: { "lon": -73.614830, "lat": 45.505918 } threat.enrichments.indicator.geo.name User-defined description of a location, at the level of granularity they care about.Could be the name of their data centers, the floor number, if this describes a local physical entity, city names.Not typically used in automated geolocation. type: keyword example: boston-dc threat.enrichments.indicator.geo.postal_code Postal code associated with the location.Values appropriate for this field may also be known as a postcode or ZIP code and will vary widely from country to country. type: keyword example: 94040 threat.enrichments.indicator.geo.region_iso_code Region ISO code. type: keyword example: CA-QC threat.enrichments.indicator.geo.region_name Region name. type: keyword example: Quebec threat.enrichments.indicator.geo.timezone The time zone of the location, such as IANA time zone name. type: keyword example: America/Argentina/Buenos_Aires threat.enrichments.indicator.ip Identifies a threat indicator as an IP address (irrespective of direction). type: ip example: 1.2.3.4 threat.enrichments.indicator.last_seen The date and time when intelligence source last reported sighting this indicator. type: date example: 2020-11-05T17:25:47.000Z threat.enrichments.indicator.marking.tlp Traffic Light Protocol sharing markings. Recommended values are: * WHITE * GREEN * AMBER * RED type: keyword example: White threat.enrichments.indicator.modified_at The date and time when intelligence source last modified information for this indicator. type: date example: 2020-11-05T17:25:47.000Z threat.enrichments.indicator.port Identifies a threat indicator as a port number (irrespective of direction). type: long example: 443 threat.enrichments.indicator.provider The name of the indicator’s provider. type: keyword example: lrz_urlhaus threat.enrichments.indicator.reference Reference URL linking to additional information about this indicator. type: keyword example: https://system.example.com/indicator/0001234 threat.enrichments.indicator.registry.data.bytes Original bytes written with base64 encoding.For Windows registry operations, such as SetValueEx and RegQueryValueEx, this corresponds to the data pointed by lp_data . This is optional but provides better recoverability and should be populated for REG_BINARY encoded values. type: keyword example: ZQBuAC0AVQBTAAAAZQBuAAAAAAA= threat.enrichments.indicator.registry.data.strings Content when writing string types.Populated as an array when writing string data to the registry. For single string registry types (REG_SZ, REG_EXPAND_SZ), this should be an array with one string. For sequences of string with REG_MULTI_SZ, this array will be variable length. For numeric data, such as REG_DWORD and REG_QWORD, this should be populated with the decimal representation (e.g "1" ). type: wildcard example: ["C:\rta\red_ttp\bin\myapp.exe"] threat.enrichments.indicator.registry.data.type Standard registry type for encoding contents type: keyword example: REG_SZ threat.enrichments.indicator.registry.hive Abbreviated name for the hive. type: keyword example: HKLM threat.enrichments.indicator.registry.key Hive-relative path of keys. type: keyword example: SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\winword.exe threat.enrichments.indicator.registry.path Full path, including hive, key and value type: keyword example: HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\winword.exe\Debugger threat.enrichments.indicator.registry.value Name of the value written. type: keyword example: Debugger threat.enrichments.indicator.scanner_stats Count of AV/EDR vendors that successfully detected malicious file or URL. type: long example: 4 threat.enrichments.indicator.sightings Number of times this indicator was observed conducting threat activity. type: long example: 20 threat.enrichments.indicator.type Type of indicator as represented by Cyber Observable in STIX 2.0. Recommended values: * autonomous-system * artifact * directory * domain-name * email-addr * file * ipv4-addr * ipv6-addr * mac-addr * mutex * port * process * software * url * user-account * windows-registry-key * x509-certificate type: keyword example: ipv4-addr threat.enrichments.indicator.url.domain Domain of the url, such as "www.elastic.co".In some cases a URL may refer to an IP and/or port directly, without a domain name. In this case, the IP address would go to the domain field.If the URL contains a literal IPv6 address enclosed by [ and ] (IETF RFC 2732), the [ and ] characters should also be captured in the domain field. type: keyword example: www.elastic.co threat.enrichments.indicator.url.extension The field contains the file extension from the original request url, excluding the leading dot.The file extension is only set if it exists, as not every url has a file extension.The leading period must not be included. For example, the value must be "png", not ".png".Note that when the file name has multiple extensions (example.tar.gz), only the last one should be captured ("gz", not "tar.gz"). type: keyword example: png threat.enrichments.indicator.url.fragment Portion of the url after the # , such as "top".The # is not part of the fragment. type: keyword threat.enrichments.indicator.url.full If full URLs are important to your use case, they should be stored in url.full , whether this field is reconstructed or present in the event source. type: wildcard example: https://www.elastic.co:443/search?q=elasticsearch#top threat.enrichments.indicator.url.full.text type: match_only_text threat.enrichments.indicator.url.original Unmodified original url as seen in the event source.Note that in network monitoring, the observed URL may be a full URL, whereas in access logs, the URL is often just represented as a path.This field is meant to represent the URL as it was observed, complete or not. type: wildcard example: https://www.elastic.co:443/search?q=elasticsearch#top or /search?q=elasticsearch threat.enrichments.indicator.url.original.text type: match_only_text threat.enrichments.indicator.url.password Password of the request. type: keyword threat.enrichments.indicator.url.path Path of the request, such as "/search". type: wildcard threat.enrichments.indicator.url.port Port of the request, such as 443. type: long example: 443 format: string threat.enrichments.indicator.url.query The query field describes the query string of the request, such as "q=elasticsearch".The ? is excluded from the query string. If a URL contains no ? , there is no query field. If there is a ? but no query, the query field exists with an empty string. The exists query can be used to differentiate between the two cases. type: keyword threat.enrichments.indicator.url.registered_domain The highest registered url domain, stripped of the subdomain.For example, the registered domain for "foo.example.com" is "example.com".This value can be determined precisely with a list like the public suffix list ( http://publicsuffix.org ). Trying to approximate this by simply taking the last two labels will not work well for TLDs such as "co.uk". type: keyword example: example.com threat.enrichments.indicator.url.scheme Scheme of the request, such as "https".Note: The : is not part of the scheme. type: keyword example: https threat.enrichments.indicator.url.subdomain The subdomain portion of a fully qualified domain name includes all of the names except the host name under the registered_domain. In a partially qualified domain, or if the the qualification level of the full name cannot be determined, subdomain contains all of the names below the registered domain.For example the subdomain portion of "www.east.mydomain.co.uk" is "east". If the domain has multiple levels of subdomain, such as "sub2.sub1.example.com", the subdomain field should contain "sub2.sub1", with no trailing period. type: keyword example: east threat.enrichments.indicator.url.top_level_domain The effective top level domain (eTLD), also known as the domain suffix, is the last part of the domain name. For example, the top level domain for example.com is "com".This value can be determined precisely with a list like the public suffix list ( http://publicsuffix.org ). Trying to approximate this by simply taking the last label will not work well for effective TLDs such as "co.uk". type: keyword example: co.uk threat.enrichments.indicator.url.username Username of the request. type: keyword threat.enrichments.indicator.x509.alternative_names List of subject alternative names (SAN). Name types vary by certificate authority and certificate type but commonly contain IP addresses, DNS names (and wildcards), and email addresses. type: keyword example: *.elastic.co threat.enrichments.indicator.x509.issuer.common_name List of common name (CN) of issuing certificate authority. type: keyword example: Example SHA2 High Assurance Server CA threat.enrichments.indicator.x509.issuer.country List of country © codes type: keyword example: US threat.enrichments.indicator.x509.issuer.distinguished_name Distinguished name (DN) of issuing certificate authority. type: keyword example: C=US, O=Example Inc, OU=www.example.com, CN=Example SHA2 High Assurance Server CA threat.enrichments.indicator.x509.issuer.locality List of locality names (L) type: keyword example: Mountain View threat.enrichments.indicator.x509.issuer.organization List of organizations (O) of issuing certificate authority. type: keyword example: Example Inc threat.enrichments.indicator.x509.issuer.organizational_unit List of organizational units (OU) of issuing certificate authority. type: keyword example: www.example.com threat.enrichments.indicator.x509.issuer.state_or_province List of state or province names (ST, S, or P) type: keyword example: California threat.enrichments.indicator.x509.not_after Time at which the certificate is no longer considered valid. type: date example: 2020-07-16 03:15:39+00:00 threat.enrichments.indicator.x509.not_before Time at which the certificate is first considered valid. type: date example: 2019-08-16 01:40:25+00:00 threat.enrichments.indicator.x509.public_key_algorithm Algorithm used to generate the public key. type: keyword example: RSA threat.enrichments.indicator.x509.public_key_curve The curve used by the elliptic curve public key algorithm. This is algorithm specific. type: keyword example: nistp521 threat.enrichments.indicator.x509.public_key_exponent Exponent used to derive the public key. This is algorithm specific. type: long example: 65537 Field is not indexed. threat.enrichments.indicator.x509.public_key_size The size of the public key space in bits. type: long example: 2048 threat.enrichments.indicator.x509.serial_number Unique serial number issued by the certificate authority. For consistency, if this value is alphanumeric, it should be formatted without colons and uppercase characters. type: keyword example: 55FBB9C7DEBF09809D12CCAA threat.enrichments.indicator.x509.signature_algorithm Identifier for certificate signature algorithm. We recommend using names found in Go Lang Crypto library. See https://github.com/golang/go/blob/go1.14/src/crypto/x509/x509.go#L337-L353 . type: keyword example: SHA256-RSA threat.enrichments.indicator.x509.subject.common_name List of common names (CN) of subject. type: keyword example: shared.global.example.net threat.enrichments.indicator.x509.subject.country List of country © code type: keyword example: US threat.enrichments.indicator.x509.subject.distinguished_name Distinguished name (DN) of the certificate subject entity. type: keyword example: C=US, ST=California, L=San Francisco, O=Example, Inc., CN=shared.global.example.net threat.enrichments.indicator.x509.subject.locality List of locality names (L) type: keyword example: San Francisco threat.enrichments.indicator.x509.subject.organization List of organizations (O) of subject. type: keyword example: Example, Inc. threat.enrichments.indicator.x509.subject.organizational_unit List of organizational units (OU) of subject. type: keyword threat.enrichments.indicator.x509.subject.state_or_province List of state or province names (ST, S, or P) type: keyword example: California threat.enrichments.indicator.x509.version_number Version of x509 format. type: keyword example: 3 threat.enrichments.matched.atomic Identifies the atomic indicator value that matched a local environment endpoint or network event. type: keyword example: bad-domain.com threat.enrichments.matched.field Identifies the field of the atomic indicator that matched a local environment endpoint or network event. type: keyword example: file.hash.sha256 threat.enrichments.matched.id Identifies the _id of the indicator document enriching the event. type: keyword example: ff93aee5-86a1-4a61-b0e6-0cdc313d01b5 threat.enrichments.matched.index Identifies the _index of the indicator document enriching the event. type: keyword example: filebeat-8.0.0-2021.05.23-000011 threat.enrichments.matched.type Identifies the type of match that caused the event to be enriched with the given indicator type: keyword example: indicator_match_rule threat.framework Name of the threat framework used to further categorize and classify the tactic and technique of the reported threat. Framework classification can be provided by detecting systems, evaluated at ingest time, or retrospectively tagged to events. type: keyword example: MITRE ATT&CK threat.group.alias The alias(es) of the group for a set of related intrusion activity that are tracked by a common name in the security community.While not required, you can use a MITRE ATT&CK® group alias(es). type: keyword example: [ "Magecart Group 6" ] threat.group.id The id of the group for a set of related intrusion activity that are tracked by a common name in the security community.While not required, you can use a MITRE ATT&CK® group id. type: keyword example: G0037 threat.group.name The name of the group for a set of related intrusion activity that are tracked by a common name in the security community.While not required, you can use a MITRE ATT&CK® group name. type: keyword example: FIN6 threat.group.reference The reference URL of the group for a set of related intrusion activity that are tracked by a common name in the security community.While not required, you can use a MITRE ATT&CK® group reference URL. type: keyword example: https://attack.mitre.org/groups/G0037/ threat.indicator.as.number Unique number allocated to the autonomous system. The autonomous system number (ASN) uniquely identifies each network on the Internet. type: long example: 15169 threat.indicator.as.organization.name Organization name. type: keyword example: Google LLC threat.indicator.as.organization.name.text type: match_only_text threat.indicator.confidence Identifies the vendor-neutral confidence rating using the None/Low/Medium/High scale defined in Appendix A of the STIX 2.1 framework. Vendor-specific confidence scales may be added as custom fields.Expected values are: * Not Specified * None * Low * Medium * High type: keyword example: Medium threat.indicator.description Describes the type of action conducted by the threat. type: keyword example: IP x.x.x.x was observed delivering the Angler EK. threat.indicator.email.address Identifies a threat indicator as an email address (irrespective of direction). type: keyword example: phish@example.com threat.indicator.file.accessed Last time the file was accessed.Note that not all filesystems keep track of access time. type: date threat.indicator.file.attributes Array of file attributes.Attributes names will vary by platform. Here’s a non-exhaustive list of values that are expected in this field: archive, compressed, directory, encrypted, execute, hidden, read, readonly, system, write. type: keyword example: ["readonly", "system"] threat.indicator.file.code_signature.digest_algorithm The hashing algorithm used to sign the process.This value can distinguish signatures when a file is signed multiple times by the same signer but with a different digest algorithm. type: keyword example: sha256 threat.indicator.file.code_signature.exists Boolean to capture if a signature is present. type: boolean example: true threat.indicator.file.code_signature.signing_id The identifier used to sign the process.This is used to identify the application manufactured by a software vendor. The field is relevant to Apple *OS only. type: keyword example: com.apple.xpc.proxy threat.indicator.file.code_signature.status Additional information about the certificate status.This is useful for logging cryptographic errors with the certificate validity or trust status. Leave unpopulated if the validity or trust of the certificate was unchecked. type: keyword example: ERROR_UNTRUSTED_ROOT threat.indicator.file.code_signature.subject_name Subject name of the code signer type: keyword example: Microsoft Corporation threat.indicator.file.code_signature.team_id The team identifier used to sign the process.This is used to identify the team or vendor of a software product. The field is relevant to Apple *OS only. type: keyword example: EQHXZ8M8AV threat.indicator.file.code_signature.timestamp Date and time when the code signature was generated and signed. type: date example: 2021-01-01T12:10:30Z threat.indicator.file.code_signature.trusted Stores the trust status of the certificate chain.Validating the trust of the certificate chain may be complicated, and this field should only be populated by tools that actively check the status. type: boolean example: true threat.indicator.file.code_signature.valid Boolean to capture if the digital signature is verified against the binary content.Leave unpopulated if a certificate was unchecked. type: boolean example: true threat.indicator.file.created File creation time.Note that not all filesystems store the creation time. type: date threat.indicator.file.ctime Last time the file attributes or metadata changed.Note that changes to the file content will update mtime . This implies ctime will be adjusted at the same time, since mtime is an attribute of the file. type: date threat.indicator.file.device Device that is the source of the file. type: keyword example: sda threat.indicator.file.directory Directory where the file is located. It should include the drive letter, when appropriate. type: keyword example: /home/alice threat.indicator.file.drive_letter Drive letter where the file is located. This field is only relevant on Windows.The value should be uppercase, and not include the colon. type: keyword example: C threat.indicator.file.elf.architecture Machine architecture of the ELF file. type: keyword example: x86-64 threat.indicator.file.elf.byte_order Byte sequence of ELF file. type: keyword example: Little Endian threat.indicator.file.elf.cpu_type CPU type of the ELF file. type: keyword example: Intel threat.indicator.file.elf.creation_date Extracted when possible from the file’s metadata. Indicates when it was built or compiled. It can also be faked by malware creators. type: date threat.indicator.file.elf.exports List of exported element names and types. type: flattened threat.indicator.file.elf.header.abi_version Version of the ELF Application Binary Interface (ABI). type: keyword threat.indicator.file.elf.header.class Header class of the ELF file. type: keyword threat.indicator.file.elf.header.data Data table of the ELF header. type: keyword threat.indicator.file.elf.header.entrypoint Header entrypoint of the ELF file. type: long format: string threat.indicator.file.elf.header.object_version "0x1" for original ELF files. type: keyword threat.indicator.file.elf.header.os_abi Application Binary Interface (ABI) of the Linux OS. type: keyword threat.indicator.file.elf.header.type Header type of the ELF file. type: keyword threat.indicator.file.elf.header.version Version of the ELF header. type: keyword threat.indicator.file.elf.imports List of imported element names and types. type: flattened threat.indicator.file.elf.sections An array containing an object for each section of the ELF file.The keys that should be present in these objects are defined by sub-fields underneath elf.sections.* . type: nested threat.indicator.file.elf.sections.chi2 Chi-square probability distribution of the section. type: long format: number threat.indicator.file.elf.sections.entropy Shannon entropy calculation from the section. type: long format: number threat.indicator.file.elf.sections.flags ELF Section List flags. type: keyword threat.indicator.file.elf.sections.name ELF Section List name. type: keyword threat.indicator.file.elf.sections.physical_offset ELF Section List offset. type: keyword threat.indicator.file.elf.sections.physical_size ELF Section List physical size. type: long format: bytes threat.indicator.file.elf.sections.type ELF Section List type. type: keyword threat.indicator.file.elf.sections.virtual_address ELF Section List virtual address. type: long format: string threat.indicator.file.elf.sections.virtual_size ELF Section List virtual size. type: long format: string threat.indicator.file.elf.segments An array containing an object for each segment of the ELF file.The keys that should be present in these objects are defined by sub-fields underneath elf.segments.* . type: nested threat.indicator.file.elf.segments.sections ELF object segment sections. type: keyword threat.indicator.file.elf.segments.type ELF object segment type. type: keyword threat.indicator.file.elf.shared_libraries List of shared libraries used by this ELF object. type: keyword threat.indicator.file.elf.telfhash telfhash symbol hash for ELF file. type: keyword threat.indicator.file.extension File extension, excluding the leading dot.Note that when the file name has multiple extensions (example.tar.gz), only the last one should be captured ("gz", not "tar.gz"). type: keyword example: png threat.indicator.file.fork_name A fork is additional data associated with a filesystem object.On Linux, a resource fork is used to store additional data with a filesystem object. A file always has at least one fork for the data portion, and additional forks may exist.On NTFS, this is analogous to an Alternate Data Stream (ADS), and the default data stream for a file is just called $DATA. Zone.Identifier is commonly used by Windows to track contents downloaded from the Internet. An ADS is typically of the form: C:\path\to\filename.extension:some_fork_name , and some_fork_name is the value that should populate fork_name . filename.extension should populate file.name , and extension should populate file.extension . The full path, file.path , will include the fork name. type: keyword example: Zone.Identifer threat.indicator.file.gid Primary group ID (GID) of the file. type: keyword example: 1001 threat.indicator.file.group Primary group name of the file. type: keyword example: alice threat.indicator.file.hash.md5 MD5 hash. type: keyword threat.indicator.file.hash.sha1 SHA1 hash. type: keyword threat.indicator.file.hash.sha256 SHA256 hash. type: keyword threat.indicator.file.hash.sha512 SHA512 hash. type: keyword threat.indicator.file.hash.ssdeep SSDEEP hash. type: keyword threat.indicator.file.inode Inode representing the file in the filesystem. type: keyword example: 256383 threat.indicator.file.mime_type MIME type should identify the format of the file or stream of bytes using IANA official types , where possible. When more than one type is applicable, the most specific type should be used. type: keyword threat.indicator.file.mode Mode of the file in octal representation. type: keyword example: 0640 threat.indicator.file.mtime Last time the file content was modified. type: date threat.indicator.file.name Name of the file including the extension, without the directory. type: keyword example: example.png threat.indicator.file.owner File owner’s username. type: keyword example: alice threat.indicator.file.path Full path to the file, including the file name. It should include the drive letter, when appropriate. type: keyword example: /home/alice/example.png threat.indicator.file.path.text type: match_only_text threat.indicator.file.pe.architecture CPU architecture target for the file. type: keyword example: x64 threat.indicator.file.pe.company Internal company name of the file, provided at compile-time. type: keyword example: Microsoft Corporation threat.indicator.file.pe.description Internal description of the file, provided at compile-time. type: keyword example: Paint threat.indicator.file.pe.file_version Internal version of the file, provided at compile-time. type: keyword example: 6.3.9600.17415 threat.indicator.file.pe.imphash A hash of the imports in a PE file. An imphash — or import hash — can be used to fingerprint binaries even after recompilation or other code-level transformations have occurred, which would change more traditional hash values.Learn more at https://www.fireeye.com/blog/threat-research/2014/01/tracking-malware-import-hashing.html . type: keyword example: 0c6803c4e922103c4dca5963aad36ddf threat.indicator.file.pe.original_file_name Internal name of the file, provided at compile-time. type: keyword example: MSPAINT.EXE threat.indicator.file.pe.product Internal product name of the file, provided at compile-time. type: keyword example: Microsoft® Windows® Operating System threat.indicator.file.size File size in bytes.Only relevant when file.type is "file". type: long example: 16384 threat.indicator.file.target_path Target path for symlinks. type: keyword threat.indicator.file.target_path.text type: match_only_text threat.indicator.file.type File type (file, dir, or symlink). type: keyword example: file threat.indicator.file.uid The user ID (UID) or security identifier (SID) of the file owner. type: keyword example: 1001 threat.indicator.file.x509.alternative_names List of subject alternative names (SAN). Name types vary by certificate authority and certificate type but commonly contain IP addresses, DNS names (and wildcards), and email addresses. type: keyword example: *.elastic.co threat.indicator.file.x509.issuer.common_name List of common name (CN) of issuing certificate authority. type: keyword example: Example SHA2 High Assurance Server CA threat.indicator.file.x509.issuer.country List of country © codes type: keyword example: US threat.indicator.file.x509.issuer.distinguished_name Distinguished name (DN) of issuing certificate authority. type: keyword example: C=US, O=Example Inc, OU=www.example.com, CN=Example SHA2 High Assurance Server CA threat.indicator.file.x509.issuer.locality List of locality names (L) type: keyword example: Mountain View threat.indicator.file.x509.issuer.organization List of organizations (O) of issuing certificate authority. type: keyword example: Example Inc threat.indicator.file.x509.issuer.organizational_unit List of organizational units (OU) of issuing certificate authority. type: keyword example: www.example.com threat.indicator.file.x509.issuer.state_or_province List of state or province names (ST, S, or P) type: keyword example: California threat.indicator.file.x509.not_after Time at which the certificate is no longer considered valid. type: date example: 2020-07-16 03:15:39+00:00 threat.indicator.file.x509.not_before Time at which the certificate is first considered valid. type: date example: 2019-08-16 01:40:25+00:00 threat.indicator.file.x509.public_key_algorithm Algorithm used to generate the public key. type: keyword example: RSA threat.indicator.file.x509.public_key_curve The curve used by the elliptic curve public key algorithm. This is algorithm specific. type: keyword example: nistp521 threat.indicator.file.x509.public_key_exponent Exponent used to derive the public key. This is algorithm specific. type: long example: 65537 Field is not indexed. threat.indicator.file.x509.public_key_size The size of the public key space in bits. type: long example: 2048 threat.indicator.file.x509.serial_number Unique serial number issued by the certificate authority. For consistency, if this value is alphanumeric, it should be formatted without colons and uppercase characters. type: keyword example: 55FBB9C7DEBF09809D12CCAA threat.indicator.file.x509.signature_algorithm Identifier for certificate signature algorithm. We recommend using names found in Go Lang Crypto library. See https://github.com/golang/go/blob/go1.14/src/crypto/x509/x509.go#L337-L353 . type: keyword example: SHA256-RSA threat.indicator.file.x509.subject.common_name List of common names (CN) of subject. type: keyword example: shared.global.example.net threat.indicator.file.x509.subject.country List of country © code type: keyword example: US threat.indicator.file.x509.subject.distinguished_name Distinguished name (DN) of the certificate subject entity. type: keyword example: C=US, ST=California, L=San Francisco, O=Example, Inc., CN=shared.global.example.net threat.indicator.file.x509.subject.locality List of locality names (L) type: keyword example: San Francisco threat.indicator.file.x509.subject.organization List of organizations (O) of subject. type: keyword example: Example, Inc. threat.indicator.file.x509.subject.organizational_unit List of organizational units (OU) of subject. type: keyword threat.indicator.file.x509.subject.state_or_province List of state or province names (ST, S, or P) type: keyword example: California threat.indicator.file.x509.version_number Version of x509 format. type: keyword example: 3 threat.indicator.first_seen The date and time when intelligence source first reported sighting this indicator. type: date example: 2020-11-05T17:25:47.000Z threat.indicator.geo.city_name City name. type: keyword example: Montreal threat.indicator.geo.continent_code Two-letter code representing continent’s name. type: keyword example: NA threat.indicator.geo.continent_name Name of the continent. type: keyword example: North America threat.indicator.geo.country_iso_code Country ISO code. type: keyword example: CA threat.indicator.geo.country_name Country name. type: keyword example: Canada threat.indicator.geo.location Longitude and latitude. type: geo_point example: { "lon": -73.614830, "lat": 45.505918 } threat.indicator.geo.name User-defined description of a location, at the level of granularity they care about.Could be the name of their data centers, the floor number, if this describes a local physical entity, city names.Not typically used in automated geolocation. type: keyword example: boston-dc threat.indicator.geo.postal_code Postal code associated with the location.Values appropriate for this field may also be known as a postcode or ZIP code and will vary widely from country to country. type: keyword example: 94040 threat.indicator.geo.region_iso_code Region ISO code. type: keyword example: CA-QC threat.indicator.geo.region_name Region name. type: keyword example: Quebec threat.indicator.geo.timezone The time zone of the location, such as IANA time zone name. type: keyword example: America/Argentina/Buenos_Aires threat.indicator.ip Identifies a threat indicator as an IP address (irrespective of direction). type: ip example: 1.2.3.4 threat.indicator.last_seen The date and time when intelligence source last reported sighting this indicator. type: date example: 2020-11-05T17:25:47.000Z threat.indicator.marking.tlp Traffic Light Protocol sharing markings.Recommended values are: * WHITE * GREEN * AMBER * RED type: keyword example: WHITE threat.indicator.modified_at The date and time when intelligence source last modified information for this indicator. type: date example: 2020-11-05T17:25:47.000Z threat.indicator.port Identifies a threat indicator as a port number (irrespective of direction). type: long example: 443 threat.indicator.provider The name of the indicator’s provider. type: keyword example: lrz_urlhaus threat.indicator.reference Reference URL linking to additional information about this indicator. type: keyword example: https://system.example.com/indicator/0001234 threat.indicator.registry.data.bytes Original bytes written with base64 encoding.For Windows registry operations, such as SetValueEx and RegQueryValueEx, this corresponds to the data pointed by lp_data . This is optional but provides better recoverability and should be populated for REG_BINARY encoded values. type: keyword example: ZQBuAC0AVQBTAAAAZQBuAAAAAAA= threat.indicator.registry.data.strings Content when writing string types.Populated as an array when writing string data to the registry. For single string registry types (REG_SZ, REG_EXPAND_SZ), this should be an array with one string. For sequences of string with REG_MULTI_SZ, this array will be variable length. For numeric data, such as REG_DWORD and REG_QWORD, this should be populated with the decimal representation (e.g "1" ). type: wildcard example: ["C:\rta\red_ttp\bin\myapp.exe"] threat.indicator.registry.data.type Standard registry type for encoding contents type: keyword example: REG_SZ threat.indicator.registry.hive Abbreviated name for the hive. type: keyword example: HKLM threat.indicator.registry.key Hive-relative path of keys. type: keyword example: SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\winword.exe threat.indicator.registry.path Full path, including hive, key and value type: keyword example: HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\winword.exe\Debugger threat.indicator.registry.value Name of the value written. type: keyword example: Debugger threat.indicator.scanner_stats Count of AV/EDR vendors that successfully detected malicious file or URL. type: long example: 4 threat.indicator.sightings Number of times this indicator was observed conducting threat activity. type: long example: 20 threat.indicator.type Type of indicator as represented by Cyber Observable in STIX 2.0.Recommended values: * autonomous-system * artifact * directory * domain-name * email-addr * file * ipv4-addr * ipv6-addr * mac-addr * mutex * port * process * software * url * user-account * windows-registry-key * x509-certificate type: keyword example: ipv4-addr threat.indicator.url.domain Domain of the url, such as "www.elastic.co".In some cases a URL may refer to an IP and/or port directly, without a domain name. In this case, the IP address would go to the domain field.If the URL contains a literal IPv6 address enclosed by [ and ] (IETF RFC 2732), the [ and ] characters should also be captured in the domain field. type: keyword example: www.elastic.co threat.indicator.url.extension The field contains the file extension from the original request url, excluding the leading dot.The file extension is only set if it exists, as not every url has a file extension.The leading period must not be included. For example, the value must be "png", not ".png".Note that when the file name has multiple extensions (example.tar.gz), only the last one should be captured ("gz", not "tar.gz"). type: keyword example: png threat.indicator.url.fragment Portion of the url after the # , such as "top".The # is not part of the fragment. type: keyword threat.indicator.url.full If full URLs are important to your use case, they should be stored in url.full , whether this field is reconstructed or present in the event source. type: wildcard example: https://www.elastic.co:443/search?q=elasticsearch#top threat.indicator.url.full.text type: match_only_text threat.indicator.url.original Unmodified original url as seen in the event source.Note that in network monitoring, the observed URL may be a full URL, whereas in access logs, the URL is often just represented as a path.This field is meant to represent the URL as it was observed, complete or not. type: wildcard example: https://www.elastic.co:443/search?q=elasticsearch#top or /search?q=elasticsearch threat.indicator.url.original.text type: match_only_text threat.indicator.url.password Password of the request. type: keyword threat.indicator.url.path Path of the request, such as "/search". type: wildcard threat.indicator.url.port Port of the request, such as 443. type: long example: 443 format: string threat.indicator.url.query The query field describes the query string of the request, such as "q=elasticsearch".The ? is excluded from the query string. If a URL contains no ? , there is no query field. If there is a ? but no query, the query field exists with an empty string. The exists query can be used to differentiate between the two cases. type: keyword threat.indicator.url.registered_domain The highest registered url domain, stripped of the subdomain.For example, the registered domain for "foo.example.com" is "example.com".This value can be determined precisely with a list like the public suffix list ( http://publicsuffix.org ). Trying to approximate this by simply taking the last two labels will not work well for TLDs such as "co.uk". type: keyword example: example.com threat.indicator.url.scheme Scheme of the request, such as "https".Note: The : is not part of the scheme. type: keyword example: https threat.indicator.url.subdomain The subdomain portion of a fully qualified domain name includes all of the names except the host name under the registered_domain. In a partially qualified domain, or if the the qualification level of the full name cannot be determined, subdomain contains all of the names below the registered domain.For example the subdomain portion of "www.east.mydomain.co.uk" is "east". If the domain has multiple levels of subdomain, such as "sub2.sub1.example.com", the subdomain field should contain "sub2.sub1", with no trailing period. type: keyword example: east threat.indicator.url.top_level_domain The effective top level domain (eTLD), also known as the domain suffix, is the last part of the domain name. For example, the top level domain for example.com is "com".This value can be determined precisely with a list like the public suffix list ( http://publicsuffix.org ). Trying to approximate this by simply taking the last label will not work well for effective TLDs such as "co.uk". type: keyword example: co.uk threat.indicator.url.username Username of the request. type: keyword threat.indicator.x509.alternative_names List of subject alternative names (SAN). Name types vary by certificate authority and certificate type but commonly contain IP addresses, DNS names (and wildcards), and email addresses. type: keyword example: *.elastic.co threat.indicator.x509.issuer.common_name List of common name (CN) of issuing certificate authority. type: keyword example: Example SHA2 High Assurance Server CA threat.indicator.x509.issuer.country List of country © codes type: keyword example: US threat.indicator.x509.issuer.distinguished_name Distinguished name (DN) of issuing certificate authority. type: keyword example: C=US, O=Example Inc, OU=www.example.com, CN=Example SHA2 High Assurance Server CA threat.indicator.x509.issuer.locality List of locality names (L) type: keyword example: Mountain View threat.indicator.x509.issuer.organization List of organizations (O) of issuing certificate authority. type: keyword example: Example Inc threat.indicator.x509.issuer.organizational_unit List of organizational units (OU) of issuing certificate authority. type: keyword example: www.example.com threat.indicator.x509.issuer.state_or_province List of state or province names (ST, S, or P) type: keyword example: California threat.indicator.x509.not_after Time at which the certificate is no longer considered valid. type: date example: 2020-07-16 03:15:39+00:00 threat.indicator.x509.not_before Time at which the certificate is first considered valid. type: date example: 2019-08-16 01:40:25+00:00 threat.indicator.x509.public_key_algorithm Algorithm used to generate the public key. type: keyword example: RSA threat.indicator.x509.public_key_curve The curve used by the elliptic curve public key algorithm. This is algorithm specific. type: keyword example: nistp521 threat.indicator.x509.public_key_exponent Exponent used to derive the public key. This is algorithm specific. type: long example: 65537 Field is not indexed. threat.indicator.x509.public_key_size The size of the public key space in bits. type: long example: 2048 threat.indicator.x509.serial_number Unique serial number issued by the certificate authority. For consistency, if this value is alphanumeric, it should be formatted without colons and uppercase characters. type: keyword example: 55FBB9C7DEBF09809D12CCAA threat.indicator.x509.signature_algorithm Identifier for certificate signature algorithm. We recommend using names found in Go Lang Crypto library. See https://github.com/golang/go/blob/go1.14/src/crypto/x509/x509.go#L337-L353 . type: keyword example: SHA256-RSA threat.indicator.x509.subject.common_name List of common names (CN) of subject. type: keyword example: shared.global.example.net threat.indicator.x509.subject.country List of country © code type: keyword example: US threat.indicator.x509.subject.distinguished_name Distinguished name (DN) of the certificate subject entity. type: keyword example: C=US, ST=California, L=San Francisco, O=Example, Inc., CN=shared.global.example.net threat.indicator.x509.subject.locality List of locality names (L) type: keyword example: San Francisco threat.indicator.x509.subject.organization List of organizations (O) of subject. type: keyword example: Example, Inc. threat.indicator.x509.subject.organizational_unit List of organizational units (OU) of subject. type: keyword threat.indicator.x509.subject.state_or_province List of state or province names (ST, S, or P) type: keyword example: California threat.indicator.x509.version_number Version of x509 format. type: keyword example: 3 threat.software.alias The alias(es) of the software for a set of related intrusion activity that are tracked by a common name in the security community.While not required, you can use a MITRE ATT&CK® associated software description. type: keyword example: [ "X-Agent" ] threat.software.id The id of the software used by this threat to conduct behavior commonly modeled using MITRE ATT&CK®.While not required, you can use a MITRE ATT&CK® software id. type: keyword example: S0552 threat.software.name The name of the software used by this threat to conduct behavior commonly modeled using MITRE ATT&CK®.While not required, you can use a MITRE ATT&CK® software name. type: keyword example: AdFind threat.software.platforms The platforms of the software used by this threat to conduct behavior commonly modeled using MITRE ATT&CK®.Recommended Values: * AWS * Azure * Azure AD * GCP * Linux * macOS * Network * Office 365 * SaaS * Windows While not required, you can use a MITRE ATT&CK® software platforms. type: keyword example: [ "Windows" ] threat.software.reference The reference URL of the software used by this threat to conduct behavior commonly modeled using MITRE ATT&CK®.While not required, you can use a MITRE ATT&CK® software reference URL. type: keyword example: https://attack.mitre.org/software/S0552/ threat.software.type The type of software used by this threat to conduct behavior commonly modeled using MITRE ATT&CK®.Recommended values * Malware * Tool While not required, you can use a MITRE ATT&CK® software type. type: keyword example: Tool threat.tactic.id The id of tactic used by this threat. You can use a MITRE ATT&CK® tactic, for example. (ex. https://attack.mitre.org/tactics/TA0002/ ) type: keyword example: TA0002 threat.tactic.name Name of the type of tactic used by this threat. You can use a MITRE ATT&CK® tactic, for example. (ex. https://attack.mitre.org/tactics/TA0002/ ) type: keyword example: Execution threat.tactic.reference The reference url of tactic used by this threat. You can use a MITRE ATT&CK® tactic, for example. (ex. https://attack.mitre.org/tactics/TA0002/ ) type: keyword example: https://attack.mitre.org/tactics/TA0002/ threat.technique.id The id of technique used by this threat. You can use a MITRE ATT&CK® technique, for example. (ex. https://attack.mitre.org/techniques/T1059/ ) type: keyword example: T1059 threat.technique.name The name of technique used by this threat. You can use a MITRE ATT&CK® technique, for example. (ex. https://attack.mitre.org/techniques/T1059/ ) type: keyword example: Command and Scripting Interpreter threat.technique.name.text type: match_only_text threat.technique.reference The reference url of technique used by this threat. You can use a MITRE ATT&CK® technique, for example. (ex. https://attack.mitre.org/techniques/T1059/ ) type: keyword example: https://attack.mitre.org/techniques/T1059/ threat.technique.subtechnique.id The full id of subtechnique used by this threat. You can use a MITRE ATT&CK® subtechnique, for example. (ex. https://attack.mitre.org/techniques/T1059/001/ ) type: keyword example: T1059.001 threat.technique.subtechnique.name The name of subtechnique used by this threat. You can use a MITRE ATT&CK® subtechnique, for example. (ex. https://attack.mitre.org/techniques/T1059/001/ ) type: keyword example: PowerShell threat.technique.subtechnique.name.text type: match_only_text threat.technique.subtechnique.reference The reference url of subtechnique used by this threat. You can use a MITRE ATT&CK® subtechnique, for example. (ex. https://attack.mitre.org/techniques/T1059/001/ ) type: keyword example: https://attack.mitre.org/techniques/T1059/001/ tls Fields related to a TLS connection. These fields focus on the TLS protocol itself and intentionally avoids in-depth analysis of the related x.509 certificate files. tls.cipher String indicating the cipher used during the current connection. type: keyword example: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 tls.client.certificate PEM-encoded stand-alone certificate offered by the client. This is usually mutually-exclusive of client.certificate_chain since this value also exists in that list. type: keyword example: MII… tls.client.certificate_chain Array of PEM-encoded certificates that make up the certificate chain offered by the client. This is usually mutually-exclusive of client.certificate since that value should be the first certificate in the chain. type: keyword example: ["MII… ", "MII… "] tls.client.hash.md5 Certificate fingerprint using the MD5 digest of DER-encoded version of certificate offered by the client. For consistency with other hash values, this value should be formatted as an uppercase hash. type: keyword example: 0F76C7F2C55BFD7D8E8B8F4BFBF0C9EC tls.client.hash.sha1 Certificate fingerprint using the SHA1 digest of DER-encoded version of certificate offered by the client. For consistency with other hash values, this value should be formatted as an uppercase hash. type: keyword example: 9E393D93138888D288266C2D915214D1D1CCEB2A tls.client.hash.sha256 Certificate fingerprint using the SHA256 digest of DER-encoded version of certificate offered by the client. For consistency with other hash values, this value should be formatted as an uppercase hash. type: keyword example: 0687F666A054EF17A08E2F2162EAB4CBC0D265E1D7875BE74BF3C712CA92DAF0 tls.client.issuer Distinguished name of subject of the issuer of the x.509 certificate presented by the client. type: keyword example: CN=Example Root CA, OU=Infrastructure Team, DC=example, DC=com tls.client.ja3 A hash that identifies clients based on how they perform an SSL/TLS handshake. type: keyword example: d4e5b18d6b55c71272893221c96ba240 tls.client.not_after Date/Time indicating when client certificate is no longer considered valid. type: date example: 2021-01-01T00:00:00.000Z tls.client.not_before Date/Time indicating when client certificate is first considered valid. type: date example: 1970-01-01T00:00:00.000Z tls.client.server_name Also called an SNI, this tells the server which hostname to which the client is attempting to connect to. When this value is available, it should get copied to destination.domain . type: keyword example: www.elastic.co tls.client.subject Distinguished name of subject of the x.509 certificate presented by the client. type: keyword example: CN=myclient, OU=Documentation Team, DC=example, DC=com tls.client.supported_ciphers Array of ciphers offered by the client during the client hello. type: keyword example: ["TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384", "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384", "… "] tls.client.x509.alternative_names List of subject alternative names (SAN). Name types vary by certificate authority and certificate type but commonly contain IP addresses, DNS names (and wildcards), and email addresses. type: keyword example: *.elastic.co tls.client.x509.issuer.common_name List of common name (CN) of issuing certificate authority. type: keyword example: Example SHA2 High Assurance Server CA tls.client.x509.issuer.country List of country © codes type: keyword example: US tls.client.x509.issuer.distinguished_name Distinguished name (DN) of issuing certificate authority. type: keyword example: C=US, O=Example Inc, OU=www.example.com, CN=Example SHA2 High Assurance Server CA tls.client.x509.issuer.locality List of locality names (L) type: keyword example: Mountain View tls.client.x509.issuer.organization List of organizations (O) of issuing certificate authority. type: keyword example: Example Inc tls.client.x509.issuer.organizational_unit List of organizational units (OU) of issuing certificate authority. type: keyword example: www.example.com tls.client.x509.issuer.state_or_province List of state or province names (ST, S, or P) type: keyword example: California tls.client.x509.not_after Time at which the certificate is no longer considered valid. type: date example: 2020-07-16 03:15:39+00:00 tls.client.x509.not_before Time at which the certificate is first considered valid. type: date example: 2019-08-16 01:40:25+00:00 tls.client.x509.public_key_algorithm Algorithm used to generate the public key. type: keyword example: RSA tls.client.x509.public_key_curve The curve used by the elliptic curve public key algorithm. This is algorithm specific. type: keyword example: nistp521 tls.client.x509.public_key_exponent Exponent used to derive the public key. This is algorithm specific. type: long example: 65537 Field is not indexed. tls.client.x509.public_key_size The size of the public key space in bits. type: long example: 2048 tls.client.x509.serial_number Unique serial number issued by the certificate authority. For consistency, if this value is alphanumeric, it should be formatted without colons and uppercase characters. type: keyword example: 55FBB9C7DEBF09809D12CCAA tls.client.x509.signature_algorithm Identifier for certificate signature algorithm. We recommend using names found in Go Lang Crypto library. See https://github.com/golang/go/blob/go1.14/src/crypto/x509/x509.go#L337-L353 . type: keyword example: SHA256-RSA tls.client.x509.subject.common_name List of common names (CN) of subject. type: keyword example: shared.global.example.net tls.client.x509.subject.country List of country © code type: keyword example: US tls.client.x509.subject.distinguished_name Distinguished name (DN) of the certificate subject entity. type: keyword example: C=US, ST=California, L=San Francisco, O=Example, Inc., CN=shared.global.example.net tls.client.x509.subject.locality List of locality names (L) type: keyword example: San Francisco tls.client.x509.subject.organization List of organizations (O) of subject. type: keyword example: Example, Inc. tls.client.x509.subject.organizational_unit List of organizational units (OU) of subject. type: keyword tls.client.x509.subject.state_or_province List of state or province names (ST, S, or P) type: keyword example: California tls.client.x509.version_number Version of x509 format. type: keyword example: 3 tls.curve String indicating the curve used for the given cipher, when applicable. type: keyword example: secp256r1 tls.established Boolean flag indicating if the TLS negotiation was successful and transitioned to an encrypted tunnel. type: boolean tls.next_protocol String indicating the protocol being tunneled. Per the values in the IANA registry ( https://www.iana.org/assignments/tls-extensiontype-values/tls-extensiontype-values.xhtml#alpn-protocol-ids ), this string should be lower case. type: keyword example: http/1.1 tls.resumed Boolean flag indicating if this TLS connection was resumed from an existing TLS negotiation. type: boolean tls.server.certificate PEM-encoded stand-alone certificate offered by the server. This is usually mutually-exclusive of server.certificate_chain since this value also exists in that list. type: keyword example: MII… tls.server.certificate_chain Array of PEM-encoded certificates that make up the certificate chain offered by the server. This is usually mutually-exclusive of server.certificate since that value should be the first certificate in the chain. type: keyword example: ["MII… ", "MII… "] tls.server.hash.md5 Certificate fingerprint using the MD5 digest of DER-encoded version of certificate offered by the server. For consistency with other hash values, this value should be formatted as an uppercase hash. type: keyword example: 0F76C7F2C55BFD7D8E8B8F4BFBF0C9EC tls.server.hash.sha1 Certificate fingerprint using the SHA1 digest of DER-encoded version of certificate offered by the server. For consistency with other hash values, this value should be formatted as an uppercase hash. type: keyword example: 9E393D93138888D288266C2D915214D1D1CCEB2A tls.server.hash.sha256 Certificate fingerprint using the SHA256 digest of DER-encoded version of certificate offered by the server. For consistency with other hash values, this value should be formatted as an uppercase hash. type: keyword example: 0687F666A054EF17A08E2F2162EAB4CBC0D265E1D7875BE74BF3C712CA92DAF0 tls.server.issuer Subject of the issuer of the x.509 certificate presented by the server. type: keyword example: CN=Example Root CA, OU=Infrastructure Team, DC=example, DC=com tls.server.ja3s A hash that identifies servers based on how they perform an SSL/TLS handshake. type: keyword example: 394441ab65754e2207b1e1b457b3641d tls.server.not_after Timestamp indicating when server certificate is no longer considered valid. type: date example: 2021-01-01T00:00:00.000Z tls.server.not_before Timestamp indicating when server certificate is first considered valid. type: date example: 1970-01-01T00:00:00.000Z tls.server.subject Subject of the x.509 certificate presented by the server. type: keyword example: CN=www.example.com, OU=Infrastructure Team, DC=example, DC=com tls.server.x509.alternative_names List of subject alternative names (SAN). Name types vary by certificate authority and certificate type but commonly contain IP addresses, DNS names (and wildcards), and email addresses. type: keyword example: *.elastic.co tls.server.x509.issuer.common_name List of common name (CN) of issuing certificate authority. type: keyword example: Example SHA2 High Assurance Server CA tls.server.x509.issuer.country List of country © codes type: keyword example: US tls.server.x509.issuer.distinguished_name Distinguished name (DN) of issuing certificate authority. type: keyword example: C=US, O=Example Inc, OU=www.example.com, CN=Example SHA2 High Assurance Server CA tls.server.x509.issuer.locality List of locality names (L) type: keyword example: Mountain View tls.server.x509.issuer.organization List of organizations (O) of issuing certificate authority. type: keyword example: Example Inc tls.server.x509.issuer.organizational_unit List of organizational units (OU) of issuing certificate authority. type: keyword example: www.example.com tls.server.x509.issuer.state_or_province List of state or province names (ST, S, or P) type: keyword example: California tls.server.x509.not_after Time at which the certificate is no longer considered valid. type: date example: 2020-07-16 03:15:39+00:00 tls.server.x509.not_before Time at which the certificate is first considered valid. type: date example: 2019-08-16 01:40:25+00:00 tls.server.x509.public_key_algorithm Algorithm used to generate the public key. type: keyword example: RSA tls.server.x509.public_key_curve The curve used by the elliptic curve public key algorithm. This is algorithm specific. type: keyword example: nistp521 tls.server.x509.public_key_exponent Exponent used to derive the public key. This is algorithm specific. type: long example: 65537 Field is not indexed. tls.server.x509.public_key_size The size of the public key space in bits. type: long example: 2048 tls.server.x509.serial_number Unique serial number issued by the certificate authority. For consistency, if this value is alphanumeric, it should be formatted without colons and uppercase characters. type: keyword example: 55FBB9C7DEBF09809D12CCAA tls.server.x509.signature_algorithm Identifier for certificate signature algorithm. We recommend using names found in Go Lang Crypto library. See https://github.com/golang/go/blob/go1.14/src/crypto/x509/x509.go#L337-L353 . type: keyword example: SHA256-RSA tls.server.x509.subject.common_name List of common names (CN) of subject. type: keyword example: shared.global.example.net tls.server.x509.subject.country List of country © code type: keyword example: US tls.server.x509.subject.distinguished_name Distinguished name (DN) of the certificate subject entity. type: keyword example: C=US, ST=California, L=San Francisco, O=Example, Inc., CN=shared.global.example.net tls.server.x509.subject.locality List of locality names (L) type: keyword example: San Francisco tls.server.x509.subject.organization List of organizations (O) of subject. type: keyword example: Example, Inc. tls.server.x509.subject.organizational_unit List of organizational units (OU) of subject. type: keyword tls.server.x509.subject.state_or_province List of state or province names (ST, S, or P) type: keyword example: California tls.server.x509.version_number Version of x509 format. type: keyword example: 3 tls.version Numeric part of the version parsed from the original string. type: keyword example: 1.2 tls.version_protocol Normalized lowercase protocol name parsed from original string. type: keyword example: tls span.id Unique identifier of the span within the scope of its trace.A span represents an operation within a transaction, such as a request to another service, or a database query. type: keyword example: 3ff9a8981b7ccd5a trace.id Unique identifier of the trace.A trace groups multiple events like transactions that belong together. For example, a user request handled by multiple inter-connected services. type: keyword example: 4bf92f3577b34da6a3ce929d0e0e4736 transaction.id Unique identifier of the transaction within the scope of its trace.A transaction is the highest level of work measured within a service, such as a request to a server. type: keyword example: 00f067aa0ba902b7 url URL fields provide support for complete or partial URLs, and supports the breaking down into scheme, domain, path, and so on. url.domain Domain of the url, such as "www.elastic.co".In some cases a URL may refer to an IP and/or port directly, without a domain name. In this case, the IP address would go to the domain field.If the URL contains a literal IPv6 address enclosed by [ and ] (IETF RFC 2732), the [ and ] characters should also be captured in the domain field. type: keyword example: www.elastic.co url.extension The field contains the file extension from the original request url, excluding the leading dot.The file extension is only set if it exists, as not every url has a file extension.The leading period must not be included. For example, the value must be "png", not ".png".Note that when the file name has multiple extensions (example.tar.gz), only the last one should be captured ("gz", not "tar.gz"). type: keyword example: png url.fragment Portion of the url after the # , such as "top".The # is not part of the fragment. type: keyword url.full If full URLs are important to your use case, they should be stored in url.full , whether this field is reconstructed or present in the event source. type: wildcard example: https://www.elastic.co:443/search?q=elasticsearch#top url.full.text type: match_only_text url.original Unmodified original url as seen in the event source.Note that in network monitoring, the observed URL may be a full URL, whereas in access logs, the URL is often just represented as a path.This field is meant to represent the URL as it was observed, complete or not. type: wildcard example: https://www.elastic.co:443/search?q=elasticsearch#top or /search?q=elasticsearch url.original.text type: match_only_text url.password Password of the request. type: keyword url.path Path of the request, such as "/search". type: wildcard url.port Port of the request, such as 443. type: long example: 443 format: string url.query The query field describes the query string of the request, such as "q=elasticsearch".The ? is excluded from the query string. If a URL contains no ? , there is no query field. If there is a ? but no query, the query field exists with an empty string. The exists query can be used to differentiate between the two cases. type: keyword url.registered_domain The highest registered url domain, stripped of the subdomain.For example, the registered domain for "foo.example.com" is "example.com".This value can be determined precisely with a list like the public suffix list ( http://publicsuffix.org ). Trying to approximate this by simply taking the last two labels will not work well for TLDs such as "co.uk". type: keyword example: example.com url.scheme Scheme of the request, such as "https".Note: The : is not part of the scheme. type: keyword example: https url.subdomain The subdomain portion of a fully qualified domain name includes all of the names except the host name under the registered_domain. In a partially qualified domain, or if the the qualification level of the full name cannot be determined, subdomain contains all of the names below the registered domain.For example the subdomain portion of "www.east.mydomain.co.uk" is "east". If the domain has multiple levels of subdomain, such as "sub2.sub1.example.com", the subdomain field should contain "sub2.sub1", with no trailing period. type: keyword example: east url.top_level_domain The effective top level domain (eTLD), also known as the domain suffix, is the last part of the domain name. For example, the top level domain for example.com is "com".This value can be determined precisely with a list like the public suffix list ( http://publicsuffix.org ). Trying to approximate this by simply taking the last label will not work well for effective TLDs such as "co.uk". type: keyword example: co.uk url.username Username of the request. type: keyword user The user fields describe information about the user that is relevant to the event.Fields can have one entry or multiple entries. If a user has more than one id, provide an array that includes all of them. user.changes.domain Name of the directory the user is a member of.For example, an LDAP or Active Directory domain name. type: keyword user.changes.email User email address. type: keyword user.changes.full_name User’s full name, if available. type: keyword example: Albert Einstein user.changes.full_name.text type: match_only_text user.changes.group.domain Name of the directory the group is a member of.For example, an LDAP or Active Directory domain name. type: keyword user.changes.group.id Unique identifier for the group on the system/platform. type: keyword user.changes.group.name Name of the group. type: keyword user.changes.hash Unique user hash to correlate information for a user in anonymized form.Useful if user.id or user.name contain confidential information and cannot be used. type: keyword user.changes.id Unique identifier of the user. type: keyword example: S-1-5-21-202424912787-2692429404-2351956786-1000 user.changes.name Short name or login of the user. type: keyword example: a.einstein user.changes.name.text type: match_only_text user.changes.roles Array of user roles at the time of the event. type: keyword example: ["kibana_admin", "reporting_user"] user.domain Name of the directory the user is a member of.For example, an LDAP or Active Directory domain name. type: keyword user.effective.domain Name of the directory the user is a member of.For example, an LDAP or Active Directory domain name. type: keyword user.effective.email User email address. type: keyword user.effective.full_name User’s full name, if available. type: keyword example: Albert Einstein user.effective.full_name.text type: match_only_text user.effective.group.domain Name of the directory the group is a member of.For example, an LDAP or Active Directory domain name. type: keyword user.effective.group.id Unique identifier for the group on the system/platform. type: keyword user.effective.group.name Name of the group. type: keyword user.effective.hash Unique user hash to correlate information for a user in anonymized form.Useful if user.id or user.name contain confidential information and cannot be used. type: keyword user.effective.id Unique identifier of the user. type: keyword example: S-1-5-21-202424912787-2692429404-2351956786-1000 user.effective.name Short name or login of the user. type: keyword example: a.einstein user.effective.name.text type: match_only_text user.effective.roles Array of user roles at the time of the event. type: keyword example: ["kibana_admin", "reporting_user"] user.email User email address. type: keyword user.full_name User’s full name, if available. type: keyword example: Albert Einstein user.full_name.text type: match_only_text user.group.domain Name of the directory the group is a member of.For example, an LDAP or Active Directory domain name. type: keyword user.group.id Unique identifier for the group on the system/platform. type: keyword user.group.name Name of the group. type: keyword user.hash Unique user hash to correlate information for a user in anonymized form.Useful if user.id or user.name contain confidential information and cannot be used. type: keyword user.id Unique identifier of the user. type: keyword example: S-1-5-21-202424912787-2692429404-2351956786-1000 user.name Short name or login of the user. type: keyword example: a.einstein user.name.text type: match_only_text user.roles Array of user roles at the time of the event. type: keyword example: ["kibana_admin", "reporting_user"] user.target.domain Name of the directory the user is a member of.For example, an LDAP or Active Directory domain name. type: keyword user.target.email User email address. type: keyword user.target.full_name User’s full name, if available. type: keyword example: Albert Einstein user.target.full_name.text type: match_only_text user.target.group.domain Name of the directory the group is a member of.For example, an LDAP or Active Directory domain name. type: keyword user.target.group.id Unique identifier for the group on the system/platform. type: keyword user.target.group.name Name of the group. type: keyword user.target.hash Unique user hash to correlate information for a user in anonymized form.Useful if user.id or user.name contain confidential information and cannot be used. type: keyword user.target.id Unique identifier of the user. type: keyword example: S-1-5-21-202424912787-2692429404-2351956786-1000 user.target.name Short name or login of the user. type: keyword example: a.einstein user.target.name.text type: match_only_text user.target.roles Array of user roles at the time of the event. type: keyword example: ["kibana_admin", "reporting_user"] user_agent The user_agent fields normally come from a browser request.They often show up in web service logs coming from the parsed user agent string. user_agent.device.name Name of the device. type: keyword example: iPhone user_agent.name Name of the user agent. type: keyword example: Safari user_agent.original Unparsed user_agent string. type: keyword example: Mozilla/5.0 (iPhone; CPU iPhone OS 12_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0 Mobile/15E148 Safari/604.1 user_agent.original.text type: match_only_text user_agent.os.family OS family (such as redhat, debian, freebsd, windows). type: keyword example: debian user_agent.os.full Operating system name, including the version or code name. type: keyword example: Mac OS Mojave user_agent.os.full.text type: match_only_text user_agent.os.kernel Operating system kernel version as a raw string. type: keyword example: 4.4.0-112-generic user_agent.os.name Operating system name, without the version. type: keyword example: Mac OS X user_agent.os.name.text type: match_only_text user_agent.os.platform Operating system platform (such centos, ubuntu, windows). type: keyword example: darwin user_agent.os.type Use the os.type field to categorize the operating system into one of the broad commercial families.One of these following values should be used (lowercase): linux, macos, unix, windows.If the OS you’re dealing with is not in the list, the field should not be populated. Please let us know by opening an issue with ECS, to propose its addition. type: keyword example: macos user_agent.os.version Operating system version as a raw string. type: keyword example: 10.14.1 user_agent.version Version of the user agent. type: keyword example: 12.0 vlan The VLAN fields are used to identify 802.1q tag(s) of a packet, as well as ingress and egress VLAN associations of an observer in relation to a specific packet or connection.Network.vlan fields are used to record a single VLAN tag, or the outer tag in the case of q-in-q encapsulations, for a packet or connection as observed, typically provided by a network sensor (e.g. Zeek, Wireshark) passively reporting on traffic.Network.inner VLAN fields are used to report inner q-in-q 802.1q tags (multiple 802.1q encapsulations) as observed, typically provided by a network sensor (e.g. Zeek, Wireshark) passively reporting on traffic. Network.inner VLAN fields should only be used in addition to network.vlan fields to indicate q-in-q tagging.Observer.ingress and observer.egress VLAN values are used to record observer specific information when observer events contain discrete ingress and egress VLAN information, typically provided by firewalls, routers, or load balancers. vlan.id VLAN ID as reported by the observer. type: keyword example: 10 vlan.name Optional VLAN name as reported by the observer. type: keyword example: outside vulnerability The vulnerability fields describe information about a vulnerability that is relevant to an event. vulnerability.category The type of system or architecture that the vulnerability affects. These may be platform-specific (for example, Debian or SUSE) or general (for example, Database or Firewall). For example ( Qualys vulnerability categories )This field must be an array. type: keyword example: ["Firewall"] vulnerability.classification The classification of the vulnerability scoring system. For example ( https://www.first.org/cvss/ ) type: keyword example: CVSS vulnerability.description The description of the vulnerability that provides additional context of the vulnerability. For example ( Common Vulnerabilities and Exposure CVE description ) type: keyword example: In macOS before 2.12.6, there is a vulnerability in the RPC… vulnerability.description.text type: match_only_text vulnerability.enumeration The type of identifier used for this vulnerability. For example ( https://cve.mitre.org/about/ ) type: keyword example: CVE vulnerability.id The identification (ID) is the number portion of a vulnerability entry. It includes a unique identification number for the vulnerability. For example ( Common Vulnerabilities and Exposure CVE ID type: keyword example: CVE-2019-00001 vulnerability.reference A resource that provides additional information, context, and mitigations for the identified vulnerability. type: keyword example: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-6111 vulnerability.report_id The report or scan identification number. type: keyword example: 20191018.0001 vulnerability.scanner.vendor The name of the vulnerability scanner vendor. type: keyword example: Tenable vulnerability.score.base Scores can range from 0.0 to 10.0, with 10.0 being the most severe.Base scores cover an assessment for exploitability metrics (attack vector, complexity, privileges, and user interaction), impact metrics (confidentiality, integrity, and availability), and scope. For example ( https://www.first.org/cvss/specification-document ) type: float example: 5.5 vulnerability.score.environmental Scores can range from 0.0 to 10.0, with 10.0 being the most severe.Environmental scores cover an assessment for any modified Base metrics, confidentiality, integrity, and availability requirements. For example ( https://www.first.org/cvss/specification-document ) type: float example: 5.5 vulnerability.score.temporal Scores can range from 0.0 to 10.0, with 10.0 being the most severe.Temporal scores cover an assessment for code maturity, remediation level, and confidence. For example ( https://www.first.org/cvss/specification-document ) type: float vulnerability.score.version The National Vulnerability Database (NVD) provides qualitative severity rankings of "Low", "Medium", and "High" for CVSS v2.0 base score ranges in addition to the severity ratings for CVSS v3.0 as they are defined in the CVSS v3.0 specification.CVSS is owned and managed by FIRST.Org, Inc. (FIRST), a US-based non-profit organization, whose mission is to help computer security incident response teams across the world. For example ( https://nvd.nist.gov/vuln-metrics/cvss ) type: keyword example: 2.0 vulnerability.severity The severity of the vulnerability can help with metrics and internal prioritization regarding remediation. For example ( https://nvd.nist.gov/vuln-metrics/cvss ) type: keyword example: Critical x509 This implements the common core fields for x509 certificates. This information is likely logged with TLS sessions, digital signatures found in executable binaries, S/MIME information in email bodies, or analysis of files on disk.When the certificate relates to a file, use the fields at file.x509 . When hashes of the DER-encoded certificate are available, the hash data set should be populated as well (e.g. file.hash.sha256 ).Events that contain certificate information about network connections, should use the x509 fields under the relevant TLS fields: tls.server.x509 and/or tls.client.x509 . x509.alternative_names List of subject alternative names (SAN). Name types vary by certificate authority and certificate type but commonly contain IP addresses, DNS names (and wildcards), and email addresses. type: keyword example: *.elastic.co x509.issuer.common_name List of common name (CN) of issuing certificate authority. type: keyword example: Example SHA2 High Assurance Server CA x509.issuer.country List of country © codes type: keyword example: US x509.issuer.distinguished_name Distinguished name (DN) of issuing certificate authority. type: keyword example: C=US, O=Example Inc, OU=www.example.com, CN=Example SHA2 High Assurance Server CA x509.issuer.locality List of locality names (L) type: keyword example: Mountain View x509.issuer.organization List of organizations (O) of issuing certificate authority. type: keyword example: Example Inc x509.issuer.organizational_unit List of organizational units (OU) of issuing certificate authority. type: keyword example: www.example.com x509.issuer.state_or_province List of state or province names (ST, S, or P) type: keyword example: California x509.not_after Time at which the certificate is no longer considered valid. type: date example: 2020-07-16 03:15:39+00:00 x509.not_before Time at which the certificate is first considered valid. type: date example: 2019-08-16 01:40:25+00:00 x509.public_key_algorithm Algorithm used to generate the public key. type: keyword example: RSA x509.public_key_curve The curve used by the elliptic curve public key algorithm. This is algorithm specific. type: keyword example: nistp521 x509.public_key_exponent Exponent used to derive the public key. This is algorithm specific. type: long example: 65537 Field is not indexed. x509.public_key_size The size of the public key space in bits. type: long example: 2048 x509.serial_number Unique serial number issued by the certificate authority. For consistency, if this value is alphanumeric, it should be formatted without colons and uppercase characters. type: keyword example: 55FBB9C7DEBF09809D12CCAA x509.signature_algorithm Identifier for certificate signature algorithm. We recommend using names found in Go Lang Crypto library. See https://github.com/golang/go/blob/go1.14/src/crypto/x509/x509.go#L337-L353 . type: keyword example: SHA256-RSA x509.subject.common_name List of common names (CN) of subject. type: keyword example: shared.global.example.net x509.subject.country List of country © code type: keyword example: US x509.subject.distinguished_name Distinguished name (DN) of the certificate subject entity. type: keyword example: C=US, ST=California, L=San Francisco, O=Example, Inc., CN=shared.global.example.net x509.subject.locality List of locality names (L) type: keyword example: San Francisco x509.subject.organization List of organizations (O) of subject. type: keyword example: Example, Inc. x509.subject.organizational_unit List of organizational units (OU) of subject. type: keyword x509.subject.state_or_province List of state or province names (ST, S, or P) type: keyword example: California x509.version_number Version of x509 format. type: keyword example: 3 6. NOT SURE HOW TO READ FROM .EVTX FILES https://www.elastic.co/guide/en/beats/winlogbeat/current/reading-from-evtx.html Dokumentation Yes, Winlogbeat can ingest archived .evtx files. When you set the name parameter as the absolute path to an event log file it will read from that file.Here’s an example. First create a new config file for Winlogbeat. winlogbeat-evtx.yml winlogbeat.event_logs: - name: ${EVTX_FILE} no_more_events: stop winlogbeat.shutdown_timeout: 30s winlogbeat.registry_file: evtx-registry.yml output.elasticsearch.hosts: ['http://localhost:9200'] name will be set to the value of the EVTX_FILE environment variable. no_more_events sets the behavior of Winlogbeat when Windows reports thatthere are no more events to read. We want Winlogbeat to stop rather than wait since this is an archived file that will not receive any more events. shutdown_timeout controls the maximum amount of time Winlogbeat will waitto finish publishing the events to Elasticsearch after stopping because itreached the end of the log. A separate registry file is used to avoid overwriting the default registryfile. You can delete this file after you’re done ingesting the .evtx data. Now execute Winlogbeat and wait for it to complete. It will exit when it’s done. .\winlogbeat.exe -e -c .\winlogbeat-evtx.yml -E EVTX_FILE=c:\backup\Security-2019.01.evtx 7. WINLOGBEAT QUICK START: INSTALLATION AND CONFIGURATION https://www.elastic.co/guide/en/beats/winlogbeat/current/winlogbeat-installation-configuration.html Dokumentation This guide describes how to get started quickly with Windows log monitoring.You’ll learn how to: install Winlogbeat on each system you want to monitor specify the location of your log files parse log data into fields and send it to Elasticsearch visualize the log data in Kibana Before you begin You need Elasticsearch for storing and searching your data, and Kibana for visualizing andmanaging it. Elasticsearch Service Self-managed To get started quickly, spin up a deployment of our hosted Elasticsearch Service . The Elasticsearch Service isavailable on AWS, GCP, and Azure. Try it out for free . To install and run Elasticsearch and Kibana, see Installing the Elastic Stack . Step 1: Install Winlogbeat Download the Winlogbeat zip file from the downloads page . Extract the contents into C:\Program Files . Rename the winlogbeat-<version> directory to Winlogbeat . Open a PowerShell prompt as an Administrator (right-click on the PowerShellicon and select Run As Administrator). From the PowerShell prompt, run the following commands to install the service. PS C:\Users\Administrator> cd 'C:\Program Files\Winlogbeat'PS C:\Program Files\Winlogbeat> .\install-service-winlogbeat.ps1 Security warningRun only scripts that you trust. While scripts from the internet can be useful,this script can potentially harm your computer. If you trust this script, usethe Unblock-File cmdlet to allow the script to run without this warning message.Do you want to run C:\Program Files\Winlogbeat\install-service-winlogbeat.ps1?[D] Do not run [R] Run once [S] Suspend [?] Help (default is "D"): R Status Name DisplayName------ ---- -----------Stopped winlogbeat winlogbeat If script execution is disabled on your system, you need to set theexecution policy for the current session to allow the script to run. For example: PowerShell.exe -ExecutionPolicy UnRestricted -File .\install-service-winlogbeat.ps1 . To use a local non-Administrator account to run Winlogbeat, follow these additional steps . Step 2: Connect to the Elastic Stack Connections to Elasticsearch and Kibana are required to set up Winlogbeat. Set the connection information in winlogbeat.yml . To locate thisconfiguration file, see Directory layout . Elasticsearch Service Self-managed Specify the cloud.id of your Elasticsearch Service, and set cloud.auth to a user who is authorized toset up Winlogbeat. For example: cloud.id: "staging:dXMtZWFzdC0xLmF3cy5mb3VuZC5pbyRjZWM2ZjI2MWE3NGJmMjRjZTMzYmI4ODExYjg0Mjk0ZiRjNmMyY2E2ZDA0MjI0OWFmMGNjN2Q3YTllOTYyNTc0Mw=="cloud.auth: "winlogbeat_setup:YOUR_PASSWORD" Set the host and port where Winlogbeat can find the Elasticsearch installation, andset the username and password of a user who is authorized to set upWinlogbeat. For example: output.elasticsearch: hosts: ["https://myEShost:9200"] username: "winlogbeat_internal" password: "YOUR_PASSWORD" ssl: enabled: true ca_trusted_fingerprint: "b9a10bbe64ee9826abeda6546fc988c8bf798b41957c33d05db736716513dc9c" If you plan to use our pre-built Kibana dashboards, configure the Kibanaendpoint. Skip this step if Kibana is running on the same host as Elasticsearch. setup.kibana: host: "mykibanahost:5601" username: "my_kibana_user" password: "{pwd}" To learn more about required roles and privileges, see Grant users access to secured resources . Step 3: Configure Winlogbeat In winlogbeat.yml , configure the event logs that you want to monitor. Under winlogbeat.event_log , specify a list of event logs to monitor. Bydefault, Winlogbeat monitors application, security, and system logs. winlogbeat.event_logs: - name: Application - name: Security - name: System To obtain a list of available event logs, run Get-EventLog * in PowerShell.For more information about this command, see the configuration details for event_logs.name . (Optional) Set logging options to write Winlogbeat logs to a file: logging.to_files: truelogging.files: path: C:\ProgramData\winlogbeat\Logslogging.level: info After you save your configuration file, test it with the following command. PS C:\Program Files\Winlogbeat> .\winlogbeat.exe test config -c .\winlogbeat.yml -e For more information about configuring Winlogbeat, also see: Configure Winlogbeat Config file format winlogbeat.reference.yml : This reference configurationfile shows all non-deprecated options. You’ll find it in the same location as winlogbeat.yml . Step 4: Set up assets Winlogbeat comes with predefined assets for parsing, indexing, andvisualizing your data. To load these assets: Make sure the user specified in winlogbeat.yml is authorized to set up Winlogbeat . From the installation directory, run: PS > .\winlogbeat.exe setup -e This step loads the recommended indextemplate for writing to Elasticsearch , loads the ingest pipelines to parsethe events (x-pack only), and deploys the sample dashboards forvisualizing the data in Kibana. A connection to Elasticsearch (or Elasticsearch Service) is required to set up the initialenvironment. If you’re using a different output, such as Logstash, see: Load the index template manually Load Kibana dashboards Load ingest pipelines (x-pack only) Step 5: Start Winlogbeat Before starting Winlogbeat, modify the user credentials in winlogbeat.yml and specify a user who is authorized to publish events . To start the Winlogbeat service, run: PS C:\Program Files\Winlogbeat> Start-Service winlogbeat Winlogbeat should now be running. If you used the logging configurationdescribed here, you can view the log file at C:\ProgramData\winlogbeat\Logs\winlogbeat . You can view the status of the service and control it from the Servicesmanagement console in Windows. To launch the management console, runthis command: PS C:\Program Files\Winlogbeat> services.msc Stop Winlogbeat Stop the Winlogbeat service with the following command: PS C:\Program Files\Winlogbeat> Stop-Service winlogbeat Step 6: View your data in Kibana Winlogbeat comes with pre-built Kibana dashboards and UIs for visualizing logdata. You loaded the dashboards earlier when you ran the setup command. To open the dashboards: Launch Kibana: Elasticsearch Service Self-managed Log in to your Elastic Cloud account. Navigate to the Kibana endpoint in your deployment. Point your browser to http://localhost:5601 , replacing localhost with the name of the Kibana host. In the side navigation, click Discover . To see Winlogbeat data, makesure the predefined winlogbeat-* index pattern is selected. If you don’t see data in Kibana, try changing the time filter to a largerrange. By default, Kibana shows the last 15 minutes. In the side navigation, click Dashboard , then select the dashboard that youwant to open. The dashboards are provided as examples. We recommend that you customize them to meet your needs. Using a local non-Administrator account to run Winlogbeat By default, the Winlogbeat service runs as the Local System account.If you want to run the Winlogbeat service as a local user accountthat is not an Administrator, then follow the steps below. The local user accountmust be granted Log on as a service in the security policyand be made part of the Builtin\Event Log Readers group to read the event log. Open the Services Management console with this command: PS C:\Program Files\Winlogbeat> services.msc Right-click on service named winlogbeat and select Properties Under Log On tab, select This account: and browse for the local account userthat you want to run Winlogbeat service as. Enter local user account’s password and click Apply . Search and open Local Group Policy Editor in Windows search orrun gpedit.msc from Powershell. Navigate to path: Computer Settings → Security Settings → Local Policies and open User Rights Assignment under it. Inside User Rights Assignment , add your local user account to the policy named Log on as a service . This should allow your local user account log on as a service. Open Local Users and Group Manager by running lusrmgr.msc in Powershell. Under Users , right-click on your local account user and open Properties . Select Member of tab and click on Add... Find and select the group named Event Log Readers and click Apply .This should allow your local account user to read the event log. What’s next? Now that you have your logs streaming into Elasticsearch, learn how to unify your logs,metrics, uptime, and application performance data. Ingest data from other sources by installing and configuring other ElasticBeats: Use the Observability apps in Kibana to search across all your data: 8. START WINLOGBEAT https://www.elastic.co/guide/en/beats/winlogbeat/current/winlogbeat-starting.html Dokumentation Before starting Winlogbeat: Follow the steps in Quick start: installation and configuration to install,configure, and set up the Winlogbeat environment. Make sure Kibana and Elasticsearch are running. Make sure the user specified in winlogbeat.yml is authorized to publish events . To start Winlogbeat, run: PS C:\Program Files\Winlogbeat> Start-Service winlogbeat Winlogbeat should now be running. If you used the logging configurationdescribed here, you can view the log file at C:\ProgramData\winlogbeat\Logs\winlogbeat . You can view the status of the service and control it from the Servicesmanagement console in Windows. To launch the management console, runthis command: PS C:\Program Files\Winlogbeat> services.msc 9. RUN METRICBEAT ON KUBERNETES https://www.elastic.co/guide/en/beats/metricbeat/current/running-on-kubernetes.html Dokumentation You can use Metricbeat Docker images on Kubernetes toretrieve cluster metrics. Running Elastic Cloud on Kubernetes? See Run Beats on ECK . Kubernetes deploy manifests You deploy Metricbeat as a DaemonSet to ensure that there’s a running instance on each node of the cluster. Theseinstances are used to retrieve most metrics from the host, such as systemmetrics, Docker stats, and metrics from all the services running on top ofKubernetes. In addition, one of the Pods in the DaemonSet will constantly hold a leader lock which makes it responsible forhandling cluster-wide monitoring.This instance is used to retrieve metrics that are unique for the wholecluster, such as Kubernetes events or kube-state-metrics .You can find more information about leader election configuration options at Autodiscover . Note: If you are upgrading from older versions, please make sure there are no redundant partsas left-overs from the old manifests. Deployment specification and its ConfigMaps might be the case. Everything is deployed under the kube-system namespace by default. To changethe namespace, modify the manifest file. To download the manifest file, run: curl -L -O https://raw.githubusercontent.com/elastic/beats/8.14/deploy/kubernetes/metricbeat-kubernetes.yaml If you are using Kubernetes 1.7 or earlier: Metricbeat uses a hostPath volume to persist internal data. It’s locatedunder /var/lib/metricbeat-data . The manifest uses folder autocreation ( DirectoryOrCreate ), which was introduced inKubernetes 1.8. You need to remove type: DirectoryOrCreate from the manifest and create the host folder yourself. Settings By default, Metricbeat sends events to an existing Elasticsearch deployment,if present. To specify a different destination, change the following parametersin the manifest file: - name: ELASTICSEARCH_HOST value: elasticsearch- name: ELASTICSEARCH_PORT value: "9200"- name: ELASTICSEARCH_USERNAME value: elastic- name: ELASTICSEARCH_PASSWORD value: changeme Running Metricbeat on control plane nodes Kubernetes control plane nodes can use taints to limit the workloads that can run on them. To run Metricbeat on control plane nodes you may need toupdate the Daemonset spec to include proper tolerations: spec: tolerations: - key: node-role.kubernetes.io/control-plane effect: NoSchedule Red Hat OpenShift configuration If you are using Red Hat OpenShift, you need to specify additional settings inthe manifest file and grant the metricbeat service account access to the privileged SCC: In the manifest file, edit the metricbeat-daemonset-modules ConfigMap, andspecify the following settings under kubernetes.yml in the data section: kubernetes.yml: |- - module: kubernetes metricsets: - node - system - pod - container - volume period: 10s host: ${NODE_NAME} hosts: ["https://${NODE_NAME}:10250"] bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token ssl.certificate_authorities: - /path/to/kubelet-service-ca.crt - module: kubernetes metricsets: - proxy period: 10s host: ${NODE_NAME} hosts: ["localhost:29101"] kubelet-service-ca.crt can be any CA bundle that contains the issuer of the certificate used in the Kubelet API.According to each specific installation of Openshift this can be found either in secrets or in configmaps .In some installations it can be available as part of the service account secret, in /var/run/secrets/kubernetes.io/serviceaccount/service-ca.crt .In case of using Openshift installer for GCP then the following configmap can be mounted in Metricbeat Pod and use ca-bundle.crt in ssl.certificate_authorities : Name: kubelet-serving-caNamespace: openshift-kube-apiserverLabels: <none>Annotations: <none> Data====ca-bundle.crt: If https is used to access kube-state-metrics , add the following settings to the metricbeat-daemonset-config ConfigMap under the kubernetes autodiscover configuration for the state_* metricsets: bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token ssl.certificate_authorities: - /var/run/secrets/kubernetes.io/serviceaccount/service-ca.crt Grant the metricbeat service account access to the privileged SCC: oc adm policy add-scc-to-user privileged system:serviceaccount:kube-system:metricbeat This command enables the container to be privileged as an administrator forOpenShift. If the namespace where elastic-agent is running has the "openshift.io/node-selector" annotation set, elastic-agentmight not run on all nodes. In this case consider overriding the node selector for the namespace to allow schedulingon any node: oc patch namespace kube-system -p \'{"metadata": {"annotations": {"openshift.io/node-selector": ""}}}' This command sets the node selector for the project to an empty string. If youdon’t run this command, the default node selector will skip control plane nodes. for openshift versions prior to the version 4.x additionally you need to modify the DaemonSet container spec in the manifest file to enable the container to run as privileged: securityContext: runAsUser: 0 privileged: true Load Kibana dashboards Metricbeat comes packaged with various pre-built Kibana dashboardsthat you can use to visualize metrics about your Kubernetes environment. If these dashboards are not already loaded into Kibana, you must install Metricbeat on any system that can connect to the Elastic Stack, and then run the setup command to load the dashboards. To learn how,see Load Kibana dashboards . If you are using a different output other than Elasticsearch, such as Logstash, youneed to Load the index template manually and Load Kibana dashboards . Deploy Metricbeat gets some metrics from kube-state-metrics .If kube-state-metrics is not already running, deploy it now (see the Kubernetesdeployment docs). To deploy Metricbeat to Kubernetes, run: kubectl create -f metricbeat-kubernetes.yaml To check the status, run: $ kubectl --namespace=kube-system get ds/metricbeat NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE-SELECTOR AGEmetricbeat 32 32 0 32 0 <none> 1m Metrics should start flowing to Elasticsearch. Deploying Metricbeat to collect cluster-level metrics in large clusters The size and the number of nodes in a Kubernetes cluster can be fairly large at times, and in such casesthe Pod that will be collecting cluster level metrics might face performance issues due toresources limitations. In this case users might consider to avoid using the leader election strategyand instead run a dedicated, standalone Metricbeat instance using a Deployment in addition to the DaemonSet. 10. GRANT ACCESS USING API KEYS https://www.elastic.co/guide/en/beats/packetbeat/current/beats-api-keys.html Dokumentation Instead of using usernames and passwords, you can use API keys to grantaccess to Elasticsearch resources. You can set API keys to expire at a certain time,and you can explicitly invalidate them. Any user with the manage_api_key or manage_own_api_key cluster privilege can create API keys. Packetbeat instances typically send both collected data and monitoringinformation to Elasticsearch. If you are sending both to the same cluster, you can use the sameAPI key. For different clusters, you need to use an API key per cluster. For security reasons, we recommend using a unique API key per Packetbeat instance.You can create as many API keys per user as necessary. Review Grant users access to secured resources before creating API keys for Packetbeat. Create an API key for publishing To create an API key to use for writing data to Elasticsearch, use the Create API key API , for example: POST /_security/api_key{ "name": "packetbeat_host001", "role_descriptors": { "packetbeat_writer": { "cluster": ["monitor", "read_ilm", "read_pipeline"], "index": [ { "names": ["packetbeat-*"], "privileges": ["view_index_metadata", "create_doc", "auto_configure"] } ] } }} See Create a publishing user for the list of privileges required to publish events. The return value will look something like this: { "id":"TiNAGG4BaaMdaH1tRfuU", "name":"packetbeat_host001", "api_key":"KnR6yE41RrSowb0kQ0HWoA" } You can now use this API key in your packetbeat.yml configuration file like this: output.elasticsearch: api_key: TiNAGG4BaaMdaH1tRfuU:KnR6yE41RrSowb0kQ0HWoA Create an API key for monitoring To create an API key to use for sending monitoring data to Elasticsearch, use the Create API key API , for example: POST /_security/api_key{ "name": "packetbeat_host001", "role_descriptors": { "packetbeat_monitoring": { "cluster": ["monitor"], "index": [ { "names": [".monitoring-beats-*"], "privileges": ["create_index", "create"] } ] } }} See Create a monitoring user for the list of privileges required to send monitoring data. The return value will look something like this: { "id":"TiNAGG4BaaMdaH1tRfuU", "name":"packetbeat_host001", "api_key":"KnR6yE41RrSowb0kQ0HWoA" } You can now use this API key in your packetbeat.yml configuration file like this: monitoring.elasticsearch: api_key: TiNAGG4BaaMdaH1tRfuU:KnR6yE41RrSowb0kQ0HWoA Learn more about API keys See the Elasticsearch API key documentation for more information: Create API key Get API key information Invalidate API key 11. ECS FIELDS https://www.elastic.co/guide/en/beats/packetbeat/current/exported-fields-ecs.html Dokumentation This section defines Elastic Common Schema (ECS) fields—a common set of fieldsto be used when storing event data in Elasticsearch. This is an exhaustive list, and fields listed here are not necessarily used by Packetbeat.The goal of ECS is to enable and encourage users of Elasticsearch to normalize their event data,so that they can better analyze, visualize, and correlate the data represented in their events. See the ECS reference for more information. @timestamp 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. type: date example: 2016-05-23T08:05:34.853Z required: True labels Custom key/value pairs.Can be used to add meta information to events. Should not contain nested objects. All values are stored as keyword.Example: docker and k8s labels. type: object example: {"application": "foo-bar", "env": "production"} message For log events the message field contains the log message, optimized for viewing in a log viewer.For structured logs without an original message field, other fields can be concatenated to form a human-readable summary of the event.If multiple messages exist, they can be combined into one message. type: match_only_text example: Hello World tags List of keywords used to tag each event. type: keyword example: ["production", "env2"] agent The agent fields contain the data about the software entity, if any, that collects, detects, or observes events on a host, or takes measurements on a host.Examples include Beats. Agents may also run on observers. ECS agent.* fields shall be populated with details of the agent running on the host or observer where the event happened or the measurement was taken. agent.build.original Extended build information for the agent.This field is intended to contain any build information that a data source may provide, no specific formatting is required. type: keyword example: metricbeat version 7.6.0 (amd64), libbeat 7.6.0 [6a23e8f8f30f5001ba344e4e54d8d9cb82cb107c built 2020-02-05 23:10:10 +0000 UTC] agent.ephemeral_id Ephemeral identifier of this agent (if one exists).This id normally changes across restarts, but agent.id does not. type: keyword example: 8a4f500f agent.id Unique identifier of this agent (if one exists).Example: For Beats this would be beat.id. type: keyword example: 8a4f500d agent.name Custom name of the agent.This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from.If no name is given, the name is often left empty. type: keyword example: foo agent.type Type of the agent.The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. type: keyword example: filebeat agent.version Version of the agent. type: keyword example: 6.0.0-rc2 as An autonomous system (AS) is a collection of connected Internet Protocol (IP) routing prefixes under the control of one or more network operators on behalf of a single administrative entity or domain that presents a common, clearly defined routing policy to the internet. as.number Unique number allocated to the autonomous system. The autonomous system number (ASN) uniquely identifies each network on the Internet. type: long example: 15169 as.organization.name Organization name. type: keyword example: Google LLC as.organization.name.text type: match_only_text client A client is defined as the initiator of a network connection for events regarding sessions, connections, or bidirectional flow records.For TCP events, the client is the initiator of the TCP connection that sends the SYN packet(s). For other protocols, the client is generally the initiator or requestor in the network transaction. Some systems use the term "originator" to refer the client in TCP connections. The client fields describe details about the system acting as the client in the network event. Client fields are usually populated in conjunction with server fields. Client fields are generally not populated for packet-level events.Client / server representations can add semantic context to an exchange, which is helpful to visualize the data in certain situations. If your context falls in that category, you should still ensure that source and destination are filled appropriately. client.address Some event client addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the .address field.Then it should be duplicated to .ip or .domain , depending on which one it is. type: keyword client.as.number Unique number allocated to the autonomous system. The autonomous system number (ASN) uniquely identifies each network on the Internet. type: long example: 15169 client.as.organization.name Organization name. type: keyword example: Google LLC client.as.organization.name.text type: match_only_text client.bytes Bytes sent from the client to the server. type: long example: 184 format: bytes client.domain The domain name of the client system.This value may be a host name, a fully qualified domain name, or another host naming format. The value may derive from the original event or be added from enrichment. type: keyword example: foo.example.com client.geo.city_name City name. type: keyword example: Montreal client.geo.continent_code Two-letter code representing continent’s name. type: keyword example: NA client.geo.continent_name Name of the continent. type: keyword example: North America client.geo.country_iso_code Country ISO code. type: keyword example: CA client.geo.country_name Country name. type: keyword example: Canada client.geo.location Longitude and latitude. type: geo_point example: { "lon": -73.614830, "lat": 45.505918 } client.geo.name User-defined description of a location, at the level of granularity they care about.Could be the name of their data centers, the floor number, if this describes a local physical entity, city names.Not typically used in automated geolocation. type: keyword example: boston-dc client.geo.postal_code Postal code associated with the location.Values appropriate for this field may also be known as a postcode or ZIP code and will vary widely from country to country. type: keyword example: 94040 client.geo.region_iso_code Region ISO code. type: keyword example: CA-QC client.geo.region_name Region name. type: keyword example: Quebec client.geo.timezone The time zone of the location, such as IANA time zone name. type: keyword example: America/Argentina/Buenos_Aires client.ip IP address of the client (IPv4 or IPv6). type: ip client.mac MAC address of the client.The notation format from RFC 7042 is suggested: Each octet (that is, 8-bit byte) is represented by two [uppercase] hexadecimal digits giving the value of the octet as an unsigned integer. Successive octets are separated by a hyphen. type: keyword example: 00-00-5E-00-53-23 client.nat.ip Translated IP of source based NAT sessions (e.g. internal client to internet).Typically connections traversing load balancers, firewalls, or routers. type: ip client.nat.port Translated port of source based NAT sessions (e.g. internal client to internet).Typically connections traversing load balancers, firewalls, or routers. type: long format: string client.packets Packets sent from the client to the server. type: long example: 12 client.port Port of the client. type: long format: string client.registered_domain The highest registered client domain, stripped of the subdomain.For example, the registered domain for "foo.example.com" is "example.com".This value can be determined precisely with a list like the public suffix list ( http://publicsuffix.org ). Trying to approximate this by simply taking the last two labels will not work well for TLDs such as "co.uk". type: keyword example: example.com client.subdomain The subdomain portion of a fully qualified domain name includes all of the names except the host name under the registered_domain. In a partially qualified domain, or if the the qualification level of the full name cannot be determined, subdomain contains all of the names below the registered domain.For example the subdomain portion of "www.east.mydomain.co.uk" is "east". If the domain has multiple levels of subdomain, such as "sub2.sub1.example.com", the subdomain field should contain "sub2.sub1", with no trailing period. type: keyword example: east client.top_level_domain The effective top level domain (eTLD), also known as the domain suffix, is the last part of the domain name. For example, the top level domain for example.com is "com".This value can be determined precisely with a list like the public suffix list ( http://publicsuffix.org ). Trying to approximate this by simply taking the last label will not work well for effective TLDs such as "co.uk". type: keyword example: co.uk client.user.domain Name of the directory the user is a member of.For example, an LDAP or Active Directory domain name. type: keyword client.user.email User email address. type: keyword client.user.full_name User’s full name, if available. type: keyword example: Albert Einstein client.user.full_name.text type: match_only_text client.user.group.domain Name of the directory the group is a member of.For example, an LDAP or Active Directory domain name. type: keyword client.user.group.id Unique identifier for the group on the system/platform. type: keyword client.user.group.name Name of the group. type: keyword client.user.hash Unique user hash to correlate information for a user in anonymized form.Useful if user.id or user.name contain confidential information and cannot be used. type: keyword client.user.id Unique identifier of the user. type: keyword example: S-1-5-21-202424912787-2692429404-2351956786-1000 client.user.name Short name or login of the user. type: keyword example: a.einstein client.user.name.text type: match_only_text client.user.roles Array of user roles at the time of the event. type: keyword example: ["kibana_admin", "reporting_user"] cloud Fields related to the cloud or infrastructure the events are coming from. cloud.account.id The cloud account or organization id used to identify different entities in a multi-tenant environment.Examples: AWS account id, Google Cloud ORG Id, or other unique identifier. type: keyword example: 666777888999 cloud.account.name The cloud account name or alias used to identify different entities in a multi-tenant environment.Examples: AWS account name, Google Cloud ORG display name. type: keyword example: elastic-dev cloud.availability_zone Availability zone in which this host, resource, or service is located. type: keyword example: us-east-1c cloud.instance.id Instance ID of the host machine. type: keyword example: i-1234567890abcdef0 cloud.instance.name Instance name of the host machine. type: keyword cloud.machine.type Machine type of the host machine. type: keyword example: t2.medium cloud.origin.account.id The cloud account or organization id used to identify different entities in a multi-tenant environment.Examples: AWS account id, Google Cloud ORG Id, or other unique identifier. type: keyword example: 666777888999 cloud.origin.account.name The cloud account name or alias used to identify different entities in a multi-tenant environment.Examples: AWS account name, Google Cloud ORG display name. type: keyword example: elastic-dev cloud.origin.availability_zone Availability zone in which this host, resource, or service is located. type: keyword example: us-east-1c cloud.origin.instance.id Instance ID of the host machine. type: keyword example: i-1234567890abcdef0 cloud.origin.instance.name Instance name of the host machine. type: keyword cloud.origin.machine.type Machine type of the host machine. type: keyword example: t2.medium cloud.origin.project.id The cloud project identifier.Examples: Google Cloud Project id, Azure Project id. type: keyword example: my-project cloud.origin.project.name The cloud project name.Examples: Google Cloud Project name, Azure Project name. type: keyword example: my project cloud.origin.provider Name of the cloud provider. Example values are aws, azure, gcp, or digitalocean. type: keyword example: aws cloud.origin.region Region in which this host, resource, or service is located. type: keyword example: us-east-1 cloud.origin.service.name The cloud service name is intended to distinguish services running on different platforms within a provider, eg AWS EC2 vs Lambda, GCP GCE vs App Engine, Azure VM vs App Server.Examples: app engine, app service, cloud run, fargate, lambda. type: keyword example: lambda cloud.project.id The cloud project identifier.Examples: Google Cloud Project id, Azure Project id. type: keyword example: my-project cloud.project.name The cloud project name.Examples: Google Cloud Project name, Azure Project name. type: keyword example: my project cloud.provider Name of the cloud provider. Example values are aws, azure, gcp, or digitalocean. type: keyword example: aws cloud.region Region in which this host, resource, or service is located. type: keyword example: us-east-1 cloud.service.name The cloud service name is intended to distinguish services running on different platforms within a provider, eg AWS EC2 vs Lambda, GCP GCE vs App Engine, Azure VM vs App Server.Examples: app engine, app service, cloud run, fargate, lambda. type: keyword example: lambda cloud.target.account.id The cloud account or organization id used to identify different entities in a multi-tenant environment.Examples: AWS account id, Google Cloud ORG Id, or other unique identifier. type: keyword example: 666777888999 cloud.target.account.name The cloud account name or alias used to identify different entities in a multi-tenant environment.Examples: AWS account name, Google Cloud ORG display name. type: keyword example: elastic-dev cloud.target.availability_zone Availability zone in which this host, resource, or service is located. type: keyword example: us-east-1c cloud.target.instance.id Instance ID of the host machine. type: keyword example: i-1234567890abcdef0 cloud.target.instance.name Instance name of the host machine. type: keyword cloud.target.machine.type Machine type of the host machine. type: keyword example: t2.medium cloud.target.project.id The cloud project identifier.Examples: Google Cloud Project id, Azure Project id. type: keyword example: my-project cloud.target.project.name The cloud project name.Examples: Google Cloud Project name, Azure Project name. type: keyword example: my project cloud.target.provider Name of the cloud provider. Example values are aws, azure, gcp, or digitalocean. type: keyword example: aws cloud.target.region Region in which this host, resource, or service is located. type: keyword example: us-east-1 cloud.target.service.name The cloud service name is intended to distinguish services running on different platforms within a provider, eg AWS EC2 vs Lambda, GCP GCE vs App Engine, Azure VM vs App Server.Examples: app engine, app service, cloud run, fargate, lambda. type: keyword example: lambda code_signature These fields contain information about binary code signatures. code_signature.digest_algorithm The hashing algorithm used to sign the process.This value can distinguish signatures when a file is signed multiple times by the same signer but with a different digest algorithm. type: keyword example: sha256 code_signature.exists Boolean to capture if a signature is present. type: boolean example: true code_signature.signing_id The identifier used to sign the process.This is used to identify the application manufactured by a software vendor. The field is relevant to Apple *OS only. type: keyword example: com.apple.xpc.proxy code_signature.status Additional information about the certificate status.This is useful for logging cryptographic errors with the certificate validity or trust status. Leave unpopulated if the validity or trust of the certificate was unchecked. type: keyword example: ERROR_UNTRUSTED_ROOT code_signature.subject_name Subject name of the code signer type: keyword example: Microsoft Corporation code_signature.team_id The team identifier used to sign the process.This is used to identify the team or vendor of a software product. The field is relevant to Apple *OS only. type: keyword example: EQHXZ8M8AV code_signature.timestamp Date and time when the code signature was generated and signed. type: date example: 2021-01-01T12:10:30Z code_signature.trusted Stores the trust status of the certificate chain.Validating the trust of the certificate chain may be complicated, and this field should only be populated by tools that actively check the status. type: boolean example: true code_signature.valid Boolean to capture if the digital signature is verified against the binary content.Leave unpopulated if a certificate was unchecked. type: boolean example: true container Container fields are used for meta information about the specific container that is the source of information. These fields help correlate data based containers from any runtime. container.cpu.usage Percent CPU used which is normalized by the number of CPU cores and it ranges from 0 to 1. Scaling factor: 1000. type: scaled_float container.disk.read.bytes The total number of bytes (gauge) read successfully (aggregated from all disks) since the last metric collection. type: long container.disk.write.bytes The total number of bytes (gauge) written successfully (aggregated from all disks) since the last metric collection. type: long container.id Unique container id. type: keyword container.image.name Name of the image the container was built on. type: keyword container.image.tag Container image tags. type: keyword container.labels Image labels. type: object container.memory.usage Memory usage percentage and it ranges from 0 to 1. Scaling factor: 1000. type: scaled_float container.name Container name. type: keyword container.network.egress.bytes The number of bytes (gauge) sent out on all network interfaces by the container since the last metric collection. type: long container.network.ingress.bytes The number of bytes received (gauge) on all network interfaces by the container since the last metric collection. type: long container.runtime Runtime managing this container. type: keyword example: docker data_stream The data_stream fields take part in defining the new data stream naming scheme.In the new data stream naming scheme the value of the data stream fields combine to the name of the actual data stream in the following manner: {data_stream.type}-{data_stream.dataset}-{data_stream.namespace} . This means the fields can only contain characters that are valid as part of names of data streams. More details about this can be found in this blog post .An Elasticsearch data stream consists of one or more backing indices, and a data stream name forms part of the backing indices names. Due to this convention, data streams must also follow index naming restrictions. For example, data stream names cannot include \ , / , * , ? , " , < , > , | , ` ` (space character), , , or # . Please see the Elasticsearch reference for additional restrictions . data_stream.dataset The field can contain anything that makes sense to signify the source of the data.Examples include nginx.access , prometheus , endpoint etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. event.dataset should have the same value as data_stream.dataset .Beyond the Elasticsearch data stream naming criteria noted above, the dataset value has additional restrictions: * Must not contain - * No longer than 100 characters type: constant_keyword example: nginx.access data_stream.namespace A user defined namespace. Namespaces are useful to allow grouping of data.Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with default . If no value is used, it falls back to default .Beyond the Elasticsearch index naming criteria noted above, namespace value has the additional restrictions: * Must not contain - * No longer than 100 characters type: constant_keyword example: production data_stream.type An overarching type for the data stream.Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. type: constant_keyword example: logs destination Destination fields capture details about the receiver of a network exchange/packet. These fields are populated from a network event, packet, or other event containing details of a network transaction.Destination fields are usually populated in conjunction with source fields. The source and destination fields are considered the baseline and should always be filled if an event contains source and destination details from a network transaction. If the event also contains identification of the client and server roles, then the client and server fields should also be populated. destination.address Some event destination addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the .address field.Then it should be duplicated to .ip or .domain , depending on which one it is. type: keyword destination.as.number Unique number allocated to the autonomous system. The autonomous system number (ASN) uniquely identifies each network on the Internet. type: long example: 15169 destination.as.organization.name Organization name. type: keyword example: Google LLC destination.as.organization.name.text type: match_only_text destination.bytes Bytes sent from the destination to the source. type: long example: 184 format: bytes destination.domain The domain name of the destination system.This value may be a host name, a fully qualified domain name, or another host naming format. The value may derive from the original event or be added from enrichment. type: keyword example: foo.example.com destination.geo.city_name City name. type: keyword example: Montreal destination.geo.continent_code Two-letter code representing continent’s name. type: keyword example: NA destination.geo.continent_name Name of the continent. type: keyword example: North America destination.geo.country_iso_code Country ISO code. type: keyword example: CA destination.geo.country_name Country name. type: keyword example: Canada destination.geo.location Longitude and latitude. type: geo_point example: { "lon": -73.614830, "lat": 45.505918 } destination.geo.name User-defined description of a location, at the level of granularity they care about.Could be the name of their data centers, the floor number, if this describes a local physical entity, city names.Not typically used in automated geolocation. type: keyword example: boston-dc destination.geo.postal_code Postal code associated with the location.Values appropriate for this field may also be known as a postcode or ZIP code and will vary widely from country to country. type: keyword example: 94040 destination.geo.region_iso_code Region ISO code. type: keyword example: CA-QC destination.geo.region_name Region name. type: keyword example: Quebec destination.geo.timezone The time zone of the location, such as IANA time zone name. type: keyword example: America/Argentina/Buenos_Aires destination.ip IP address of the destination (IPv4 or IPv6). type: ip destination.mac MAC address of the destination.The notation format from RFC 7042 is suggested: Each octet (that is, 8-bit byte) is represented by two [uppercase] hexadecimal digits giving the value of the octet as an unsigned integer. Successive octets are separated by a hyphen. type: keyword example: 00-00-5E-00-53-23 destination.nat.ip Translated ip of destination based NAT sessions (e.g. internet to private DMZ)Typically used with load balancers, firewalls, or routers. type: ip destination.nat.port Port the source session is translated to by NAT Device.Typically used with load balancers, firewalls, or routers. type: long format: string destination.packets Packets sent from the destination to the source. type: long example: 12 destination.port Port of the destination. type: long format: string destination.registered_domain The highest registered destination domain, stripped of the subdomain.For example, the registered domain for "foo.example.com" is "example.com".This value can be determined precisely with a list like the public suffix list ( http://publicsuffix.org ). Trying to approximate this by simply taking the last two labels will not work well for TLDs such as "co.uk". type: keyword example: example.com destination.subdomain The subdomain portion of a fully qualified domain name includes all of the names except the host name under the registered_domain. In a partially qualified domain, or if the the qualification level of the full name cannot be determined, subdomain contains all of the names below the registered domain.For example the subdomain portion of "www.east.mydomain.co.uk" is "east". If the domain has multiple levels of subdomain, such as "sub2.sub1.example.com", the subdomain field should contain "sub2.sub1", with no trailing period. type: keyword example: east destination.top_level_domain The effective top level domain (eTLD), also known as the domain suffix, is the last part of the domain name. For example, the top level domain for example.com is "com".This value can be determined precisely with a list like the public suffix list ( http://publicsuffix.org ). Trying to approximate this by simply taking the last label will not work well for effective TLDs such as "co.uk". type: keyword example: co.uk destination.user.domain Name of the directory the user is a member of.For example, an LDAP or Active Directory domain name. type: keyword destination.user.email User email address. type: keyword destination.user.full_name User’s full name, if available. type: keyword example: Albert Einstein destination.user.full_name.text type: match_only_text destination.user.group.domain Name of the directory the group is a member of.For example, an LDAP or Active Directory domain name. type: keyword destination.user.group.id Unique identifier for the group on the system/platform. type: keyword destination.user.group.name Name of the group. type: keyword destination.user.hash Unique user hash to correlate information for a user in anonymized form.Useful if user.id or user.name contain confidential information and cannot be used. type: keyword destination.user.id Unique identifier of the user. type: keyword example: S-1-5-21-202424912787-2692429404-2351956786-1000 destination.user.name Short name or login of the user. type: keyword example: a.einstein destination.user.name.text type: match_only_text destination.user.roles Array of user roles at the time of the event. type: keyword example: ["kibana_admin", "reporting_user"] dll These fields contain information about code libraries dynamically loaded into processes. Many operating systems refer to "shared code libraries" with different names, but this field set refers to all of the following:* Dynamic-link library ( .dll ) commonly used on Windows* Shared Object ( .so ) commonly used on Unix-like operating systems* Dynamic library ( .dylib ) commonly used on macOS dll.code_signature.digest_algorithm The hashing algorithm used to sign the process.This value can distinguish signatures when a file is signed multiple times by the same signer but with a different digest algorithm. type: keyword example: sha256 dll.code_signature.exists Boolean to capture if a signature is present. type: boolean example: true dll.code_signature.signing_id The identifier used to sign the process.This is used to identify the application manufactured by a software vendor. The field is relevant to Apple *OS only. type: keyword example: com.apple.xpc.proxy dll.code_signature.status Additional information about the certificate status.This is useful for logging cryptographic errors with the certificate validity or trust status. Leave unpopulated if the validity or trust of the certificate was unchecked. type: keyword example: ERROR_UNTRUSTED_ROOT dll.code_signature.subject_name Subject name of the code signer type: keyword example: Microsoft Corporation dll.code_signature.team_id The team identifier used to sign the process.This is used to identify the team or vendor of a software product. The field is relevant to Apple *OS only. type: keyword example: EQHXZ8M8AV dll.code_signature.timestamp Date and time when the code signature was generated and signed. type: date example: 2021-01-01T12:10:30Z dll.code_signature.trusted Stores the trust status of the certificate chain.Validating the trust of the certificate chain may be complicated, and this field should only be populated by tools that actively check the status. type: boolean example: true dll.code_signature.valid Boolean to capture if the digital signature is verified against the binary content.Leave unpopulated if a certificate was unchecked. type: boolean example: true dll.hash.md5 MD5 hash. type: keyword dll.hash.sha1 SHA1 hash. type: keyword dll.hash.sha256 SHA256 hash. type: keyword dll.hash.sha512 SHA512 hash. type: keyword dll.hash.ssdeep SSDEEP hash. type: keyword dll.name Name of the library.This generally maps to the name of the file on disk. type: keyword example: kernel32.dll dll.path Full file path of the library. type: keyword example: C:\Windows\System32\kernel32.dll dll.pe.architecture CPU architecture target for the file. type: keyword example: x64 dll.pe.company Internal company name of the file, provided at compile-time. type: keyword example: Microsoft Corporation dll.pe.description Internal description of the file, provided at compile-time. type: keyword example: Paint dll.pe.file_version Internal version of the file, provided at compile-time. type: keyword example: 6.3.9600.17415 dll.pe.imphash A hash of the imports in a PE file. An imphash — or import hash — can be used to fingerprint binaries even after recompilation or other code-level transformations have occurred, which would change more traditional hash values.Learn more at https://www.fireeye.com/blog/threat-research/2014/01/tracking-malware-import-hashing.html . type: keyword example: 0c6803c4e922103c4dca5963aad36ddf dll.pe.original_file_name Internal name of the file, provided at compile-time. type: keyword example: MSPAINT.EXE dll.pe.product Internal product name of the file, provided at compile-time. type: keyword example: Microsoft® Windows® Operating System dns Fields describing DNS queries and answers.DNS events should either represent a single DNS query prior to getting answers ( dns.type:query ) or they should represent a full exchange and contain the query details as well as all of the answers that were provided for this query ( dns.type:answer ). dns.answers An array containing an object for each answer section returned by the server.The main keys that should be present in these objects are defined by ECS. Records that have more information may contain more keys than what ECS defines.Not all DNS data sources give all details about DNS answers. At minimum, answer objects must contain the data key. If more information is available, map as much of it to ECS as possible, and add any additional fields to the answer objects as custom fields. type: object dns.answers.class The class of DNS data contained in this resource record. type: keyword example: IN dns.answers.data The data describing the resource.The meaning of this data depends on the type and class of the resource record. type: keyword example: 10.10.10.10 dns.answers.name The domain name to which this resource record pertains.If a chain of CNAME is being resolved, each answer’s name should be the one that corresponds with the answer’s data . It should not simply be the original question.name repeated. type: keyword example: www.example.com dns.answers.ttl The time interval in seconds that this resource record may be cached before it should be discarded. Zero values mean that the data should not be cached. type: long example: 180 dns.answers.type The type of data contained in this resource record. type: keyword example: CNAME dns.header_flags Array of 2 letter DNS header flags.Expected values are: AA, TC, RD, RA, AD, CD, DO. type: keyword example: ["RD", "RA"] dns.id The DNS packet identifier assigned by the program that generated the query. The identifier is copied to the response. type: keyword example: 62111 dns.op_code The DNS operation code that specifies the kind of query in the message. This value is set by the originator of a query and copied into the response. type: keyword example: QUERY dns.question.class The class of records being queried. type: keyword example: IN dns.question.name The name being queried.If the name field contains non-printable characters (below 32 or above 126), those characters should be represented as escaped base 10 integers (\DDD). Back slashes and quotes should be escaped. Tabs, carriage returns, and line feeds should be converted to \t, \r, and \n respectively. type: keyword example: www.example.com dns.question.registered_domain The highest registered domain, stripped of the subdomain.For example, the registered domain for "foo.example.com" is "example.com".This value can be determined precisely with a list like the public suffix list ( http://publicsuffix.org ). Trying to approximate this by simply taking the last two labels will not work well for TLDs such as "co.uk". type: keyword example: example.com dns.question.subdomain The subdomain is all of the labels under the registered_domain.If the domain has multiple levels of subdomain, such as "sub2.sub1.example.com", the subdomain field should contain "sub2.sub1", with no trailing period. type: keyword example: www dns.question.top_level_domain The effective top level domain (eTLD), also known as the domain suffix, is the last part of the domain name. For example, the top level domain for example.com is "com".This value can be determined precisely with a list like the public suffix list ( http://publicsuffix.org ). Trying to approximate this by simply taking the last label will not work well for effective TLDs such as "co.uk". type: keyword example: co.uk dns.question.type The type of record being queried. type: keyword example: AAAA dns.resolved_ip Array containing all IPs seen in answers.data .The answers array can be difficult to use, because of the variety of data formats it can contain. Extracting all IP addresses seen in there to dns.resolved_ip makes it possible to index them as IP addresses, and makes them easier to visualize and query for. type: ip example: ["10.10.10.10", "10.10.10.11"] dns.response_code The DNS response code. type: keyword example: NOERROR dns.type The type of DNS event captured, query or answer.If your source of DNS events only gives you DNS queries, you should only create dns events of type dns.type:query .If your source of DNS events gives you answers as well, you should create one event per query (optionally as soon as the query is seen). And a second event containing all query details as well as an array of answers. type: keyword example: answer ecs Meta-information specific to ECS. ecs.version 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. type: keyword example: 1.0.0 required: True elf These fields contain Linux Executable Linkable Format (ELF) metadata. elf.architecture Machine architecture of the ELF file. type: keyword example: x86-64 elf.byte_order Byte sequence of ELF file. type: keyword example: Little Endian elf.cpu_type CPU type of the ELF file. type: keyword example: Intel elf.creation_date Extracted when possible from the file’s metadata. Indicates when it was built or compiled. It can also be faked by malware creators. type: date elf.exports List of exported element names and types. type: flattened elf.header.abi_version Version of the ELF Application Binary Interface (ABI). type: keyword elf.header.class Header class of the ELF file. type: keyword elf.header.data Data table of the ELF header. type: keyword elf.header.entrypoint Header entrypoint of the ELF file. type: long format: string elf.header.object_version "0x1" for original ELF files. type: keyword elf.header.os_abi Application Binary Interface (ABI) of the Linux OS. type: keyword elf.header.type Header type of the ELF file. type: keyword elf.header.version Version of the ELF header. type: keyword elf.imports List of imported element names and types. type: flattened elf.sections An array containing an object for each section of the ELF file.The keys that should be present in these objects are defined by sub-fields underneath elf.sections.* . type: nested elf.sections.chi2 Chi-square probability distribution of the section. type: long format: number elf.sections.entropy Shannon entropy calculation from the section. type: long format: number elf.sections.flags ELF Section List flags. type: keyword elf.sections.name ELF Section List name. type: keyword elf.sections.physical_offset ELF Section List offset. type: keyword elf.sections.physical_size ELF Section List physical size. type: long format: bytes elf.sections.type ELF Section List type. type: keyword elf.sections.virtual_address ELF Section List virtual address. type: long format: string elf.sections.virtual_size ELF Section List virtual size. type: long format: string elf.segments An array containing an object for each segment of the ELF file.The keys that should be present in these objects are defined by sub-fields underneath elf.segments.* . type: nested elf.segments.sections ELF object segment sections. type: keyword elf.segments.type ELF object segment type. type: keyword elf.shared_libraries List of shared libraries used by this ELF object. type: keyword elf.telfhash telfhash symbol hash for ELF file. type: keyword error These fields can represent errors of any kind.Use them for errors that happen while fetching events or in cases where the event itself contains an error. error.code Error code describing the error. type: keyword error.id Unique identifier for the error. type: keyword error.message Error message. type: match_only_text error.stack_trace The stack trace of this error in plain text. type: wildcard error.stack_trace.text type: match_only_text error.type The type of the error, for example the class name of the exception. type: keyword example: java.lang.NullPointerException event The event fields are used for context information about the log or metric event itself.A log is defined as an event containing details of something that happened. Log events must include the time at which the thing happened. Examples of log events include a process starting on a host, a network packet being sent from a source to a destination, or a network connection between a client and a server being initiated or closed. A metric is defined as an event containing one or more numerical measurements and the time at which the measurement was taken. Examples of metric events include memory pressure measured on a host and device temperature. See the event.kind definition in this section for additional details about metric and state events. event.action 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. type: keyword example: user-password-change event.agent_id_status Agents are normally responsible for populating the agent.id field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation.For example if the agent’s connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the agent.id value in events can be checked against the certificate. If the values match then event.agent_id_status: verified is added to the event, otherwise one of the other allowed values should be used.If no validation is performed then the field should be omitted.The allowed values are: verified - The agent.id field value matches expected value obtained from auth metadata. mismatch - The agent.id field value does not match the expected value obtained from auth metadata. missing - There was no agent.id field in the event to validate. auth_metadata_missing - There was no auth metadata or it was missing information about the agent ID. type: keyword example: verified event.category 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. type: keyword example: authentication event.code 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. type: keyword example: 4648 event.created 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. type: date example: 2016-05-23T08:05:34.857Z event.dataset 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. type: keyword example: apache.access event.duration Duration of the event in nanoseconds.If event.start and event.end are known this value should be the difference between the end and start time. type: long format: duration event.end event.end contains the date when the event ended or when the activity was last observed. type: date event.hash Hash (perhaps logstash fingerprint) of raw field to be able to demonstrate log integrity. type: keyword example: 123456789012345678901234567890ABCD event.id Unique ID to describe the event. type: keyword example: 8a4f500d event.ingested 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 . type: date example: 2016-05-23T08:05:35.101Z event.kind 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 coming in at a regular interval or not. type: keyword example: alert event.module 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. type: keyword example: apache event.original Raw text message of entire event. Used to demonstrate log integrity or where the full log message (before splitting it up in multiple parts) may be required, e.g. for reindex.This field is not indexed and doc_values are disabled. It cannot be searched, but it can be retrieved from _source . If users wish to override this and index this field, please see Field data types in the Elasticsearch Reference . type: keyword example: Sep 19 08:26:10 host CEF:0|Security| threatmanager|1.0|100| worm successfully stopped|10|src=10.0.0.1 dst=2.1.2.2spt=1232 Field is not indexed. event.outcome 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. type: keyword example: success event.provider 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). type: keyword example: kernel event.reason Reason why this event happened, according to the source.This describes the why of a particular action or outcome captured in the event. Where event.action captures the action from the event, event.reason describes why that action was taken. For example, a web proxy with an event.action which denied the request may also populate event.reason with the reason why (e.g. blocked site ). type: keyword example: Terminated an unexpected process event.reference Reference URL linking to additional information about this event.This URL links to a static definition of this event. Alert events, indicated by event.kind:alert , are a common use case for this field. type: keyword example: https://system.example.com/event/#0001234 event.risk_score Risk score or priority of the event (e.g. security solutions). Use your system’s original value here. type: float event.risk_score_norm Normalized risk score or priority of the event, on a scale of 0 to 100.This is mainly useful if you use more than one system that assigns risk scores, and you want to see a normalized value across all systems. type: float event.sequence 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. type: long format: string event.severity 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 . type: long example: 7 format: string event.start event.start contains the date when the event started or when the activity was first observed. type: date event.timezone This field should be populated when the event’s timestamp does not include timezone information already (e.g. default Syslog timestamps). It’s optional otherwise.Acceptable timezone formats are: a canonical ID (e.g. "Europe/Amsterdam"), abbreviated (e.g. "EST") or an HH:mm differential (e.g. "-05:00"). type: keyword event.type 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. type: keyword event.url URL linking to an external system to continue investigation of this event.This URL links to another system where in-depth investigation of the specific occurrence of this event can take place. Alert events, indicated by event.kind:alert , are a common use case for this field. type: keyword example: https://mysystem.example.com/alert/5271dedb-f5b0-4218-87f0-4ac4870a38fe faas The user fields describe information about the function as a service that is relevant to the event. faas.coldstart Boolean value indicating a cold start of a function. type: boolean faas.execution The execution ID of the current function execution. type: keyword example: af9d5aa4-a685-4c5f-a22b-444f80b3cc28 faas.trigger Details about the function trigger. type: nested faas.trigger.request_id The ID of the trigger request , message, event, etc. type: keyword example: 123456789 faas.trigger.type The trigger for the function execution.Expected values are: * http * pubsub * datasource * timer * other type: keyword example: http file A file is defined as a set of information that has been created on, or has existed on a filesystem.File objects can be associated with host events, network events, and/or file events (e.g., those produced by File Integrity Monitoring [FIM] products or services). File fields provide details about the affected file associated with the event or metric. file.accessed Last time the file was accessed.Note that not all filesystems keep track of access time. type: date file.attributes Array of file attributes.Attributes names will vary by platform. Here’s a non-exhaustive list of values that are expected in this field: archive, compressed, directory, encrypted, execute, hidden, read, readonly, system, write. type: keyword example: ["readonly", "system"] file.code_signature.digest_algorithm The hashing algorithm used to sign the process.This value can distinguish signatures when a file is signed multiple times by the same signer but with a different digest algorithm. type: keyword example: sha256 file.code_signature.exists Boolean to capture if a signature is present. type: boolean example: true file.code_signature.signing_id The identifier used to sign the process.This is used to identify the application manufactured by a software vendor. The field is relevant to Apple *OS only. type: keyword example: com.apple.xpc.proxy file.code_signature.status Additional information about the certificate status.This is useful for logging cryptographic errors with the certificate validity or trust status. Leave unpopulated if the validity or trust of the certificate was unchecked. type: keyword example: ERROR_UNTRUSTED_ROOT file.code_signature.subject_name Subject name of the code signer type: keyword example: Microsoft Corporation file.code_signature.team_id The team identifier used to sign the process.This is used to identify the team or vendor of a software product. The field is relevant to Apple *OS only. type: keyword example: EQHXZ8M8AV file.code_signature.timestamp Date and time when the code signature was generated and signed. type: date example: 2021-01-01T12:10:30Z file.code_signature.trusted Stores the trust status of the certificate chain.Validating the trust of the certificate chain may be complicated, and this field should only be populated by tools that actively check the status. type: boolean example: true file.code_signature.valid Boolean to capture if the digital signature is verified against the binary content.Leave unpopulated if a certificate was unchecked. type: boolean example: true file.created File creation time.Note that not all filesystems store the creation time. type: date file.ctime Last time the file attributes or metadata changed.Note that changes to the file content will update mtime . This implies ctime will be adjusted at the same time, since mtime is an attribute of the file. type: date file.device Device that is the source of the file. type: keyword example: sda file.directory Directory where the file is located. It should include the drive letter, when appropriate. type: keyword example: /home/alice file.drive_letter Drive letter where the file is located. This field is only relevant on Windows.The value should be uppercase, and not include the colon. type: keyword example: C file.elf.architecture Machine architecture of the ELF file. type: keyword example: x86-64 file.elf.byte_order Byte sequence of ELF file. type: keyword example: Little Endian file.elf.cpu_type CPU type of the ELF file. type: keyword example: Intel file.elf.creation_date Extracted when possible from the file’s metadata. Indicates when it was built or compiled. It can also be faked by malware creators. type: date file.elf.exports List of exported element names and types. type: flattened file.elf.header.abi_version Version of the ELF Application Binary Interface (ABI). type: keyword file.elf.header.class Header class of the ELF file. type: keyword file.elf.header.data Data table of the ELF header. type: keyword file.elf.header.entrypoint Header entrypoint of the ELF file. type: long format: string file.elf.header.object_version "0x1" for original ELF files. type: keyword file.elf.header.os_abi Application Binary Interface (ABI) of the Linux OS. type: keyword file.elf.header.type Header type of the ELF file. type: keyword file.elf.header.version Version of the ELF header. type: keyword file.elf.imports List of imported element names and types. type: flattened file.elf.sections An array containing an object for each section of the ELF file.The keys that should be present in these objects are defined by sub-fields underneath elf.sections.* . type: nested file.elf.sections.chi2 Chi-square probability distribution of the section. type: long format: number file.elf.sections.entropy Shannon entropy calculation from the section. type: long format: number file.elf.sections.flags ELF Section List flags. type: keyword file.elf.sections.name ELF Section List name. type: keyword file.elf.sections.physical_offset ELF Section List offset. type: keyword file.elf.sections.physical_size ELF Section List physical size. type: long format: bytes file.elf.sections.type ELF Section List type. type: keyword file.elf.sections.virtual_address ELF Section List virtual address. type: long format: string file.elf.sections.virtual_size ELF Section List virtual size. type: long format: string file.elf.segments An array containing an object for each segment of the ELF file.The keys that should be present in these objects are defined by sub-fields underneath elf.segments.* . type: nested file.elf.segments.sections ELF object segment sections. type: keyword file.elf.segments.type ELF object segment type. type: keyword file.elf.shared_libraries List of shared libraries used by this ELF object. type: keyword file.elf.telfhash telfhash symbol hash for ELF file. type: keyword file.extension File extension, excluding the leading dot.Note that when the file name has multiple extensions (example.tar.gz), only the last one should be captured ("gz", not "tar.gz"). type: keyword example: png file.fork_name A fork is additional data associated with a filesystem object.On Linux, a resource fork is used to store additional data with a filesystem object. A file always has at least one fork for the data portion, and additional forks may exist.On NTFS, this is analogous to an Alternate Data Stream (ADS), and the default data stream for a file is just called $DATA. Zone.Identifier is commonly used by Windows to track contents downloaded from the Internet. An ADS is typically of the form: C:\path\to\filename.extension:some_fork_name , and some_fork_name is the value that should populate fork_name . filename.extension should populate file.name , and extension should populate file.extension . The full path, file.path , will include the fork name. type: keyword example: Zone.Identifer file.gid Primary group ID (GID) of the file. type: keyword example: 1001 file.group Primary group name of the file. type: keyword example: alice file.hash.md5 MD5 hash. type: keyword file.hash.sha1 SHA1 hash. type: keyword file.hash.sha256 SHA256 hash. type: keyword file.hash.sha512 SHA512 hash. type: keyword file.hash.ssdeep SSDEEP hash. type: keyword file.inode Inode representing the file in the filesystem. type: keyword example: 256383 file.mime_type MIME type should identify the format of the file or stream of bytes using IANA official types , where possible. When more than one type is applicable, the most specific type should be used. type: keyword file.mode Mode of the file in octal representation. type: keyword example: 0640 file.mtime Last time the file content was modified. type: date file.name Name of the file including the extension, without the directory. type: keyword example: example.png file.owner File owner’s username. type: keyword example: alice file.path Full path to the file, including the file name. It should include the drive letter, when appropriate. type: keyword example: /home/alice/example.png file.path.text type: match_only_text file.pe.architecture CPU architecture target for the file. type: keyword example: x64 file.pe.company Internal company name of the file, provided at compile-time. type: keyword example: Microsoft Corporation file.pe.description Internal description of the file, provided at compile-time. type: keyword example: Paint file.pe.file_version Internal version of the file, provided at compile-time. type: keyword example: 6.3.9600.17415 file.pe.imphash A hash of the imports in a PE file. An imphash — or import hash — can be used to fingerprint binaries even after recompilation or other code-level transformations have occurred, which would change more traditional hash values.Learn more at https://www.fireeye.com/blog/threat-research/2014/01/tracking-malware-import-hashing.html . type: keyword example: 0c6803c4e922103c4dca5963aad36ddf file.pe.original_file_name Internal name of the file, provided at compile-time. type: keyword example: MSPAINT.EXE file.pe.product Internal product name of the file, provided at compile-time. type: keyword example: Microsoft® Windows® Operating System file.size File size in bytes.Only relevant when file.type is "file". type: long example: 16384 file.target_path Target path for symlinks. type: keyword file.target_path.text type: match_only_text file.type File type (file, dir, or symlink). type: keyword example: file file.uid The user ID (UID) or security identifier (SID) of the file owner. type: keyword example: 1001 file.x509.alternative_names List of subject alternative names (SAN). Name types vary by certificate authority and certificate type but commonly contain IP addresses, DNS names (and wildcards), and email addresses. type: keyword example: *.elastic.co file.x509.issuer.common_name List of common name (CN) of issuing certificate authority. type: keyword example: Example SHA2 High Assurance Server CA file.x509.issuer.country List of country © codes type: keyword example: US file.x509.issuer.distinguished_name Distinguished name (DN) of issuing certificate authority. type: keyword example: C=US, O=Example Inc, OU=www.example.com, CN=Example SHA2 High Assurance Server CA file.x509.issuer.locality List of locality names (L) type: keyword example: Mountain View file.x509.issuer.organization List of organizations (O) of issuing certificate authority. type: keyword example: Example Inc file.x509.issuer.organizational_unit List of organizational units (OU) of issuing certificate authority. type: keyword example: www.example.com file.x509.issuer.state_or_province List of state or province names (ST, S, or P) type: keyword example: California file.x509.not_after Time at which the certificate is no longer considered valid. type: date example: 2020-07-16 03:15:39+00:00 file.x509.not_before Time at which the certificate is first considered valid. type: date example: 2019-08-16 01:40:25+00:00 file.x509.public_key_algorithm Algorithm used to generate the public key. type: keyword example: RSA file.x509.public_key_curve The curve used by the elliptic curve public key algorithm. This is algorithm specific. type: keyword example: nistp521 file.x509.public_key_exponent Exponent used to derive the public key. This is algorithm specific. type: long example: 65537 Field is not indexed. file.x509.public_key_size The size of the public key space in bits. type: long example: 2048 file.x509.serial_number Unique serial number issued by the certificate authority. For consistency, if this value is alphanumeric, it should be formatted without colons and uppercase characters. type: keyword example: 55FBB9C7DEBF09809D12CCAA file.x509.signature_algorithm Identifier for certificate signature algorithm. We recommend using names found in Go Lang Crypto library. See https://github.com/golang/go/blob/go1.14/src/crypto/x509/x509.go#L337-L353 . type: keyword example: SHA256-RSA file.x509.subject.common_name List of common names (CN) of subject. type: keyword example: shared.global.example.net file.x509.subject.country List of country © code type: keyword example: US file.x509.subject.distinguished_name Distinguished name (DN) of the certificate subject entity. type: keyword example: C=US, ST=California, L=San Francisco, O=Example, Inc., CN=shared.global.example.net file.x509.subject.locality List of locality names (L) type: keyword example: San Francisco file.x509.subject.organization List of organizations (O) of subject. type: keyword example: Example, Inc. file.x509.subject.organizational_unit List of organizational units (OU) of subject. type: keyword file.x509.subject.state_or_province List of state or province names (ST, S, or P) type: keyword example: California file.x509.version_number Version of x509 format. type: keyword example: 3 geo Geo fields can carry data about a specific location related to an event.This geolocation information can be derived from techniques such as Geo IP, or be user-supplied. geo.city_name City name. type: keyword example: Montreal geo.continent_code Two-letter code representing continent’s name. type: keyword example: NA geo.continent_name Name of the continent. type: keyword example: North America geo.country_iso_code Country ISO code. type: keyword example: CA geo.country_name Country name. type: keyword example: Canada geo.location Longitude and latitude. type: geo_point example: { "lon": -73.614830, "lat": 45.505918 } geo.name User-defined description of a location, at the level of granularity they care about.Could be the name of their data centers, the floor number, if this describes a local physical entity, city names.Not typically used in automated geolocation. type: keyword example: boston-dc geo.postal_code Postal code associated with the location.Values appropriate for this field may also be known as a postcode or ZIP code and will vary widely from country to country. type: keyword example: 94040 geo.region_iso_code Region ISO code. type: keyword example: CA-QC geo.region_name Region name. type: keyword example: Quebec geo.timezone The time zone of the location, such as IANA time zone name. type: keyword example: America/Argentina/Buenos_Aires group The group fields are meant to represent groups that are relevant to the event. group.domain Name of the directory the group is a member of.For example, an LDAP or Active Directory domain name. type: keyword group.id Unique identifier for the group on the system/platform. type: keyword group.name Name of the group. type: keyword hash The hash fields represent different bitwise hash algorithms and their values.Field names for common hashes (e.g. MD5, SHA1) are predefined. Add fields for other hashes by lowercasing the hash algorithm name and using underscore separators as appropriate (snake case, e.g. sha3_512).Note that this fieldset is used for common hashes that may be computed over a range of generic bytes. Entity-specific hashes such as ja3 or imphash are placed in the fieldsets to which they relate (tls and pe, respectively). hash.md5 MD5 hash. type: keyword hash.sha1 SHA1 hash. type: keyword hash.sha256 SHA256 hash. type: keyword hash.sha512 SHA512 hash. type: keyword hash.ssdeep SSDEEP hash. type: keyword host A host is defined as a general computing instance.ECS host.* fields should be populated with details about the host on which the event happened, or from which the measurement was taken. Host types include hardware, virtual machines, Docker containers, and Kubernetes nodes. host.architecture Operating system architecture. type: keyword example: x86_64 host.cpu.usage Percent CPU used which is normalized by the number of CPU cores and it ranges from 0 to 1.Scaling factor: 1000.For example: For a two core host, this value should be the average of the two cores, between 0 and 1. type: scaled_float host.disk.read.bytes The total number of bytes (gauge) read successfully (aggregated from all disks) since the last metric collection. type: long host.disk.write.bytes The total number of bytes (gauge) written successfully (aggregated from all disks) since the last metric collection. type: long host.domain Name of the domain of which the host is a member.For example, on Windows this could be the host’s Active Directory domain or NetBIOS domain name. For Linux this could be the domain of the host’s LDAP provider. type: keyword example: CONTOSO host.geo.city_name City name. type: keyword example: Montreal host.geo.continent_code Two-letter code representing continent’s name. type: keyword example: NA host.geo.continent_name Name of the continent. type: keyword example: North America host.geo.country_iso_code Country ISO code. type: keyword example: CA host.geo.country_name Country name. type: keyword example: Canada host.geo.location Longitude and latitude. type: geo_point example: { "lon": -73.614830, "lat": 45.505918 } host.geo.name User-defined description of a location, at the level of granularity they care about.Could be the name of their data centers, the floor number, if this describes a local physical entity, city names.Not typically used in automated geolocation. type: keyword example: boston-dc host.geo.postal_code Postal code associated with the location.Values appropriate for this field may also be known as a postcode or ZIP code and will vary widely from country to country. type: keyword example: 94040 host.geo.region_iso_code Region ISO code. type: keyword example: CA-QC host.geo.region_name Region name. type: keyword example: Quebec host.geo.timezone The time zone of the location, such as IANA time zone name. type: keyword example: America/Argentina/Buenos_Aires host.hostname Hostname of the host.It normally contains what the hostname command returns on the host machine. type: keyword host.id Unique host id.As hostname is not always unique, use values that are meaningful in your environment.Example: The current usage of beat.name . type: keyword host.ip Host ip addresses. type: ip host.mac Host MAC addresses.The notation format from RFC 7042 is suggested: Each octet (that is, 8-bit byte) is represented by two [uppercase] hexadecimal digits giving the value of the octet as an unsigned integer. Successive octets are separated by a hyphen. type: keyword example: ["00-00-5E-00-53-23", "00-00-5E-00-53-24"] host.name Name of the host.It can contain what hostname returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use. type: keyword host.network.egress.bytes The number of bytes (gauge) sent out on all network interfaces by the host since the last metric collection. type: long host.network.egress.packets The number of packets (gauge) sent out on all network interfaces by the host since the last metric collection. type: long host.network.ingress.bytes The number of bytes received (gauge) on all network interfaces by the host since the last metric collection. type: long host.network.ingress.packets The number of packets (gauge) received on all network interfaces by the host since the last metric collection. type: long host.os.family OS family (such as redhat, debian, freebsd, windows). type: keyword example: debian host.os.full Operating system name, including the version or code name. type: keyword example: Mac OS Mojave host.os.full.text type: match_only_text host.os.kernel Operating system kernel version as a raw string. type: keyword example: 4.4.0-112-generic host.os.name Operating system name, without the version. type: keyword example: Mac OS X host.os.name.text type: match_only_text host.os.platform Operating system platform (such centos, ubuntu, windows). type: keyword example: darwin host.os.type Use the os.type field to categorize the operating system into one of the broad commercial families.One of these following values should be used (lowercase): linux, macos, unix, windows.If the OS you’re dealing with is not in the list, the field should not be populated. Please let us know by opening an issue with ECS, to propose its addition. type: keyword example: macos host.os.version Operating system version as a raw string. type: keyword example: 10.14.1 host.type Type of host.For Cloud providers this can be the machine type like t2.medium . If vm, this could be the container, for example, or other information meaningful in your environment. type: keyword host.uptime Seconds the host has been up. type: long example: 1325 http Fields related to HTTP activity. Use the url field set to store the url of the request. http.request.body.bytes Size in bytes of the request body. type: long example: 887 format: bytes http.request.body.content The full HTTP request body. type: wildcard example: Hello world http.request.body.content.text type: match_only_text http.request.bytes Total size in bytes of the request (body and headers). type: long example: 1437 format: bytes http.request.id A unique identifier for each HTTP request to correlate logs between clients and servers in transactions.The id may be contained in a non-standard HTTP header, such as X-Request-ID or X-Correlation-ID . type: keyword example: 123e4567-e89b-12d3-a456-426614174000 http.request.method HTTP request method.The value should retain its casing from the original event. For example, GET , get , and GeT are all considered valid values for this field. type: keyword example: POST http.request.mime_type Mime type of the body of the request.This value must only be populated based on the content of the request body, not on the Content-Type header. Comparing the mime type of a request with the request’s Content-Type header can be helpful in detecting threats or misconfigured clients. type: keyword example: image/gif http.request.referrer Referrer for this HTTP request. type: keyword example: https://blog.example.com/ http.response.body.bytes Size in bytes of the response body. type: long example: 887 format: bytes http.response.body.content The full HTTP response body. type: wildcard example: Hello world http.response.body.content.text type: match_only_text http.response.bytes Total size in bytes of the response (body and headers). type: long example: 1437 format: bytes http.response.mime_type Mime type of the body of the response.This value must only be populated based on the content of the response body, not on the Content-Type header. Comparing the mime type of a response with the response’s Content-Type header can be helpful in detecting misconfigured servers. type: keyword example: image/gif http.response.status_code HTTP response status code. type: long example: 404 format: string http.version HTTP version. type: keyword example: 1.1 interface The interface fields are used to record ingress and egress interface information when reported by an observer (e.g. firewall, router, load balancer) in the context of the observer handling a network connection. In the case of a single observer interface (e.g. network sensor on a span port) only the observer.ingress information should be populated. interface.alias Interface alias as reported by the system, typically used in firewall implementations for e.g. inside, outside, or dmz logical interface naming. type: keyword example: outside interface.id Interface ID as reported by an observer (typically SNMP interface ID). type: keyword example: 10 interface.name Interface name as reported by the system. type: keyword example: eth0 log Details about the event’s logging mechanism or logging transport.The log.* fields are typically populated with details about the logging mechanism used to create and/or transport the event. For example, syslog details belong under log.syslog.* .The details specific to your event source are typically not logged under log.* , but rather in event.* or in other ECS fields. log.file.path Full path to the log file this event came from, including the file name. It should include the drive letter, when appropriate.If the event wasn’t read from a log file, do not populate this field. type: keyword example: /var/log/fun-times.log log.level Original log level of the log event.If the source of the event provides a log level or textual severity, this is the one that goes in log.level . If your source doesn’t specify one, you may put your event transport’s severity here (e.g. Syslog severity).Some examples are warn , err , i , informational . type: keyword example: error log.logger The name of the logger inside an application. This is usually the name of the class which initialized the logger, or can be a custom name. type: keyword example: org.elasticsearch.bootstrap.Bootstrap log.origin.file.line The line number of the file containing the source code which originated the log event. type: long example: 42 log.origin.file.name The name of the file containing the source code which originated the log event.Note that this field is not meant to capture the log file. The correct field to capture the log file is log.file.path . type: keyword example: Bootstrap.java log.origin.function The name of the function or method which originated the log event. type: keyword example: init log.syslog The Syslog metadata of the event, if the event was transmitted via Syslog. Please see RFCs 5424 or 3164. type: object log.syslog.facility.code The Syslog numeric facility of the log event, if available.According to RFCs 5424 and 3164, this value should be an integer between 0 and 23. type: long example: 23 format: string log.syslog.facility.name The Syslog text-based facility of the log event, if available. type: keyword example: local7 log.syslog.priority Syslog numeric priority of the event, if available.According to RFCs 5424 and 3164, the priority is 8 * facility + severity. This number is therefore expected to contain a value between 0 and 191. type: long example: 135 format: string log.syslog.severity.code The Syslog numeric severity of the log event, if available.If the event source publishing via Syslog provides a different numeric severity value (e.g. firewall, IDS), your source’s numeric severity should go to event.severity . If the event source does not specify a distinct severity, you can optionally copy the Syslog severity to event.severity . type: long example: 3 log.syslog.severity.name The Syslog numeric severity of the log event, if available.If the event source publishing via Syslog provides a different severity value (e.g. firewall, IDS), your source’s text severity should go to log.level . If the event source does not specify a distinct severity, you can optionally copy the Syslog severity to log.level . type: keyword example: Error network The network is defined as the communication path over which a host or network event happens.The network.* fields should be populated with details about the network activity associated with an event. network.application When a specific application or service is identified from network connection details (source/dest IPs, ports, certificates, or wire format), this field captures the application’s or service’s name.For example, the original event identifies the network connection being from a specific web service in a https network connection, like facebook or twitter .The field value must be normalized to lowercase for querying. type: keyword example: aim network.bytes Total bytes transferred in both directions.If source.bytes and destination.bytes are known, network.bytes is their sum. type: long example: 368 format: bytes network.community_id A hash of source and destination IPs and ports, as well as the protocol used in a communication. This is a tool-agnostic standard to identify flows.Learn more at https://github.com/corelight/community-id-spec . type: keyword example: 1:hO+sN4H+MG5MY/8hIrXPqc4ZQz0= network.direction Direction of the network traffic.Recommended values are: * ingress * egress * inbound * outbound * internal * external * unknown When mapping events from a host-based monitoring context, populate this field from the host’s point of view, using the values "ingress" or "egress".When mapping events from a network or perimeter-based monitoring context, populate this field from the point of view of the network perimeter, using the values "inbound", "outbound", "internal" or "external".Note that "internal" is not crossing perimeter boundaries, and is meant to describe communication between two hosts within the perimeter. Note also that "external" is meant to describe traffic between two hosts that are external to the perimeter. This could for example be useful for ISPs or VPN service providers. type: keyword example: inbound network.forwarded_ip Host IP address when the source IP address is the proxy. type: ip example: 192.1.1.2 network.iana_number IANA Protocol Number ( https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml ). Standardized list of protocols. This aligns well with NetFlow and sFlow related logs which use the IANA Protocol Number. type: keyword example: 6 network.inner Network.inner fields are added in addition to network.vlan fields to describe the innermost VLAN when q-in-q VLAN tagging is present. Allowed fields include vlan.id and vlan.name. Inner vlan fields are typically used when sending traffic with multiple 802.1q encapsulations to a network sensor (e.g. Zeek, Wireshark.) type: object network.inner.vlan.id VLAN ID as reported by the observer. type: keyword example: 10 network.inner.vlan.name Optional VLAN name as reported by the observer. type: keyword example: outside network.name Name given by operators to sections of their network. type: keyword example: Guest Wifi network.packets Total packets transferred in both directions.If source.packets and destination.packets are known, network.packets is their sum. type: long example: 24 network.protocol In the OSI Model this would be the Application Layer protocol. For example, http , dns , or ssh .The field value must be normalized to lowercase for querying. type: keyword example: http network.transport Same as network.iana_number, but instead using the Keyword name of the transport layer (udp, tcp, ipv6-icmp, etc.)The field value must be normalized to lowercase for querying. type: keyword example: tcp network.type In the OSI Model this would be the Network Layer. ipv4, ipv6, ipsec, pim, etcThe field value must be normalized to lowercase for querying. type: keyword example: ipv4 network.vlan.id VLAN ID as reported by the observer. type: keyword example: 10 network.vlan.name Optional VLAN name as reported by the observer. type: keyword example: outside observer An observer is defined as a special network, security, or application device used to detect, observe, or create network, security, or application-related events and metrics.This could be a custom hardware appliance or a server that has been configured to run special network, security, or application software. Examples include firewalls, web proxies, intrusion detection/prevention systems, network monitoring sensors, web application firewalls, data loss prevention systems, and APM servers. The observer.* fields shall be populated with details of the system, if any, that detects, observes and/or creates a network, security, or application event or metric. Message queues and ETL components used in processing events or metrics are not considered observers in ECS. observer.egress Observer.egress holds information like interface number and name, vlan, and zone information to classify egress traffic. Single armed monitoring such as a network sensor on a span port should only use observer.ingress to categorize traffic. type: object observer.egress.interface.alias Interface alias as reported by the system, typically used in firewall implementations for e.g. inside, outside, or dmz logical interface naming. type: keyword example: outside observer.egress.interface.id Interface ID as reported by an observer (typically SNMP interface ID). type: keyword example: 10 observer.egress.interface.name Interface name as reported by the system. type: keyword example: eth0 observer.egress.vlan.id VLAN ID as reported by the observer. type: keyword example: 10 observer.egress.vlan.name Optional VLAN name as reported by the observer. type: keyword example: outside observer.egress.zone Network zone of outbound traffic as reported by the observer to categorize the destination area of egress traffic, e.g. Internal, External, DMZ, HR, Legal, etc. type: keyword example: Public_Internet observer.geo.city_name City name. type: keyword example: Montreal observer.geo.continent_code Two-letter code representing continent’s name. type: keyword example: NA observer.geo.continent_name Name of the continent. type: keyword example: North America observer.geo.country_iso_code Country ISO code. type: keyword example: CA observer.geo.country_name Country name. type: keyword example: Canada observer.geo.location Longitude and latitude. type: geo_point example: { "lon": -73.614830, "lat": 45.505918 } observer.geo.name User-defined description of a location, at the level of granularity they care about.Could be the name of their data centers, the floor number, if this describes a local physical entity, city names.Not typically used in automated geolocation. type: keyword example: boston-dc observer.geo.postal_code Postal code associated with the location.Values appropriate for this field may also be known as a postcode or ZIP code and will vary widely from country to country. type: keyword example: 94040 observer.geo.region_iso_code Region ISO code. type: keyword example: CA-QC observer.geo.region_name Region name. type: keyword example: Quebec observer.geo.timezone The time zone of the location, such as IANA time zone name. type: keyword example: America/Argentina/Buenos_Aires observer.hostname Hostname of the observer. type: keyword observer.ingress Observer.ingress holds information like interface number and name, vlan, and zone information to classify ingress traffic. Single armed monitoring such as a network sensor on a span port should only use observer.ingress to categorize traffic. type: object observer.ingress.interface.alias Interface alias as reported by the system, typically used in firewall implementations for e.g. inside, outside, or dmz logical interface naming. type: keyword example: outside observer.ingress.interface.id Interface ID as reported by an observer (typically SNMP interface ID). type: keyword example: 10 observer.ingress.interface.name Interface name as reported by the system. type: keyword example: eth0 observer.ingress.vlan.id VLAN ID as reported by the observer. type: keyword example: 10 observer.ingress.vlan.name Optional VLAN name as reported by the observer. type: keyword example: outside observer.ingress.zone Network zone of incoming traffic as reported by the observer to categorize the source area of ingress traffic. e.g. internal, External, DMZ, HR, Legal, etc. type: keyword example: DMZ observer.ip IP addresses of the observer. type: ip observer.mac MAC addresses of the observer.The notation format from RFC 7042 is suggested: Each octet (that is, 8-bit byte) is represented by two [uppercase] hexadecimal digits giving the value of the octet as an unsigned integer. Successive octets are separated by a hyphen. type: keyword example: ["00-00-5E-00-53-23", "00-00-5E-00-53-24"] observer.name Custom name of the observer.This is a name that can be given to an observer. This can be helpful for example if multiple firewalls of the same model are used in an organization.If no custom name is needed, the field can be left empty. type: keyword example: 1_proxySG observer.os.family OS family (such as redhat, debian, freebsd, windows). type: keyword example: debian observer.os.full Operating system name, including the version or code name. type: keyword example: Mac OS Mojave observer.os.full.text type: match_only_text observer.os.kernel Operating system kernel version as a raw string. type: keyword example: 4.4.0-112-generic observer.os.name Operating system name, without the version. type: keyword example: Mac OS X observer.os.name.text type: match_only_text observer.os.platform Operating system platform (such centos, ubuntu, windows). type: keyword example: darwin observer.os.type Use the os.type field to categorize the operating system into one of the broad commercial families.One of these following values should be used (lowercase): linux, macos, unix, windows.If the OS you’re dealing with is not in the list, the field should not be populated. Please let us know by opening an issue with ECS, to propose its addition. type: keyword example: macos observer.os.version Operating system version as a raw string. type: keyword example: 10.14.1 observer.product The product name of the observer. type: keyword example: s200 observer.serial_number Observer serial number. type: keyword observer.type The type of the observer the data is coming from.There is no predefined list of observer types. Some examples are forwarder , firewall , ids , ips , proxy , poller , sensor , APM server . type: keyword example: firewall observer.vendor Vendor name of the observer. type: keyword example: Symantec observer.version Observer version. type: keyword orchestrator Fields that describe the resources which container orchestrators manage or act upon. orchestrator.api_version API version being used to carry out the action type: keyword example: v1beta1 orchestrator.cluster.name Name of the cluster. type: keyword orchestrator.cluster.url URL of the API used to manage the cluster. type: keyword orchestrator.cluster.version The version of the cluster. type: keyword orchestrator.namespace Namespace in which the action is taking place. type: keyword example: kube-system orchestrator.organization Organization affected by the event (for multi-tenant orchestrator setups). type: keyword example: elastic orchestrator.resource.name Name of the resource being acted upon. type: keyword example: test-pod-cdcws orchestrator.resource.type Type of resource being acted upon. type: keyword example: service orchestrator.type Orchestrator cluster type (e.g. kubernetes, nomad or cloudfoundry). type: keyword example: kubernetes organization The organization fields enrich data with information about the company or entity the data is associated with.These fields help you arrange or filter data stored in an index by one or multiple organizations. organization.id Unique identifier for the organization. type: keyword organization.name Organization name. type: keyword organization.name.text type: match_only_text os The OS fields contain information about the operating system. os.family OS family (such as redhat, debian, freebsd, windows). type: keyword example: debian os.full Operating system name, including the version or code name. type: keyword example: Mac OS Mojave os.full.text type: match_only_text os.kernel Operating system kernel version as a raw string. type: keyword example: 4.4.0-112-generic os.name Operating system name, without the version. type: keyword example: Mac OS X os.name.text type: match_only_text os.platform Operating system platform (such centos, ubuntu, windows). type: keyword example: darwin os.type Use the os.type field to categorize the operating system into one of the broad commercial families.One of these following values should be used (lowercase): linux, macos, unix, windows.If the OS you’re dealing with is not in the list, the field should not be populated. Please let us know by opening an issue with ECS, to propose its addition. type: keyword example: macos os.version Operating system version as a raw string. type: keyword example: 10.14.1 package These fields contain information about an installed software package. It contains general information about a package, such as name, version or size. It also contains installation details, such as time or location. package.architecture Package architecture. type: keyword example: x86_64 package.build_version Additional information about the build version of the installed package.For example use the commit SHA of a non-released package. type: keyword example: 36f4f7e89dd61b0988b12ee000b98966867710cd package.checksum Checksum of the installed package for verification. type: keyword example: 68b329da9893e34099c7d8ad5cb9c940 package.description Description of the package. type: keyword example: Open source programming language to build simple/reliable/efficient software. package.install_scope Indicating how the package was installed, e.g. user-local, global. type: keyword example: global package.installed Time when package was installed. type: date package.license License under which the package was released.Use a short name, e.g. the license identifier from SPDX License List where possible ( https://spdx.org/licenses/ ). type: keyword example: Apache License 2.0 package.name Package name type: keyword example: go package.path Path where the package is installed. type: keyword example: /usr/local/Cellar/go/1.12.9/ package.reference Home page or reference URL of the software in this package, if available. type: keyword example: https://golang.org package.size Package size in bytes. type: long example: 62231 format: string package.type Type of package.This should contain the package file type, rather than the package manager name. Examples: rpm, dpkg, brew, npm, gem, nupkg, jar. type: keyword example: rpm package.version Package version type: keyword example: 1.12.9 pe These fields contain Windows Portable Executable (PE) metadata. pe.architecture CPU architecture target for the file. type: keyword example: x64 pe.company Internal company name of the file, provided at compile-time. type: keyword example: Microsoft Corporation pe.description Internal description of the file, provided at compile-time. type: keyword example: Paint pe.file_version Internal version of the file, provided at compile-time. type: keyword example: 6.3.9600.17415 pe.imphash A hash of the imports in a PE file. An imphash — or import hash — can be used to fingerprint binaries even after recompilation or other code-level transformations have occurred, which would change more traditional hash values.Learn more at https://www.fireeye.com/blog/threat-research/2014/01/tracking-malware-import-hashing.html . type: keyword example: 0c6803c4e922103c4dca5963aad36ddf pe.original_file_name Internal name of the file, provided at compile-time. type: keyword example: MSPAINT.EXE pe.product Internal product name of the file, provided at compile-time. type: keyword example: Microsoft® Windows® Operating System process These fields contain information about a process.These fields can help you correlate metrics information with a process id/name from a log message. The process.pid often stays in the metric itself and is copied to the global field for correlation. process.args Array of process arguments, starting with the absolute path to the executable.May be filtered to protect sensitive information. type: keyword example: ["/usr/bin/ssh", "-l", "user", "10.0.0.16"] process.args_count Length of the process.args array.This field can be useful for querying or performing bucket analysis on how many arguments were provided to start a process. More arguments may be an indication of suspicious activity. type: long example: 4 process.code_signature.digest_algorithm The hashing algorithm used to sign the process.This value can distinguish signatures when a file is signed multiple times by the same signer but with a different digest algorithm. type: keyword example: sha256 process.code_signature.exists Boolean to capture if a signature is present. type: boolean example: true process.code_signature.signing_id The identifier used to sign the process.This is used to identify the application manufactured by a software vendor. The field is relevant to Apple *OS only. type: keyword example: com.apple.xpc.proxy process.code_signature.status Additional information about the certificate status.This is useful for logging cryptographic errors with the certificate validity or trust status. Leave unpopulated if the validity or trust of the certificate was unchecked. type: keyword example: ERROR_UNTRUSTED_ROOT process.code_signature.subject_name Subject name of the code signer type: keyword example: Microsoft Corporation process.code_signature.team_id The team identifier used to sign the process.This is used to identify the team or vendor of a software product. The field is relevant to Apple *OS only. type: keyword example: EQHXZ8M8AV process.code_signature.timestamp Date and time when the code signature was generated and signed. type: date example: 2021-01-01T12:10:30Z process.code_signature.trusted Stores the trust status of the certificate chain.Validating the trust of the certificate chain may be complicated, and this field should only be populated by tools that actively check the status. type: boolean example: true process.code_signature.valid Boolean to capture if the digital signature is verified against the binary content.Leave unpopulated if a certificate was unchecked. type: boolean example: true process.command_line Full command line that started the process, including the absolute path to the executable, and all arguments.Some arguments may be filtered to protect sensitive information. type: wildcard example: /usr/bin/ssh -l user 10.0.0.16 process.command_line.text type: match_only_text process.elf.architecture Machine architecture of the ELF file. type: keyword example: x86-64 process.elf.byte_order Byte sequence of ELF file. type: keyword example: Little Endian process.elf.cpu_type CPU type of the ELF file. type: keyword example: Intel process.elf.creation_date Extracted when possible from the file’s metadata. Indicates when it was built or compiled. It can also be faked by malware creators. type: date process.elf.exports List of exported element names and types. type: flattened process.elf.header.abi_version Version of the ELF Application Binary Interface (ABI). type: keyword process.elf.header.class Header class of the ELF file. type: keyword process.elf.header.data Data table of the ELF header. type: keyword process.elf.header.entrypoint Header entrypoint of the ELF file. type: long format: string process.elf.header.object_version "0x1" for original ELF files. type: keyword process.elf.header.os_abi Application Binary Interface (ABI) of the Linux OS. type: keyword process.elf.header.type Header type of the ELF file. type: keyword process.elf.header.version Version of the ELF header. type: keyword process.elf.imports List of imported element names and types. type: flattened process.elf.sections An array containing an object for each section of the ELF file.The keys that should be present in these objects are defined by sub-fields underneath elf.sections.* . type: nested process.elf.sections.chi2 Chi-square probability distribution of the section. type: long format: number process.elf.sections.entropy Shannon entropy calculation from the section. type: long format: number process.elf.sections.flags ELF Section List flags. type: keyword process.elf.sections.name ELF Section List name. type: keyword process.elf.sections.physical_offset ELF Section List offset. type: keyword process.elf.sections.physical_size ELF Section List physical size. type: long format: bytes process.elf.sections.type ELF Section List type. type: keyword process.elf.sections.virtual_address ELF Section List virtual address. type: long format: string process.elf.sections.virtual_size ELF Section List virtual size. type: long format: string process.elf.segments An array containing an object for each segment of the ELF file.The keys that should be present in these objects are defined by sub-fields underneath elf.segments.* . type: nested process.elf.segments.sections ELF object segment sections. type: keyword process.elf.segments.type ELF object segment type. type: keyword process.elf.shared_libraries List of shared libraries used by this ELF object. type: keyword process.elf.telfhash telfhash symbol hash for ELF file. type: keyword process.end The time the process ended. type: date example: 2016-05-23T08:05:34.853Z process.entity_id Unique identifier for the process.The implementation of this is specified by the data source, but some examples of what could be used here are a process-generated UUID, Sysmon Process GUIDs, or a hash of some uniquely identifying components of a process.Constructing a globally unique identifier is a common practice to mitigate PID reuse as well as to identify a specific process over time, across multiple monitored hosts. type: keyword example: c2c455d9f99375d process.executable Absolute path to the process executable. type: keyword example: /usr/bin/ssh process.executable.text type: match_only_text process.exit_code The exit code of the process, if this is a termination event.The field should be absent if there is no exit code for the event (e.g. process start). type: long example: 137 process.hash.md5 MD5 hash. type: keyword process.hash.sha1 SHA1 hash. type: keyword process.hash.sha256 SHA256 hash. type: keyword process.hash.sha512 SHA512 hash. type: keyword process.hash.ssdeep SSDEEP hash. type: keyword process.name Process name.Sometimes called program name or similar. type: keyword example: ssh process.name.text type: match_only_text process.parent.args Array of process arguments, starting with the absolute path to the executable.May be filtered to protect sensitive information. type: keyword example: ["/usr/bin/ssh", "-l", "user", "10.0.0.16"] process.parent.args_count Length of the process.args array.This field can be useful for querying or performing bucket analysis on how many arguments were provided to start a process. More arguments may be an indication of suspicious activity. type: long example: 4 process.parent.code_signature.digest_algorithm The hashing algorithm used to sign the process.This value can distinguish signatures when a file is signed multiple times by the same signer but with a different digest algorithm. type: keyword example: sha256 process.parent.code_signature.exists Boolean to capture if a signature is present. type: boolean example: true process.parent.code_signature.signing_id The identifier used to sign the process.This is used to identify the application manufactured by a software vendor. The field is relevant to Apple *OS only. type: keyword example: com.apple.xpc.proxy process.parent.code_signature.status Additional information about the certificate status.This is useful for logging cryptographic errors with the certificate validity or trust status. Leave unpopulated if the validity or trust of the certificate was unchecked. type: keyword example: ERROR_UNTRUSTED_ROOT process.parent.code_signature.subject_name Subject name of the code signer type: keyword example: Microsoft Corporation process.parent.code_signature.team_id The team identifier used to sign the process.This is used to identify the team or vendor of a software product. The field is relevant to Apple *OS only. type: keyword example: EQHXZ8M8AV process.parent.code_signature.timestamp Date and time when the code signature was generated and signed. type: date example: 2021-01-01T12:10:30Z process.parent.code_signature.trusted Stores the trust status of the certificate chain.Validating the trust of the certificate chain may be complicated, and this field should only be populated by tools that actively check the status. type: boolean example: true process.parent.code_signature.valid Boolean to capture if the digital signature is verified against the binary content.Leave unpopulated if a certificate was unchecked. type: boolean example: true process.parent.command_line Full command line that started the process, including the absolute path to the executable, and all arguments.Some arguments may be filtered to protect sensitive information. type: wildcard example: /usr/bin/ssh -l user 10.0.0.16 process.parent.command_line.text type: match_only_text process.parent.elf.architecture Machine architecture of the ELF file. type: keyword example: x86-64 process.parent.elf.byte_order Byte sequence of ELF file. type: keyword example: Little Endian process.parent.elf.cpu_type CPU type of the ELF file. type: keyword example: Intel process.parent.elf.creation_date Extracted when possible from the file’s metadata. Indicates when it was built or compiled. It can also be faked by malware creators. type: date process.parent.elf.exports List of exported element names and types. type: flattened process.parent.elf.header.abi_version Version of the ELF Application Binary Interface (ABI). type: keyword process.parent.elf.header.class Header class of the ELF file. type: keyword process.parent.elf.header.data Data table of the ELF header. type: keyword process.parent.elf.header.entrypoint Header entrypoint of the ELF file. type: long format: string process.parent.elf.header.object_version "0x1" for original ELF files. type: keyword process.parent.elf.header.os_abi Application Binary Interface (ABI) of the Linux OS. type: keyword process.parent.elf.header.type Header type of the ELF file. type: keyword process.parent.elf.header.version Version of the ELF header. type: keyword process.parent.elf.imports List of imported element names and types. type: flattened process.parent.elf.sections An array containing an object for each section of the ELF file.The keys that should be present in these objects are defined by sub-fields underneath elf.sections.* . type: nested process.parent.elf.sections.chi2 Chi-square probability distribution of the section. type: long format: number process.parent.elf.sections.entropy Shannon entropy calculation from the section. type: long format: number process.parent.elf.sections.flags ELF Section List flags. type: keyword process.parent.elf.sections.name ELF Section List name. type: keyword process.parent.elf.sections.physical_offset ELF Section List offset. type: keyword process.parent.elf.sections.physical_size ELF Section List physical size. type: long format: bytes process.parent.elf.sections.type ELF Section List type. type: keyword process.parent.elf.sections.virtual_address ELF Section List virtual address. type: long format: string process.parent.elf.sections.virtual_size ELF Section List virtual size. type: long format: string process.parent.elf.segments An array containing an object for each segment of the ELF file.The keys that should be present in these objects are defined by sub-fields underneath elf.segments.* . type: nested process.parent.elf.segments.sections ELF object segment sections. type: keyword process.parent.elf.segments.type ELF object segment type. type: keyword process.parent.elf.shared_libraries List of shared libraries used by this ELF object. type: keyword process.parent.elf.telfhash telfhash symbol hash for ELF file. type: keyword process.parent.end The time the process ended. type: date example: 2016-05-23T08:05:34.853Z process.parent.entity_id Unique identifier for the process.The implementation of this is specified by the data source, but some examples of what could be used here are a process-generated UUID, Sysmon Process GUIDs, or a hash of some uniquely identifying components of a process.Constructing a globally unique identifier is a common practice to mitigate PID reuse as well as to identify a specific process over time, across multiple monitored hosts. type: keyword example: c2c455d9f99375d process.parent.executable Absolute path to the process executable. type: keyword example: /usr/bin/ssh process.parent.executable.text type: match_only_text process.parent.exit_code The exit code of the process, if this is a termination event.The field should be absent if there is no exit code for the event (e.g. process start). type: long example: 137 process.parent.hash.md5 MD5 hash. type: keyword process.parent.hash.sha1 SHA1 hash. type: keyword process.parent.hash.sha256 SHA256 hash. type: keyword process.parent.hash.sha512 SHA512 hash. type: keyword process.parent.hash.ssdeep SSDEEP hash. type: keyword process.parent.name Process name.Sometimes called program name or similar. type: keyword example: ssh process.parent.name.text type: match_only_text process.parent.pe.architecture CPU architecture target for the file. type: keyword example: x64 process.parent.pe.company Internal company name of the file, provided at compile-time. type: keyword example: Microsoft Corporation process.parent.pe.description Internal description of the file, provided at compile-time. type: keyword example: Paint process.parent.pe.file_version Internal version of the file, provided at compile-time. type: keyword example: 6.3.9600.17415 process.parent.pe.imphash A hash of the imports in a PE file. An imphash — or import hash — can be used to fingerprint binaries even after recompilation or other code-level transformations have occurred, which would change more traditional hash values.Learn more at https://www.fireeye.com/blog/threat-research/2014/01/tracking-malware-import-hashing.html . type: keyword example: 0c6803c4e922103c4dca5963aad36ddf process.parent.pe.original_file_name Internal name of the file, provided at compile-time. type: keyword example: MSPAINT.EXE process.parent.pe.product Internal product name of the file, provided at compile-time. type: keyword example: Microsoft® Windows® Operating System process.parent.pgid Identifier of the group of processes the process belongs to. type: long format: string process.parent.pid Process id. type: long example: 4242 format: string process.parent.start The time the process started. type: date example: 2016-05-23T08:05:34.853Z process.parent.thread.id Thread ID. type: long example: 4242 format: string process.parent.thread.name Thread name. type: keyword example: thread-0 process.parent.title Process title.The proctitle, some times the same as process name. Can also be different: for example a browser setting its title to the web page currently opened. type: keyword process.parent.title.text type: match_only_text process.parent.uptime Seconds the process has been up. type: long example: 1325 process.parent.working_directory The working directory of the process. type: keyword example: /home/alice process.parent.working_directory.text type: match_only_text process.pe.architecture CPU architecture target for the file. type: keyword example: x64 process.pe.company Internal company name of the file, provided at compile-time. type: keyword example: Microsoft Corporation process.pe.description Internal description of the file, provided at compile-time. type: keyword example: Paint process.pe.file_version Internal version of the file, provided at compile-time. type: keyword example: 6.3.9600.17415 process.pe.imphash A hash of the imports in a PE file. An imphash — or import hash — can be used to fingerprint binaries even after recompilation or other code-level transformations have occurred, which would change more traditional hash values.Learn more at https://www.fireeye.com/blog/threat-research/2014/01/tracking-malware-import-hashing.html . type: keyword example: 0c6803c4e922103c4dca5963aad36ddf process.pe.original_file_name Internal name of the file, provided at compile-time. type: keyword example: MSPAINT.EXE process.pe.product Internal product name of the file, provided at compile-time. type: keyword example: Microsoft® Windows® Operating System process.pgid Identifier of the group of processes the process belongs to. type: long format: string process.pid Process id. type: long example: 4242 format: string process.start The time the process started. type: date example: 2016-05-23T08:05:34.853Z process.thread.id Thread ID. type: long example: 4242 format: string process.thread.name Thread name. type: keyword example: thread-0 process.title Process title.The proctitle, some times the same as process name. Can also be different: for example a browser setting its title to the web page currently opened. type: keyword process.title.text type: match_only_text process.uptime Seconds the process has been up. type: long example: 1325 process.working_directory The working directory of the process. type: keyword example: /home/alice process.working_directory.text type: match_only_text registry Fields related to Windows Registry operations. registry.data.bytes Original bytes written with base64 encoding.For Windows registry operations, such as SetValueEx and RegQueryValueEx, this corresponds to the data pointed by lp_data . This is optional but provides better recoverability and should be populated for REG_BINARY encoded values. type: keyword example: ZQBuAC0AVQBTAAAAZQBuAAAAAAA= registry.data.strings Content when writing string types.Populated as an array when writing string data to the registry. For single string registry types (REG_SZ, REG_EXPAND_SZ), this should be an array with one string. For sequences of string with REG_MULTI_SZ, this array will be variable length. For numeric data, such as REG_DWORD and REG_QWORD, this should be populated with the decimal representation (e.g "1" ). type: wildcard example: ["C:\rta\red_ttp\bin\myapp.exe"] registry.data.type Standard registry type for encoding contents type: keyword example: REG_SZ registry.hive Abbreviated name for the hive. type: keyword example: HKLM registry.key Hive-relative path of keys. type: keyword example: SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\winword.exe registry.path Full path, including hive, key and value type: keyword example: HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\winword.exe\Debugger registry.value Name of the value written. type: keyword example: Debugger related This field set is meant to facilitate pivoting around a piece of data.Some pieces of information can be seen in many places in an ECS event. To facilitate searching for them, store an array of all seen values to their corresponding field in related. .A concrete example is IP addresses, which can be under host, observer, source, destination, client, server, and network.forwarded_ip. If you append all IPs to related.ip , you can then search for a given IP trivially, no matter where it appeared, by querying related.ip:192.0.2.15 . related.hash All the hashes seen on your event. Populating this field, then using it to search for hashes can help in situations where you’re unsure what the hash algorithm is (and therefore which key name to search). type: keyword related.hosts All hostnames or other host identifiers seen on your event. Example identifiers include FQDNs, domain names, workstation names, or aliases. type: keyword related.ip All of the IPs seen on your event. type: ip related.user All the user names or other user identifiers seen on the event. type: keyword rule Rule fields are used to capture the specifics of any observer or agent rules that generate alerts or other notable events.Examples of data sources that would populate the rule fields include: network admission control platforms, network or host IDS/IPS, network firewalls, web application firewalls, url filters, endpoint detection and response (EDR) systems, etc. rule.author Name, organization, or pseudonym of the author or authors who created the rule used to generate this event. type: keyword example: ["Star-Lord"] rule.category A categorization value keyword used by the entity using the rule for detection of this event. type: keyword example: Attempted Information Leak rule.description The description of the rule generating the event. type: keyword example: Block requests to public DNS over HTTPS / TLS protocols rule.id A rule ID that is unique within the scope of an agent, observer, or other entity using the rule for detection of this event. type: keyword example: 101 rule.license Name of the license under which the rule used to generate this event is made available. type: keyword example: Apache 2.0 rule.name The name of the rule or signature generating the event. type: keyword example: BLOCK_DNS_over_TLS rule.reference Reference URL to additional information about the rule used to generate this event.The URL can point to the vendor’s documentation about the rule. If that’s not available, it can also be a link to a more general page describing this type of alert. type: keyword example: https://en.wikipedia.org/wiki/DNS_over_TLS rule.ruleset Name of the ruleset, policy, group, or parent category in which the rule used to generate this event is a member. type: keyword example: Standard_Protocol_Filters rule.uuid A rule ID that is unique within the scope of a set or group of agents, observers, or other entities using the rule for detection of this event. type: keyword example: 1100110011 rule.version The version / revision of the rule being used for analysis. type: keyword example: 1.1 server A Server is defined as the responder in a network connection for events regarding sessions, connections, or bidirectional flow records.For TCP events, the server is the receiver of the initial SYN packet(s) of the TCP connection. For other protocols, the server is generally the responder in the network transaction. Some systems actually use the term "responder" to refer the server in TCP connections. The server fields describe details about the system acting as the server in the network event. Server fields are usually populated in conjunction with client fields. Server fields are generally not populated for packet-level events.Client / server representations can add semantic context to an exchange, which is helpful to visualize the data in certain situations. If your context falls in that category, you should still ensure that source and destination are filled appropriately. server.address Some event server addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the .address field.Then it should be duplicated to .ip or .domain , depending on which one it is. type: keyword server.as.number Unique number allocated to the autonomous system. The autonomous system number (ASN) uniquely identifies each network on the Internet. type: long example: 15169 server.as.organization.name Organization name. type: keyword example: Google LLC server.as.organization.name.text type: match_only_text server.bytes Bytes sent from the server to the client. type: long example: 184 format: bytes server.domain The domain name of the server system.This value may be a host name, a fully qualified domain name, or another host naming format. The value may derive from the original event or be added from enrichment. type: keyword example: foo.example.com server.geo.city_name City name. type: keyword example: Montreal server.geo.continent_code Two-letter code representing continent’s name. type: keyword example: NA server.geo.continent_name Name of the continent. type: keyword example: North America server.geo.country_iso_code Country ISO code. type: keyword example: CA server.geo.country_name Country name. type: keyword example: Canada server.geo.location Longitude and latitude. type: geo_point example: { "lon": -73.614830, "lat": 45.505918 } server.geo.name User-defined description of a location, at the level of granularity they care about.Could be the name of their data centers, the floor number, if this describes a local physical entity, city names.Not typically used in automated geolocation. type: keyword example: boston-dc server.geo.postal_code Postal code associated with the location.Values appropriate for this field may also be known as a postcode or ZIP code and will vary widely from country to country. type: keyword example: 94040 server.geo.region_iso_code Region ISO code. type: keyword example: CA-QC server.geo.region_name Region name. type: keyword example: Quebec server.geo.timezone The time zone of the location, such as IANA time zone name. type: keyword example: America/Argentina/Buenos_Aires server.ip IP address of the server (IPv4 or IPv6). type: ip server.mac MAC address of the server.The notation format from RFC 7042 is suggested: Each octet (that is, 8-bit byte) is represented by two [uppercase] hexadecimal digits giving the value of the octet as an unsigned integer. Successive octets are separated by a hyphen. type: keyword example: 00-00-5E-00-53-23 server.nat.ip Translated ip of destination based NAT sessions (e.g. internet to private DMZ)Typically used with load balancers, firewalls, or routers. type: ip server.nat.port Translated port of destination based NAT sessions (e.g. internet to private DMZ)Typically used with load balancers, firewalls, or routers. type: long format: string server.packets Packets sent from the server to the client. type: long example: 12 server.port Port of the server. type: long format: string server.registered_domain The highest registered server domain, stripped of the subdomain.For example, the registered domain for "foo.example.com" is "example.com".This value can be determined precisely with a list like the public suffix list ( http://publicsuffix.org ). Trying to approximate this by simply taking the last two labels will not work well for TLDs such as "co.uk". type: keyword example: example.com server.subdomain The subdomain portion of a fully qualified domain name includes all of the names except the host name under the registered_domain. In a partially qualified domain, or if the the qualification level of the full name cannot be determined, subdomain contains all of the names below the registered domain.For example the subdomain portion of "www.east.mydomain.co.uk" is "east". If the domain has multiple levels of subdomain, such as "sub2.sub1.example.com", the subdomain field should contain "sub2.sub1", with no trailing period. type: keyword example: east server.top_level_domain The effective top level domain (eTLD), also known as the domain suffix, is the last part of the domain name. For example, the top level domain for example.com is "com".This value can be determined precisely with a list like the public suffix list ( http://publicsuffix.org ). Trying to approximate this by simply taking the last label will not work well for effective TLDs such as "co.uk". type: keyword example: co.uk server.user.domain Name of the directory the user is a member of.For example, an LDAP or Active Directory domain name. type: keyword server.user.email User email address. type: keyword server.user.full_name User’s full name, if available. type: keyword example: Albert Einstein server.user.full_name.text type: match_only_text server.user.group.domain Name of the directory the group is a member of.For example, an LDAP or Active Directory domain name. type: keyword server.user.group.id Unique identifier for the group on the system/platform. type: keyword server.user.group.name Name of the group. type: keyword server.user.hash Unique user hash to correlate information for a user in anonymized form.Useful if user.id or user.name contain confidential information and cannot be used. type: keyword server.user.id Unique identifier of the user. type: keyword example: S-1-5-21-202424912787-2692429404-2351956786-1000 server.user.name Short name or login of the user. type: keyword example: a.einstein server.user.name.text type: match_only_text server.user.roles Array of user roles at the time of the event. type: keyword example: ["kibana_admin", "reporting_user"] service The service fields describe the service for or from which the data was collected.These fields help you find and correlate logs for a specific service and version. service.address Address where data about this service was collected from.This should be a URI, network address (ipv4:port or [ipv6]:port) or a resource path (sockets). type: keyword example: 172.26.0.2:5432 service.environment Identifies the environment where the service is running.If the same service runs in different environments (production, staging, QA, development, etc.), the environment can identify other instances of the same service. Can also group services and applications from the same environment. type: keyword example: production service.ephemeral_id Ephemeral identifier of this service (if one exists).This id normally changes across restarts, but service.id does not. type: keyword example: 8a4f500f service.id Unique identifier of the running service. If the service is comprised of many nodes, the service.id should be the same for all nodes.This id should uniquely identify the service. This makes it possible to correlate logs and metrics for one specific service, no matter which particular node emitted the event.Note that if you need to see the events from one specific host of the service, you should filter on that host.name or host.id instead. type: keyword example: d37e5ebfe0ae6c4972dbe9f0174a1637bb8247f6 service.name Name of the service data is collected from.The name of the service is normally user given. This allows for distributed services that run on multiple hosts to correlate the related instances based on the name.In the case of Elasticsearch the service.name could contain the cluster name. For Beats the service.name is by default a copy of the service.type field if no name is specified. type: keyword example: elasticsearch-metrics service.node.name Name of a service node.This allows for two nodes of the same service running on the same host to be differentiated. Therefore, service.node.name should typically be unique across nodes of a given service.In the case of Elasticsearch, the service.node.name could contain the unique node name within the Elasticsearch cluster. In cases where the service doesn’t have the concept of a node name, the host name or container name can be used to distinguish running instances that make up this service. If those do not provide uniqueness (e.g. multiple instances of the service running on the same host) - the node name can be manually set. type: keyword example: instance-0000000016 service.origin.address Address where data about this service was collected from.This should be a URI, network address (ipv4:port or [ipv6]:port) or a resource path (sockets). type: keyword example: 172.26.0.2:5432 service.origin.environment Identifies the environment where the service is running.If the same service runs in different environments (production, staging, QA, development, etc.), the environment can identify other instances of the same service. Can also group services and applications from the same environment. type: keyword example: production service.origin.ephemeral_id Ephemeral identifier of this service (if one exists).This id normally changes across restarts, but service.id does not. type: keyword example: 8a4f500f service.origin.id Unique identifier of the running service. If the service is comprised of many nodes, the service.id should be the same for all nodes.This id should uniquely identify the service. This makes it possible to correlate logs and metrics for one specific service, no matter which particular node emitted the event.Note that if you need to see the events from one specific host of the service, you should filter on that host.name or host.id instead. type: keyword example: d37e5ebfe0ae6c4972dbe9f0174a1637bb8247f6 service.origin.name Name of the service data is collected from.The name of the service is normally user given. This allows for distributed services that run on multiple hosts to correlate the related instances based on the name.In the case of Elasticsearch the service.name could contain the cluster name. For Beats the service.name is by default a copy of the service.type field if no name is specified. type: keyword example: elasticsearch-metrics service.origin.node.name Name of a service node.This allows for two nodes of the same service running on the same host to be differentiated. Therefore, service.node.name should typically be unique across nodes of a given service.In the case of Elasticsearch, the service.node.name could contain the unique node name within the Elasticsearch cluster. In cases where the service doesn’t have the concept of a node name, the host name or container name can be used to distinguish running instances that make up this service. If those do not provide uniqueness (e.g. multiple instances of the service running on the same host) - the node name can be manually set. type: keyword example: instance-0000000016 service.origin.state Current state of the service. type: keyword service.origin.type The type of the service data is collected from.The type can be used to group and correlate logs and metrics from one service type.Example: If logs or metrics are collected from Elasticsearch, service.type would be elasticsearch . type: keyword example: elasticsearch service.origin.version Version of the service the data was collected from.This allows to look at a data set only for a specific version of a service. type: keyword example: 3.2.4 service.state Current state of the service. type: keyword service.target.address Address where data about this service was collected from.This should be a URI, network address (ipv4:port or [ipv6]:port) or a resource path (sockets). type: keyword example: 172.26.0.2:5432 service.target.environment Identifies the environment where the service is running.If the same service runs in different environments (production, staging, QA, development, etc.), the environment can identify other instances of the same service. Can also group services and applications from the same environment. type: keyword example: production service.target.ephemeral_id Ephemeral identifier of this service (if one exists).This id normally changes across restarts, but service.id does not. type: keyword example: 8a4f500f service.target.id Unique identifier of the running service. If the service is comprised of many nodes, the service.id should be the same for all nodes.This id should uniquely identify the service. This makes it possible to correlate logs and metrics for one specific service, no matter which particular node emitted the event.Note that if you need to see the events from one specific host of the service, you should filter on that host.name or host.id instead. type: keyword example: d37e5ebfe0ae6c4972dbe9f0174a1637bb8247f6 service.target.name Name of the service data is collected from.The name of the service is normally user given. This allows for distributed services that run on multiple hosts to correlate the related instances based on the name.In the case of Elasticsearch the service.name could contain the cluster name. For Beats the service.name is by default a copy of the service.type field if no name is specified. type: keyword example: elasticsearch-metrics service.target.node.name Name of a service node.This allows for two nodes of the same service running on the same host to be differentiated. Therefore, service.node.name should typically be unique across nodes of a given service.In the case of Elasticsearch, the service.node.name could contain the unique node name within the Elasticsearch cluster. In cases where the service doesn’t have the concept of a node name, the host name or container name can be used to distinguish running instances that make up this service. If those do not provide uniqueness (e.g. multiple instances of the service running on the same host) - the node name can be manually set. type: keyword example: instance-0000000016 service.target.state Current state of the service. type: keyword service.target.type The type of the service data is collected from.The type can be used to group and correlate logs and metrics from one service type.Example: If logs or metrics are collected from Elasticsearch, service.type would be elasticsearch . type: keyword example: elasticsearch service.target.version Version of the service the data was collected from.This allows to look at a data set only for a specific version of a service. type: keyword example: 3.2.4 service.type The type of the service data is collected from.The type can be used to group and correlate logs and metrics from one service type.Example: If logs or metrics are collected from Elasticsearch, service.type would be elasticsearch . type: keyword example: elasticsearch service.version Version of the service the data was collected from.This allows to look at a data set only for a specific version of a service. type: keyword example: 3.2.4 source Source fields capture details about the sender of a network exchange/packet. These fields are populated from a network event, packet, or other event containing details of a network transaction.Source fields are usually populated in conjunction with destination fields. The source and destination fields are considered the baseline and should always be filled if an event contains source and destination details from a network transaction. If the event also contains identification of the client and server roles, then the client and server fields should also be populated. source.address Some event source addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the .address field.Then it should be duplicated to .ip or .domain , depending on which one it is. type: keyword source.as.number Unique number allocated to the autonomous system. The autonomous system number (ASN) uniquely identifies each network on the Internet. type: long example: 15169 source.as.organization.name Organization name. type: keyword example: Google LLC source.as.organization.name.text type: match_only_text source.bytes Bytes sent from the source to the destination. type: long example: 184 format: bytes source.domain The domain name of the source system.This value may be a host name, a fully qualified domain name, or another host naming format. The value may derive from the original event or be added from enrichment. type: keyword example: foo.example.com source.geo.city_name City name. type: keyword example: Montreal source.geo.continent_code Two-letter code representing continent’s name. type: keyword example: NA source.geo.continent_name Name of the continent. type: keyword example: North America source.geo.country_iso_code Country ISO code. type: keyword example: CA source.geo.country_name Country name. type: keyword example: Canada source.geo.location Longitude and latitude. type: geo_point example: { "lon": -73.614830, "lat": 45.505918 } source.geo.name User-defined description of a location, at the level of granularity they care about.Could be the name of their data centers, the floor number, if this describes a local physical entity, city names.Not typically used in automated geolocation. type: keyword example: boston-dc source.geo.postal_code Postal code associated with the location.Values appropriate for this field may also be known as a postcode or ZIP code and will vary widely from country to country. type: keyword example: 94040 source.geo.region_iso_code Region ISO code. type: keyword example: CA-QC source.geo.region_name Region name. type: keyword example: Quebec source.geo.timezone The time zone of the location, such as IANA time zone name. type: keyword example: America/Argentina/Buenos_Aires source.ip IP address of the source (IPv4 or IPv6). type: ip source.mac MAC address of the source.The notation format from RFC 7042 is suggested: Each octet (that is, 8-bit byte) is represented by two [uppercase] hexadecimal digits giving the value of the octet as an unsigned integer. Successive octets are separated by a hyphen. type: keyword example: 00-00-5E-00-53-23 source.nat.ip Translated ip of source based NAT sessions (e.g. internal client to internet)Typically connections traversing load balancers, firewalls, or routers. type: ip source.nat.port Translated port of source based NAT sessions. (e.g. internal client to internet)Typically used with load balancers, firewalls, or routers. type: long format: string source.packets Packets sent from the source to the destination. type: long example: 12 source.port Port of the source. type: long format: string source.registered_domain The highest registered source domain, stripped of the subdomain.For example, the registered domain for "foo.example.com" is "example.com".This value can be determined precisely with a list like the public suffix list ( http://publicsuffix.org ). Trying to approximate this by simply taking the last two labels will not work well for TLDs such as "co.uk". type: keyword example: example.com source.subdomain The subdomain portion of a fully qualified domain name includes all of the names except the host name under the registered_domain. In a partially qualified domain, or if the the qualification level of the full name cannot be determined, subdomain contains all of the names below the registered domain.For example the subdomain portion of "www.east.mydomain.co.uk" is "east". If the domain has multiple levels of subdomain, such as "sub2.sub1.example.com", the subdomain field should contain "sub2.sub1", with no trailing period. type: keyword example: east source.top_level_domain The effective top level domain (eTLD), also known as the domain suffix, is the last part of the domain name. For example, the top level domain for example.com is "com".This value can be determined precisely with a list like the public suffix list ( http://publicsuffix.org ). Trying to approximate this by simply taking the last label will not work well for effective TLDs such as "co.uk". type: keyword example: co.uk source.user.domain Name of the directory the user is a member of.For example, an LDAP or Active Directory domain name. type: keyword source.user.email User email address. type: keyword source.user.full_name User’s full name, if available. type: keyword example: Albert Einstein source.user.full_name.text type: match_only_text source.user.group.domain Name of the directory the group is a member of.For example, an LDAP or Active Directory domain name. type: keyword source.user.group.id Unique identifier for the group on the system/platform. type: keyword source.user.group.name Name of the group. type: keyword source.user.hash Unique user hash to correlate information for a user in anonymized form.Useful if user.id or user.name contain confidential information and cannot be used. type: keyword source.user.id Unique identifier of the user. type: keyword example: S-1-5-21-202424912787-2692429404-2351956786-1000 source.user.name Short name or login of the user. type: keyword example: a.einstein source.user.name.text type: match_only_text source.user.roles Array of user roles at the time of the event. type: keyword example: ["kibana_admin", "reporting_user"] threat Fields to classify events and alerts according to a threat taxonomy such as the MITRE ATT&CK® framework.These fields are for users to classify alerts from all of their sources (e.g. IDS, NGFW, etc.) within a common taxonomy. The threat.tactic.* fields are meant to capture the high level category of the threat (e.g. "impact"). The threat.technique.* fields are meant to capture which kind of approach is used by this detected threat, to accomplish the goal (e.g. "endpoint denial of service"). threat.enrichments A list of associated indicators objects enriching the event, and the context of that association/enrichment. type: nested threat.enrichments.indicator Object containing associated indicators enriching the event. type: object threat.enrichments.indicator.as.number Unique number allocated to the autonomous system. The autonomous system number (ASN) uniquely identifies each network on the Internet. type: long example: 15169 threat.enrichments.indicator.as.organization.name Organization name. type: keyword example: Google LLC threat.enrichments.indicator.as.organization.name.text type: match_only_text threat.enrichments.indicator.confidence Identifies the vendor-neutral confidence rating using the None/Low/Medium/High scale defined in Appendix A of the STIX 2.1 framework. Vendor-specific confidence scales may be added as custom fields.Expected values are: * Not Specified * None * Low * Medium * High type: keyword example: Medium threat.enrichments.indicator.description Describes the type of action conducted by the threat. type: keyword example: IP x.x.x.x was observed delivering the Angler EK. threat.enrichments.indicator.email.address Identifies a threat indicator as an email address (irrespective of direction). type: keyword example: phish@example.com threat.enrichments.indicator.file.accessed Last time the file was accessed.Note that not all filesystems keep track of access time. type: date threat.enrichments.indicator.file.attributes Array of file attributes.Attributes names will vary by platform. Here’s a non-exhaustive list of values that are expected in this field: archive, compressed, directory, encrypted, execute, hidden, read, readonly, system, write. type: keyword example: ["readonly", "system"] threat.enrichments.indicator.file.code_signature.digest_algorithm The hashing algorithm used to sign the process.This value can distinguish signatures when a file is signed multiple times by the same signer but with a different digest algorithm. type: keyword example: sha256 threat.enrichments.indicator.file.code_signature.exists Boolean to capture if a signature is present. type: boolean example: true threat.enrichments.indicator.file.code_signature.signing_id The identifier used to sign the process.This is used to identify the application manufactured by a software vendor. The field is relevant to Apple *OS only. type: keyword example: com.apple.xpc.proxy threat.enrichments.indicator.file.code_signature.status Additional information about the certificate status.This is useful for logging cryptographic errors with the certificate validity or trust status. Leave unpopulated if the validity or trust of the certificate was unchecked. type: keyword example: ERROR_UNTRUSTED_ROOT threat.enrichments.indicator.file.code_signature.subject_name Subject name of the code signer type: keyword example: Microsoft Corporation threat.enrichments.indicator.file.code_signature.team_id The team identifier used to sign the process.This is used to identify the team or vendor of a software product. The field is relevant to Apple *OS only. type: keyword example: EQHXZ8M8AV threat.enrichments.indicator.file.code_signature.timestamp Date and time when the code signature was generated and signed. type: date example: 2021-01-01T12:10:30Z threat.enrichments.indicator.file.code_signature.trusted Stores the trust status of the certificate chain.Validating the trust of the certificate chain may be complicated, and this field should only be populated by tools that actively check the status. type: boolean example: true threat.enrichments.indicator.file.code_signature.valid Boolean to capture if the digital signature is verified against the binary content.Leave unpopulated if a certificate was unchecked. type: boolean example: true threat.enrichments.indicator.file.created File creation time.Note that not all filesystems store the creation time. type: date threat.enrichments.indicator.file.ctime Last time the file attributes or metadata changed.Note that changes to the file content will update mtime . This implies ctime will be adjusted at the same time, since mtime is an attribute of the file. type: date threat.enrichments.indicator.file.device Device that is the source of the file. type: keyword example: sda threat.enrichments.indicator.file.directory Directory where the file is located. It should include the drive letter, when appropriate. type: keyword example: /home/alice threat.enrichments.indicator.file.drive_letter Drive letter where the file is located. This field is only relevant on Windows.The value should be uppercase, and not include the colon. type: keyword example: C threat.enrichments.indicator.file.elf.architecture Machine architecture of the ELF file. type: keyword example: x86-64 threat.enrichments.indicator.file.elf.byte_order Byte sequence of ELF file. type: keyword example: Little Endian threat.enrichments.indicator.file.elf.cpu_type CPU type of the ELF file. type: keyword example: Intel threat.enrichments.indicator.file.elf.creation_date Extracted when possible from the file’s metadata. Indicates when it was built or compiled. It can also be faked by malware creators. type: date threat.enrichments.indicator.file.elf.exports List of exported element names and types. type: flattened threat.enrichments.indicator.file.elf.header.abi_version Version of the ELF Application Binary Interface (ABI). type: keyword threat.enrichments.indicator.file.elf.header.class Header class of the ELF file. type: keyword threat.enrichments.indicator.file.elf.header.data Data table of the ELF header. type: keyword threat.enrichments.indicator.file.elf.header.entrypoint Header entrypoint of the ELF file. type: long format: string threat.enrichments.indicator.file.elf.header.object_version "0x1" for original ELF files. type: keyword threat.enrichments.indicator.file.elf.header.os_abi Application Binary Interface (ABI) of the Linux OS. type: keyword threat.enrichments.indicator.file.elf.header.type Header type of the ELF file. type: keyword threat.enrichments.indicator.file.elf.header.version Version of the ELF header. type: keyword threat.enrichments.indicator.file.elf.imports List of imported element names and types. type: flattened threat.enrichments.indicator.file.elf.sections An array containing an object for each section of the ELF file.The keys that should be present in these objects are defined by sub-fields underneath elf.sections.* . type: nested threat.enrichments.indicator.file.elf.sections.chi2 Chi-square probability distribution of the section. type: long format: number threat.enrichments.indicator.file.elf.sections.entropy Shannon entropy calculation from the section. type: long format: number threat.enrichments.indicator.file.elf.sections.flags ELF Section List flags. type: keyword threat.enrichments.indicator.file.elf.sections.name ELF Section List name. type: keyword threat.enrichments.indicator.file.elf.sections.physical_offset ELF Section List offset. type: keyword threat.enrichments.indicator.file.elf.sections.physical_size ELF Section List physical size. type: long format: bytes threat.enrichments.indicator.file.elf.sections.type ELF Section List type. type: keyword threat.enrichments.indicator.file.elf.sections.virtual_address ELF Section List virtual address. type: long format: string threat.enrichments.indicator.file.elf.sections.virtual_size ELF Section List virtual size. type: long format: string threat.enrichments.indicator.file.elf.segments An array containing an object for each segment of the ELF file.The keys that should be present in these objects are defined by sub-fields underneath elf.segments.* . type: nested threat.enrichments.indicator.file.elf.segments.sections ELF object segment sections. type: keyword threat.enrichments.indicator.file.elf.segments.type ELF object segment type. type: keyword threat.enrichments.indicator.file.elf.shared_libraries List of shared libraries used by this ELF object. type: keyword threat.enrichments.indicator.file.elf.telfhash telfhash symbol hash for ELF file. type: keyword threat.enrichments.indicator.file.extension File extension, excluding the leading dot.Note that when the file name has multiple extensions (example.tar.gz), only the last one should be captured ("gz", not "tar.gz"). type: keyword example: png threat.enrichments.indicator.file.fork_name A fork is additional data associated with a filesystem object.On Linux, a resource fork is used to store additional data with a filesystem object. A file always has at least one fork for the data portion, and additional forks may exist.On NTFS, this is analogous to an Alternate Data Stream (ADS), and the default data stream for a file is just called $DATA. Zone.Identifier is commonly used by Windows to track contents downloaded from the Internet. An ADS is typically of the form: C:\path\to\filename.extension:some_fork_name , and some_fork_name is the value that should populate fork_name . filename.extension should populate file.name , and extension should populate file.extension . The full path, file.path , will include the fork name. type: keyword example: Zone.Identifer threat.enrichments.indicator.file.gid Primary group ID (GID) of the file. type: keyword example: 1001 threat.enrichments.indicator.file.group Primary group name of the file. type: keyword example: alice threat.enrichments.indicator.file.hash.md5 MD5 hash. type: keyword threat.enrichments.indicator.file.hash.sha1 SHA1 hash. type: keyword threat.enrichments.indicator.file.hash.sha256 SHA256 hash. type: keyword threat.enrichments.indicator.file.hash.sha512 SHA512 hash. type: keyword threat.enrichments.indicator.file.hash.ssdeep SSDEEP hash. type: keyword threat.enrichments.indicator.file.inode Inode representing the file in the filesystem. type: keyword example: 256383 threat.enrichments.indicator.file.mime_type MIME type should identify the format of the file or stream of bytes using IANA official types , where possible. When more than one type is applicable, the most specific type should be used. type: keyword threat.enrichments.indicator.file.mode Mode of the file in octal representation. type: keyword example: 0640 threat.enrichments.indicator.file.mtime Last time the file content was modified. type: date threat.enrichments.indicator.file.name Name of the file including the extension, without the directory. type: keyword example: example.png threat.enrichments.indicator.file.owner File owner’s username. type: keyword example: alice threat.enrichments.indicator.file.path Full path to the file, including the file name. It should include the drive letter, when appropriate. type: keyword example: /home/alice/example.png threat.enrichments.indicator.file.path.text type: match_only_text threat.enrichments.indicator.file.pe.architecture CPU architecture target for the file. type: keyword example: x64 threat.enrichments.indicator.file.pe.company Internal company name of the file, provided at compile-time. type: keyword example: Microsoft Corporation threat.enrichments.indicator.file.pe.description Internal description of the file, provided at compile-time. type: keyword example: Paint threat.enrichments.indicator.file.pe.file_version Internal version of the file, provided at compile-time. type: keyword example: 6.3.9600.17415 threat.enrichments.indicator.file.pe.imphash A hash of the imports in a PE file. An imphash — or import hash — can be used to fingerprint binaries even after recompilation or other code-level transformations have occurred, which would change more traditional hash values.Learn more at https://www.fireeye.com/blog/threat-research/2014/01/tracking-malware-import-hashing.html . type: keyword example: 0c6803c4e922103c4dca5963aad36ddf threat.enrichments.indicator.file.pe.original_file_name Internal name of the file, provided at compile-time. type: keyword example: MSPAINT.EXE threat.enrichments.indicator.file.pe.product Internal product name of the file, provided at compile-time. type: keyword example: Microsoft® Windows® Operating System threat.enrichments.indicator.file.size File size in bytes.Only relevant when file.type is "file". type: long example: 16384 threat.enrichments.indicator.file.target_path Target path for symlinks. type: keyword threat.enrichments.indicator.file.target_path.text type: match_only_text threat.enrichments.indicator.file.type File type (file, dir, or symlink). type: keyword example: file threat.enrichments.indicator.file.uid The user ID (UID) or security identifier (SID) of the file owner. type: keyword example: 1001 threat.enrichments.indicator.file.x509.alternative_names List of subject alternative names (SAN). Name types vary by certificate authority and certificate type but commonly contain IP addresses, DNS names (and wildcards), and email addresses. type: keyword example: *.elastic.co threat.enrichments.indicator.file.x509.issuer.common_name List of common name (CN) of issuing certificate authority. type: keyword example: Example SHA2 High Assurance Server CA threat.enrichments.indicator.file.x509.issuer.country List of country © codes type: keyword example: US threat.enrichments.indicator.file.x509.issuer.distinguished_name Distinguished name (DN) of issuing certificate authority. type: keyword example: C=US, O=Example Inc, OU=www.example.com, CN=Example SHA2 High Assurance Server CA threat.enrichments.indicator.file.x509.issuer.locality List of locality names (L) type: keyword example: Mountain View threat.enrichments.indicator.file.x509.issuer.organization List of organizations (O) of issuing certificate authority. type: keyword example: Example Inc threat.enrichments.indicator.file.x509.issuer.organizational_unit List of organizational units (OU) of issuing certificate authority. type: keyword example: www.example.com threat.enrichments.indicator.file.x509.issuer.state_or_province List of state or province names (ST, S, or P) type: keyword example: California threat.enrichments.indicator.file.x509.not_after Time at which the certificate is no longer considered valid. type: date example: 2020-07-16 03:15:39+00:00 threat.enrichments.indicator.file.x509.not_before Time at which the certificate is first considered valid. type: date example: 2019-08-16 01:40:25+00:00 threat.enrichments.indicator.file.x509.public_key_algorithm Algorithm used to generate the public key. type: keyword example: RSA threat.enrichments.indicator.file.x509.public_key_curve The curve used by the elliptic curve public key algorithm. This is algorithm specific. type: keyword example: nistp521 threat.enrichments.indicator.file.x509.public_key_exponent Exponent used to derive the public key. This is algorithm specific. type: long example: 65537 Field is not indexed. threat.enrichments.indicator.file.x509.public_key_size The size of the public key space in bits. type: long example: 2048 threat.enrichments.indicator.file.x509.serial_number Unique serial number issued by the certificate authority. For consistency, if this value is alphanumeric, it should be formatted without colons and uppercase characters. type: keyword example: 55FBB9C7DEBF09809D12CCAA threat.enrichments.indicator.file.x509.signature_algorithm Identifier for certificate signature algorithm. We recommend using names found in Go Lang Crypto library. See https://github.com/golang/go/blob/go1.14/src/crypto/x509/x509.go#L337-L353 . type: keyword example: SHA256-RSA threat.enrichments.indicator.file.x509.subject.common_name List of common names (CN) of subject. type: keyword example: shared.global.example.net threat.enrichments.indicator.file.x509.subject.country List of country © code type: keyword example: US threat.enrichments.indicator.file.x509.subject.distinguished_name Distinguished name (DN) of the certificate subject entity. type: keyword example: C=US, ST=California, L=San Francisco, O=Example, Inc., CN=shared.global.example.net threat.enrichments.indicator.file.x509.subject.locality List of locality names (L) type: keyword example: San Francisco threat.enrichments.indicator.file.x509.subject.organization List of organizations (O) of subject. type: keyword example: Example, Inc. threat.enrichments.indicator.file.x509.subject.organizational_unit List of organizational units (OU) of subject. type: keyword threat.enrichments.indicator.file.x509.subject.state_or_province List of state or province names (ST, S, or P) type: keyword example: California threat.enrichments.indicator.file.x509.version_number Version of x509 format. type: keyword example: 3 threat.enrichments.indicator.first_seen The date and time when intelligence source first reported sighting this indicator. type: date example: 2020-11-05T17:25:47.000Z threat.enrichments.indicator.geo.city_name City name. type: keyword example: Montreal threat.enrichments.indicator.geo.continent_code Two-letter code representing continent’s name. type: keyword example: NA threat.enrichments.indicator.geo.continent_name Name of the continent. type: keyword example: North America threat.enrichments.indicator.geo.country_iso_code Country ISO code. type: keyword example: CA threat.enrichments.indicator.geo.country_name Country name. type: keyword example: Canada threat.enrichments.indicator.geo.location Longitude and latitude. type: geo_point example: { "lon": -73.614830, "lat": 45.505918 } threat.enrichments.indicator.geo.name User-defined description of a location, at the level of granularity they care about.Could be the name of their data centers, the floor number, if this describes a local physical entity, city names.Not typically used in automated geolocation. type: keyword example: boston-dc threat.enrichments.indicator.geo.postal_code Postal code associated with the location.Values appropriate for this field may also be known as a postcode or ZIP code and will vary widely from country to country. type: keyword example: 94040 threat.enrichments.indicator.geo.region_iso_code Region ISO code. type: keyword example: CA-QC threat.enrichments.indicator.geo.region_name Region name. type: keyword example: Quebec threat.enrichments.indicator.geo.timezone The time zone of the location, such as IANA time zone name. type: keyword example: America/Argentina/Buenos_Aires threat.enrichments.indicator.ip Identifies a threat indicator as an IP address (irrespective of direction). type: ip example: 1.2.3.4 threat.enrichments.indicator.last_seen The date and time when intelligence source last reported sighting this indicator. type: date example: 2020-11-05T17:25:47.000Z threat.enrichments.indicator.marking.tlp Traffic Light Protocol sharing markings. Recommended values are: * WHITE * GREEN * AMBER * RED type: keyword example: White threat.enrichments.indicator.modified_at The date and time when intelligence source last modified information for this indicator. type: date example: 2020-11-05T17:25:47.000Z threat.enrichments.indicator.port Identifies a threat indicator as a port number (irrespective of direction). type: long example: 443 threat.enrichments.indicator.provider The name of the indicator’s provider. type: keyword example: lrz_urlhaus threat.enrichments.indicator.reference Reference URL linking to additional information about this indicator. type: keyword example: https://system.example.com/indicator/0001234 threat.enrichments.indicator.registry.data.bytes Original bytes written with base64 encoding.For Windows registry operations, such as SetValueEx and RegQueryValueEx, this corresponds to the data pointed by lp_data . This is optional but provides better recoverability and should be populated for REG_BINARY encoded values. type: keyword example: ZQBuAC0AVQBTAAAAZQBuAAAAAAA= threat.enrichments.indicator.registry.data.strings Content when writing string types.Populated as an array when writing string data to the registry. For single string registry types (REG_SZ, REG_EXPAND_SZ), this should be an array with one string. For sequences of string with REG_MULTI_SZ, this array will be variable length. For numeric data, such as REG_DWORD and REG_QWORD, this should be populated with the decimal representation (e.g "1" ). type: wildcard example: ["C:\rta\red_ttp\bin\myapp.exe"] threat.enrichments.indicator.registry.data.type Standard registry type for encoding contents type: keyword example: REG_SZ threat.enrichments.indicator.registry.hive Abbreviated name for the hive. type: keyword example: HKLM threat.enrichments.indicator.registry.key Hive-relative path of keys. type: keyword example: SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\winword.exe threat.enrichments.indicator.registry.path Full path, including hive, key and value type: keyword example: HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\winword.exe\Debugger threat.enrichments.indicator.registry.value Name of the value written. type: keyword example: Debugger threat.enrichments.indicator.scanner_stats Count of AV/EDR vendors that successfully detected malicious file or URL. type: long example: 4 threat.enrichments.indicator.sightings Number of times this indicator was observed conducting threat activity. type: long example: 20 threat.enrichments.indicator.type Type of indicator as represented by Cyber Observable in STIX 2.0. Recommended values: * autonomous-system * artifact * directory * domain-name * email-addr * file * ipv4-addr * ipv6-addr * mac-addr * mutex * port * process * software * url * user-account * windows-registry-key * x509-certificate type: keyword example: ipv4-addr threat.enrichments.indicator.url.domain Domain of the url, such as "www.elastic.co".In some cases a URL may refer to an IP and/or port directly, without a domain name. In this case, the IP address would go to the domain field.If the URL contains a literal IPv6 address enclosed by [ and ] (IETF RFC 2732), the [ and ] characters should also be captured in the domain field. type: keyword example: www.elastic.co threat.enrichments.indicator.url.extension The field contains the file extension from the original request url, excluding the leading dot.The file extension is only set if it exists, as not every url has a file extension.The leading period must not be included. For example, the value must be "png", not ".png".Note that when the file name has multiple extensions (example.tar.gz), only the last one should be captured ("gz", not "tar.gz"). type: keyword example: png threat.enrichments.indicator.url.fragment Portion of the url after the # , such as "top".The # is not part of the fragment. type: keyword threat.enrichments.indicator.url.full If full URLs are important to your use case, they should be stored in url.full , whether this field is reconstructed or present in the event source. type: wildcard example: https://www.elastic.co:443/search?q=elasticsearch#top threat.enrichments.indicator.url.full.text type: match_only_text threat.enrichments.indicator.url.original Unmodified original url as seen in the event source.Note that in network monitoring, the observed URL may be a full URL, whereas in access logs, the URL is often just represented as a path.This field is meant to represent the URL as it was observed, complete or not. type: wildcard example: https://www.elastic.co:443/search?q=elasticsearch#top or /search?q=elasticsearch threat.enrichments.indicator.url.original.text type: match_only_text threat.enrichments.indicator.url.password Password of the request. type: keyword threat.enrichments.indicator.url.path Path of the request, such as "/search". type: wildcard threat.enrichments.indicator.url.port Port of the request, such as 443. type: long example: 443 format: string threat.enrichments.indicator.url.query The query field describes the query string of the request, such as "q=elasticsearch".The ? is excluded from the query string. If a URL contains no ? , there is no query field. If there is a ? but no query, the query field exists with an empty string. The exists query can be used to differentiate between the two cases. type: keyword threat.enrichments.indicator.url.registered_domain The highest registered url domain, stripped of the subdomain.For example, the registered domain for "foo.example.com" is "example.com".This value can be determined precisely with a list like the public suffix list ( http://publicsuffix.org ). Trying to approximate this by simply taking the last two labels will not work well for TLDs such as "co.uk". type: keyword example: example.com threat.enrichments.indicator.url.scheme Scheme of the request, such as "https".Note: The : is not part of the scheme. type: keyword example: https threat.enrichments.indicator.url.subdomain The subdomain portion of a fully qualified domain name includes all of the names except the host name under the registered_domain. In a partially qualified domain, or if the the qualification level of the full name cannot be determined, subdomain contains all of the names below the registered domain.For example the subdomain portion of "www.east.mydomain.co.uk" is "east". If the domain has multiple levels of subdomain, such as "sub2.sub1.example.com", the subdomain field should contain "sub2.sub1", with no trailing period. type: keyword example: east threat.enrichments.indicator.url.top_level_domain The effective top level domain (eTLD), also known as the domain suffix, is the last part of the domain name. For example, the top level domain for example.com is "com".This value can be determined precisely with a list like the public suffix list ( http://publicsuffix.org ). Trying to approximate this by simply taking the last label will not work well for effective TLDs such as "co.uk". type: keyword example: co.uk threat.enrichments.indicator.url.username Username of the request. type: keyword threat.enrichments.indicator.x509.alternative_names List of subject alternative names (SAN). Name types vary by certificate authority and certificate type but commonly contain IP addresses, DNS names (and wildcards), and email addresses. type: keyword example: *.elastic.co threat.enrichments.indicator.x509.issuer.common_name List of common name (CN) of issuing certificate authority. type: keyword example: Example SHA2 High Assurance Server CA threat.enrichments.indicator.x509.issuer.country List of country © codes type: keyword example: US threat.enrichments.indicator.x509.issuer.distinguished_name Distinguished name (DN) of issuing certificate authority. type: keyword example: C=US, O=Example Inc, OU=www.example.com, CN=Example SHA2 High Assurance Server CA threat.enrichments.indicator.x509.issuer.locality List of locality names (L) type: keyword example: Mountain View threat.enrichments.indicator.x509.issuer.organization List of organizations (O) of issuing certificate authority. type: keyword example: Example Inc threat.enrichments.indicator.x509.issuer.organizational_unit List of organizational units (OU) of issuing certificate authority. type: keyword example: www.example.com threat.enrichments.indicator.x509.issuer.state_or_province List of state or province names (ST, S, or P) type: keyword example: California threat.enrichments.indicator.x509.not_after Time at which the certificate is no longer considered valid. type: date example: 2020-07-16 03:15:39+00:00 threat.enrichments.indicator.x509.not_before Time at which the certificate is first considered valid. type: date example: 2019-08-16 01:40:25+00:00 threat.enrichments.indicator.x509.public_key_algorithm Algorithm used to generate the public key. type: keyword example: RSA threat.enrichments.indicator.x509.public_key_curve The curve used by the elliptic curve public key algorithm. This is algorithm specific. type: keyword example: nistp521 threat.enrichments.indicator.x509.public_key_exponent Exponent used to derive the public key. This is algorithm specific. type: long example: 65537 Field is not indexed. threat.enrichments.indicator.x509.public_key_size The size of the public key space in bits. type: long example: 2048 threat.enrichments.indicator.x509.serial_number Unique serial number issued by the certificate authority. For consistency, if this value is alphanumeric, it should be formatted without colons and uppercase characters. type: keyword example: 55FBB9C7DEBF09809D12CCAA threat.enrichments.indicator.x509.signature_algorithm Identifier for certificate signature algorithm. We recommend using names found in Go Lang Crypto library. See https://github.com/golang/go/blob/go1.14/src/crypto/x509/x509.go#L337-L353 . type: keyword example: SHA256-RSA threat.enrichments.indicator.x509.subject.common_name List of common names (CN) of subject. type: keyword example: shared.global.example.net threat.enrichments.indicator.x509.subject.country List of country © code type: keyword example: US threat.enrichments.indicator.x509.subject.distinguished_name Distinguished name (DN) of the certificate subject entity. type: keyword example: C=US, ST=California, L=San Francisco, O=Example, Inc., CN=shared.global.example.net threat.enrichments.indicator.x509.subject.locality List of locality names (L) type: keyword example: San Francisco threat.enrichments.indicator.x509.subject.organization List of organizations (O) of subject. type: keyword example: Example, Inc. threat.enrichments.indicator.x509.subject.organizational_unit List of organizational units (OU) of subject. type: keyword threat.enrichments.indicator.x509.subject.state_or_province List of state or province names (ST, S, or P) type: keyword example: California threat.enrichments.indicator.x509.version_number Version of x509 format. type: keyword example: 3 threat.enrichments.matched.atomic Identifies the atomic indicator value that matched a local environment endpoint or network event. type: keyword example: bad-domain.com threat.enrichments.matched.field Identifies the field of the atomic indicator that matched a local environment endpoint or network event. type: keyword example: file.hash.sha256 threat.enrichments.matched.id Identifies the _id of the indicator document enriching the event. type: keyword example: ff93aee5-86a1-4a61-b0e6-0cdc313d01b5 threat.enrichments.matched.index Identifies the _index of the indicator document enriching the event. type: keyword example: filebeat-8.0.0-2021.05.23-000011 threat.enrichments.matched.type Identifies the type of match that caused the event to be enriched with the given indicator type: keyword example: indicator_match_rule threat.framework Name of the threat framework used to further categorize and classify the tactic and technique of the reported threat. Framework classification can be provided by detecting systems, evaluated at ingest time, or retrospectively tagged to events. type: keyword example: MITRE ATT&CK threat.group.alias The alias(es) of the group for a set of related intrusion activity that are tracked by a common name in the security community.While not required, you can use a MITRE ATT&CK® group alias(es). type: keyword example: [ "Magecart Group 6" ] threat.group.id The id of the group for a set of related intrusion activity that are tracked by a common name in the security community.While not required, you can use a MITRE ATT&CK® group id. type: keyword example: G0037 threat.group.name The name of the group for a set of related intrusion activity that are tracked by a common name in the security community.While not required, you can use a MITRE ATT&CK® group name. type: keyword example: FIN6 threat.group.reference The reference URL of the group for a set of related intrusion activity that are tracked by a common name in the security community.While not required, you can use a MITRE ATT&CK® group reference URL. type: keyword example: https://attack.mitre.org/groups/G0037/ threat.indicator.as.number Unique number allocated to the autonomous system. The autonomous system number (ASN) uniquely identifies each network on the Internet. type: long example: 15169 threat.indicator.as.organization.name Organization name. type: keyword example: Google LLC threat.indicator.as.organization.name.text type: match_only_text threat.indicator.confidence Identifies the vendor-neutral confidence rating using the None/Low/Medium/High scale defined in Appendix A of the STIX 2.1 framework. Vendor-specific confidence scales may be added as custom fields.Expected values are: * Not Specified * None * Low * Medium * High type: keyword example: Medium threat.indicator.description Describes the type of action conducted by the threat. type: keyword example: IP x.x.x.x was observed delivering the Angler EK. threat.indicator.email.address Identifies a threat indicator as an email address (irrespective of direction). type: keyword example: phish@example.com threat.indicator.file.accessed Last time the file was accessed.Note that not all filesystems keep track of access time. type: date threat.indicator.file.attributes Array of file attributes.Attributes names will vary by platform. Here’s a non-exhaustive list of values that are expected in this field: archive, compressed, directory, encrypted, execute, hidden, read, readonly, system, write. type: keyword example: ["readonly", "system"] threat.indicator.file.code_signature.digest_algorithm The hashing algorithm used to sign the process.This value can distinguish signatures when a file is signed multiple times by the same signer but with a different digest algorithm. type: keyword example: sha256 threat.indicator.file.code_signature.exists Boolean to capture if a signature is present. type: boolean example: true threat.indicator.file.code_signature.signing_id The identifier used to sign the process.This is used to identify the application manufactured by a software vendor. The field is relevant to Apple *OS only. type: keyword example: com.apple.xpc.proxy threat.indicator.file.code_signature.status Additional information about the certificate status.This is useful for logging cryptographic errors with the certificate validity or trust status. Leave unpopulated if the validity or trust of the certificate was unchecked. type: keyword example: ERROR_UNTRUSTED_ROOT threat.indicator.file.code_signature.subject_name Subject name of the code signer type: keyword example: Microsoft Corporation threat.indicator.file.code_signature.team_id The team identifier used to sign the process.This is used to identify the team or vendor of a software product. The field is relevant to Apple *OS only. type: keyword example: EQHXZ8M8AV threat.indicator.file.code_signature.timestamp Date and time when the code signature was generated and signed. type: date example: 2021-01-01T12:10:30Z threat.indicator.file.code_signature.trusted Stores the trust status of the certificate chain.Validating the trust of the certificate chain may be complicated, and this field should only be populated by tools that actively check the status. type: boolean example: true threat.indicator.file.code_signature.valid Boolean to capture if the digital signature is verified against the binary content.Leave unpopulated if a certificate was unchecked. type: boolean example: true threat.indicator.file.created File creation time.Note that not all filesystems store the creation time. type: date threat.indicator.file.ctime Last time the file attributes or metadata changed.Note that changes to the file content will update mtime . This implies ctime will be adjusted at the same time, since mtime is an attribute of the file. type: date threat.indicator.file.device Device that is the source of the file. type: keyword example: sda threat.indicator.file.directory Directory where the file is located. It should include the drive letter, when appropriate. type: keyword example: /home/alice threat.indicator.file.drive_letter Drive letter where the file is located. This field is only relevant on Windows.The value should be uppercase, and not include the colon. type: keyword example: C threat.indicator.file.elf.architecture Machine architecture of the ELF file. type: keyword example: x86-64 threat.indicator.file.elf.byte_order Byte sequence of ELF file. type: keyword example: Little Endian threat.indicator.file.elf.cpu_type CPU type of the ELF file. type: keyword example: Intel threat.indicator.file.elf.creation_date Extracted when possible from the file’s metadata. Indicates when it was built or compiled. It can also be faked by malware creators. type: date threat.indicator.file.elf.exports List of exported element names and types. type: flattened threat.indicator.file.elf.header.abi_version Version of the ELF Application Binary Interface (ABI). type: keyword threat.indicator.file.elf.header.class Header class of the ELF file. type: keyword threat.indicator.file.elf.header.data Data table of the ELF header. type: keyword threat.indicator.file.elf.header.entrypoint Header entrypoint of the ELF file. type: long format: string threat.indicator.file.elf.header.object_version "0x1" for original ELF files. type: keyword threat.indicator.file.elf.header.os_abi Application Binary Interface (ABI) of the Linux OS. type: keyword threat.indicator.file.elf.header.type Header type of the ELF file. type: keyword threat.indicator.file.elf.header.version Version of the ELF header. type: keyword threat.indicator.file.elf.imports List of imported element names and types. type: flattened threat.indicator.file.elf.sections An array containing an object for each section of the ELF file.The keys that should be present in these objects are defined by sub-fields underneath elf.sections.* . type: nested threat.indicator.file.elf.sections.chi2 Chi-square probability distribution of the section. type: long format: number threat.indicator.file.elf.sections.entropy Shannon entropy calculation from the section. type: long format: number threat.indicator.file.elf.sections.flags ELF Section List flags. type: keyword threat.indicator.file.elf.sections.name ELF Section List name. type: keyword threat.indicator.file.elf.sections.physical_offset ELF Section List offset. type: keyword threat.indicator.file.elf.sections.physical_size ELF Section List physical size. type: long format: bytes threat.indicator.file.elf.sections.type ELF Section List type. type: keyword threat.indicator.file.elf.sections.virtual_address ELF Section List virtual address. type: long format: string threat.indicator.file.elf.sections.virtual_size ELF Section List virtual size. type: long format: string threat.indicator.file.elf.segments An array containing an object for each segment of the ELF file.The keys that should be present in these objects are defined by sub-fields underneath elf.segments.* . type: nested threat.indicator.file.elf.segments.sections ELF object segment sections. type: keyword threat.indicator.file.elf.segments.type ELF object segment type. type: keyword threat.indicator.file.elf.shared_libraries List of shared libraries used by this ELF object. type: keyword threat.indicator.file.elf.telfhash telfhash symbol hash for ELF file. type: keyword threat.indicator.file.extension File extension, excluding the leading dot.Note that when the file name has multiple extensions (example.tar.gz), only the last one should be captured ("gz", not "tar.gz"). type: keyword example: png threat.indicator.file.fork_name A fork is additional data associated with a filesystem object.On Linux, a resource fork is used to store additional data with a filesystem object. A file always has at least one fork for the data portion, and additional forks may exist.On NTFS, this is analogous to an Alternate Data Stream (ADS), and the default data stream for a file is just called $DATA. Zone.Identifier is commonly used by Windows to track contents downloaded from the Internet. An ADS is typically of the form: C:\path\to\filename.extension:some_fork_name , and some_fork_name is the value that should populate fork_name . filename.extension should populate file.name , and extension should populate file.extension . The full path, file.path , will include the fork name. type: keyword example: Zone.Identifer threat.indicator.file.gid Primary group ID (GID) of the file. type: keyword example: 1001 threat.indicator.file.group Primary group name of the file. type: keyword example: alice threat.indicator.file.hash.md5 MD5 hash. type: keyword threat.indicator.file.hash.sha1 SHA1 hash. type: keyword threat.indicator.file.hash.sha256 SHA256 hash. type: keyword threat.indicator.file.hash.sha512 SHA512 hash. type: keyword threat.indicator.file.hash.ssdeep SSDEEP hash. type: keyword threat.indicator.file.inode Inode representing the file in the filesystem. type: keyword example: 256383 threat.indicator.file.mime_type MIME type should identify the format of the file or stream of bytes using IANA official types , where possible. When more than one type is applicable, the most specific type should be used. type: keyword threat.indicator.file.mode Mode of the file in octal representation. type: keyword example: 0640 threat.indicator.file.mtime Last time the file content was modified. type: date threat.indicator.file.name Name of the file including the extension, without the directory. type: keyword example: example.png threat.indicator.file.owner File owner’s username. type: keyword example: alice threat.indicator.file.path Full path to the file, including the file name. It should include the drive letter, when appropriate. type: keyword example: /home/alice/example.png threat.indicator.file.path.text type: match_only_text threat.indicator.file.pe.architecture CPU architecture target for the file. type: keyword example: x64 threat.indicator.file.pe.company Internal company name of the file, provided at compile-time. type: keyword example: Microsoft Corporation threat.indicator.file.pe.description Internal description of the file, provided at compile-time. type: keyword example: Paint threat.indicator.file.pe.file_version Internal version of the file, provided at compile-time. type: keyword example: 6.3.9600.17415 threat.indicator.file.pe.imphash A hash of the imports in a PE file. An imphash — or import hash — can be used to fingerprint binaries even after recompilation or other code-level transformations have occurred, which would change more traditional hash values.Learn more at https://www.fireeye.com/blog/threat-research/2014/01/tracking-malware-import-hashing.html . type: keyword example: 0c6803c4e922103c4dca5963aad36ddf threat.indicator.file.pe.original_file_name Internal name of the file, provided at compile-time. type: keyword example: MSPAINT.EXE threat.indicator.file.pe.product Internal product name of the file, provided at compile-time. type: keyword example: Microsoft® Windows® Operating System threat.indicator.file.size File size in bytes.Only relevant when file.type is "file". type: long example: 16384 threat.indicator.file.target_path Target path for symlinks. type: keyword threat.indicator.file.target_path.text type: match_only_text threat.indicator.file.type File type (file, dir, or symlink). type: keyword example: file threat.indicator.file.uid The user ID (UID) or security identifier (SID) of the file owner. type: keyword example: 1001 threat.indicator.file.x509.alternative_names List of subject alternative names (SAN). Name types vary by certificate authority and certificate type but commonly contain IP addresses, DNS names (and wildcards), and email addresses. type: keyword example: *.elastic.co threat.indicator.file.x509.issuer.common_name List of common name (CN) of issuing certificate authority. type: keyword example: Example SHA2 High Assurance Server CA threat.indicator.file.x509.issuer.country List of country © codes type: keyword example: US threat.indicator.file.x509.issuer.distinguished_name Distinguished name (DN) of issuing certificate authority. type: keyword example: C=US, O=Example Inc, OU=www.example.com, CN=Example SHA2 High Assurance Server CA threat.indicator.file.x509.issuer.locality List of locality names (L) type: keyword example: Mountain View threat.indicator.file.x509.issuer.organization List of organizations (O) of issuing certificate authority. type: keyword example: Example Inc threat.indicator.file.x509.issuer.organizational_unit List of organizational units (OU) of issuing certificate authority. type: keyword example: www.example.com threat.indicator.file.x509.issuer.state_or_province List of state or province names (ST, S, or P) type: keyword example: California threat.indicator.file.x509.not_after Time at which the certificate is no longer considered valid. type: date example: 2020-07-16 03:15:39+00:00 threat.indicator.file.x509.not_before Time at which the certificate is first considered valid. type: date example: 2019-08-16 01:40:25+00:00 threat.indicator.file.x509.public_key_algorithm Algorithm used to generate the public key. type: keyword example: RSA threat.indicator.file.x509.public_key_curve The curve used by the elliptic curve public key algorithm. This is algorithm specific. type: keyword example: nistp521 threat.indicator.file.x509.public_key_exponent Exponent used to derive the public key. This is algorithm specific. type: long example: 65537 Field is not indexed. threat.indicator.file.x509.public_key_size The size of the public key space in bits. type: long example: 2048 threat.indicator.file.x509.serial_number Unique serial number issued by the certificate authority. For consistency, if this value is alphanumeric, it should be formatted without colons and uppercase characters. type: keyword example: 55FBB9C7DEBF09809D12CCAA threat.indicator.file.x509.signature_algorithm Identifier for certificate signature algorithm. We recommend using names found in Go Lang Crypto library. See https://github.com/golang/go/blob/go1.14/src/crypto/x509/x509.go#L337-L353 . type: keyword example: SHA256-RSA threat.indicator.file.x509.subject.common_name List of common names (CN) of subject. type: keyword example: shared.global.example.net threat.indicator.file.x509.subject.country List of country © code type: keyword example: US threat.indicator.file.x509.subject.distinguished_name Distinguished name (DN) of the certificate subject entity. type: keyword example: C=US, ST=California, L=San Francisco, O=Example, Inc., CN=shared.global.example.net threat.indicator.file.x509.subject.locality List of locality names (L) type: keyword example: San Francisco threat.indicator.file.x509.subject.organization List of organizations (O) of subject. type: keyword example: Example, Inc. threat.indicator.file.x509.subject.organizational_unit List of organizational units (OU) of subject. type: keyword threat.indicator.file.x509.subject.state_or_province List of state or province names (ST, S, or P) type: keyword example: California threat.indicator.file.x509.version_number Version of x509 format. type: keyword example: 3 threat.indicator.first_seen The date and time when intelligence source first reported sighting this indicator. type: date example: 2020-11-05T17:25:47.000Z threat.indicator.geo.city_name City name. type: keyword example: Montreal threat.indicator.geo.continent_code Two-letter code representing continent’s name. type: keyword example: NA threat.indicator.geo.continent_name Name of the continent. type: keyword example: North America threat.indicator.geo.country_iso_code Country ISO code. type: keyword example: CA threat.indicator.geo.country_name Country name. type: keyword example: Canada threat.indicator.geo.location Longitude and latitude. type: geo_point example: { "lon": -73.614830, "lat": 45.505918 } threat.indicator.geo.name User-defined description of a location, at the level of granularity they care about.Could be the name of their data centers, the floor number, if this describes a local physical entity, city names.Not typically used in automated geolocation. type: keyword example: boston-dc threat.indicator.geo.postal_code Postal code associated with the location.Values appropriate for this field may also be known as a postcode or ZIP code and will vary widely from country to country. type: keyword example: 94040 threat.indicator.geo.region_iso_code Region ISO code. type: keyword example: CA-QC threat.indicator.geo.region_name Region name. type: keyword example: Quebec threat.indicator.geo.timezone The time zone of the location, such as IANA time zone name. type: keyword example: America/Argentina/Buenos_Aires threat.indicator.ip Identifies a threat indicator as an IP address (irrespective of direction). type: ip example: 1.2.3.4 threat.indicator.last_seen The date and time when intelligence source last reported sighting this indicator. type: date example: 2020-11-05T17:25:47.000Z threat.indicator.marking.tlp Traffic Light Protocol sharing markings.Recommended values are: * WHITE * GREEN * AMBER * RED type: keyword example: WHITE threat.indicator.modified_at The date and time when intelligence source last modified information for this indicator. type: date example: 2020-11-05T17:25:47.000Z threat.indicator.port Identifies a threat indicator as a port number (irrespective of direction). type: long example: 443 threat.indicator.provider The name of the indicator’s provider. type: keyword example: lrz_urlhaus threat.indicator.reference Reference URL linking to additional information about this indicator. type: keyword example: https://system.example.com/indicator/0001234 threat.indicator.registry.data.bytes Original bytes written with base64 encoding.For Windows registry operations, such as SetValueEx and RegQueryValueEx, this corresponds to the data pointed by lp_data . This is optional but provides better recoverability and should be populated for REG_BINARY encoded values. type: keyword example: ZQBuAC0AVQBTAAAAZQBuAAAAAAA= threat.indicator.registry.data.strings Content when writing string types.Populated as an array when writing string data to the registry. For single string registry types (REG_SZ, REG_EXPAND_SZ), this should be an array with one string. For sequences of string with REG_MULTI_SZ, this array will be variable length. For numeric data, such as REG_DWORD and REG_QWORD, this should be populated with the decimal representation (e.g "1" ). type: wildcard example: ["C:\rta\red_ttp\bin\myapp.exe"] threat.indicator.registry.data.type Standard registry type for encoding contents type: keyword example: REG_SZ threat.indicator.registry.hive Abbreviated name for the hive. type: keyword example: HKLM threat.indicator.registry.key Hive-relative path of keys. type: keyword example: SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\winword.exe threat.indicator.registry.path Full path, including hive, key and value type: keyword example: HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\winword.exe\Debugger threat.indicator.registry.value Name of the value written. type: keyword example: Debugger threat.indicator.scanner_stats Count of AV/EDR vendors that successfully detected malicious file or URL. type: long example: 4 threat.indicator.sightings Number of times this indicator was observed conducting threat activity. type: long example: 20 threat.indicator.type Type of indicator as represented by Cyber Observable in STIX 2.0.Recommended values: * autonomous-system * artifact * directory * domain-name * email-addr * file * ipv4-addr * ipv6-addr * mac-addr * mutex * port * process * software * url * user-account * windows-registry-key * x509-certificate type: keyword example: ipv4-addr threat.indicator.url.domain Domain of the url, such as "www.elastic.co".In some cases a URL may refer to an IP and/or port directly, without a domain name. In this case, the IP address would go to the domain field.If the URL contains a literal IPv6 address enclosed by [ and ] (IETF RFC 2732), the [ and ] characters should also be captured in the domain field. type: keyword example: www.elastic.co threat.indicator.url.extension The field contains the file extension from the original request url, excluding the leading dot.The file extension is only set if it exists, as not every url has a file extension.The leading period must not be included. For example, the value must be "png", not ".png".Note that when the file name has multiple extensions (example.tar.gz), only the last one should be captured ("gz", not "tar.gz"). type: keyword example: png threat.indicator.url.fragment Portion of the url after the # , such as "top".The # is not part of the fragment. type: keyword threat.indicator.url.full If full URLs are important to your use case, they should be stored in url.full , whether this field is reconstructed or present in the event source. type: wildcard example: https://www.elastic.co:443/search?q=elasticsearch#top threat.indicator.url.full.text type: match_only_text threat.indicator.url.original Unmodified original url as seen in the event source.Note that in network monitoring, the observed URL may be a full URL, whereas in access logs, the URL is often just represented as a path.This field is meant to represent the URL as it was observed, complete or not. type: wildcard example: https://www.elastic.co:443/search?q=elasticsearch#top or /search?q=elasticsearch threat.indicator.url.original.text type: match_only_text threat.indicator.url.password Password of the request. type: keyword threat.indicator.url.path Path of the request, such as "/search". type: wildcard threat.indicator.url.port Port of the request, such as 443. type: long example: 443 format: string threat.indicator.url.query The query field describes the query string of the request, such as "q=elasticsearch".The ? is excluded from the query string. If a URL contains no ? , there is no query field. If there is a ? but no query, the query field exists with an empty string. The exists query can be used to differentiate between the two cases. type: keyword threat.indicator.url.registered_domain The highest registered url domain, stripped of the subdomain.For example, the registered domain for "foo.example.com" is "example.com".This value can be determined precisely with a list like the public suffix list ( http://publicsuffix.org ). Trying to approximate this by simply taking the last two labels will not work well for TLDs such as "co.uk". type: keyword example: example.com threat.indicator.url.scheme Scheme of the request, such as "https".Note: The : is not part of the scheme. type: keyword example: https threat.indicator.url.subdomain The subdomain portion of a fully qualified domain name includes all of the names except the host name under the registered_domain. In a partially qualified domain, or if the the qualification level of the full name cannot be determined, subdomain contains all of the names below the registered domain.For example the subdomain portion of "www.east.mydomain.co.uk" is "east". If the domain has multiple levels of subdomain, such as "sub2.sub1.example.com", the subdomain field should contain "sub2.sub1", with no trailing period. type: keyword example: east threat.indicator.url.top_level_domain The effective top level domain (eTLD), also known as the domain suffix, is the last part of the domain name. For example, the top level domain for example.com is "com".This value can be determined precisely with a list like the public suffix list ( http://publicsuffix.org ). Trying to approximate this by simply taking the last label will not work well for effective TLDs such as "co.uk". type: keyword example: co.uk threat.indicator.url.username Username of the request. type: keyword threat.indicator.x509.alternative_names List of subject alternative names (SAN). Name types vary by certificate authority and certificate type but commonly contain IP addresses, DNS names (and wildcards), and email addresses. type: keyword example: *.elastic.co threat.indicator.x509.issuer.common_name List of common name (CN) of issuing certificate authority. type: keyword example: Example SHA2 High Assurance Server CA threat.indicator.x509.issuer.country List of country © codes type: keyword example: US threat.indicator.x509.issuer.distinguished_name Distinguished name (DN) of issuing certificate authority. type: keyword example: C=US, O=Example Inc, OU=www.example.com, CN=Example SHA2 High Assurance Server CA threat.indicator.x509.issuer.locality List of locality names (L) type: keyword example: Mountain View threat.indicator.x509.issuer.organization List of organizations (O) of issuing certificate authority. type: keyword example: Example Inc threat.indicator.x509.issuer.organizational_unit List of organizational units (OU) of issuing certificate authority. type: keyword example: www.example.com threat.indicator.x509.issuer.state_or_province List of state or province names (ST, S, or P) type: keyword example: California threat.indicator.x509.not_after Time at which the certificate is no longer considered valid. type: date example: 2020-07-16 03:15:39+00:00 threat.indicator.x509.not_before Time at which the certificate is first considered valid. type: date example: 2019-08-16 01:40:25+00:00 threat.indicator.x509.public_key_algorithm Algorithm used to generate the public key. type: keyword example: RSA threat.indicator.x509.public_key_curve The curve used by the elliptic curve public key algorithm. This is algorithm specific. type: keyword example: nistp521 threat.indicator.x509.public_key_exponent Exponent used to derive the public key. This is algorithm specific. type: long example: 65537 Field is not indexed. threat.indicator.x509.public_key_size The size of the public key space in bits. type: long example: 2048 threat.indicator.x509.serial_number Unique serial number issued by the certificate authority. For consistency, if this value is alphanumeric, it should be formatted without colons and uppercase characters. type: keyword example: 55FBB9C7DEBF09809D12CCAA threat.indicator.x509.signature_algorithm Identifier for certificate signature algorithm. We recommend using names found in Go Lang Crypto library. See https://github.com/golang/go/blob/go1.14/src/crypto/x509/x509.go#L337-L353 . type: keyword example: SHA256-RSA threat.indicator.x509.subject.common_name List of common names (CN) of subject. type: keyword example: shared.global.example.net threat.indicator.x509.subject.country List of country © code type: keyword example: US threat.indicator.x509.subject.distinguished_name Distinguished name (DN) of the certificate subject entity. type: keyword example: C=US, ST=California, L=San Francisco, O=Example, Inc., CN=shared.global.example.net threat.indicator.x509.subject.locality List of locality names (L) type: keyword example: San Francisco threat.indicator.x509.subject.organization List of organizations (O) of subject. type: keyword example: Example, Inc. threat.indicator.x509.subject.organizational_unit List of organizational units (OU) of subject. type: keyword threat.indicator.x509.subject.state_or_province List of state or province names (ST, S, or P) type: keyword example: California threat.indicator.x509.version_number Version of x509 format. type: keyword example: 3 threat.software.alias The alias(es) of the software for a set of related intrusion activity that are tracked by a common name in the security community.While not required, you can use a MITRE ATT&CK® associated software description. type: keyword example: [ "X-Agent" ] threat.software.id The id of the software used by this threat to conduct behavior commonly modeled using MITRE ATT&CK®.While not required, you can use a MITRE ATT&CK® software id. type: keyword example: S0552 threat.software.name The name of the software used by this threat to conduct behavior commonly modeled using MITRE ATT&CK®.While not required, you can use a MITRE ATT&CK® software name. type: keyword example: AdFind threat.software.platforms The platforms of the software used by this threat to conduct behavior commonly modeled using MITRE ATT&CK®.Recommended Values: * AWS * Azure * Azure AD * GCP * Linux * macOS * Network * Office 365 * SaaS * Windows While not required, you can use a MITRE ATT&CK® software platforms. type: keyword example: [ "Windows" ] threat.software.reference The reference URL of the software used by this threat to conduct behavior commonly modeled using MITRE ATT&CK®.While not required, you can use a MITRE ATT&CK® software reference URL. type: keyword example: https://attack.mitre.org/software/S0552/ threat.software.type The type of software used by this threat to conduct behavior commonly modeled using MITRE ATT&CK®.Recommended values * Malware * Tool While not required, you can use a MITRE ATT&CK® software type. type: keyword example: Tool threat.tactic.id The id of tactic used by this threat. You can use a MITRE ATT&CK® tactic, for example. (ex. https://attack.mitre.org/tactics/TA0002/ ) type: keyword example: TA0002 threat.tactic.name Name of the type of tactic used by this threat. You can use a MITRE ATT&CK® tactic, for example. (ex. https://attack.mitre.org/tactics/TA0002/ ) type: keyword example: Execution threat.tactic.reference The reference url of tactic used by this threat. You can use a MITRE ATT&CK® tactic, for example. (ex. https://attack.mitre.org/tactics/TA0002/ ) type: keyword example: https://attack.mitre.org/tactics/TA0002/ threat.technique.id The id of technique used by this threat. You can use a MITRE ATT&CK® technique, for example. (ex. https://attack.mitre.org/techniques/T1059/ ) type: keyword example: T1059 threat.technique.name The name of technique used by this threat. You can use a MITRE ATT&CK® technique, for example. (ex. https://attack.mitre.org/techniques/T1059/ ) type: keyword example: Command and Scripting Interpreter threat.technique.name.text type: match_only_text threat.technique.reference The reference url of technique used by this threat. You can use a MITRE ATT&CK® technique, for example. (ex. https://attack.mitre.org/techniques/T1059/ ) type: keyword example: https://attack.mitre.org/techniques/T1059/ threat.technique.subtechnique.id The full id of subtechnique used by this threat. You can use a MITRE ATT&CK® subtechnique, for example. (ex. https://attack.mitre.org/techniques/T1059/001/ ) type: keyword example: T1059.001 threat.technique.subtechnique.name The name of subtechnique used by this threat. You can use a MITRE ATT&CK® subtechnique, for example. (ex. https://attack.mitre.org/techniques/T1059/001/ ) type: keyword example: PowerShell threat.technique.subtechnique.name.text type: match_only_text threat.technique.subtechnique.reference The reference url of subtechnique used by this threat. You can use a MITRE ATT&CK® subtechnique, for example. (ex. https://attack.mitre.org/techniques/T1059/001/ ) type: keyword example: https://attack.mitre.org/techniques/T1059/001/ tls Fields related to a TLS connection. These fields focus on the TLS protocol itself and intentionally avoids in-depth analysis of the related x.509 certificate files. tls.cipher String indicating the cipher used during the current connection. type: keyword example: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 tls.client.certificate PEM-encoded stand-alone certificate offered by the client. This is usually mutually-exclusive of client.certificate_chain since this value also exists in that list. type: keyword example: MII… tls.client.certificate_chain Array of PEM-encoded certificates that make up the certificate chain offered by the client. This is usually mutually-exclusive of client.certificate since that value should be the first certificate in the chain. type: keyword example: ["MII… ", "MII… "] tls.client.hash.md5 Certificate fingerprint using the MD5 digest of DER-encoded version of certificate offered by the client. For consistency with other hash values, this value should be formatted as an uppercase hash. type: keyword example: 0F76C7F2C55BFD7D8E8B8F4BFBF0C9EC tls.client.hash.sha1 Certificate fingerprint using the SHA1 digest of DER-encoded version of certificate offered by the client. For consistency with other hash values, this value should be formatted as an uppercase hash. type: keyword example: 9E393D93138888D288266C2D915214D1D1CCEB2A tls.client.hash.sha256 Certificate fingerprint using the SHA256 digest of DER-encoded version of certificate offered by the client. For consistency with other hash values, this value should be formatted as an uppercase hash. type: keyword example: 0687F666A054EF17A08E2F2162EAB4CBC0D265E1D7875BE74BF3C712CA92DAF0 tls.client.issuer Distinguished name of subject of the issuer of the x.509 certificate presented by the client. type: keyword example: CN=Example Root CA, OU=Infrastructure Team, DC=example, DC=com tls.client.ja3 A hash that identifies clients based on how they perform an SSL/TLS handshake. type: keyword example: d4e5b18d6b55c71272893221c96ba240 tls.client.not_after Date/Time indicating when client certificate is no longer considered valid. type: date example: 2021-01-01T00:00:00.000Z tls.client.not_before Date/Time indicating when client certificate is first considered valid. type: date example: 1970-01-01T00:00:00.000Z tls.client.server_name Also called an SNI, this tells the server which hostname to which the client is attempting to connect to. When this value is available, it should get copied to destination.domain . type: keyword example: www.elastic.co tls.client.subject Distinguished name of subject of the x.509 certificate presented by the client. type: keyword example: CN=myclient, OU=Documentation Team, DC=example, DC=com tls.client.supported_ciphers Array of ciphers offered by the client during the client hello. type: keyword example: ["TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384", "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384", "… "] tls.client.x509.alternative_names List of subject alternative names (SAN). Name types vary by certificate authority and certificate type but commonly contain IP addresses, DNS names (and wildcards), and email addresses. type: keyword example: *.elastic.co tls.client.x509.issuer.common_name List of common name (CN) of issuing certificate authority. type: keyword example: Example SHA2 High Assurance Server CA tls.client.x509.issuer.country List of country © codes type: keyword example: US tls.client.x509.issuer.distinguished_name Distinguished name (DN) of issuing certificate authority. type: keyword example: C=US, O=Example Inc, OU=www.example.com, CN=Example SHA2 High Assurance Server CA tls.client.x509.issuer.locality List of locality names (L) type: keyword example: Mountain View tls.client.x509.issuer.organization List of organizations (O) of issuing certificate authority. type: keyword example: Example Inc tls.client.x509.issuer.organizational_unit List of organizational units (OU) of issuing certificate authority. type: keyword example: www.example.com tls.client.x509.issuer.state_or_province List of state or province names (ST, S, or P) type: keyword example: California tls.client.x509.not_after Time at which the certificate is no longer considered valid. type: date example: 2020-07-16 03:15:39+00:00 tls.client.x509.not_before Time at which the certificate is first considered valid. type: date example: 2019-08-16 01:40:25+00:00 tls.client.x509.public_key_algorithm Algorithm used to generate the public key. type: keyword example: RSA tls.client.x509.public_key_curve The curve used by the elliptic curve public key algorithm. This is algorithm specific. type: keyword example: nistp521 tls.client.x509.public_key_exponent Exponent used to derive the public key. This is algorithm specific. type: long example: 65537 Field is not indexed. tls.client.x509.public_key_size The size of the public key space in bits. type: long example: 2048 tls.client.x509.serial_number Unique serial number issued by the certificate authority. For consistency, if this value is alphanumeric, it should be formatted without colons and uppercase characters. type: keyword example: 55FBB9C7DEBF09809D12CCAA tls.client.x509.signature_algorithm Identifier for certificate signature algorithm. We recommend using names found in Go Lang Crypto library. See https://github.com/golang/go/blob/go1.14/src/crypto/x509/x509.go#L337-L353 . type: keyword example: SHA256-RSA tls.client.x509.subject.common_name List of common names (CN) of subject. type: keyword example: shared.global.example.net tls.client.x509.subject.country List of country © code type: keyword example: US tls.client.x509.subject.distinguished_name Distinguished name (DN) of the certificate subject entity. type: keyword example: C=US, ST=California, L=San Francisco, O=Example, Inc., CN=shared.global.example.net tls.client.x509.subject.locality List of locality names (L) type: keyword example: San Francisco tls.client.x509.subject.organization List of organizations (O) of subject. type: keyword example: Example, Inc. tls.client.x509.subject.organizational_unit List of organizational units (OU) of subject. type: keyword tls.client.x509.subject.state_or_province List of state or province names (ST, S, or P) type: keyword example: California tls.client.x509.version_number Version of x509 format. type: keyword example: 3 tls.curve String indicating the curve used for the given cipher, when applicable. type: keyword example: secp256r1 tls.established Boolean flag indicating if the TLS negotiation was successful and transitioned to an encrypted tunnel. type: boolean tls.next_protocol String indicating the protocol being tunneled. Per the values in the IANA registry ( https://www.iana.org/assignments/tls-extensiontype-values/tls-extensiontype-values.xhtml#alpn-protocol-ids ), this string should be lower case. type: keyword example: http/1.1 tls.resumed Boolean flag indicating if this TLS connection was resumed from an existing TLS negotiation. type: boolean tls.server.certificate PEM-encoded stand-alone certificate offered by the server. This is usually mutually-exclusive of server.certificate_chain since this value also exists in that list. type: keyword example: MII… tls.server.certificate_chain Array of PEM-encoded certificates that make up the certificate chain offered by the server. This is usually mutually-exclusive of server.certificate since that value should be the first certificate in the chain. type: keyword example: ["MII… ", "MII… "] tls.server.hash.md5 Certificate fingerprint using the MD5 digest of DER-encoded version of certificate offered by the server. For consistency with other hash values, this value should be formatted as an uppercase hash. type: keyword example: 0F76C7F2C55BFD7D8E8B8F4BFBF0C9EC tls.server.hash.sha1 Certificate fingerprint using the SHA1 digest of DER-encoded version of certificate offered by the server. For consistency with other hash values, this value should be formatted as an uppercase hash. type: keyword example: 9E393D93138888D288266C2D915214D1D1CCEB2A tls.server.hash.sha256 Certificate fingerprint using the SHA256 digest of DER-encoded version of certificate offered by the server. For consistency with other hash values, this value should be formatted as an uppercase hash. type: keyword example: 0687F666A054EF17A08E2F2162EAB4CBC0D265E1D7875BE74BF3C712CA92DAF0 tls.server.issuer Subject of the issuer of the x.509 certificate presented by the server. type: keyword example: CN=Example Root CA, OU=Infrastructure Team, DC=example, DC=com tls.server.ja3s A hash that identifies servers based on how they perform an SSL/TLS handshake. type: keyword example: 394441ab65754e2207b1e1b457b3641d tls.server.not_after Timestamp indicating when server certificate is no longer considered valid. type: date example: 2021-01-01T00:00:00.000Z tls.server.not_before Timestamp indicating when server certificate is first considered valid. type: date example: 1970-01-01T00:00:00.000Z tls.server.subject Subject of the x.509 certificate presented by the server. type: keyword example: CN=www.example.com, OU=Infrastructure Team, DC=example, DC=com tls.server.x509.alternative_names List of subject alternative names (SAN). Name types vary by certificate authority and certificate type but commonly contain IP addresses, DNS names (and wildcards), and email addresses. type: keyword example: *.elastic.co tls.server.x509.issuer.common_name List of common name (CN) of issuing certificate authority. type: keyword example: Example SHA2 High Assurance Server CA tls.server.x509.issuer.country List of country © codes type: keyword example: US tls.server.x509.issuer.distinguished_name Distinguished name (DN) of issuing certificate authority. type: keyword example: C=US, O=Example Inc, OU=www.example.com, CN=Example SHA2 High Assurance Server CA tls.server.x509.issuer.locality List of locality names (L) type: keyword example: Mountain View tls.server.x509.issuer.organization List of organizations (O) of issuing certificate authority. type: keyword example: Example Inc tls.server.x509.issuer.organizational_unit List of organizational units (OU) of issuing certificate authority. type: keyword example: www.example.com tls.server.x509.issuer.state_or_province List of state or province names (ST, S, or P) type: keyword example: California tls.server.x509.not_after Time at which the certificate is no longer considered valid. type: date example: 2020-07-16 03:15:39+00:00 tls.server.x509.not_before Time at which the certificate is first considered valid. type: date example: 2019-08-16 01:40:25+00:00 tls.server.x509.public_key_algorithm Algorithm used to generate the public key. type: keyword example: RSA tls.server.x509.public_key_curve The curve used by the elliptic curve public key algorithm. This is algorithm specific. type: keyword example: nistp521 tls.server.x509.public_key_exponent Exponent used to derive the public key. This is algorithm specific. type: long example: 65537 Field is not indexed. tls.server.x509.public_key_size The size of the public key space in bits. type: long example: 2048 tls.server.x509.serial_number Unique serial number issued by the certificate authority. For consistency, if this value is alphanumeric, it should be formatted without colons and uppercase characters. type: keyword example: 55FBB9C7DEBF09809D12CCAA tls.server.x509.signature_algorithm Identifier for certificate signature algorithm. We recommend using names found in Go Lang Crypto library. See https://github.com/golang/go/blob/go1.14/src/crypto/x509/x509.go#L337-L353 . type: keyword example: SHA256-RSA tls.server.x509.subject.common_name List of common names (CN) of subject. type: keyword example: shared.global.example.net tls.server.x509.subject.country List of country © code type: keyword example: US tls.server.x509.subject.distinguished_name Distinguished name (DN) of the certificate subject entity. type: keyword example: C=US, ST=California, L=San Francisco, O=Example, Inc., CN=shared.global.example.net tls.server.x509.subject.locality List of locality names (L) type: keyword example: San Francisco tls.server.x509.subject.organization List of organizations (O) of subject. type: keyword example: Example, Inc. tls.server.x509.subject.organizational_unit List of organizational units (OU) of subject. type: keyword tls.server.x509.subject.state_or_province List of state or province names (ST, S, or P) type: keyword example: California tls.server.x509.version_number Version of x509 format. type: keyword example: 3 tls.version Numeric part of the version parsed from the original string. type: keyword example: 1.2 tls.version_protocol Normalized lowercase protocol name parsed from original string. type: keyword example: tls span.id Unique identifier of the span within the scope of its trace.A span represents an operation within a transaction, such as a request to another service, or a database query. type: keyword example: 3ff9a8981b7ccd5a trace.id Unique identifier of the trace.A trace groups multiple events like transactions that belong together. For example, a user request handled by multiple inter-connected services. type: keyword example: 4bf92f3577b34da6a3ce929d0e0e4736 transaction.id Unique identifier of the transaction within the scope of its trace.A transaction is the highest level of work measured within a service, such as a request to a server. type: keyword example: 00f067aa0ba902b7 url URL fields provide support for complete or partial URLs, and supports the breaking down into scheme, domain, path, and so on. url.domain Domain of the url, such as "www.elastic.co".In some cases a URL may refer to an IP and/or port directly, without a domain name. In this case, the IP address would go to the domain field.If the URL contains a literal IPv6 address enclosed by [ and ] (IETF RFC 2732), the [ and ] characters should also be captured in the domain field. type: keyword example: www.elastic.co url.extension The field contains the file extension from the original request url, excluding the leading dot.The file extension is only set if it exists, as not every url has a file extension.The leading period must not be included. For example, the value must be "png", not ".png".Note that when the file name has multiple extensions (example.tar.gz), only the last one should be captured ("gz", not "tar.gz"). type: keyword example: png url.fragment Portion of the url after the # , such as "top".The # is not part of the fragment. type: keyword url.full If full URLs are important to your use case, they should be stored in url.full , whether this field is reconstructed or present in the event source. type: wildcard example: https://www.elastic.co:443/search?q=elasticsearch#top url.full.text type: match_only_text url.original Unmodified original url as seen in the event source.Note that in network monitoring, the observed URL may be a full URL, whereas in access logs, the URL is often just represented as a path.This field is meant to represent the URL as it was observed, complete or not. type: wildcard example: https://www.elastic.co:443/search?q=elasticsearch#top or /search?q=elasticsearch url.original.text type: match_only_text url.password Password of the request. type: keyword url.path Path of the request, such as "/search". type: wildcard url.port Port of the request, such as 443. type: long example: 443 format: string url.query The query field describes the query string of the request, such as "q=elasticsearch".The ? is excluded from the query string. If a URL contains no ? , there is no query field. If there is a ? but no query, the query field exists with an empty string. The exists query can be used to differentiate between the two cases. type: keyword url.registered_domain The highest registered url domain, stripped of the subdomain.For example, the registered domain for "foo.example.com" is "example.com".This value can be determined precisely with a list like the public suffix list ( http://publicsuffix.org ). Trying to approximate this by simply taking the last two labels will not work well for TLDs such as "co.uk". type: keyword example: example.com url.scheme Scheme of the request, such as "https".Note: The : is not part of the scheme. type: keyword example: https url.subdomain The subdomain portion of a fully qualified domain name includes all of the names except the host name under the registered_domain. In a partially qualified domain, or if the the qualification level of the full name cannot be determined, subdomain contains all of the names below the registered domain.For example the subdomain portion of "www.east.mydomain.co.uk" is "east". If the domain has multiple levels of subdomain, such as "sub2.sub1.example.com", the subdomain field should contain "sub2.sub1", with no trailing period. type: keyword example: east url.top_level_domain The effective top level domain (eTLD), also known as the domain suffix, is the last part of the domain name. For example, the top level domain for example.com is "com".This value can be determined precisely with a list like the public suffix list ( http://publicsuffix.org ). Trying to approximate this by simply taking the last label will not work well for effective TLDs such as "co.uk". type: keyword example: co.uk url.username Username of the request. type: keyword user The user fields describe information about the user that is relevant to the event.Fields can have one entry or multiple entries. If a user has more than one id, provide an array that includes all of them. user.changes.domain Name of the directory the user is a member of.For example, an LDAP or Active Directory domain name. type: keyword user.changes.email User email address. type: keyword user.changes.full_name User’s full name, if available. type: keyword example: Albert Einstein user.changes.full_name.text type: match_only_text user.changes.group.domain Name of the directory the group is a member of.For example, an LDAP or Active Directory domain name. type: keyword user.changes.group.id Unique identifier for the group on the system/platform. type: keyword user.changes.group.name Name of the group. type: keyword user.changes.hash Unique user hash to correlate information for a user in anonymized form.Useful if user.id or user.name contain confidential information and cannot be used. type: keyword user.changes.id Unique identifier of the user. type: keyword example: S-1-5-21-202424912787-2692429404-2351956786-1000 user.changes.name Short name or login of the user. type: keyword example: a.einstein user.changes.name.text type: match_only_text user.changes.roles Array of user roles at the time of the event. type: keyword example: ["kibana_admin", "reporting_user"] user.domain Name of the directory the user is a member of.For example, an LDAP or Active Directory domain name. type: keyword user.effective.domain Name of the directory the user is a member of.For example, an LDAP or Active Directory domain name. type: keyword user.effective.email User email address. type: keyword user.effective.full_name User’s full name, if available. type: keyword example: Albert Einstein user.effective.full_name.text type: match_only_text user.effective.group.domain Name of the directory the group is a member of.For example, an LDAP or Active Directory domain name. type: keyword user.effective.group.id Unique identifier for the group on the system/platform. type: keyword user.effective.group.name Name of the group. type: keyword user.effective.hash Unique user hash to correlate information for a user in anonymized form.Useful if user.id or user.name contain confidential information and cannot be used. type: keyword user.effective.id Unique identifier of the user. type: keyword example: S-1-5-21-202424912787-2692429404-2351956786-1000 user.effective.name Short name or login of the user. type: keyword example: a.einstein user.effective.name.text type: match_only_text user.effective.roles Array of user roles at the time of the event. type: keyword example: ["kibana_admin", "reporting_user"] user.email User email address. type: keyword user.full_name User’s full name, if available. type: keyword example: Albert Einstein user.full_name.text type: match_only_text user.group.domain Name of the directory the group is a member of.For example, an LDAP or Active Directory domain name. type: keyword user.group.id Unique identifier for the group on the system/platform. type: keyword user.group.name Name of the group. type: keyword user.hash Unique user hash to correlate information for a user in anonymized form.Useful if user.id or user.name contain confidential information and cannot be used. type: keyword user.id Unique identifier of the user. type: keyword example: S-1-5-21-202424912787-2692429404-2351956786-1000 user.name Short name or login of the user. type: keyword example: a.einstein user.name.text type: match_only_text user.roles Array of user roles at the time of the event. type: keyword example: ["kibana_admin", "reporting_user"] user.target.domain Name of the directory the user is a member of.For example, an LDAP or Active Directory domain name. type: keyword user.target.email User email address. type: keyword user.target.full_name User’s full name, if available. type: keyword example: Albert Einstein user.target.full_name.text type: match_only_text user.target.group.domain Name of the directory the group is a member of.For example, an LDAP or Active Directory domain name. type: keyword user.target.group.id Unique identifier for the group on the system/platform. type: keyword user.target.group.name Name of the group. type: keyword user.target.hash Unique user hash to correlate information for a user in anonymized form.Useful if user.id or user.name contain confidential information and cannot be used. type: keyword user.target.id Unique identifier of the user. type: keyword example: S-1-5-21-202424912787-2692429404-2351956786-1000 user.target.name Short name or login of the user. type: keyword example: a.einstein user.target.name.text type: match_only_text user.target.roles Array of user roles at the time of the event. type: keyword example: ["kibana_admin", "reporting_user"] user_agent The user_agent fields normally come from a browser request.They often show up in web service logs coming from the parsed user agent string. user_agent.device.name Name of the device. type: keyword example: iPhone user_agent.name Name of the user agent. type: keyword example: Safari user_agent.original Unparsed user_agent string. type: keyword example: Mozilla/5.0 (iPhone; CPU iPhone OS 12_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0 Mobile/15E148 Safari/604.1 user_agent.original.text type: match_only_text user_agent.os.family OS family (such as redhat, debian, freebsd, windows). type: keyword example: debian user_agent.os.full Operating system name, including the version or code name. type: keyword example: Mac OS Mojave user_agent.os.full.text type: match_only_text user_agent.os.kernel Operating system kernel version as a raw string. type: keyword example: 4.4.0-112-generic user_agent.os.name Operating system name, without the version. type: keyword example: Mac OS X user_agent.os.name.text type: match_only_text user_agent.os.platform Operating system platform (such centos, ubuntu, windows). type: keyword example: darwin user_agent.os.type Use the os.type field to categorize the operating system into one of the broad commercial families.One of these following values should be used (lowercase): linux, macos, unix, windows.If the OS you’re dealing with is not in the list, the field should not be populated. Please let us know by opening an issue with ECS, to propose its addition. type: keyword example: macos user_agent.os.version Operating system version as a raw string. type: keyword example: 10.14.1 user_agent.version Version of the user agent. type: keyword example: 12.0 vlan The VLAN fields are used to identify 802.1q tag(s) of a packet, as well as ingress and egress VLAN associations of an observer in relation to a specific packet or connection.Network.vlan fields are used to record a single VLAN tag, or the outer tag in the case of q-in-q encapsulations, for a packet or connection as observed, typically provided by a network sensor (e.g. Zeek, Wireshark) passively reporting on traffic.Network.inner VLAN fields are used to report inner q-in-q 802.1q tags (multiple 802.1q encapsulations) as observed, typically provided by a network sensor (e.g. Zeek, Wireshark) passively reporting on traffic. Network.inner VLAN fields should only be used in addition to network.vlan fields to indicate q-in-q tagging.Observer.ingress and observer.egress VLAN values are used to record observer specific information when observer events contain discrete ingress and egress VLAN information, typically provided by firewalls, routers, or load balancers. vlan.id VLAN ID as reported by the observer. type: keyword example: 10 vlan.name Optional VLAN name as reported by the observer. type: keyword example: outside vulnerability The vulnerability fields describe information about a vulnerability that is relevant to an event. vulnerability.category The type of system or architecture that the vulnerability affects. These may be platform-specific (for example, Debian or SUSE) or general (for example, Database or Firewall). For example ( Qualys vulnerability categories )This field must be an array. type: keyword example: ["Firewall"] vulnerability.classification The classification of the vulnerability scoring system. For example ( https://www.first.org/cvss/ ) type: keyword example: CVSS vulnerability.description The description of the vulnerability that provides additional context of the vulnerability. For example ( Common Vulnerabilities and Exposure CVE description ) type: keyword example: In macOS before 2.12.6, there is a vulnerability in the RPC… vulnerability.description.text type: match_only_text vulnerability.enumeration The type of identifier used for this vulnerability. For example ( https://cve.mitre.org/about/ ) type: keyword example: CVE vulnerability.id The identification (ID) is the number portion of a vulnerability entry. It includes a unique identification number for the vulnerability. For example ( Common Vulnerabilities and Exposure CVE ID type: keyword example: CVE-2019-00001 vulnerability.reference A resource that provides additional information, context, and mitigations for the identified vulnerability. type: keyword example: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-6111 vulnerability.report_id The report or scan identification number. type: keyword example: 20191018.0001 vulnerability.scanner.vendor The name of the vulnerability scanner vendor. type: keyword example: Tenable vulnerability.score.base Scores can range from 0.0 to 10.0, with 10.0 being the most severe.Base scores cover an assessment for exploitability metrics (attack vector, complexity, privileges, and user interaction), impact metrics (confidentiality, integrity, and availability), and scope. For example ( https://www.first.org/cvss/specification-document ) type: float example: 5.5 vulnerability.score.environmental Scores can range from 0.0 to 10.0, with 10.0 being the most severe.Environmental scores cover an assessment for any modified Base metrics, confidentiality, integrity, and availability requirements. For example ( https://www.first.org/cvss/specification-document ) type: float example: 5.5 vulnerability.score.temporal Scores can range from 0.0 to 10.0, with 10.0 being the most severe.Temporal scores cover an assessment for code maturity, remediation level, and confidence. For example ( https://www.first.org/cvss/specification-document ) type: float vulnerability.score.version The National Vulnerability Database (NVD) provides qualitative severity rankings of "Low", "Medium", and "High" for CVSS v2.0 base score ranges in addition to the severity ratings for CVSS v3.0 as they are defined in the CVSS v3.0 specification.CVSS is owned and managed by FIRST.Org, Inc. (FIRST), a US-based non-profit organization, whose mission is to help computer security incident response teams across the world. For example ( https://nvd.nist.gov/vuln-metrics/cvss ) type: keyword example: 2.0 vulnerability.severity The severity of the vulnerability can help with metrics and internal prioritization regarding remediation. For example ( https://nvd.nist.gov/vuln-metrics/cvss ) type: keyword example: Critical x509 This implements the common core fields for x509 certificates. This information is likely logged with TLS sessions, digital signatures found in executable binaries, S/MIME information in email bodies, or analysis of files on disk.When the certificate relates to a file, use the fields at file.x509 . When hashes of the DER-encoded certificate are available, the hash data set should be populated as well (e.g. file.hash.sha256 ).Events that contain certificate information about network connections, should use the x509 fields under the relevant TLS fields: tls.server.x509 and/or tls.client.x509 . x509.alternative_names List of subject alternative names (SAN). Name types vary by certificate authority and certificate type but commonly contain IP addresses, DNS names (and wildcards), and email addresses. type: keyword example: *.elastic.co x509.issuer.common_name List of common name (CN) of issuing certificate authority. type: keyword example: Example SHA2 High Assurance Server CA x509.issuer.country List of country © codes type: keyword example: US x509.issuer.distinguished_name Distinguished name (DN) of issuing certificate authority. type: keyword example: C=US, O=Example Inc, OU=www.example.com, CN=Example SHA2 High Assurance Server CA x509.issuer.locality List of locality names (L) type: keyword example: Mountain View x509.issuer.organization List of organizations (O) of issuing certificate authority. type: keyword example: Example Inc x509.issuer.organizational_unit List of organizational units (OU) of issuing certificate authority. type: keyword example: www.example.com x509.issuer.state_or_province List of state or province names (ST, S, or P) type: keyword example: California x509.not_after Time at which the certificate is no longer considered valid. type: date example: 2020-07-16 03:15:39+00:00 x509.not_before Time at which the certificate is first considered valid. type: date example: 2019-08-16 01:40:25+00:00 x509.public_key_algorithm Algorithm used to generate the public key. type: keyword example: RSA x509.public_key_curve The curve used by the elliptic curve public key algorithm. This is algorithm specific. type: keyword example: nistp521 x509.public_key_exponent Exponent used to derive the public key. This is algorithm specific. type: long example: 65537 Field is not indexed. x509.public_key_size The size of the public key space in bits. type: long example: 2048 x509.serial_number Unique serial number issued by the certificate authority. For consistency, if this value is alphanumeric, it should be formatted without colons and uppercase characters. type: keyword example: 55FBB9C7DEBF09809D12CCAA x509.signature_algorithm Identifier for certificate signature algorithm. We recommend using names found in Go Lang Crypto library. See https://github.com/golang/go/blob/go1.14/src/crypto/x509/x509.go#L337-L353 . type: keyword example: SHA256-RSA x509.subject.common_name List of common names (CN) of subject. type: keyword example: shared.global.example.net x509.subject.country List of country © code type: keyword example: US x509.subject.distinguished_name Distinguished name (DN) of the certificate subject entity. type: keyword example: C=US, ST=California, L=San Francisco, O=Example, Inc., CN=shared.global.example.net x509.subject.locality List of locality names (L) type: keyword example: San Francisco x509.subject.organization List of organizations (O) of subject. type: keyword example: Example, Inc. x509.subject.organizational_unit List of organizational units (OU) of subject. type: keyword x509.subject.state_or_province List of state or province names (ST, S, or P) type: keyword example: California x509.version_number Version of x509 format. type: keyword example: 3 12. MEMCACHE FIELDS https://www.elastic.co/guide/en/beats/packetbeat/current/exported-fields-memcache.html Dokumentation Memcached-specific event fields memcache.protocol_type The memcache protocol implementation. The value can be "binary" for binary-based, "text" for text-based, or "unknown" for an unknown memcache protocol type. type: keyword memcache.request.line The raw command line for unknown commands ONLY. type: keyword memcache.request.command The memcache command being requested in the memcache text protocol. For example "set" or "get". The binary protocol opcodes are translated into memcache text protocol commands. type: keyword memcache.response.command Either the text based protocol response message type or the name of the originating request if binary protocol is used. type: keyword memcache.request.type The memcache command classification. This value can be "UNKNOWN", "Load", "Store", "Delete", "Counter", "Info", "SlabCtrl", "LRUCrawler", "Stats", "Success", "Fail", or "Auth". type: keyword memcache.response.type The memcache command classification. This value can be "UNKNOWN", "Load", "Store", "Delete", "Counter", "Info", "SlabCtrl", "LRUCrawler", "Stats", "Success", "Fail", or "Auth". The text based protocol will employ any of these, whereas the binary based protocol will mirror the request commands only (see memcache.response.status for binary protocol). type: keyword memcache.response.error_msg The optional error message in the memcache response (text based protocol only). type: keyword memcache.request.opcode The binary protocol message opcode name. type: keyword memcache.response.opcode The binary protocol message opcode name. type: keyword memcache.request.opcode_value The binary protocol message opcode value. type: long memcache.response.opcode_value The binary protocol message opcode value. type: long memcache.request.opaque The binary protocol opaque header value used for correlating request with response messages. type: long memcache.response.opaque The binary protocol opaque header value used for correlating request with response messages. type: long memcache.request.vbucket The vbucket index sent in the binary message. type: long memcache.response.status The textual representation of the response error code (binary protocol only). type: keyword memcache.response.status_code The status code value returned in the response (binary protocol only). type: long memcache.request.keys The list of keys sent in the store or load commands. type: array memcache.response.keys The list of keys returned for the load command (if present). type: array memcache.request.count_values The number of values found in the memcache request message. If the command does not send any data, this field is missing. type: long memcache.response.count_values The number of values found in the memcache response message. If the command does not send any data, this field is missing. type: long memcache.request.values The list of base64 encoded values sent with the request (if present). type: array memcache.response.values The list of base64 encoded values sent with the response (if present). type: array memcache.request.bytes The byte count of the values being transferred. type: long format: bytes memcache.response.bytes The byte count of the values being transferred. type: long format: bytes memcache.request.delta The counter increment/decrement delta value. type: long memcache.request.initial The counter increment/decrement initial value parameter (binary protocol only). type: long memcache.request.verbosity The value of the memcache "verbosity" command. type: long memcache.request.raw_args The text protocol raw arguments for the "stats … " and "lru crawl … " commands. type: keyword memcache.request.source_class The source class id in slab reassign command. type: long memcache.request.dest_class The destination class id in slab reassign command. type: long memcache.request.automove The automove mode in the slab automove command expressed as a string. This value can be "standby"(=0), "slow"(=1), "aggressive"(=2), or the raw value if the value is unknown. type: keyword memcache.request.flags The memcache command flags sent in the request (if present). type: long memcache.response.flags The memcache message flags sent in the response (if present). type: long memcache.request.exptime The data expiry time in seconds sent with the memcache command (if present). If the value is <30 days, the expiry time is relative to "now", or else it is an absolute Unix time in seconds (32-bit). type: long memcache.request.sleep_us The sleep setting in microseconds for the lru_crawler sleep command. type: long memcache.response.value The counter value returned by a counter operation. type: long memcache.request.noreply Set to true if noreply was set in the request. The memcache.response field will be missing. type: boolean memcache.request.quiet Set to true if the binary protocol message is to be treated as a quiet message. type: boolean memcache.request.cas_unique The CAS (compare-and-swap) identifier if present. type: long memcache.response.cas_unique The CAS (compare-and-swap) identifier to be used with CAS-based updates (if present). type: long memcache.response.stats The list of statistic values returned. Each entry is a dictionary with the fields "name" and "value". type: array memcache.response.version The returned memcache version string. type: keyword 13. PACKETBEAT QUICK START: INSTALLATION AND CONFIGURATION https://www.elastic.co/guide/en/beats/packetbeat/current/packetbeat-installation-configuration.html Dokumentation The best way to understand the value of a network packet analytics system likePacketbeat is to try it on your own traffic. This guide describes how to get started quickly with network packets analytics.You’ll learn how to: install Packetbeat on each system you want to monitor specify the network devices and protocols to sniff parse the packet data into fields and send it to Elasticsearch visualize the packet data in Kibana Before you begin You need Elasticsearch for storing and searching your data, and Kibana for visualizingand managing it. Elasticsearch Service Self-managed To get started quickly, spin up a deployment of our hosted Elasticsearch Service . The Elasticsearch Service isavailable on AWS, GCP, and Azure. Try it out for free . To install and run Elasticsearch and Kibana, see Installing the Elastic Stack . On most platforms, Packetbeat requires the libpcap packet capturelibrary. Depending on your OS, you might need to install it: DEB RPM MacOS Linux Windows sudo apt-get install libpcap0.8 sudo yum install libpcap You probably do not need to install libpcap. You probably do not need to install libpcap. You probably do not need to install libpcap. The default distribution ofPacketbeat for Windows comes bundled with the Npcap library. For the OSS-only distribution, you must download and install a packetsniffing library, such as Npcap , that implements the libpcap interfaces. If you use Npcap, make sure you install it in WinPcap API-compatible mode. Ifyou plan to capture traffic from the loopback device (127.0.0.1 traffic), alsoselect the option to support loopback traffic. Step 1: Install Packetbeat You can install Packetbeat on dedicated servers, getting the traffic frommirror ports or tap devices, or you can install it on your existing applicationservers. To download and install Packetbeat, use the commands that work with yoursystem: DEB RPM MacOS Linux Windows curl -L -O https://artifacts.elastic.co/downloads/beats/packetbeat/packetbeat-8.14.3-amd64.debsudo dpkg -i packetbeat-8.14.3-amd64.deb curl -L -O https://artifacts.elastic.co/downloads/beats/packetbeat/packetbeat-8.14.3-x86_64.rpmsudo rpm -vi packetbeat-8.14.3-x86_64.rpm curl -L -O https://artifacts.elastic.co/downloads/beats/packetbeat/packetbeat-8.14.3-darwin-x86_64.tar.gztar xzvf packetbeat-8.14.3-darwin-x86_64.tar.gz curl -L -O https://artifacts.elastic.co/downloads/beats/packetbeat/packetbeat-8.14.3-linux-x86_64.tar.gztar xzvf packetbeat-8.14.3-linux-x86_64.tar.gz Download the Packetbeat Windows zip file: https://artifacts.elastic.co/downloads/beats/packetbeat/packetbeat-8.14.3-windows-x86_64.zip Extract the contents of the zip file into C:\Program Files . Rename the packetbeat-8.14.3-windows-x86_64 directory to Packetbeat . Open a PowerShell prompt as an Administrator (right-click the PowerShell iconand select Run As Administrator ). From the PowerShell prompt, run the following commands to installPacketbeat as a Windows service: PS > cd 'C:\Program Files\Packetbeat'PS C:\Program Files\Packetbeat> .\install-service-packetbeat.ps1 If script execution is disabled on your system, you need to set theexecution policy for the current session to allow the script to run. Forexample: PowerShell.exe -ExecutionPolicy UnRestricted -File .\install-service-packetbeat.ps1 . The commands shown are for AMD platforms, but ARM packages are also available.Refer to the download page for the full list of available packages. Other installation options APT or YUM Download page Docker Step 2: Connect to the Elastic Stack Connections to Elasticsearch and Kibana are required to set up Packetbeat. Set the connection information in packetbeat.yml . To locate thisconfiguration file, see Directory layout . Elasticsearch Service Self-managed Specify the cloud.id of your Elasticsearch Service, and set cloud.auth to a user who is authorized toset up Packetbeat. For example: cloud.id: "staging:dXMtZWFzdC0xLmF3cy5mb3VuZC5pbyRjZWM2ZjI2MWE3NGJmMjRjZTMzYmI4ODExYjg0Mjk0ZiRjNmMyY2E2ZDA0MjI0OWFmMGNjN2Q3YTllOTYyNTc0Mw=="cloud.auth: "packetbeat_setup:YOUR_PASSWORD" Set the host and port where Packetbeat can find the Elasticsearch installation, andset the username and password of a user who is authorized to set upPacketbeat. For example: output.elasticsearch: hosts: ["https://myEShost:9200"] username: "packetbeat_internal" password: "YOUR_PASSWORD" ssl: enabled: true ca_trusted_fingerprint: "b9a10bbe64ee9826abeda6546fc988c8bf798b41957c33d05db736716513dc9c" If you plan to use our pre-built Kibana dashboards, configure the Kibanaendpoint. Skip this step if Kibana is running on the same host as Elasticsearch. setup.kibana: host: "mykibanahost:5601" username: "my_kibana_user" password: "{pwd}" To learn more about required roles and privileges, see Grant users access to secured resources . You can send data to other outputs ,such as Logstash,but that requires additional configuration and setup. Step 3: Configure sniffing In packetbeat.yml , configure the network devices and protocols tocapture traffic from. Set the sniffer type. By default, Packetbeat uses pcap , which uses thelibpcap library and works on most platforms. On Linux, set the sniffer type to af_packet to use memory-mapped sniffing.This option is faster than libpcap and doesn’t require a kernel module, butit’s Linux-specific: packetbeat.interfaces.type: af_packet Specify the network device to capture traffic from. For example: packetbeat.interfaces.device: eth0 On Linux, specify packetbeat.interfaces.device: any to capture allmessages sent or received by the server where Packetbeat is installed.The any setting does not work on macOS. To see a list of available devices, run: DEB RPM MacOS Linux Windows packetbeat devices packetbeat devices ./packetbeat devices ./packetbeat devices PS C:\Program Files\Packetbeat> .\packetbeat.exe devices 0: \Device\NPF_{113535AD-934A-452E-8D5F-3004797DE286} (Intel(R) PRO/1000 MT Desktop Adapter) In this example, there’s only one network card, with the index 0, installed onthe system. If there are multiple network cards, remember the index of thedevice you want to use for capturing the traffic. Modify the device setting to point to the index of the device: packetbeat.interfaces.device: 0 For more information about these settings, see Traffic sniffing . In the protocols section, configure the ports where Packetbeat can findeach protocol. If you use any non-standard ports, add them here. Otherwise,use the default values. packetbeat.protocols: - type: dhcpv4 ports: [67, 68] - type: dns ports: [53] - type: http ports: [80, 8080, 8081, 5000, 8002] - type: memcache ports: [11211] - type: mysql ports: [3306,3307] - type: pgsql ports: [5432] - type: redis ports: [6379] - type: thrift ports: [9090] - type: mongodb ports: [27017] - type: cassandra ports: [9042] - type: tls ports: [443, 993, 995, 5223, 8443, 8883, 9243] To test your configuration file, change to the directory where thePacketbeat binary is installed, and run Packetbeat in the foreground withthe following options specified: sudo ./packetbeat test config -e . Make sureyour config files are in the path expected by Packetbeat (see Directory layout ), or use the -c flag to specify the path to the configfile. Depending on your OS, you might run into file ownership issues when yourun this test. See Config File Ownership and Permissions for more information. For more information about configuring Packetbeat, also see: Configure Packetbeat Config file format packetbeat.reference.yml : This reference configurationfile shows all non-deprecated options. You’ll find it in the same location as packetbeat.yml . Step 4: Set up assets Packetbeat comes with predefined assets for parsing, indexing, andvisualizing your data. To load these assets: Make sure the user specified in packetbeat.yml is authorized to set up Packetbeat . From the installation directory, run: DEB RPM MacOS Linux Windows packetbeat setup -e packetbeat setup -e ./packetbeat setup -e ./packetbeat setup -e PS > .\packetbeat.exe setup -e -e is optional and sends output to standard error instead of the configured log output. This step loads the recommended index template for writing to Elasticsearchand deploys the sample dashboards for visualizing the data in Kibana. A connection to Elasticsearch (or Elasticsearch Service) is required to set up the initialenvironment. If you’re using a different output, such as Logstash, see Load the index template manually and Load Kibana dashboards . Step 5: Start Packetbeat Before starting Packetbeat, modify the user credentials in packetbeat.yml and specify a user who is authorized to publish events . To start Packetbeat, run: DEB RPM MacOS Linux Windows sudo service packetbeat start If you use an init.d script to start Packetbeat, you can’t specify commandline flags (see Command reference ). To specify flags, start Packetbeat inthe foreground. Also see Packetbeat and systemd . sudo service packetbeat start If you use an init.d script to start Packetbeat, you can’t specify commandline flags (see Command reference ). To specify flags, start Packetbeat inthe foreground. Also see Packetbeat and systemd . sudo chown root packetbeat.yml sudo ./packetbeat -e sudo chown root packetbeat.yml sudo ./packetbeat -e PS C:\Program Files\packetbeat> Start-Service packetbeat By default, Windows log files are stored in C:\ProgramData\packetbeat\Logs . Packetbeat should begin streaming data to Elasticsearch. Step 6: View your data in Kibana Packetbeat comes with pre-built Kibana dashboards and UIs for visualizing logdata. You loaded the dashboards earlier when you ran the setup command. To open the dashboards: Launch Kibana: Elasticsearch Service Self-managed Log in to your Elastic Cloud account. Navigate to the Kibana endpoint in your deployment. Point your browser to http://localhost:5601 , replacing localhost with the name of the Kibana host. In the side navigation, click Discover . To see Packetbeat data, makesure the predefined packetbeat-* index pattern is selected. If you don’t see data in Kibana, try changing the time filter to a largerrange. By default, Kibana shows the last 15 minutes. In the side navigation, click Dashboard , then select the dashboard that youwant to open. The dashboards are provided as examples. We recommend that you customize them to meet your needs. To populate the client locations map in the overview dashboard, follow thesteps described in Enrich events with geoIP information . What’s next? Now that you have your data streaming into Elasticsearch, learn how to unify your logs,metrics, uptime, and application performance data. Ingest data from other sources by installing and configuring other ElasticBeats: Use the Observability apps in Kibana to search across all your data: 14. ORGANIZATIONINVITATIONS https://www.elastic.co/guide/en/cloud-enterprise/current/OrganizationInvitations.html Dokumentation A collection of invitations to an organization invitations ( array[ OrganizationInvitation ] , required) The list of organization invitations { "invitations" : [ { "accepted_at" : "2019-01-01T00:00:00Z", "created_at" : "2019-01-01T00:00:00Z", "email" : "string", "expired" : true, "expires_at" : "2019-01-01T00:00:00Z", "organization" : { "billing_contacts" : [ "string" ], "default_disk_usage_alerts_enabled" : true, "id" : "string", "name" : "string", "notifications_allowed_email_domains" : [ "string" ], "operational_contacts" : [ "string" ] }, "token" : "string" } ]} 15. ORGANIZATIONINVITATION https://www.elastic.co/guide/en/cloud-enterprise/current/OrganizationInvitation.html Dokumentation An invitation to an organization accepted_at ( string as date-time ) The date and time when the invitation was accepted created_at ( string as date-time , required) The date and time when the invitation was created email ( string , required) The email address to invite to the organization expired ( boolean , required) True if the invitation is expired expires_at ( string as date-time , required) The date and time when the invitation expires organization ( Organization , required) The organization associated with this invitation token ( string , required) The token used to accept the invitation { "accepted_at" : "2019-01-01T00:00:00Z", "created_at" : "2019-01-01T00:00:00Z", "email" : "string", "expired" : true, "expires_at" : "2019-01-01T00:00:00Z", "organization" : { "billing_contacts" : [ "string" ], "default_disk_usage_alerts_enabled" : true, "id" : "string", "name" : "string", "notifications_allowed_email_domains" : [ "string" ], "operational_contacts" : [ "string" ] }, "token" : "string"} 16. ORGANIZATIONINVITATIONREQUEST https://www.elastic.co/guide/en/cloud-enterprise/current/OrganizationInvitationRequest.html Dokumentation A request to create one or more invitations to an organization emails ( array[ string ] , required) The email addresses to invite to the organization expires_in ( string ) The date and time when the invitation expires. Defaults to three days from now. { "emails" : [ "string" ], "expires_in" : "string"} 17. USERLIST https://www.elastic.co/guide/en/cloud-enterprise/current/UserList.html Dokumentation A collection of users users ( array[ User ] , required) A list of users { "users" : [ { "builtin" : true, "email" : "string", "full_name" : "string", "metadata" : { "created_at" : "2019-01-01T00:00:00Z", "created_by" : "string", "first_login_at" : "2019-01-01T00:00:00Z", "last_login_at" : "2019-01-01T00:00:00Z", "updated_at" : "2019-01-01T00:00:00Z", "updated_by" : "string" }, "security" : { "elevated_permissions" : { "enabled" : true, "expires_at" : "2019-01-01T00:00:00Z" }, "enabled" : true, "password" : "string", "permissions" : [ "string" ], "roles" : [ "string" ], "security_realm" : { "id" : "string", "type" : "string" } }, "user_name" : "string" } ]} 18. REMOVALS FOR ECE 3.0 https://www.elastic.co/guide/en/cloud-enterprise/current/ece-3-0-removals.html Dokumentation With the release of Elastic Cloud Enterprise version 3.0 a number of features, API endpoints, and Elastic Stack versions will no longer be supported. Check the following information for details about what will be removed, and migration options if appropriate. Check the following sections for more detail: Features removed in ECE 3.0 API endpoints removed in ECE 3.0 Deployments API replaces clusters API Deprecated Elastic Stack versions Features removed in ECE 3.0 The following set of features are removed in Elastic Cloud Enterprise 3.0. Custom deployment templates must support node_roles and include all components When creating custom deployment templates , aside from the Hot data and Content tier, platform admins were previously able to decide whether or not to include other components, such as Enterprise Search, Kibana, and others. This is in addition to the option to disable a component by setting its size to 0GB. In ECE version 2.9.0 , we introduced a new node_roles field to configure which node roles are assigned to each Elasticsearch node, and which added support for features such as autoscaling and the frozen data tier. As part of this change, all components are now required to be included in custom templates when using node_roles . When a component is included it is still be possible to disable it by setting its size to 0GB, excluding the hot data and content tier which is required and must be enabled. Starting with ECE version 3.0, all custom deployment templates are required to support node_roles and must include all components. Existing deployments will be required to migrate to use node_roles before upgrading to Elastic Stack version 8.0 or above. If there are deployment templates in your environment that were not updated to support node_roles or that do not include all components, you must first update them before you are able to upgrade your environment to ECE version 3.0 or above. You can use this step-by-step guide that describes the migration process. Removing support for the dedicated App Search component In ECE version 2.4.0 we introduced support for an Elastic App Search component with a dedicated App Search deployment template.In ECE version 2.6.0 , we expanded that support to Elastic Enterprise Search that gives you access both to App Search and Workplace Search. Starting from ECE version 3.0 we will no longer support the App Search deployment template or App Search component in custom deployment templates. If there are active deployments in your ECE environment that are still using the legacy App Search deployment template or the App Search component in a custom deployment template, you must first migrate them to use Enterprise Search before you are able to upgrade your environment to ECE version 3.0 or above. You can use the following step-by-step guide that will walk you through the migration process. Removing support for the dedicated Cross-Cluster-Search (CCS) deployment template Previously, we supported CCS using a dedicated CCS deployment template. In ECE version 2.9.0 , we expanded that support to all deployment templates, making CCS (and CCR) available in all deployments using compatible Elastic Stack versions. Starting with ECE version 3.0, we no longer support the dedicated CCS deployment template. If there are active deployments in your environment created using the CCS template, you must first migrate them to a different template before you are able to upgrade your environment to ECE version 3.0 or above. You can use this step-by-step guide that describes the migration process. Removing support for Elastic Stack versions 2.x and 5.x In ECE 2.x versions, you could upload older 2.x and 5.x Elastic Stack packs and create new deployments using those versions. As described on our End-of-Life page , maintenance for those versions ended more than two years ago. Starting with ECE version 3.0, we no longer support version 2.x or 5.x deployments. If there are active deployments in your ECE environment using those versions, you must first upgrade them to Elastic Stack 6.0 or above before you are able to upgrade your environment to ECE version 3.0 or above. We highly recommend upgrading to a supported version as described on our End-of-Life page . Refer to our Upgrade documentation to upgrade your deployments to a newer Elastic Stack version. Removing support for index curation Index curation enabled you to easily and automatically move indices from hot to cold data nodes after a certain time period. In ECE version 2.2 , we released support for index lifecycle management (ILM) that offers a much more robust mechanism to move your data across the different phases as it matures and is less frequently searched. Starting with ECE version 3.0, we no longer support index curation. If you have active deployments using index curation, you must first migrate them to use ILM before you are able to upgrade your environment to ECE version 3.0 or above. You can use this step-by-step guide that describes the migration process. Remove logging and metrics index curator Logging and metrics curator was a process that ran on coordinating nodes that enforced index retention on system-managed indices in the logging and metrics cluster. Starting with ECE version 3.0, we no longer use the curator process for logging and metrics index retention. Instead, we will install default ILM policies for system-managed logging and metrics indices in the logging and metrics cluster. If log and metrics retention was customized in previous versions of ECE, we won’t install the default ILM policies to avoid pruning logs and metrics that were intended to be retained. The upgrade log will warn you about this and output the custom retention policy that was detected. To configure system log and metrics indices retention, see setting retention period for logging and metrics indices . After a successful upgrade from ECE version < 3.0 to a version >= 3.0, we suggest that you remove the backup container of the curator manually by running docker rm -f frc-curators-curator_bak . Removing support for Elasticsearch remote clusters “sniff mode” When creating or editing a deployment, the node_type field was used to configure which Elasticsearch node roles should be assigned to each node. Starting with Elastic Stack 7.10, Elasticsearch supports a new method to configure and manage Elasticsearch node roles using a single node.roles setting. With this change, we introduced a new node_roles field in our ECE API to take advantage of the new Elasticsearch setting. Starting with Elastic Stack version 8.0, the legacy node role configuration is no longer supported in Elasticsearch and, as a result, we are also removing support for the legacy node_type field. Requests to create or update deployments using Elastic Stack version 8.0 or above will be rejected. You can, however, continue and use the node_type field to create and manage deployments using older stack versions. As a first step, before you migrate a deployment to use node_roles , the relevant deployment template associated with that deployment (as configured in the deployment_template field in the deployment JSON) must be updated to support node_roles . System-owned templates all support the new node_roles field. To learn more about how to update custom deployment templates, refer to Custom deployment templates must support node_roles and include all components . If you are using the ECE user console to manage your deployment, this change should be transparent. The deployment will automatically migrate to use the new node_roles field when you upgrade to a stack version that supports the new field. If you are using the ECE API to create and manage deployments, you must edit your payload and replace the node_type field with the new node_roles field to assign node roles to each Elasticsearch node. You can use this step-by-step guide that describes the migration process. Removing the IP filtering API endpoints We introduced the Traffic Filters API in ECE version 2.6.0 . The IP Filtering API endpoints were deprecated in the same release. We are removing access to the IP Filtering endpoints in ECE version 3.0 to consolidate on the newer set of API endpoints. Change in CORS behavior We implemented CORS behavior handling in the proxy to match legacy behavior, and since the stack now fully supports CORS handling on its own, we no longer need to do this for current versions. Beginning with ECE version 3.0, we now rely on the stack implementation for all clusters that support it. API endpoints removed in ECE 3.0 The following set endpoints have removed from the Elastic Cloud Enterprise RESTful API in version 3.0. Check Deployments API replaces clusters API for options on how to migrate to a different endpoint before upgrading ECE. POST /cluster/_search Use POST /deployments/_search instead. GET /clusters/apm Use GET /deployments instead. POST /clusters/apm Use PUT /deployments/{deployment_id} instead. POST /clusters/apm/_resync Use POST /deployments/_resync instead. POST /clusters/apm/_search Use POST /deployments/_search instead. GET /clusters/apm/{cluster_id} Use GET /deployments/{deployment_id} instead. DELETE /clusters/apm/{cluster_id} Use DELETE /deployments/{deployment_id}/{resource_kind}/{ref_id} instead. POST /clusters/apm/{cluster_id}/_reset-token Use POST /deployments/{deployment_id}/apm/{ref_id}/_reset-token instead. POST /clusters/apm/{cluster_id}/_restart Use POST /deployments/{deployment_id}/{resource_kind}/{ref_id}/_restart instead. POST /clusters/apm/{cluster_id}/_shutdown Use POST /deployments/{deployment_id}/{resource_kind}/{ref_id}/_shutdown instead. POST /clusters/apm/{cluster_id}/_upgrade Use POST /deployments/{deployment_id}/{stateless_resource_kind}/{ref_id}/_upgrade instead. POST /clusters/apm/{cluster_id}/instances/_move POST /clusters/apm/{cluster_id}/instances/_start Use POST /deployments/{deployment_id}/{resource_kind}/{ref_id}/instances/_start instead. POST /clusters/apm/{cluster_id}/instances/_stop Use POST /deployments/{deployment_id}/{resource_kind}/{ref_id}/instances/_stop instead. POST /clusters/apm/{cluster_id}/instances/maintenance-mode/_start Use POST /deployments/{deployment_id}/{resource_kind}/{ref_id}/instances/maintenance-mode/_start instead. POST /clusters/apm/{cluster_id}/instances/maintenance-mode/_stop Use POST /deployments/{deployment_id}/{resource_kind}/{ref_id}/instances/maintenance-mode/_stop instead. POST /clusters/apm/{cluster_id}/instances/{instance_ids}/_move POST /clusters/apm/{cluster_id}/instances/{instance_ids}/_start Use POST /deployments/{deployment_id}/{resource_kind}/{ref_id}/instances/{instance_ids}/_start instead. POST /clusters/apm/{cluster_id}/instances/{instance_ids}/_stop Use POST /deployments/{deployment_id}/{resource_kind}/{ref_id}/instances/{instance_ids}/_stop instead. POST /clusters/apm/{cluster_id}/instances/{instance_ids}/maintenance-mode/_start Use POST /deployments/{deployment_id}/{resource_kind}/{ref_id}/instances/{instance_ids}/maintenance-mode/_start instead. POST /clusters/apm/{cluster_id}/instances/{instance_ids}/maintenance-mode/_stop Use POST /deployments/{deployment_id}/{resource_kind}/{ref_id}/instances/{instance_ids}/maintenance-mode/_stop instead. PUT /clusters/apm/{cluster_id}/metadata/name/{new_name} Use PUT /deployments/{deployment_id} instead. GET /clusters/apm/{cluster_id}/metadata/raw Use GET /deployments/{deployment_id}?show_metadata=true instead. POST /clusters/apm/{cluster_id}/metadata/raw Use POST /deployments/{deployment_id}/{resource_kind}/{ref_id}/metadata/raw instead. GET /clusters/apm/{cluster_id}/metadata/settings Use GET /deployments/{deployment_id} instead. PATCH /clusters/apm/{cluster_id}/metadata/settings Use PUT /deployments/{deployment_id} instead. GET /clusters/apm/{cluster_id}/plan Use GET /deployments/{deployment_id} instead. POST /clusters/apm/{cluster_id}/plan Use PUT /deployments/{deployment_id} instead. GET /clusters/apm/{cluster_id}/plan/activity Use GET /deployments/{deployment_id} instead. GET /clusters/apm/{cluster_id}/plan/pending Use GET /deployments/{deployment_id} instead. DELETE /clusters/apm/{cluster_id}/plan/pending Use DELETE /deployments/{deployment_id}/{resource_kind}/{ref_id}/plan/pending instead. GET /clusters/elasticsearch Use GET /deployments instead. POST /clusters/elasticsearch Use POST /deployments instead. POST /clusters/elasticsearch/_resync Use POST /deployments/_resync instead. POST /clusters/elasticsearch/_search Use POST /deployments/_search instead. GET /clusters/elasticsearch/ccs/eligible_remotes Use POST /deployments/eligible-remote-clusters instead. GET /clusters/elasticsearch/{cluster_id} Use GET /deployments/{deployment_id} instead. DELETE /clusters/elasticsearch/{cluster_id} Use DELETE /deployments/{deployment_id} instead. POST /clusters/elasticsearch/{cluster_id}/_restart Use POST /deployments/{deployment_id}/{resource_kind}/{ref_id}/_restart instead. POST /clusters/elasticsearch/{cluster_id}/_resync Use POST /deployments/{deployment_id}/_resync instead. POST /clusters/elasticsearch/{cluster_id}/_shutdown Use POST /deployments/{deployment_id}/{resource_kind}/{ref_id}/_shutdown instead. POST /clusters/elasticsearch/{cluster_id}/_snapshot Use Elasticsearch snapshot API and snapshot lifecycle management APIs. GET /clusters/elasticsearch/{cluster_id}/ccs Use Elasticsearch remote info API. GET /clusters/elasticsearch/{cluster_id}/ccs/settings Use GET /deployments/{deployment_id}/elasticsearch/{ref_id}/remote-clusters instead. PUT /clusters/elasticsearch/{cluster_id}/ccs/settings Use PUT /deployments/{deployment_id}/elasticsearch/{ref_id}/remote-clusters instead. GET /clusters/elasticsearch/{cluster_id}/curation/settings Curation no longer available. Use Elasticsearch index lifecycle management instead. PUT /clusters/elasticsearch/{cluster_id}/curation/settings Curation no longer available. Use Elasticsearch index lifecycle management instead. POST /clusters/elasticsearch/{cluster_id}/instances/_move POST /clusters/elasticsearch/{cluster_id}/instances/_start Use POST /deployments/{deployment_id}/{resource_kind}/{ref_id}/instances/_start instead. POST /clusters/elasticsearch/{cluster_id}/instances/_stop Use POST /deployments/{deployment_id}/{resource_kind}/{ref_id}/instances/_stop instead. POST /clusters/elasticsearch/{cluster_id}/instances/maintenance-mode/_start Use POST /deployments/{deployment_id}/{resource_kind}/{ref_id}/instances/maintenance-mode/_start instead. POST /clusters/elasticsearch/{cluster_id}/instances/maintenance-mode/_stop Use POST /deployments/{deployment_id}/{resource_kind}/{ref_id}/instances/maintenance-mode/_stop instead. PUT /clusters/elasticsearch/{cluster_id}/instances/settings Use PUT /deployments/{deployment_id}/{resource_kind}/{ref_id}/instances/overrides instead. POST /clusters/elasticsearch/{cluster_id}/instances/{instance_ids}/_move POST /clusters/elasticsearch/{cluster_id}/instances/{instance_ids}/_start Use POST /deployments/{deployment_id}/{resource_kind}/{ref_id}/instances/{instance_ids}/_start instead. POST /clusters/elasticsearch/{cluster_id}/instances/{instance_ids}/_stop Use POST /deployments/{deployment_id}/{resource_kind}/{ref_id}/instances/{instance_ids}/_stop instead. POST /clusters/elasticsearch/{cluster_id}/instances/{instance_ids}/maintenance-mode/_start Use POST /deployments/{deployment_id}/{resource_kind}/{ref_id}/instances/{instance_ids}/maintenance-mode/_start instead. POST /clusters/elasticsearch/{cluster_id}/instances/{instance_ids}/maintenance-mode/_stop Use POST /deployments/{deployment_id}/{resource_kind}/{ref_id}/instances/{instance_ids}/maintenance-mode/_stop instead. PUT /clusters/elasticsearch/{cluster_id}/instances/{instance_ids}/settings Use PUT /deployments/{deployment_id}/{resource_kind}/{ref_id}/instances/{instance_ids}/overrides instead. GET /clusters/elasticsearch/{cluster_id}/keystore Use GET /deployments/{deployment_id}/elasticsearch/{ref_id}/keystore instead. PATCH /clusters/elasticsearch/{cluster_id}/keystore Use PATCH /deployments/{deployment_id}/elasticsearch/{ref_id}/keystore instead. PUT /clusters/elasticsearch/{cluster_id}/metadata/name/{new_name} Use PUT /deployments/{deployment_id} instead. GET /clusters/elasticsearch/{cluster_id}/metadata/raw Use GET /deployments/{deployment_id}?show_metadata=true instead. POST /clusters/elasticsearch/{cluster_id}/metadata/raw Use POST /deployments/{deployment_id}/{resource_kind}/{ref_id}/metadata/raw instead. GET /clusters/elasticsearch/{cluster_id}/metadata/settings Use GET /deployments/{deployment_id} instead. PATCH /clusters/elasticsearch/{cluster_id}/metadata/settings Use PUT /deployments/{deployment_id} instead. DELETE /clusters/elasticsearch/{cluster_id}/monitoring Use PUT /deployments/{deployment_id} instead. POST /clusters/elasticsearch/{cluster_id}/monitoring/{dest_cluster_id} Use PUT /deployments/{deployment_id} instead. GET /clusters/elasticsearch/{cluster_id}/plan Use GET /deployments/{deployment_id} instead. POST /clusters/elasticsearch/{cluster_id}/plan Use PUT /deployments/{deployment_id} instead. POST /clusters/elasticsearch/{cluster_id}/plan/_migrate GET /clusters/elasticsearch/{cluster_id}/plan/activity Use GET /deployments/{deployment_id}?show_plan_history=true&show_plan_logs=true instead. GET /clusters/elasticsearch/{cluster_id}/plan/pending Use GET /deployments/{deployment_id} instead. DELETE /clusters/elasticsearch/{cluster_id}/plan/pending Use DELETE /deployments/{deployment_id}/{resource_kind}/{ref_id}/plan/pending instead. GET /clusters/elasticsearch/{cluster_id}/proxy/{elasticsearch_path} Use GET /deployments/{deployment_id}/{resource_kind}/{ref_id}/proxy/{proxy_path} instead. POST /clusters/elasticsearch/{cluster_id}/proxy/{elasticsearch_path} Use POST /deployments/{deployment_id}/{resource_kind}/{ref_id}/proxy/{proxy_path} instead. PUT /clusters/elasticsearch/{cluster_id}/proxy/{elasticsearch_path} Use PUT /deployments/{deployment_id}/{resource_kind}/{ref_id}/proxy/{proxy_path} instead. DELETE /clusters/elasticsearch/{cluster_id}/proxy/{elasticsearch_path} Use DELETE /deployments/{deployment_id}/{resource_kind}/{ref_id}/proxy/{proxy_path} instead. PUT /clusters/elasticsearch/{cluster_id}/settings/security/legacy Endpoint was used for 2.x versions of Elasticsearch which are EOL and unsupported in ECE 3.0. GET /clusters/elasticsearch/{cluster_id}/snapshot/settings Use GET /deployments/{deployment_id} instead. PATCH /clusters/elasticsearch/{cluster_id}/snapshot/settings Use PUT /deployments/{deployment_id} instead. GET /clusters/elasticsearch/{cluster_id}/support/_generate-diagnostics Use POST /deployments/{deployment_id}/{resource_kind}/{ref_id}/diagnostics/_capture instead. GET /clusters/elasticsearch/{cluster_id}/support/_generate-logs GET /clusters/enterprise_search/{cluster_id}/proxy/{enterprise_search_path} Use GET /deployments/{deployment_id}/{resource_kind}/{ref_id}/proxy/{proxy_path} instead. POST /clusters/enterprise_search/{cluster_id}/proxy/{enterprise_search_path} Use POST /deployments/{deployment_id}/{resource_kind}/{ref_id}/proxy/{proxy_path} instead. PUT /clusters/enterprise_search/{cluster_id}/proxy/{enterprise_search_path} Use PUT /deployments/{deployment_id}/{resource_kind}/{ref_id}/proxy/{proxy_path} instead. DELETE /clusters/enterprise_search/{cluster_id}/proxy/{enterprise_search_path} Use DELETE /deployments/{deployment_id}/{resource_kind}/{ref_id}/proxy/{proxy_path} instead. GET /clusters/kibana Use GET /deployments instead. POST /clusters/kibana Use PUT /deployments/{deployment_id} instead. POST /clusters/kibana/_resync Use POST /deployments/_resync instead. POST /clusters/kibana/_search Use POST /deployments/_search instead. GET /clusters/kibana/{cluster_id} Use GET /deployments/{deployment_id} instead. DELETE /clusters/kibana/{cluster_id} Use DELETE /deployments/{deployment_id}/{resource_kind}/{ref_id} instead. POST /clusters/kibana/{cluster_id}/_restart Use POST /deployments/{deployment_id}/{resource_kind}/{ref_id}/_restart instead. POST /clusters/kibana/{cluster_id}/_resync Use POST /deployments/{deployment_id}/_resync instead. POST /clusters/kibana/{cluster_id}/_shutdown Use POST /deployments/{deployment_id}/{resource_kind}/{ref_id}/_shutdown instead. POST /clusters/kibana/{cluster_id}/_upgrade Use POST /deployments/{deployment_id}/{stateless_resource_kind}/{ref_id}/_upgrade instead. POST /clusters/kibana/{cluster_id}/instances/_move POST /clusters/kibana/{cluster_id}/instances/_start Use POST /deployments/{deployment_id}/{resource_kind}/{ref_id}/instances/_start instead. POST /clusters/kibana/{cluster_id}/instances/_stop Use POST /deployments/{deployment_id}/{resource_kind}/{ref_id}/instances/_stop instead. POST /clusters/kibana/{cluster_id}/instances/maintenance-mode/_start Use POST /deployments/{deployment_id}/{resource_kind}/{ref_id}/instances/maintenance-mode/_start instead. POST /clusters/kibana/{cluster_id}/instances/maintenance-mode/_stop Use POST /deployments/{deployment_id}/{resource_kind}/{ref_id}/instances/maintenance-mode/_stop instead. POST /clusters/kibana/{cluster_id}/instances/{instance_ids}/_move POST /clusters/kibana/{cluster_id}/instances/{instance_ids}/_start Use POST /deployments/{deployment_id}/{resource_kind}/{ref_id}/instances/{instance_ids}/_start instead. POST /clusters/kibana/{cluster_id}/instances/{instance_ids}/_stop Use POST /deployments/{deployment_id}/{resource_kind}/{ref_id}/instances/{instance_ids}/_stop instead. POST /clusters/kibana/{cluster_id}/instances/{instance_ids}/maintenance-mode/_start Use POST /deployments/{deployment_id}/{resource_kind}/{ref_id}/instances/{instance_ids}/maintenance-mode/_start instead. POST /clusters/kibana/{cluster_id}/instances/{instance_ids}/maintenance-mode/_stop Use POST /deployments/{deployment_id}/{resource_kind}/{ref_id}/instances/{instance_ids}/maintenance-mode/_stop instead. PUT /clusters/kibana/{cluster_id}/metadata/name/{new_name} Use PUT /deployments/{deployment_id} instead. GET /clusters/kibana/{cluster_id}/metadata/raw Use GET /deployments/{deployment_id}?show_metadata=true instead. POST /clusters/kibana/{cluster_id}/metadata/raw Use POST /deployments/{deployment_id}/{resource_kind}/{ref_id}/metadata/raw instead. GET /clusters/kibana/{cluster_id}/metadata/settings Use GET /deployments/{deployment_id} instead. PATCH /clusters/kibana/{cluster_id}/metadata/settings Use PUT /deployments/{deployment_id} instead. GET /clusters/kibana/{cluster_id}/plan Use GET /deployments/{deployment_id} instead. POST /clusters/kibana/{cluster_id}/plan Use PUT /deployments/{deployment_id} instead. GET /clusters/kibana/{cluster_id}/plan/activity Use GET /deployments/{deployment_id}?show_plan_history=true&show_plan_logs=true instead. GET /clusters/kibana/{cluster_id}/plan/pending Use GET /deployments/{deployment_id} instead. DELETE /clusters/kibana/{cluster_id}/plan/pending Use DELETE /deployments/{deployment_id}/{resource_kind}/{ref_id}/plan/pending instead. GET /clusters/kibana/{cluster_id}/proxy/{kibana_path} Use GET /deployments/{deployment_id}/{resource_kind}/{ref_id}/proxy/{proxy_path} instead. POST /clusters/kibana/{cluster_id}/proxy/{kibana_path} Use POST /deployments/{deployment_id}/{resource_kind}/{ref_id}/proxy/{proxy_path} instead. PUT /clusters/kibana/{cluster_id}/proxy/{kibana_path} Use PUT /deployments/{deployment_id}/{resource_kind}/{ref_id}/proxy/{proxy_path} instead. DELETE /clusters/kibana/{cluster_id}/proxy/{kibana_path} Use DELETE /deployments/{deployment_id}/{resource_kind}/{ref_id}/proxy/{proxy_path} instead. GET /deployments/ip-filtering/associations/{association_type}/{associated_entity_id}/rulesets Use GET /deployments/traffic-filter/associations/{association_type}/{associated_entity_id}/rulesets instead. GET /deployments/ip-filtering/rulesets Use GET /deployments/traffic-filter/rulesets instead. POST /deployments/ip-filtering/rulesets Use POST /deployments/traffic-filter/rulesets instead. GET /deployments/ip-filtering/rulesets/{ruleset_id} Use GET /deployments/traffic-filter/rulesets/{ruleset_id} instead. PUT /deployments/ip-filtering/rulesets/{ruleset_id} Use PUT /deployments/traffic-filter/rulesets/{ruleset_id} instead. DELETE /deployments/ip-filtering/rulesets/{ruleset_id} Use DELETE /deployments/traffic-filter/rulesets/{ruleset_id} instead. GET /deployments/ip-filtering/rulesets/{ruleset_id}/associations Use GET /deployments/traffic-filter/rulesets/{ruleset_id}/associations instead. POST /deployments/ip-filtering/rulesets/{ruleset_id}/associations Use POST /deployments/traffic-filter/rulesets/{ruleset_id}/associations instead. DELETE /deployments/ip-filtering/rulesets/{ruleset_id}/associations/{association_type}/{associated_entity_id} Use DELETE /deployments/traffic-filter/rulesets/{ruleset_id}/associations/{association_type}/{associated_entity_id} instead. POST /platform/configuration/security/deployment/_disable The security deployment is required in Elastic Cloud Enterprise 3.0, so there is no longer an API for disabling it. POST /platform/configuration/security/deployment/_enable The security deployment is already enabled in Elastic Cloud Enterprise 3.0, so there is no longer an API for enabling it. GET /platform/configuration/templates/deployments Use GET /deployments/templates instead. POST /platform/configuration/templates/deployments Use POST /deployments/templates instead. DELETE /platform/configuration/templates/deployments/{template_id} Use DELETE /deployments/templates/{template_id} instead. GET /platform/configuration/templates/deployments/{template_id} Use GET /deployments/templates/{template_id} instead. PUT /platform/configuration/templates/deployments/{template_id} Use PUT /deployments/templates/{template_id} instead. POST /users/auth/reauthenticate Use API keys instead. Deployments API replaces clusters API Starting in Elastic Cloud Enterprise 3.0, there is no longer a top-level concept of clusters. Deployments are now the only top level model, and they represent a collection of resources. A resource is essentially what used to be called a cluster. It represents a deployable product with an infrastructure plan and a topology of instances that are deployed on one or more allocators. A resource has a kind (Elasticsearch, Kibana, Enterprise Search, and so on) and a reference ID (refid) that uniquely identifies it within the deployment. The resource kind and refid are used throughout the API to replace operations that used to be for operating on individual clusters. You can retrieve the resources and their corresponding refids for a given deployment by using the Get Deployment API. As an example, in Elastic Cloud Enterprise 2, you could use the clusters API like so to create a deployment: POST /api/v1/clusters/elasticsearch{ "cluster_name": "My deployment", "plan": { "cluster_topology": [ { "id": "hot_content", "node_type": { "data": true, "master": true, "ingest": true, "ml": false }, "node_roles": [ "master", "ingest", "transform", "data_hot", "remote_cluster_client", "data_content" ], "zone_count": 1, "elasticsearch": { "node_attributes": { "data": "hot" }, "enabled_built_in_plugins": [] }, "instance_configuration_id": "data.default", "size": { "value": 4096, "resource": "memory" } }, { "id": "warm", "node_type": { "data": true, "master": false, "ingest": false, "ml": false }, "node_roles": [ "data_warm", "remote_cluster_client" ], "zone_count": 1, "elasticsearch": { "node_attributes": { "data": "warm" }, "enabled_built_in_plugins": [] }, "instance_configuration_id": "data.highstorage", "size": { "value": 0, "resource": "memory" } }, { "id": "cold", "node_type": { "data": true, "master": false, "ingest": false, "ml": false }, "node_roles": [ "data_cold", "remote_cluster_client" ], "zone_count": 1, "elasticsearch": { "node_attributes": { "data": "cold" }, "enabled_built_in_plugins": [] }, "instance_configuration_id": "data.highstorage", "size": { "value": 0, "resource": "memory" } }, { "id": "frozen", "node_type": { "data": true, "master": false, "ingest": false, "ml": false }, "node_roles": [ "data_frozen" ], "zone_count": 1, "elasticsearch": { "node_attributes": { "data": "frozen" }, "enabled_built_in_plugins": [] }, "instance_configuration_id": "data.frozen", "size": { "value": 0, "resource": "memory" } }, { "id": "coordinating", "node_type": { "ingest": true, "master": false, "data": false, "ml": false }, "node_roles": [ "ingest", "remote_cluster_client" ], "zone_count": 1, "instance_configuration_id": "coordinating", "size": { "value": 0, "resource": "memory" }, "elasticsearch": { "enabled_built_in_plugins": [] } }, { "id": "master", "node_type": { "master": true, "data": false, "ml": false, "ingest": false }, "node_roles": [ "master", "remote_cluster_client" ], "zone_count": 1, "instance_configuration_id": "master", "size": { "value": 0, "resource": "memory" }, "elasticsearch": { "enabled_built_in_plugins": [] } }, { "id": "ml", "node_type": { "ml": true, "data": false, "master": false, "ingest": false }, "node_roles": [ "ml", "remote_cluster_client" ], "zone_count": 1, "instance_configuration_id": "ml", "size": { "value": 0, "resource": "memory" }, "elasticsearch": { "enabled_built_in_plugins": [] } } ], "elasticsearch": { "version": "7.15.1" }, "autoscaling_enabled": false, "deployment_template": { "id": "default" } }} POST /api/v1/clusters/kibana{ "elasticsearch_cluster_id": {elasticsearch_id}, "plan": { "zone_count": 1, "cluster_topology": [ { "instance_configuration_id": "kibana", "size": { "value": 1024, "resource": "memory" }, "zone_count": 1 } ], "kibana": { "version": "7.15.1" } }} With the deployments API, you can create the same deployment like so: POST /api/v1/deployments{ "resources": { "elasticsearch": [ { "ref_id": "main-elasticsearch", "region": "ece-region", "plan": { "cluster_topology": [ { "id": "hot_content", "node_roles": [ "master", "ingest", "transform", "data_hot", "remote_cluster_client", "data_content" ], "zone_count": 1, "elasticsearch": { "node_attributes": { "data": "hot" }, "enabled_built_in_plugins": [] }, "instance_configuration_id": "data.default", "size": { "value": 4096, "resource": "memory" } }, { "id": "warm", "node_roles": [ "data_warm", "remote_cluster_client" ], "zone_count": 1, "elasticsearch": { "node_attributes": { "data": "warm" }, "enabled_built_in_plugins": [] }, "instance_configuration_id": "data.highstorage", "size": { "value": 0, "resource": "memory" } }, { "id": "cold", "node_roles": [ "data_cold", "remote_cluster_client" ], "zone_count": 1, "elasticsearch": { "node_attributes": { "data": "cold" }, "enabled_built_in_plugins": [] }, "instance_configuration_id": "data.highstorage", "size": { "value": 0, "resource": "memory" } }, { "id": "frozen", "node_roles": [ "data_frozen" ], "zone_count": 1, "elasticsearch": { "node_attributes": { "data": "frozen" }, "enabled_built_in_plugins": [] }, "instance_configuration_id": "data.frozen", "size": { "value": 0, "resource": "memory" } }, { "id": "coordinating", "node_roles": [ "ingest", "remote_cluster_client" ], "zone_count": 1, "instance_configuration_id": "coordinating", "size": { "value": 0, "resource": "memory" }, "elasticsearch": { "enabled_built_in_plugins": [] } }, { "id": "master", "node_roles": [ "master", "remote_cluster_client" ], "zone_count": 1, "instance_configuration_id": "master", "size": { "value": 0, "resource": "memory" }, "elasticsearch": { "enabled_built_in_plugins": [] } }, { "id": "ml", "node_roles": [ "ml", "remote_cluster_client" ], "zone_count": 1, "instance_configuration_id": "ml", "size": { "value": 0, "resource": "memory" }, "elasticsearch": { "enabled_built_in_plugins": [] } } ], "elasticsearch": { "version": "7.15.1" }, "autoscaling_enabled": false, "deployment_template": { "id": "default" } }, "settings": { "dedicated_masters_threshold": 6, "snapshot": { "enabled": false } } } ], "kibana": [ { "ref_id": "main-kibana", "elasticsearch_cluster_ref_id": "main-elasticsearch", "region": "ece-region", "plan": { "zone_count": 1, "cluster_topology": [ { "instance_configuration_id": "kibana", "size": { "value": 1024, "resource": "memory" }, "zone_count": 1 } ], "kibana": { "version": "7.15.1" } } } ], "apm": [], "enterprise_search": [] }, "name": "My deployment", "metadata": { "system_owned": false }} You can find many more examples in our Elastic Cloud Enterprise API documentation. Deprecated Elastic Stack versions Elastic Stack verson 5.6.0 is no longer maintained and will not be supported on ECE 3.0. You must upgrade to Elastic Stack version 6.0 or above before upgrading to ECE 3.0, and we strongly recommend upgrading to a maintained version. More information is available on the Elastic products end-of-life page . 19. INGEST LOGS FROM A PYTHON APPLICATION USING FILEBEAT https://www.elastic.co/guide/en/cloud-enterprise/current/ece-getting-started-search-use-cases-python-logs.html Dokumentation This guide demonstrates how to ingest logs from a Python application and deliver them securely into an Elastic Cloud Enterprise deployment. You’ll set up Filebeat to monitor a JSON-structured log file that has standard Elastic Common Schema (ECS) formatted fields, and you’ll then view real-time visualizations of the log events in Kibana as they occur. While Python is used for this example, this approach to monitoring log output is applicable across many client types. Check the list of available ECS logging plugins . You are going to learn how to: Create a Python script with logging Set up Filebeat Send the Python logs to Elasticsearch Create log visualizations in Kibana Time required: 1 hour Prerequisites To complete these steps you need to have Python installed on your system as well as the Elastic Common Schema (ECS) logger for the Python logging library. To install ecs-logging-python , run: python -m pip install ecs-logging Create a deployment Log into the Elastic Cloud Enterprise admin console. Select Create deployment . Give your deployment a name. You can leave all other settings at their default values. Select Create deployment and save your Elastic deployment credentials. You need these credentials later on. When the deployment is ready, click Continue and a page of Setup guides is displayed. To continue to the deployment homepage click I’d like to do something else . Connect securely When connecting to Elastic Cloud Enterprise you can use a Cloud ID to specify the connection details. Find your Cloud ID by going to the Kibana main menu and selecting Management > Integrations, and then selecting View deployment details. To connect to, stream data to, and issue queries with Elastic Cloud Enterprise, you need to think about authentication. Two authentication mechanisms are supported, API key and basic authentication . Here, to get you started quickly, we’ll show you how to use basic authentication, but you can also generate API keys as shown later on. API keys are safer and preferred for production environments. Create a Python script with logging In this step, you’ll create a Python script that generates logs in JSON format, using Python’s standard logging module. In a local directory, create a new file elvis.py and save it with these contents: #!/usr/bin/python import loggingimport ecs_loggingimport timefrom random import randint #logger = logging.getLogger(__name__)logger = logging.getLogger("app")logger.setLevel(logging.DEBUG)handler = logging.FileHandler('elvis.json')handler.setFormatter(ecs_logging.StdlibFormatter())logger.addHandler(handler) print("Generating log entries...") messages = [ "Elvis has left the building.",# "Elvis has left the oven on.", "Elvis has two left feet.", "Elvis was left out in the cold.", "Elvis was left holding the baby.", "Elvis left the cake out in the rain.", "Elvis came out of left field.", "Elvis exited stage left.", "Elvis took a left turn.", "Elvis left no stone unturned.", "Elvis picked up where he left off.", "Elvis's train has left the station." ] while True: random1 = randint(0,15) random2 = randint(1,10) if random1 > 11: random1 = 0 if(random1<=4): logger.info(messages[random1], extra={"http.request.body.content": messages[random1]}) elif(random1>=5 and random1<=8): logger.warning(messages[random1], extra={"http.request.body.content": messages[random1]}) elif(random1>=9 and random1<=10): logger.error(messages[random1], extra={"http.request.body.content": messages[random1]}) else: logger.critical(messages[random1], extra={"http.request.body.content": messages[random1]}) time.sleep(random2) This Python script randomly generates one of twelve log messages, continuously, at a random interval of between 1 and 10 seconds. The log messages are written to file elvis.json , each with a timestamp, a log level of info , warning , error , or critical , and other data. Just to add some variance to the log data, the info message Elvis has left the building is set to be the most probable log event. For simplicity, there is just one log file and it is written to the local directory where elvis.py is located. In a production environment you may have multiple log files, associated with different modules and loggers, and likely stored in /var/log or similar. To learn more about configuring logging in Python, check Logging facility for Python . Having your logs written in a JSON format with ECS fields allows for easy parsing and analysis, and for standardization with other applications. A standard, easily parsible format becomes increasingly important as the volume and type of data captured in your logs expands over time. Together with the standard fields included for each log entry is an extra http.request.body.content field. This extra field is there just to give you some additional, interesting data to work with, and also to demonstrate how you can add optional fields to your log data. Check the ECS Field Reference for the full list of available fields. Let’s give the Python script a test run. Open a terminal instance in the location where you saved elvis.py and run the following: python elvis.py After the script has run for about 15 seconds, enter CTRL + C to stop it. Have a look at the newly generated elvis.json . It should contain one or more entries like this one: {"@timestamp":"2021-06-16T02:19:34.687Z","log.level":"info","message":"Elvis has left the building.","ecs":{"version":"1.6.0"},"http":{"request":{"body":{"content":"Elvis has left the building."}}},"log":{"logger":"app","origin":{"file":{"line":39,"name":"elvis.py"},"function":"<module>"},"original":"Elvis has left the building."},"process":{"name":"MainProcess","pid":3044,"thread":{"id":4444857792,"name":"MainThread"}}} After confirming that elvis.py runs as expected, you can delete elvis.json . Set up Filebeat Filebeat offers a straightforward, easy to configure way to monitor your Python log files and port the log data into Elastic Cloud Enterprise. Get Filebeat Download Filebeat and unpack it on the local server from which you want to collect data. Configure Filebeat to access Elastic Cloud Enterprise In <localpath>/filebeat-<version>/ (where <localpath> is the directory where Filebeat is installed and <version> is the Filebeat version number), open the filebeat.yml configuration file for editing. # =============================== Elastic Cloud ================================ # These settings simplify using Filebeat with the Elastic Cloud (https://cloud.elastic.co/). # The cloud.id setting overwrites the `output.elasticsearch.hosts` and# `setup.kibana.host` options.# You can find the `cloud.id` in the Elastic Cloud web UI.cloud.id: my-deployment:long-hash # The cloud.auth setting overwrites the `output.elasticsearch.username` and# `output.elasticsearch.password` settings. The format is `<user>:<pass>`.cloud.auth: elastic:password setup.kibana: ssl.certificate_authorities: ["/path/to/your/elastic-ece-ca-cert.pem"] output.elasticsearch: ssl.certificate_authorities: ["/path/to/your/elastic-ece-ca-cert.pem"] # Configure Filebeat inputs Filebeat has several ways to collect logs. For this example, you’ll configure log collection manually. In the filebeat.inputs section of filebeat.yml , set enabled: to true , and set paths: to the location of your log file or files. In this example, set the same directory where you saved elvis.py : filebeat.inputs: # Each - is an input. Most options can be set at the input level, so# you can use different inputs for various configurations.# Below are the input specific configurations. - type: log # Change to true to enable this input configuration. enabled: true # Paths that should be crawled and fetched. Glob based paths. paths: - /path/to/log/files/*.json You can specify a wildcard ( * ) character to indicate that all log files in the specified directory should be read. You can also use a wildcard to read logs from multiple directories. For example /var/log/*/*.log . Add the JSON input options Filebeat’s input configuration options include several settings for decoding JSON messages. Log files are decoded line by line, so it’s important that they contain one JSON object per line. For this example, Filebeat uses the following four decoding options. json.keys_under_root: true json.overwrite_keys: true json.add_error_key: true json.expand_keys: true To learn more about these settings, check JSON input configuration options and Decode JSON fields in the Filebeat Reference. Append the four JSON decoding options to the Filebeat inputs section of filebeat.yml , so that the section now looks like this: # ============================== Filebeat inputs =============================== filebeat.inputs: # Each - is an input. Most options can be set at the input level, so# you can use different inputs for various configurations.# Below are the input specific configurations. - type: log # Change to true to enable this input configuration. enabled: true # Paths that should be crawled and fetched. Glob based paths. paths: - /path/to/log/files/*.json json.keys_under_root: true json.overwrite_keys: true json.add_error_key: true json.expand_keys: true Finish setting up Filebeat Filebeat comes with predefined assets for parsing, indexing, and visualizing your data. To load these assets, run the following from the Filebeat installation directory: ./filebeat setup -e Depending on variables including the installation location, environment, and local permissions, you might need to change the ownership of filebeat.yml. You can also try running the command as root : sudo ./filebeat setup -e or you can disable strict permission checks by running the command with the --strict.perms=false option. The setup process takes a couple of minutes. If everything goes successfully you should get a confirmation message: Loaded Ingest pipelines The Filebeat data view (formerly index pattern ) is now available in Elasticsearch. To verify: Beginning with Elastic Stack version 8.0, Kibana index patterns have been renamed to data views . To learn more, check the Kibana What’s new in 8.0 page. Login to Kibana . Open the Kibana main menu and select Management > Kibana > Data views . In the search bar, search for filebeat . You should get filebeat-* in the search results. Optional: Use an API key to authenticate For additional security, instead of using basic authentication you can generate an Elasticsearch API key through the Cloud UI, and then configure Filebeat to use the new key to connect securely to the Elastic Cloud Enterprise deployment. Log into the Cloud UI . Select the deployment name and go to ☰ > Management > Dev Tools . Enter the following request: POST /_security/api_key{ "name": "filebeat-api-key", "role_descriptors": { "logstash_read_write": { "cluster": ["manage_index_templates", "monitor"], "index": [ { "names": ["filebeat-*"], "privileges": ["create_index", "write", "read", "manage"] } ] } }} This creates an API key with the cluster monitor privilege which gives read-only access for determining the cluster state, and manage_index_templates which allows all operations on index templates. Some additional privileges also allow create_index , write , and manage operations for the specified index. The index manage privilege is added to enable index refreshes. Click ▶ . The output should be similar to the following: { "api_key": "tV1dnfF-GHI59ykgv4N0U3", "id": "2TBR42gBabmINotmvZjv", "name": "filebeat-api-key"} Add your API key information to the Elasticsearch Output section of filebeat.yml , just below output.elasticsearch: . Use the format <id>:<api_key> . If your results are as shown in this example, enter 2TBR42gBabmINotmvZjv:tV1dnfF-GHI59ykgv4N0U3 . Add a pound ( # ) sign to comment out the cloud.auth: elastic:<password> line, since Filebeat will use the API key instead of the deployment username and password to authenticate. # =============================== Elastic Cloud ================================ # These settings simplify using Filebeat with the Elastic Cloud (https://cloud.elastic.co/). # The cloud.id setting overwrites the `output.elasticsearch.hosts` and# `setup.kibana.host` options.# You can find the `cloud.id` in the Elastic Cloud web UI.cloud.id: my-deployment:yTMtd5VzdKEuP2NwPbNsb3VkLtKzLmldJDcyMzUyNjBhZGP7MjQ4OTZiNTIxZTQyOPY2C2NeOGQwJGQ2YWQ4M5FhNjIyYjQ9ODZhYWNjKDdlX2Yz4ELhRYJ7 # The cloud.auth setting overwrites the `output.elasticsearch.username` and# `output.elasticsearch.password` settings. The format is `<user>:<pass>`.#cloud.auth: elastic:591KhtuAgTP46by9C4EmhGuk # ================================== Outputs =================================== # Configure what output to use when sending the data collected by the beat. # ---------------------------- Elasticsearch Output ----------------------------output.elasticsearch: # Array of hosts to connect to. api_key: "2TBR42gBabmINotmvZjv:tV1dnfF-GHI59ykgv4N0U3" Send the Python logs to Elasticsearch It’s time to send some log data into EElasticsearch! Launch Filebeat and elvis.py Launch Filebeat by running the following from the Filebeat installation directory: ./filebeat -e -c filebeat.yml In this command: The -e flag sends output to the standard error instead of the configured log output. The -c flag specifies the path to the Filebeat config file. Just in case the command doesn’t work as expected, check the Filebeat quick start for the detailed command syntax for your operating system. You can also try running the command as root : sudo ./filebeat -e -c filebeat.yml . Filebeat should now be running and monitoring the contents of elvis.json , which actually doesn’t exist yet. So, let’s create it. Open a new terminal instance and run the elvis.py Python script: python elvis.py Let the script run for a few minutes and maybe brew up a quick coffee or tea ☕ . After that, make sure that the elvis.json file is generated as expected and is populated with several log entries. Verify the log entries in Elastic Cloud Enterprise The next step is to confirm that the log data has successfully found it’s way into Elastic Cloud Enterprise. Login to Kibana . Open the Kibana main menu and select Management > Kibana > Data views . In the search bar, search for *filebeat_. You should get filebeat-* in the search results. Select filebeat-* . The filebeat data view shows a list of fields and their details. Create log visualizations in Kibana Now it’s time to create visualizations based off of the Python application log data. Open the Kibana main menu and select Dashboard , then Create dashboard . Select Create visualization . The Lens visualization editor opens. In the data view dropdown box, select filebeat- , if it isn’t already selected. In the Visualization type dropdown , select Bar vertical stacked , if it isn’t already selected. Check that the time filter is set to Last 15 minutes . From the Available fields list, drag and drop the @timestamp field onto the visualization builder. Drag and drop the log.level field onto the visualization builder. In the chart settings area, under Break down by , select Top values of log.level and set Number of values to 4 . Since there are four log severity levels, this parameter sets all of them to appear in the chart legend. Select Refresh . A stacked bar chart now shows the relative frequency of each of the four log severity levels over time. Select Save and return to add this visualization to your dashboard. Let’s create a second visualization. Select Create visualization . Again, make sure that Visualization type dropdown is set to Bar vertical stacked . From the Available fields list, drag and drop the @timestamp field onto the visualization builder. Drag and drop the http.request.body.content field onto the visualization builder. In the chart settings area, under Break down by , select Top values of http.request.body.content and set Number of values to 12 . Since there are twelve different log messages, this parameter sets all of them to appear in the chart legend. Select Refresh . A stacked bar chart now shows the relative frequency of each of the log messages over time. Select Save and return to add this visualization to your dashboard. And now for the final visualization. Select Create visualization . In the Visualization type dropdown dropdown, select Donut . From the list of available fields, drag and drop the log.level field onto the visualization builder. A donut chart appears. Select Save and return to add this visualization to your dashboard. Select Save and add a title to save your new dashboard. You now have a Kibana dashboard with three visualizations: a stacked bar chart showing the frequency of each log severity level over time, another stacked bar chart showing the frequency of various message strings over time (from the added http.request.body.content parameter), and a donut chart showing the relative frequency of each log severity type. You can add titles to the visualizations, resize and position them as you like, and then save your changes. View log data updates in real time Select Refresh on the Kibana dashboard. Since elvis.py continues to run and generate log data, your Kibana visualizations update with each refresh. As your final step, remember to stop Filebeat and the Python script. Enter CTRL + C in both your Filebeat terminal and in your elvis.py terminal. You now know how to monitor log files from a Python application, deliver the log event data securely into an Elastic Cloud Enterprise deployment, and then visualize the results in Kibana in real time. Consult the Filebeat documentation to learn more about the ingestion and processing options available for your data. You can also explore our documentation to learn all about working in Elastic Cloud Enterprise. 20. ELASTIC CLOUD ENTERPRISE 2.2.0 https://www.elastic.co/guide/en/cloud-enterprise/current/ece-release-notes-2.2.0.html Dokumentation New for Elastic Cloud Enterprise 2.2.0: Role-based access control. Go beyond the existing predefined admin and readonly users with new pre-configured roles. To make Elastic Cloud Enterprise even more secure, you can now also authenticate users against a SAML identity provider or LDAP server. Check Configure role-based access control . Platform viewer — Provides view-only permissions to the platform and hosted deployments, similar to the readonly user in previous Elastic Cloud Enterprise versions. Deployments manager — Creates and manages platform deployments, but is unable to access platform-level deployment operations and resources. Deployments viewer — Provides view-only permissions to deployments. Cross cluster search (CCS) UI. To connect and enable search capabilities across all of your Elastic Cloud Enterprise-managed clusters, you can now leverage the new CCS UI and deployment templates. Check Enable cross-cluster search and cross-cluster replication . Support for the index lifecycle management (ILM) feature of the Elastic Stack. If you are using the Elastic Stack 6.7 or later, ILM provides an integrated and streamlined way to manage time-based data, making it easier to follow best practices for managing your indices. For example: You can automate how Elastic Cloud Enterprise manages indices and apply operations, such as index relocation, force merging, and index shrinking. Check Configure index management . Elasticsearch keystore support. Securely store sensitive settings, such as credentials for blob store repositories access from Elasticsearch. Check Secure your settings . Ansible playbooks for installation and management. To easily install and manage Elastic Cloud Enterprise, use our new Ansible playbook. Check Install ECE with Ansible . Support for 7.0. Add the Elastic Stack 7.0 pack to your environment and upgrade your clusters to 7.0. If you’re upgrading from 6.7 to 7.0, you can use the rolling upgrade with zero downtime. Check Upgrade to Elasticsearch 7.x . Improvements for Elastic Cloud Enterprise 2.2.0 include: Reduced number of ZooKeeper connections. Cluster that use 6.7 and later no longer directly connect to ZooKeeper, helping to make your platform much more scalable. Upgraded system cluster. To enable the infrastructure monitoring and logging apps in Kibana, you must upgrade your system clusters to 6.6. This upgrade allows you to monitor and view logs and metrics for Elastic Cloud Enterprise hosts and containers. What’s changed Ubuntu 14.04 LTS (Trusty Tahr) end of life. The official end-of-life (EOL) from Canonical for Ubuntu 14.04 LTS (Trusty Tahr) is April 2019, and so it’s time to say goodbye to this version of Ubuntu. After the EOL, Elastic will no longer be able to support you fully, if your ECE installation runs on Ubuntu 14.04. We strongly recommend that you upgrade to a fully supported version, such as Ubuntu 16.04 LTS (Xenial Xerus). You can either perform host maintenance to upgrade your hosts or prepare new hosts and reinstall ECE on them. Bug fixes Elastic Cloud Enterprise 2.2.0 includes the following bug fixes: View a list of clusters that you want to monitor. When you enable monitoring on an Elasticsearch cluster, the drop-down list of clusters that currently accept monitoring traffic now appears. Successfully create a snapshot repository. The regionID value is now sent to the API, which allows you to successfully create a snapshot repository. RESTful API container searches now work. When you use the RESTful API, container searches by ID are now compatible with Elasticsearch version 6.0 admin clusters. Release date: April 10, 2019 * ‹ * 1 * 2 * 3 * 4 * 5 * 6 * 7 * › NOTICE We and selected third parties use cookies or similar technologies for technical purposes and, with your consent, for other purposes as specified in the cookie policy. Use the “Accept” button to consent. Use the “Reject” button to continue without accepting. Press again to continue 0/1 Learn more and customize RejectAccept