Skip to content
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

[Amazon Security Lake] - OCSF v1.1 update with major refactor & adding support for dynamic template and mappings & system tests #10405

Merged
merged 40 commits into from
Oct 23, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
66c9372
added support for new user inventory info event class and updated inc…
ShourieG Jun 7, 2024
fb78670
trying to make a working system test
ShourieG Jun 13, 2024
3902a02
merged with upstream
ShourieG Jun 17, 2024
6bec44b
initial working system tests added pending elastic-package changes to…
ShourieG Jun 21, 2024
64f285b
merged with upstream/main
ShourieG Jul 2, 2024
118b2d2
test commit to be reverted
ShourieG Jul 10, 2024
185e2f9
initial working test for dynamic template
ShourieG Jul 12, 2024
f784e75
updated root org templates
ShourieG Jul 12, 2024
4282225
reworked 'org' object mapping as tynamic template for all data streams
ShourieG Jul 12, 2024
e2f8457
Merge branch 'main' into security_lake/ocsf_1.1
ShourieG Jul 23, 2024
d4788f4
Merge remote-tracking branch 'upstream/main' into security_lake/ocsf_1.1
ShourieG Jul 30, 2024
32ed102
segregated process fields in 'findings', added 'actor' fields for new…
ShourieG Jul 30, 2024
78c1ea2
added fulnerability findings support and segregated 'resource' group …
ShourieG Jul 30, 2024
0656284
Merge remote-tracking branch 'upstream/main' into security_lake/ocsf_1.1
ShourieG Jul 30, 2024
8f7122d
added ntp activity event class, deprecated proxy event class, aded pr…
ShourieG Aug 1, 2024
5352aac
added os patch state event class, segregated device fields across all…
ShourieG Aug 2, 2024
ac66e6e
added datastore activity event class, segregated actor, user & metada…
ShourieG Aug 6, 2024
73b7be8
added support for detection finding event class, segregated and mappe…
ShourieG Aug 6, 2024
1236584
added support of compliance finding event class, segregated and updat…
ShourieG Aug 7, 2024
03b5099
segregated and expanded api object across all data streams, added sup…
ShourieG Aug 7, 2024
e99119c
added support for Device Config State Change event class, updated sch…
ShourieG Aug 8, 2024
7e5f687
added support for scan activity event class
ShourieG Aug 8, 2024
516b63b
segregated file fields across required data streams, added support fo…
ShourieG Aug 8, 2024
bf779a5
added cwe & epss objects as flattened to cve object
ShourieG Aug 8, 2024
97459f5
converted feature object to follow dynamic mapping rules across all d…
ShourieG Aug 8, 2024
bb88d57
added firewall rule object to respective event categories
ShourieG Aug 8, 2024
f0fdc32
added some missing fields after locally running system tests for disc…
ShourieG Aug 9, 2024
0b356dc
reworked terrform deployer to support multi-bucket based system tests
ShourieG Aug 9, 2024
19ffbf7
updated docs and changelog
ShourieG Aug 9, 2024
dd90df2
fixed timestamp issues across all data streams, added all system test…
ShourieG Aug 13, 2024
360c3d8
resolved merge conflicts
ShourieG Aug 14, 2024
2b1250d
resolved merge conflicts
ShourieG Aug 19, 2024
2261431
removed system test configs until respective elastic-package changes …
ShourieG Aug 19, 2024
5794401
updated with main, resolved merge conflicts
ShourieG Aug 26, 2024
6e5bc7c
Merge remote-tracking branch 'upstream/main' into security_lake/ocsf_1.1
ShourieG Aug 29, 2024
c204d18
Merge remote-tracking branch 'upstream/main' into security_lake/ocsf_1.1
ShourieG Oct 21, 2024
14bb1a5
updated docs, optimised timestamp conversion logic and changed *.type…
ShourieG Oct 21, 2024
3ec9e28
changed algorithm_id from integer to keyword type mapping
ShourieG Oct 21, 2024
06209ba
updated state_id mappings from integer to keyword
ShourieG Oct 21, 2024
69b2f19
addressed PR comments and updated pipelines, file names and field map…
ShourieG Oct 23, 2024
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
4 changes: 3 additions & 1 deletion packages/amazon_security_lake/_dev/build/docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ The Amazon Security Lake integration can be used in two different modes to colle

## Compatibility

This module follows the latest OCSF Schema Version **v1.0.0**.
This module follows the OCSF Schema Version **v1.1.0**.

## Data streams

