Skip to content

Updating ECS version to 1.6.0 #78

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Sep 14, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 2 additions & 3 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
ROOT_DIR := $(shell dirname $(realpath $(firstword $(MAKEFILE_LIST))))
# we are intentionally pinning the ECS version here, when ecs releases a new version
# we'll discuss whether we need to release a new package and bump the version here
ECS_GIT_REF ?= v1.5.0
ECS_GIT_REF ?= v1.6.0

# This variable specifies to location of the package-storage repo. It is used for automatically creating a PR
# to release a new endpoint package. This can be overridden with the location on your file system using the config.mk
Expand Down Expand Up @@ -119,8 +119,7 @@ clean:


$(REAL_ECS_DIR):
git clone --branch mmain-fix-short-desc https://github.com/jonathan-buttner/ecs.git $(REAL_ECS_DIR)

git clone --branch master https://github.com/elastic/ecs.git $(REAL_ECS_DIR)

.PHONY: setup-tools
setup-tools:
Expand Down
2 changes: 2 additions & 0 deletions custom_schemas/custom_call_stack.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
type: keyword
description: >
Base address of the memory region containing `instruction_pointer`. Corresponds to `MEMORY_BASIC_INFORMATION.BaseAddress`
short: Base address of the memory region containing `instruction_pointer`.

- name: memory_section.size
level: custom
Expand All @@ -52,3 +53,4 @@
type: keyword
description: >
The relative virtual address of `instruction_pointer`. Computed as `instruction_pointer - MEMORY_BASIC_INFORMATION.AllocationBase`.
short: The relative virtual address of `instruction_pointer`.
1 change: 1 addition & 0 deletions custom_schemas/custom_elastic.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
description: >
The agent fields contain data about the Elastic Agent. The Elastic Agent is the management agent
that manages other agents or process on the host.
short: The agent fields contain data about the Elastic Agent.

- name: agent.id
level: custom
Expand Down
5 changes: 5 additions & 0 deletions custom_schemas/custom_endpoint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,7 @@
description: >
the overall status of event collection, this is correlated to the status of concerned actions
but not a simple sum of the actions
short: the overall status of event collection

- name: policy.applied.configurations.logging
level: custom
Expand All @@ -108,6 +109,7 @@
description: >
the overall status of logging, this is correlated to the status of concerned actions but
not a simple sum of the actions
short: the overall status of logging

- name: policy.applied.configurations.malware
level: custom
Expand All @@ -125,6 +127,7 @@
description: >
the overall status of malware, this is correlated to the status of concerned actions
but not a simple sum of the actions
short: the overall status of malware

- name: policy.applied.configurations.streaming
level: custom
Expand All @@ -142,6 +145,7 @@
description: >
the overall status of data streaming, this is correlated to the status of concerned actions
but not a simple sum of the actions
short: overall status of data streaming

- name: policy.applied.artifacts
level: custom
Expand Down Expand Up @@ -246,6 +250,7 @@
This field defines an elasticsearch histogram field (https://www.elastic.co/guide/en/elasticsearch/reference/current/histogram.html#histogram)
The values field includes 20 buckets (each bucket is 5%) representing the cpu usage
The counts field includes 20 buckets of how many times the endpoint's cpu usage fell into each bucket
short: CPU histogram

- name: metrics.memory
level: custom
Expand Down
1 change: 0 additions & 1 deletion custom_schemas/custom_file.yml
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,6 @@
Validating the trust of the certificate chain may be complicated, and this field should only be populated
by tools that actively check the status.


- name: Ext.code_signature.status
level: custom
type: keyword
Expand Down
1 change: 1 addition & 0 deletions custom_schemas/custom_macro.yml
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,7 @@
type: long
description: >
Identifies the character encoding used for this macro. https://docs.microsoft.com/en-us/windows/win32/intl/code-page-identifiers
short: Identifies the character encoding used for this macro.

- name: file_extension
level: custom
Expand Down
1 change: 1 addition & 0 deletions custom_schemas/custom_os.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,4 +23,5 @@
description: >
A string value or phrase that further aid to classify or qualify the operating system (OS).
For example the distribution for a Linux OS will be entered in this field.
short: A string value or phrase that further aid to classify or qualify the operating system (OS).
example: Ubuntu
72 changes: 6 additions & 66 deletions custom_schemas/custom_process.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
top_level: true
expected:
- Target
- { at: Target.process, as: parent }
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The way schema is reused changed in ECS 1.6: elastic/ecs#960
elastic/ecs#959

This is basically placing the combined process schema onto Target.process.parent

type: group
fields:
- name: Ext
Expand Down Expand Up @@ -138,76 +139,15 @@
Leave unpopulated if the validity or trust of the certificate was unchecked.
example: ERROR_UNTRUSTED_ROOT

- name: parent
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since the parent schema is no longer explicitly specified in the ECS core schema (instead it just duplicates the process fields and calls them process.parent), we will move these fields onto process instead so they can also be duplicated. The fields on process won't actually be used, they'll only be used for process.parent.

- name: Ext.real
level: custom
type: object
description: >
Extended "process.parent" field set.
The field set containing process info in case of any pid spoofing. This is mainly useful for process.parent.

- name: parent.Ext
level: custom
type: object
description: Object for all custom defined fields to live in.

- name: parent.Ext.code_signature
level: custom
type: nested
description: Nested version of ECS code_signature fieldset.

- name: parent.Ext.code_signature.exists
level: custom
type: boolean
description: Boolean to capture if a signature is present.
example: "true"

- name: parent.Ext.code_signature.subject_name
level: custom
type: keyword
description: Subject name of the code signer
example: Microsoft Corporation

- name: parent.Ext.code_signature.valid
level: custom
type: boolean
short: Boolean to capture if the digital signature is verified against the binary content.
example: "true"
description: >
Boolean to capture if the digital signature is verified against the binary content.

Leave unpopulated if a certificate was unchecked.

- name: parent.Ext.code_signature.trusted
level: custom
type: boolean
short: Stores the trust status of the certificate chain.
example: "true"
description: >
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.


- name: parent.Ext.code_signature.status
level: custom
type: keyword
short: Additional information about the certificate status.
description: >
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.
example: ERROR_UNTRUSTED_ROOT

- name: parent.Ext.real
level: custom
type: object
description: >
The field set containing parent process info in case of any ppid spoofing.

- name: parent.Ext.real.pid
- name: Ext.real.pid
level: custom
type: long
short: The real pid of the process if ppid spoofing is happening.
description: >
The ppid of the process that actually spawned the current process, in case of
ppid spoofing.
For process.parent this will be the ppid of the process that actually spawned the current process.
Loading