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

New input for Crowdstrike Falcon events #16988

Merged
merged 30 commits into from
Mar 31, 2020
Merged
Show file tree
Hide file tree
Changes from 23 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
506 changes: 506 additions & 0 deletions filebeat/docs/fields.asciidoc

Large diffs are not rendered by default.

Binary file added filebeat/docs/images/siem-alerts-cs.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added filebeat/docs/images/siem-events-cs.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
92 changes: 92 additions & 0 deletions filebeat/docs/modules/crowdstrike.asciidoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
////
This file is generated! See scripts/docs_collector.py
////

[[filebeat-module-crowdstrike]]
[role="xpack"]

:modulename: crowdstrike
:has-dashboards: true

== Crowdstrike module

This is the filebeat module for the Crowdstrike Falcon using the Falcon https://www.crowdstrike.com/blog/tech-center/integrate-with-your-siem[SIEM Connector]. This module collects this data, converts it to ECS, and ingests it to view in the SIEM. By default, the Falcon SIEM connector outputs JSON formated Falcon Streaming API event data in JSON format.

This module segments events forwarded by the Falcon SIEM connector into two datasets for endpoint data and Falcon platform audit data.

include::../include/what-happens.asciidoc[]

[float]
=== Compatibility

This input supports Crowdstrike Falcon SIEM-Connector-v2.0.

include::../include/running-modules.asciidoc[]

[float]
=== Dashboards

The best way to view Crowdstrike events and alert data is in the SIEM.

[role="screenshot"]
image::./images/siem-alerts-cs.jpg[]

[float]
For alerts, go to Detections -> External alerts.

[role="screenshot"]
image::./images/siem-events-cs.jpg[]

[float]
And for all over event Crowdstrike Falcon event types, go to Host -> Events.

include::../include/configuring-intro.asciidoc[]

:fileset_ex: falcon_endpoint

include::../include/config-option-intro.asciidoc[]

[float]
==== `falcon_endpoint` fileset settings

The fileset is by default configured to collect JSON formated event data from `/var/log/crowdstrike/falconhoseclient/output`. It forwards DetectionSummaryEvent and IncidentSummaryEvent events.

["source","yaml",subs="attributes"]
-----
var:
- name: paths
default:
- /var/log/crowdstrike/falconhoseclient/output
-----

include::../include/var-paths.asciidoc[]

:fileset_ex: falcon_audit

[float]
==== `falcon_audit` fileset settings

The fileset is by default configured to collect JSON formated event data from `/var/log/crowdstrike/falconhoseclient/output`. It forwards RemoteResponseSessionStartEvent, RemoteResponseSessionEndEvent, AuthActivityAuditEvent, and UserActivityAuditEvent events.

["source","yaml",subs="attributes"]
-----
var:
- name: paths
default:
- /var/log/crowdstrike/falconhoseclient/output
-----

include::../include/var-paths.asciidoc[]


:has-dashboards!:

:modulename!:


[float]
=== Fields

For a description of each field in the module, see the
<<exported-fields-crowdstrike,exported fields>> section.

2 changes: 2 additions & 0 deletions filebeat/docs/modules_list.asciidoc
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ This file is generated! See scripts/docs_collector.py
* <<filebeat-module-cef>>
* <<filebeat-module-cisco>>
* <<filebeat-module-coredns>>
* <<filebeat-module-crowdstrike>>
* <<filebeat-module-elasticsearch>>
* <<filebeat-module-envoyproxy>>
* <<filebeat-module-googlecloud>>
Expand Down Expand Up @@ -54,6 +55,7 @@ include::modules/azure.asciidoc[]
include::modules/cef.asciidoc[]
include::modules/cisco.asciidoc[]
include::modules/coredns.asciidoc[]
include::modules/crowdstrike.asciidoc[]
include::modules/elasticsearch.asciidoc[]
include::modules/envoyproxy.asciidoc[]
include::modules/googlecloud.asciidoc[]
Expand Down
17 changes: 17 additions & 0 deletions x-pack/filebeat/filebeat.reference.yml
Original file line number Diff line number Diff line change
Expand Up @@ -333,6 +333,23 @@ filebeat.modules:
# Filebeat will choose the paths depending on your OS.
#var.paths:

#----------------------------- Crowdstrike Module -----------------------------
- module: crowdstrike

falcon_endpoint:
enabled: true

# Set custom paths for the log files. If left empty,
# Filebeat will choose the paths depending on your OS.
#var.paths:

falcon_audit:
enabled: true
tonymeehan marked this conversation as resolved.
Show resolved Hide resolved

# Set custom paths for the log files. If left empty,
# Filebeat will choose the paths depending on your OS.
#var.paths:

#---------------------------- Elasticsearch Module ----------------------------
- module: elasticsearch
# Server log
Expand Down
1 change: 1 addition & 0 deletions x-pack/filebeat/include/list.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

15 changes: 15 additions & 0 deletions x-pack/filebeat/module/crowdstrike/_meta/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
- module: crowdstrike

falcon_endpoint:
enabled: true

# Set custom paths for the log files. If left empty,
# Filebeat will choose the paths depending on your OS.
#var.paths:

falcon_audit:
enabled: true
tonymeehan marked this conversation as resolved.
Show resolved Hide resolved

# Set custom paths for the log files. If left empty,
# Filebeat will choose the paths depending on your OS.
#var.paths:
79 changes: 79 additions & 0 deletions x-pack/filebeat/module/crowdstrike/_meta/docs.asciidoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
[role="xpack"]

:modulename: crowdstrike
:has-dashboards: true