Expand All @@ -19,6 +19,8 @@ The Amazon Security Lake integration collects logs from both [Third-party servic
### **NOTE**:
- The Amazon Security Lake integration supports events collected from [AWS services](https://docs.aws.amazon.com/security-lake/latest/userguide/internal-sources.html) and [third-party services](https://docs.aws.amazon.com/security-lake/latest/userguide/custom-sources.html).

- Due to the nature and structure of the OCSF schema, this integration has limitations on how deep the mappings run. Some important objects like 'Actor', 'User' and 'Product' have more fleshed-out mappings compared to others which get flattened after the initial 2-3 levels of nesting to keep them maintainable and stay within field mapping [limits](https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-settings-limit.html). This will evolve as needed.

## Requirements

- Elastic Agent must be installed.
Expand Down
5 changes: 5 additions & 0 deletions packages/amazon_security_lake/changelog.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,9 @@
# newer versions go on top
- version: "2.0.0"
changes:
- description: Updated to support OCSF v1.1.0. with major pipeline rework and dynamic mapping support.
type: enhancement
link: https://github.com/elastic/integrations/pull/10405
- version: "1.5.0"
changes:
- description: Re-added SQS notification settings which were removed due to a prior update error.
Expand Down

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1,154 @@
- name: ocsf
type: group
fields:
- name: api
type: group
description: Describes details about a typical API (Application Programming Interface) call.
fields:
- name: operation
type: keyword
description: Verb/Operation associated with the request.
- name: group
type: group
description: The information pertaining to the API group.
fields:
- name: desc
type: text
description: The group description.
- name: domain
type: keyword
description: The domain where the group is defined. For example, the LDAP or Active Directory domain.
- name: name
type: keyword
description: The group name.
- name: privileges
type: keyword
description: The group privileges.
- name: type
type: keyword
description: The type of the group or account.
- name: uid
type: keyword
description: The unique identifier of the group. For example, for Windows events this is the security identifier (SID) of the group.
- name: request
type: group
description: Details pertaining to the API request.
fields:
- name: uid
type: keyword
description: The unique request identifier.
- name: containers
type: group
description: When working with containerized applications, the set of containers which write to the standard the output of a particular logging driver.
fields:
- name: hash
type: flattened
description: Commit hash of image created for docker or the SHA256 hash of the container.
- name: image
type: flattened
description: The container image used as a template to run the container.
- name: name
type: keyword
description: The container name.
- name: network_driver
type: keyword
description: The network driver used by the container. For example, bridge, overlay, host, none, etc.
- name: orchestrator
type: keyword
description: The orchestrator managing the container, such as ECS, EKS, K8s, or OpenShift.
- name: pod_uuid
type: keyword
description: The unique identifier of the pod (or equivalent) that the container is executing on.
- name: runtime
type: keyword
description: The backend running the container, such as containerd or cri-o.
- name: size
type: integer
description: The size of the container image.
- name: tag
type: keyword
description: The tag used by the container. It can indicate version, format, OS.
- name: uid
type: keyword
description: The full container unique identifier for this instantiation of the container.
- name: data
type: flattened
description: The additional data that is associated with the api request.
- name: flags
type: keyword
description: The list of communication flags, normalized to the captions of the flag_ids values.
- name: response
type: group
description: Details pertaining to the API response.
fields:
- name: code
type: integer
description: The numeric response sent to a request.
- name: containers
type: group
description: When working with containerized applications, the set of containers which write to the standard the output of a particular logging driver.
fields:
- name: hash
type: flattened
description: Commit hash of image created for docker or the SHA256 hash of the container.
- name: image
type: flattened
description: The container image used as a template to run the container.
- name: name
type: keyword
description: The container name.
- name: network_driver
type: keyword
description: The network driver used by the container. For example, bridge, overlay, host, none, etc.
- name: orchestrator
type: keyword
description: The orchestrator managing the container, such as ECS, EKS, K8s, or OpenShift.
- name: pod_uuid
type: keyword
description: The unique identifier of the pod (or equivalent) that the container is executing on.
- name: runtime
type: keyword
description: The backend running the container, such as containerd or cri-o.
- name: size
type: integer
description: The size of the container image.
- name: tag
type: keyword
description: The tag used by the container. It can indicate version, format, OS.
- name: uid
type: keyword
description: The full container unique identifier for this instantiation of the container.
- name: data
type: flattened
description: The additional data that is associated with the api response.
- name: error
type: keyword
description: Error Code.
- name: error_message
type: text
description: Error Message.
- name: flags
type: keyword
description: The list of communication flags, normalized to the captions of the flag_ids values.
- name: message
type: text
description: The description of the event/finding, as defined by the source.
- name: service
type: group
description: The information pertaining to the API service.
fields:
- name: labels
type: keyword
description: The list of labels associated with the service.
- name: name
type: keyword
description: The name of the service.
- name: uid
type: keyword
description: The unique identifier of the service.
- name: version
type: keyword
description: The version of the service.
- name: version
type: keyword
description: The version of the API service.
Loading