From 802d8b5bc090b2ea9de43471e9ed66839d7c074b Mon Sep 17 00:00:00 2001
From: donneesdata <109540652+donneesdata@users.noreply.github.com>
Date: Mon, 18 Jul 2022 17:16:56 -0400
Subject: [PATCH 1/6] Create 0033-host-fields.md
---
rfcs/text/0033-host-fields.md | 301 ++++++++++++++++++++++++++++++++++
1 file changed, 301 insertions(+)
create mode 100644 rfcs/text/0033-host-fields.md
diff --git a/rfcs/text/0033-host-fields.md b/rfcs/text/0033-host-fields.md
new file mode 100644
index 0000000000..2d25261250
--- /dev/null
+++ b/rfcs/text/0033-host-fields.md
@@ -0,0 +1,301 @@
+# 0000: Host Fields
+
+
+- Stage: **0 (strawperson)**
+- Date: **7-13-2022**
+
+
+
+
+ SchemaONE host fields describe information about the host that is relevant to an event.
+
+SchemaONE extends the ECS host field set in several ways:
+
+- The SchemaONE host field set supports additional host bios fields.
+- The SchemaONE host field set supports additional host cpu fields.
+- The SchemaONE host field set supports additional fields describing a supplemental details that the host can generate.
+
+
+
+## Fields
+Definitions
+
+
+
+Field Name | Special Instructions | Justification/Use Case
+| :--: | :-- | :-- |
+| memory | Extract text following ":" from "Computer Memory : 195073 MB"
The numeric value is a base value for memory. The two character unit type represents a multiplication factor to determine actual memory.
Normalize to byte value by multiplying base value by unit type as follows
Unit | Multiplication Factor |
B | (2^0) 1 |
KB | (2^10) 1024 |
MB | (2^20) 1,048,576 |
GB | (2^30) 1,073,741,824 |
TB | (2^40) 1,099,511,627,776 |
| Detects specific baselines of physical configuration for asset management.
+| last_logon.time | N/A | Login time tells the last time a user logged into the system, which may provide insights into events occurring on that system.|
+| created | N/A | Indicates that device is known to domain.|
+| distinguished_name | N/A | The distinguished name indicates ownership of the host. It uniquely identifies the host in an x509 certificate.|
+| modified | N/A | Indicates when information has changed for the host in a directory service.|
+| bios.manufacturer | Normalization: lower case | This is a string representing the system manufacturer of the host. Useful for supply chain issue detection.|
+| bios.release_date | This date will need to be converted to a ECS date format. | The bios release date. Useful for supply chain issue detection.|
+| bios.secure_boot_enabled | If disabled set to false; if enabled set to true. | Used to detect misconfiguration in Secure Boot.|
+| bios.uuid | N/A | A unique identifier assigned to the computer mother board.|
+| bios.version | N/A | Version of the BIOS, this string is created by the BIOS manufacturer. Useful for supply chain issue detection.|
+| cpu.architecture | Normalize these entries to the following format:
:
"x64: x64-based PC"
"x64: x86_64"
"x32: x86-based PC" | Detects out of date CPUs.|
+| cpu.core.count | N/A | Detects specific baselines of physical configuration for asset management.|
+| cpu.count | N/A | Detects specific baselines of physical configuration for asset management.|
+| cpu.logical_processor.count | N/A | Detects specific baselines of physical configuration for asset management.|
+| cpu.manufacturer | Note that a manufacturer is displayed for each CPU, select the first. Multiple manufacturers are not expected. | Useful for supply chain issue detection.|
+| cpu.name | Normalize raw field into lowercase format for easier query | Useful for supply chain issue detection.|
+| cpu.speed | Normalize to GHZ, do not round but use 0.28 etc, where required. Store alternative values as shown below
null = -1.0
blank = -2.0 | Detects specific baselines of physical configuration for asset management.|
+
+
+
+ - name: memory
+ level: custom
+ type: unsigned long
+ example: 17,179,869,184
+ description: >
+ Physical memory of the host machine in bytes.
+
+ - name: last_logon.time
+ level: custom
+ type: date
+ description: >
+ The time of the last user logon to the host. The timestamp type represents date and time information using ISO 8601 format and is always in UTC time.
+
+ - name: created
+ level: custom
+ type: date
+ description: >
+ Date and time of when the device was registered in the domain.
+
+ - name: distinguished_name
+ level: custom
+ type: keyword
+ example: CN=foo, CN=computers, DC=acme, DC=company, DC=edu
+ normalized: array
+ description: >
+ Distinguished name of the host.
+
+ - name: modified
+ level: custom
+ type: date
+ description: >
+ Date the host's details were last modified.
+
+ - name: bios.manufacturer
+ level: custom
+ type: keyword
+ example: dell inc.
+ description: >
+ This is a string representing the system manufacturer of the host.
+
+ - name: bios.release_date
+ level: custom
+ type: date
+ description: >
+ The bios release date.
+
+ - name: bios.secure_boot_enabled
+ level: custom
+ type: boolean
+ description: >
+ Indicator that Secure Boot is enabled on the computer.
+
+ - name: bios.uuid
+ level: custom
+ type: keyword
+ example: 4C4C4544-0056-5010-805A-CAC04F475132
+ description: >
+ A unique identifier assigned to the computer mother board.
+
+ - name: bios.version
+ level: custom
+ type: keyword
+ example: 1.6.13
+ description: >
+ Version of the BIOS. This string is created by the BIOS manufacturer.
+
+ - name: cpu.architecture
+ level: custom
+ type: keyword
+ example: "x64: x86_64"
+ description: >
+ The CPU architecture and raw string of the CPU provided by the OS.
+
+ - name: cpu.core.count
+ level: custom
+ type: integer
+ example: 10
+ description: >
+ Number of physical cores per CPU on host machine.
+
+ - name: cpu.count
+ level: custom
+ type: integer
+ example: 2
+ description: >
+ Number of CPUs on host machine.
+
+ - name: cpu.logical_processor.count
+ level: custom
+ type: integer
+ example: 40
+ description: >
+ Number of logical processors per CPU on host machine (physical cores multiplied by threads per core).
+
+ - name: cpu.manufacturer
+ level: custom
+ type: keyword
+ example: Intel
+ description: >
+ Manufacturer of CPU.
+
+ - name: cpu.name
+ level: custom
+ type: keyword
+ example: intel(r) core(tm) i3-2370m cpu
+ description: >
+ The full name of the cpu model.
+
+ - name: cpu.speed
+ level: custom
+ type: float
+ example: 2.21
+ description: >
+ Float type defining the speed of the CPU in GHZ with null and blank values stored as -1.0 and -2.0 respectively.
+
+
+
+## Usage
+
+
+ ### `memory`
+ Detects specific baselines of physical configuration for asset management.
+
+ ### `last_logon.time`
+ Login time tells the last time a user logged into the system, which may provide insights into events occurring on that system.
+
+ ### `created`
+ Indicates that device is known to domain.
+
+ ### `distinguished_name`
+ The distinguished name indicates ownership of the host. It uniquely identifies the host in an x509 certificate.
+
+ ### `modified`
+ Indicates when information has changed for the host in a directory service.
+
+ ### `bios.manufacturer`
+ This is a string representing the system manufacturer of the host. Useful for supply chain issue detection.
+
+ ### `bios.release_date`
+ The bios release date. Useful for supply chain issue detection.
+
+ ### `bios.secure_boot_enabled`
+ Used to detect misconfiguration in Secure Boot.
+
+ ### `bios.uuid`
+ A unique identifier assigned to the computer mother board.
+
+ ### `bios.version`
+ Version of the BIOS, this string is created by the BIOS manufacturer. Useful for supply chain issue detection.
+
+ ### `cpu.architecture`
+ Detects out of date CPUs.
+
+ ### `cpu.core.count`, `cpu.count`, `cpu.logical_processor.count`
+ Detects specific baselines of physical configuration for asset management.
+
+ ### `cpu.manufacturer`, `cpu.name`
+ Useful for supply chain issue detection.
+
+ ### `cpu.speed`
+ Detects specific baselines of physical configuration for asset management.
+
+## Source data
+
+
+
+
+
+
+
+## Scope of impact
+
+
+ * Ingestion mechanisms (e.g. beats/logstash)
+ - one
+ * Usage mechanisms (e.g. Kibana applications, detections)
+ - one
+ * ECS project (e.g. docs, tooling)
+ - one
+
+## Concerns
+
+
+Within the SchemaONE schema, the term manufacturer is used while in Elastic Common Schema the appropriate equivalent could be viewed as vendor which may lead to confusion.
+
+
+
+
+## People
+
+The following are the people that consulted on the contents of this RFC.
+
+* @ | Author, Sponsor
+* @ | Subject Matter Expert
+
+
+
+
+## References
+
+
+
+### RFC Pull Requests
+
+
+
+* Stage 0: https://github.com/elastic/ecs/pull/NNN
+
+
From 094ec88a8b078fb067110c6a2583c447b7259f7d Mon Sep 17 00:00:00 2001
From: donneesdata <109540652+donneesdata@users.noreply.github.com>
Date: Tue, 19 Jul 2022 15:52:46 -0400
Subject: [PATCH 2/6] Update 0033-host-fields.md
---
rfcs/text/0033-host-fields.md | 28 ++++++++++++++++------------
1 file changed, 16 insertions(+), 12 deletions(-)
diff --git a/rfcs/text/0033-host-fields.md b/rfcs/text/0033-host-fields.md
index 2d25261250..a22a37ad64 100644
--- a/rfcs/text/0033-host-fields.md
+++ b/rfcs/text/0033-host-fields.md
@@ -12,13 +12,11 @@ Feel free to remove these comments as you go along.
Stage 0: Provide a high level summary of the premise of these changes. Briefly describe the nature, purpose, and impact of the changes. ~2-5 sentences.
-->
- SchemaONE host fields describe information about the host that is relevant to an event.
+ The host fields describe information about the host that is relevant to an event and extends the ECS host field set in several ways:
-SchemaONE extends the ECS host field set in several ways:
-
-- The SchemaONE host field set supports additional host bios fields.
-- The SchemaONE host field set supports additional host cpu fields.
-- The SchemaONE host field set supports additional fields describing a supplemental details that the host can generate.
+- The host field set supports additional host bios fields.
+- The host field set supports additional host cpu fields.
+- The host field set supports additional fields describing a supplemental details that the host can generate.
@@ -35,7 +33,7 @@ Stage 1: Describe at a high level how this change affects fields. Include new or
-->
Field Name | Special Instructions | Justification/Use Case
| :--: | :-- | :-- |
-| memory | Extract text following ":" from "Computer Memory : 195073 MB"
The numeric value is a base value for memory. The two character unit type represents a multiplication factor to determine actual memory.
Normalize to byte value by multiplying base value by unit type as follows
Unit | Multiplication Factor |
B | (2^0) 1 |
KB | (2^10) 1024 |
MB | (2^20) 1,048,576 |
GB | (2^30) 1,073,741,824 |
TB | (2^40) 1,099,511,627,776 |
| Detects specific baselines of physical configuration for asset management.
+| memory | The numeric value is a base value for memory. The two character unit type represents a multiplication factor to determine actual memory.
Normalize to byte value by multiplying base value by unit type as follows
Unit | Multiplication Factor |
B | (2^0) 1 |
KB | (2^10) 1024 |
MB | (2^20) 1,048,576 |
GB | (2^30) 1,073,741,824 |
TB | (2^40) 1,099,511,627,776 |
| Detects specific baselines of physical configuration for asset management.
| last_logon.time | N/A | Login time tells the last time a user logged into the system, which may provide insights into events occurring on that system.|
| created | N/A | Indicates that device is known to domain.|
| distinguished_name | N/A | The distinguished name indicates ownership of the host. It uniquely identifies the host in an x509 certificate.|
@@ -51,7 +49,7 @@ Field Name | Special Instructions | Justification/Use Case
| cpu.logical_processor.count | N/A | Detects specific baselines of physical configuration for asset management.|
| cpu.manufacturer | Note that a manufacturer is displayed for each CPU, select the first. Multiple manufacturers are not expected. | Useful for supply chain issue detection.|
| cpu.name | Normalize raw field into lowercase format for easier query | Useful for supply chain issue detection.|
-| cpu.speed | Normalize to GHZ, do not round but use 0.28 etc, where required. Store alternative values as shown below
null = -1.0
blank = -2.0 | Detects specific baselines of physical configuration for asset management.|
+| cpu.speed | Normalize to GHZ, do not round but use 0.28 etc, where required.| Detects specific baselines of physical configuration for asset management.|
@@ -226,7 +224,14 @@ Stage 1: Describe at a high-level how these field changes will be used in practi
-
+The host fields in this RFC are sourced from the following data feeds:
+ - Host & Network Interface Information
+ - Office 365 Device Audit Logs
+ - Active Directory Computer Objects
+ - Host Information
+
+ Insert high level descriptions of each data feed here
+
@@ -256,7 +261,7 @@ The goal here is to research and understand the impact of these changes on users
-Within the SchemaONE schema, the term manufacturer is used while in Elastic Common Schema the appropriate equivalent could be viewed as vendor which may lead to confusion.
+The term manufacturer is used here while in Elastic Common Schema the appropriate equivalent could be viewed as vendor which may lead to confusion.
@@ -269,8 +274,7 @@ Stage 3: Document resolutions for all existing concerns. Any new concerns should
The following are the people that consulted on the contents of this RFC.
-* @ | Author, Sponsor
-* @ | Subject Matter Expert
+* @donneesdata | Author, Sponsor
The host fields in this RFC are sourced from the following data feeds:
- - Host & Network Interface Information
+ - Endpoint Detection and Response System Audit Logs & Alerts
- Office 365 Device Audit Logs
- Active Directory Computer Objects
- - Host Information
+ - Windows Event Logs
Host & Network Interface Information collects information about host computer configurations, vulnerabilities and compliance from endpoint computers.
@@ -258,11 +258,11 @@ Stage 2: Identifies scope of impact of changes. Are breaking changes required? S
The goal here is to research and understand the impact of these changes on users in the community and development teams across Elastic. 2-5 sentences each.
-->
* Ingestion mechanisms (e.g. beats/logstash)
- - one
+ - Beats
+ - Custom
* Usage mechanisms (e.g. Kibana applications, detections)
- - one
- * ECS project (e.g. docs, tooling)
- - one
+ - Kibana
+ - Custom applications
## Concerns
From 266d6eef7470008583cf042a7fe537819d5dac5f Mon Sep 17 00:00:00 2001
From: donneesdata <109540652+donneesdata@users.noreply.github.com>
Date: Fri, 12 Aug 2022 13:01:16 -0400
Subject: [PATCH 5/6] Update 0033-host-fields.md
---
rfcs/text/0033-host-fields.md | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/rfcs/text/0033-host-fields.md b/rfcs/text/0033-host-fields.md
index 6d8f39dbb3..c6b356ab7d 100644
--- a/rfcs/text/0033-host-fields.md
+++ b/rfcs/text/0033-host-fields.md
@@ -252,13 +252,12 @@ Stage 3: Add more real world example source documents so we have at least 2 tota
- * Ingestion mechanisms (e.g. beats/logstash)
- - Beats
+ * Ingestion mechanisms
- Custom
* Usage mechanisms (e.g. Kibana applications, detections)
- Kibana
From 6ccf3f05df990e1ed482be80a2fc6f9c6ce1eb50 Mon Sep 17 00:00:00 2001
From: donneesdata <109540652+donneesdata@users.noreply.github.com>
Date: Fri, 12 Aug 2022 14:02:04 -0400
Subject: [PATCH 6/6] Update 0033-host-fields.md
---
rfcs/text/0033-host-fields.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/rfcs/text/0033-host-fields.md b/rfcs/text/0033-host-fields.md
index c6b356ab7d..30dcf6459f 100644
--- a/rfcs/text/0033-host-fields.md
+++ b/rfcs/text/0033-host-fields.md
@@ -2,7 +2,7 @@
- Stage: **0 (strawperson)**
-- Date: **7-13-2022**
+- Date: **8-12-2022**