== Crowdstrike module

This is the filebeat module for the Crowdstrike Falcon using the Falcon https://www.crowdstrike.com/blog/tech-center/integrate-with-your-siem[SIEM Connector]. This module collects this data, converts it to ECS, and ingests it to view in the SIEM. By default, the Falcon SIEM connector outputs JSON formated Falcon Streaming API event data in JSON format.
tonymeehan marked this conversation as resolved.
Show resolved Hide resolved

This module segments events forwarded by the Falcon SIEM connector into two datasets for endpoint data and Falcon platform audit data.
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
This module segments events forwarded by the Falcon SIEM connector into two datasets for endpoint data and Falcon platform audit data.

Copy link
Author

Choose a reason for hiding this comment

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

I was going to keep this since we're still doing this (two datasets), just from the same fileset. That okay?

Copy link
Member

Choose a reason for hiding this comment

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

Oh, that's interesting. I didn't notice that the module was setting the event.dataset values. We've never had a case AFAIK where a fileset produced an event.dataset value other than the default of {module}.{fileset}. I don't think this will cause any issues. I think it would be good to callout the event.dataset values that it produces in this paragraph.


include::../include/what-happens.asciidoc[]

[float]
=== Compatibility

This input supports Crowdstrike Falcon SIEM-Connector-v2.0.

include::../include/running-modules.asciidoc[]

[float]
=== Dashboards

The best way to view Crowdstrike events and alert data is in the SIEM.

[role="screenshot"]
image::./images/siem-alerts-cs.jpg[]

[float]
For alerts, go to Detections -> External alerts.

[role="screenshot"]
image::./images/siem-events-cs.jpg[]

[float]
And for all over event Crowdstrike Falcon event types, go to Host -> Events.

include::../include/configuring-intro.asciidoc[]

:fileset_ex: falcon_endpoint

include::../include/config-option-intro.asciidoc[]

[float]
==== `falcon_endpoint` fileset settings
tonymeehan marked this conversation as resolved.
Show resolved Hide resolved

The fileset is by default configured to collect JSON formated event data from `/var/log/crowdstrike/falconhoseclient/output`. It forwards DetectionSummaryEvent and IncidentSummaryEvent events.

["source","yaml",subs="attributes"]
-----
var:
- name: paths
default:
- /var/log/crowdstrike/falconhoseclient/output
-----

include::../include/var-paths.asciidoc[]

:fileset_ex: falcon_audit

[float]
==== `falcon_audit` fileset settings

The fileset is by default configured to collect JSON formated event data from `/var/log/crowdstrike/falconhoseclient/output`. It forwards RemoteResponseSessionStartEvent, RemoteResponseSessionEndEvent, AuthActivityAuditEvent, and UserActivityAuditEvent events.

["source","yaml",subs="attributes"]
-----
var:
- name: paths
default:
- /var/log/crowdstrike/falconhoseclient/output
-----

include::../include/var-paths.asciidoc[]


:has-dashboards!:

:modulename!:
42 changes: 42 additions & 0 deletions x-pack/filebeat/module/crowdstrike/_meta/fields.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
- key: crowdstrike
title: "Crowdstrike"
release: beta
description: >
Module for collecting Crowdstrike events.
fields:
- name: crowdstrike
type: group
description: >
Fields for Crowdstrike Falcon event and alert data.
fields:
- name: metadata
title: Metadata fields
description: >
Meta data fields for each event that include type and timestamp.
type: group
default_field: false
fields:
- name: eventType
type: text
description: >
DetectionSummaryEvent or IncidentSummaryEvent

- name: eventCreationTime
type: date
description: >
The time this event occurred on the endpoint in UTC UNIX_MS format.

- name: offset
type: integer
description: >
Offset number that tracks the location of the event in stream. This is used to identify unique detection events.

- name: customerIDString
type: text
tonymeehan marked this conversation as resolved.
Show resolved Hide resolved
description: >
Customer identifier

- name: version
type: text
description: >
Schema version
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
61 changes: 61 additions & 0 deletions x-pack/filebeat/module/crowdstrike/falcon_audit/_meta/fields.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
- name: event
title: Event fields
description: >
Event data fields for each event and alert.
type: group
default_field: false
fields:
- name: UserId
type: text
description: >
Email address or user ID associated with the event.

- name: UserIp
type: text
description: >
IP address associated with the user.

- name: OperationName
type: text
description: >
Event subtype.

- name: ServiceName
type: text
description: >
Service associated with this event.

- name: Success
type: boolean
description: >
Indicator of whether or not this event was successful.

- name: UTCTimestamp
type: date
description: >
Timestamp associated with this event in UTC UNIX format.

- name: AuditKeyValues
type: nested
description: >
Fields that were changed in this event.

- name: SessionId
type: text
description: >
Session ID of the remote response session.

- name: HostnameField
type: text
description: >
Host name of the machine for the remote session.

- name: StartTimestamp
type: date
description: >
Start time for the remote session in UTC UNIX format.

- name: EndTimestamp
type: date
description: >
End time for the remote session in UTC UNIX format.
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
type: log
paths:
{{ range $i, $path := .paths }}
- {{$path}}
{{ end }}
exclude_files: [".gz$"]

# Crowdstrike Falcon SIEM connector logs are multiline JSON by default
multiline.pattern: '^{'
multiline.negate: true
multiline.match: after
multiline.max_lines: 5000
multiline.timeout: 10

processors:
- script:
lang: javascript
id: crowdstrike_falcon_audit
file: ${path.home}/module/crowdstrike/falcon_audit/config/pipeline.js
Loading