From c904dc4177b4984c880fcd29d4d570c54272d563 Mon Sep 17 00:00:00 2001 From: Thijs Xhaflaire Date: Thu, 2 May 2024 10:33:02 +0200 Subject: [PATCH 1/9] Initial commit. --- ...0044-add-apple-platform-specific-fields.md | 110 ++++++++++++++++++ rfcs/text/0044/code_signature.yml | 11 ++ rfcs/text/0044/hash.yml | 9 ++ rfcs/text/0044/host.yml | 10 ++ rfcs/text/0044/process.yml | 25 ++++ 5 files changed, 165 insertions(+) create mode 100644 rfcs/text/0044-add-apple-platform-specific-fields.md create mode 100644 rfcs/text/0044/code_signature.yml create mode 100644 rfcs/text/0044/hash.yml create mode 100644 rfcs/text/0044/host.yml create mode 100644 rfcs/text/0044/process.yml diff --git a/rfcs/text/0044-add-apple-platform-specific-fields.md b/rfcs/text/0044-add-apple-platform-specific-fields.md new file mode 100644 index 0000000000..1ac7c95052 --- /dev/null +++ b/rfcs/text/0044-add-apple-platform-specific-fields.md @@ -0,0 +1,110 @@ +# 0000: Name of RFC + + +- Stage: **0 (strawperson)** +- Date: **TBD** + + + + + + + + + +## Fields + + + + + +## Usage + + + +## Source data + + + + + + + +## Scope of impact + + + +## Concerns + + + + + + + +## People + +The following are the people that consulted on the contents of this RFC. + +* TBD | author + + + + +## References + + + +### RFC Pull Requests + + + +* Stage 0: https://github.com/elastic/ecs/pull/NNN + + diff --git a/rfcs/text/0044/code_signature.yml b/rfcs/text/0044/code_signature.yml new file mode 100644 index 0000000000..e3ccbba206 --- /dev/null +++ b/rfcs/text/0044/code_signature.yml @@ -0,0 +1,11 @@ +--- +- name: code_signature + fields: + - name: codesigning_flags + format: string + level: extended + type: long + short: Code signing flags of the process + description: > + The flags used to sign the process. + example: 570522385 \ No newline at end of file diff --git a/rfcs/text/0044/hash.yml b/rfcs/text/0044/hash.yml new file mode 100644 index 0000000000..3f757e7df8 --- /dev/null +++ b/rfcs/text/0044/hash.yml @@ -0,0 +1,9 @@ +--- +- name: hash + fields: + - name: cdhash + level: extended + type: keyword + short: The Code Directory (CD) hash of an executable. + description: Code directory hash, utilized to uniquely identify and authenticate the integrity of the executable code. + example: 3783b4052fd474dbe30676b45c329e7a6d44acd9 \ No newline at end of file diff --git a/rfcs/text/0044/host.yml b/rfcs/text/0044/host.yml new file mode 100644 index 0000000000..7abe0ff6f8 --- /dev/null +++ b/rfcs/text/0044/host.yml @@ -0,0 +1,10 @@ +--- +- name: host + fields: + - name: serial_number + level: core + type: keyword + short: Serial Number of the device + description: > + The unique serial number serves as a distinct identifier for each device, aiding in inventory management and device authentication. + example: DJGAQS4CW5 \ No newline at end of file diff --git a/rfcs/text/0044/process.yml b/rfcs/text/0044/process.yml new file mode 100644 index 0000000000..3214d9463c --- /dev/null +++ b/rfcs/text/0044/process.yml @@ -0,0 +1,25 @@ +--- +- name: process + fields: + - name: platform_binary + level: extended + type: boolean + short: Indicates wethether this process executable is a default platform binary shipped with macOS. + description: > + Binaries that are shipped by macOS are defined as platform binaries, this value is then set to true. + example: true + + - name: es_client + level: extended + type: boolean + short: Indicates wethether this process executable is an Endpoint Security client. + description: > + Processes that have an endpoint security client must have the com.apple.endpointsecurity entitlement and the value is set to true in the message. + example: true + + - name: thread.uuid + level: extended + type: keyword + example: 5E0470DA-BFD6-5F44-9C25-CD4E3AB81737 + description: > + Globally unique identifier that can be utilised to correlate the activity of a thread. \ No newline at end of file From fd22adb688c92b66c181f0cd21df4a9ff555af1b Mon Sep 17 00:00:00 2001 From: Thijs Xhaflaire Date: Thu, 2 May 2024 10:59:15 +0200 Subject: [PATCH 2/9] Update 0044-add-apple-platform-specific-fields.md --- ...0044-add-apple-platform-specific-fields.md | 62 +++++++++++-------- 1 file changed, 35 insertions(+), 27 deletions(-) diff --git a/rfcs/text/0044-add-apple-platform-specific-fields.md b/rfcs/text/0044-add-apple-platform-specific-fields.md index 1ac7c95052..339c231860 100644 --- a/rfcs/text/0044-add-apple-platform-specific-fields.md +++ b/rfcs/text/0044-add-apple-platform-specific-fields.md @@ -4,44 +4,52 @@ - Stage: **0 (strawperson)** - Date: **TBD** - - +### Summary +This RFC proposes the addition of Apple platform-specific fields to the ECS schema. This enhancement will enable security software vendors to more accurately map out data, particularly for Apple platforms. - - - +The following feelds needs to be considered being added: ## Fields - +#### Proposed New Fields for Process object - +Field | Type | Example | Description +--- | --- | --- | --- +platform_binary | boolean | true | Indicates wethether this process executable is a default platform binary shipped with macOS. +es_client | boolean | true | Indicates wethether this process executable is an Endpoint Security client. +thread.uuid | keyword | E0470DA-BFD6-5F44-9C25-CD4E3AB81737 | Globally unique identifier that can be utilised to correlate the activity of a thread. + +#### Proposed New Fields for Code Signature object + +Field | Type | Example | Description +--- | --- | --- | --- +codesigning_flags | string | 570522385 | The flags used to sign the process. + +#### Proposed New Fields for Hash object + +Field | Type | Example | Description +--- | --- | --- | --- +cdhash | keyword | 3783b4052fd474dbe30676b45c329e7a6d44acd9 | The Code Directory (CD) hash of an executable + +#### Proposed New Fields for Host object + +Field | Type | Example | Description +--- | --- | --- | --- +serial_number | keyword | DJGAQS4CW5 | The unique serial number serves as a distinct identifier for each device, aiding in inventory management and device authentication. + +### Motivation +As the number of Apple endpoints in enterprises grows, having the right fields to map data becomes increasingly valuable. This enables security researchers using Elastic, particularly those focusing on macOS, to query data more effectively by leveraging enriched data sets. ## Usage - +As a developer at Jamf, working on the Elastic integration for Jamf Protect, our goal is to map as many fields as possible, especially as Jamf specializes in Apple platform security. While developing the integration, we've identified some gaps related to mapping events to ECS. + +These new fields offer versatile methods. For instance, they facilitate querying process executions by platform binaries or endpoint security clients without requiring specific identifiers. The added hash fields are particularly valuable for tracking the hash of an application bundle alongside the hash of the executable in the directory itself, while the others are self-explanatory. ## Source data - +This data originates from Endpoint Security software operating on a macOS host and can be transmitted through various methods, including an Elastic Agent and as example the use of the Jamf Protect integration, which supports AWS S3 or HTTPs. -## Scope of impact + -## Concerns + -* Stage 0: https://github.com/elastic/ecs/pull/NNN +* Stage 0: https://github.com/elastic/ecs/pull/2338