Skip to content

Commit 0251473

Browse files
committed
Fix more filter name issues. Most of these fixes were just trailing spaces after the name of the filter macro, which does not actually affect anything. But others had the filter macro not at the end for no good reason or actual errors/typos in the filter macro. These should now be fixed. We have a handful of detections, 6, which do not have the filter macro at the end and have meaningful changes after it. The team will chat and determine if these should be changed or not.
1 parent 252c17d commit 0251473

File tree

81 files changed

+93
-89
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

81 files changed

+93
-89
lines changed

detections/application/email_files_written_outside_of_the_outlook_directory.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ search: '| tstats `security_content_summariesonly` count values(Filesystem.file_
1515
!= "C:\\Users\\*\\My Documents\\Outlook Files\\*" Filesystem.file_path!="C:\\Users\\*\\AppData\\Local\\Microsoft\\Outlook*"
1616
by Filesystem.action Filesystem.process_id Filesystem.file_name Filesystem.dest
1717
| `drop_dm_object_name("Filesystem")` | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)`|
18-
`email_files_written_outside_of_the_outlook_directory_filter` '
18+
`email_files_written_outside_of_the_outlook_directory_filter`'
1919
how_to_implement: To successfully implement this search, you must be ingesting data
2020
that records the file-system activity from your hosts to populate the Endpoint.Filesystem
2121
data model node. This is typically populated via endpoint detection-and-response

detections/application/splunk_rce_via_user_xslt.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,8 @@ search: '`splunkd_ui` ((uri="*NO_BINARY_CHECK=1*" AND "*input.path=*.xsl*") OR u
1919
| fillnull value="N/A"
2020
| `security_content_ctime(firstTime)`
2121
| `security_content_ctime(lastTime)`
22-
| table firstTime, lastTime src, useragent, action, count, Country, Region, City, dest_uri, decoded_field'
22+
| table firstTime, lastTime src, useragent, action, count, Country, Region, City, dest_uri, decoded_field
23+
| `splunk_rce_via_user_xslt_filter`'
2324
how_to_implement: This detection does not require you to ingest any new data. The detection does
2425
require the ability to search the _internal index.
2526
known_false_positives: This search will provide information for investigation and hunting possible abuse of user-supplied XSLT.

detections/application/suspicious_email_attachment_extensions.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ search: '| tstats `security_content_summariesonly` count min(_time) as firstTime
1212
as lastTime from datamodel=Email where All_Email.file_name="*" by All_Email.src_user,
1313
All_Email.file_name All_Email.message_id | `security_content_ctime(firstTime)` |
1414
`security_content_ctime(lastTime)` | `drop_dm_object_name("All_Email")` | `suspicious_email_attachments`
15-
| `suspicious_email_attachment_extensions_filter` '
15+
| `suspicious_email_attachment_extensions_filter`'
1616
how_to_implement: You need to ingest data from emails. Specifically, the sender's
1717
address and the file names of any attachments must be mapped to the Email data
1818
model.

detections/cloud/amazon_eks_kubernetes_cluster_scan_detection.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ search: '`aws_cloudwatchlogs_eks` "user.username"="system:anonymous" userAgent!=
1313
max(_time) as lastTime values(responseStatus.reason) values(source) as cluster_name
1414
values(responseStatus.code) values(userAgent) as http_user_agent values(verb) values(requestURI)
1515
by src_ip user.username user.groups{} | `security_content_ctime(lastTime)` | `security_content_ctime(firstTime)`
16-
|`amazon_eks_kubernetes_cluster_scan_detection_filter` '
16+
|`amazon_eks_kubernetes_cluster_scan_detection_filter`'
1717
how_to_implement: You must install the AWS App for Splunk (version 5.1.0 or later)
1818
and Splunk Add-on for AWS (version 4.4.0 or later), then configure your CloudWatch
1919
EKS Logs inputs.

detections/cloud/amazon_eks_kubernetes_pod_scan_detection.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ search: '`aws_cloudwatchlogs_eks` "user.username"="system:anonymous" verb=list o
1313
| stats count min(_time) as firstTime max(_time) as lastTime values(responseStatus.reason)
1414
values(responseStatus.code) values(userAgent) values(verb) values(requestURI) by
1515
src_ip cluster_name user.username user.groups{} | `security_content_ctime(lastTime)`
16-
| `security_content_ctime(firstTime)` | `amazon_eks_kubernetes_pod_scan_detection_filter` '
16+
| `security_content_ctime(firstTime)` | `amazon_eks_kubernetes_pod_scan_detection_filter`'
1717
how_to_implement: You must install the AWS App for Splunk (version 5.1.0 or later)
1818
and Splunk Add-on forAWS (version 4.4.0 or later), then configure your AWS CloudWatch
1919
EKS Logs.Please also customize the `kubernetes_pods_aws_scan_fingerprint_detection`

detections/cloud/aws_ec2_snapshot_shared_externally.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ description: The following analytic utilizes AWS CloudTrail events to identify w
1111
data_source:
1212
- AWS CloudTrail ModifySnapshotAttribute
1313
search: '`cloudtrail` eventName=ModifySnapshotAttribute | rename requestParameters.createVolumePermission.add.items{}.userId
14-
as requested_account_id | search requested_account_id != NULL | eval match=if(requested_account_id==aws_account_id,"Match","No Match") | table _time user_arn src_ip requestParameters.attributeType requested_account_id aws_account_id match vendor_region user_agent userIdentity.principalId | where match = "No Match" | `aws_ec2_snapshot_shared_externally_filter` '
14+
as requested_account_id | search requested_account_id != NULL | eval match=if(requested_account_id==aws_account_id,"Match","No Match") | table _time user_arn src_ip requestParameters.attributeType requested_account_id aws_account_id match vendor_region user_agent userIdentity.principalId | where match = "No Match" | `aws_ec2_snapshot_shared_externally_filter`'
1515
how_to_implement: You must install splunk AWS add on and Splunk App for AWS. This
1616
search works with AWS CloudTrail logs.
1717
known_false_positives: It is possible that an AWS admin has legitimately shared a

detections/cloud/cloud_provisioning_activity_from_previously_unseen_city.yml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,10 @@ search: '| tstats earliest(_time) as firstTime, latest(_time) as lastTime from d
1717
lookup previously_seen_cloud_provisioning_activity_sources City as City OUTPUT firstTimeSeen,
1818
enough_data | eventstats max(enough_data) as enough_data | where enough_data=1 |
1919
eval firstTimeSeenCity=min(firstTimeSeen) | where isnull(firstTimeSeenCity) OR firstTimeSeenCity
20-
> relative_time(now(), `previously_unseen_cloud_provisioning_activity_window`) |
21-
table firstTime, src, City, user, object, command | `cloud_provisioning_activity_from_previously_unseen_city_filter`
22-
| `security_content_ctime(firstTime)`'
20+
> relative_time(now(), `previously_unseen_cloud_provisioning_activity_window`)
21+
| `security_content_ctime(firstTime)`
22+
| table firstTime, src, City, user, object, command
23+
| `cloud_provisioning_activity_from_previously_unseen_city_filter`'
2324
how_to_implement: You must be ingesting your cloud infrastructure logs from your cloud
2425
provider. You should run the baseline search `Previously Seen Cloud Provisioning
2526
Activity Sources - Initial` to build the initial table of source IP address, geographic

detections/cloud/cloud_provisioning_activity_from_previously_unseen_country.yml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,10 @@ search: '| tstats earliest(_time) as firstTime, latest(_time) as lastTime from d
1717
| lookup previously_seen_cloud_provisioning_activity_sources Country as Country
1818
OUTPUT firstTimeSeen, enough_data | eventstats max(enough_data) as enough_data |
1919
where enough_data=1 | eval firstTimeSeenCountry=min(firstTimeSeen) | where isnull(firstTimeSeenCountry)
20-
OR firstTimeSeenCountry > relative_time(now(), "-24h@h") | table firstTime, src,
21-
Country, user, object, command | `cloud_provisioning_activity_from_previously_unseen_country_filter`
22-
| `security_content_ctime(firstTime)`'
20+
OR firstTimeSeenCountry > relative_time(now(), "-24h@h")
21+
| `security_content_ctime(firstTime)`
22+
| table firstTime, src, Country, user, object, command
23+
| `cloud_provisioning_activity_from_previously_unseen_country_filter`'
2324
how_to_implement: You must be ingesting your cloud infrastructure logs from your cloud
2425
provider. You should run the baseline search `Previously Seen Cloud Provisioning
2526
Activity Sources - Initial` to build the initial table of source IP address, geographic

detections/cloud/cloud_provisioning_activity_from_previously_unseen_ip_address.yml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,9 @@ search: '| tstats earliest(_time) as firstTime, latest(_time) as lastTime, value
1717
src as src OUTPUT firstTimeSeen, enough_data | eventstats max(enough_data) as enough_data
1818
| where enough_data=1 | eval firstTimeSeenSrc=min(firstTimeSeen) | where isnull(firstTimeSeenSrc)
1919
OR firstTimeSeenSrc > relative_time(now(), `previously_unseen_cloud_provisioning_activity_window`)
20-
| table firstTime, src, user, object_id, command | `cloud_provisioning_activity_from_previously_unseen_ip_address_filter`
21-
| `security_content_ctime(firstTime)`'
20+
| `security_content_ctime(firstTime)`
21+
| table firstTime, src, user, object_id, command
22+
| `cloud_provisioning_activity_from_previously_unseen_ip_address_filter`'
2223
how_to_implement: You must be ingesting your cloud infrastructure logs from your cloud
2324
provider. You should run the baseline search `Previously Seen Cloud Provisioning
2425
Activity Sources - Initial` to build the initial table of source IP address, geographic

detections/cloud/cloud_provisioning_activity_from_previously_unseen_region.yml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,9 @@ search: '| tstats earliest(_time) as firstTime, latest(_time) as lastTime from d
1818
firstTimeSeen, enough_data | eventstats max(enough_data) as enough_data | where
1919
enough_data=1 | eval firstTimeSeenRegion=min(firstTimeSeen) | where isnull(firstTimeSeenRegion)
2020
OR firstTimeSeenRegion > relative_time(now(), `previously_unseen_cloud_provisioning_activity_window`)
21-
| table firstTime, src, Region, user, object, command | `cloud_provisioning_activity_from_previously_unseen_region_filter`
22-
| `security_content_ctime(firstTime)`'
21+
| `security_content_ctime(firstTime)`
22+
| table firstTime, src, Region, user, object, command
23+
| `cloud_provisioning_activity_from_previously_unseen_region_filter`'
2324
how_to_implement: You must be ingesting your cloud infrastructure logs from your cloud
2425
provider. You should run the baseline search `Previously Seen Cloud Provisioning
2526
Activity Sources - Initial` to build the initial table of source IP address, geographic

detections/cloud/detect_new_open_s3_buckets.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ search: '`cloudtrail` eventSource=s3.amazonaws.com eventName=PutBucketAcl | rex
1717
rename requestParameters.bucketName AS bucketName | stats count min(_time) as firstTime
1818
max(_time) as lastTime by user_arn userIdentity.principalId userAgent uri permission
1919
bucketName | `security_content_ctime(firstTime)`| `security_content_ctime(lastTime)`
20-
| `detect_new_open_s3_buckets_filter` '
20+
| `detect_new_open_s3_buckets_filter`'
2121
how_to_implement: You must install the AWS App for Splunk.
2222
known_false_positives: While this search has no known false positives, it is possible
2323
that an AWS admin has legitimately created a public bucket for a specific purpose.

detections/cloud/detect_new_open_s3_buckets_over_aws_cli.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ search: '`cloudtrail` eventSource="s3.amazonaws.com" (userAgent="[aws-cli*" OR u
1919
by userIdentity.userName userIdentity.principalId userAgent bucketName requestParameters.accessControlList.x-amz-grant-read
2020
requestParameters.accessControlList.x-amz-grant-read-acp requestParameters.accessControlList.x-amz-grant-write
2121
requestParameters.accessControlList.x-amz-grant-write-acp requestParameters.accessControlList.x-amz-grant-full-control
22-
| `security_content_ctime(firstTime)`| `security_content_ctime(lastTime)` | `detect_new_open_s3_buckets_over_aws_cli_filter` '
22+
| `security_content_ctime(firstTime)`| `security_content_ctime(lastTime)` | `detect_new_open_s3_buckets_over_aws_cli_filter`'
2323
how_to_implement: The Splunk AWS Add-on and Splunk App for AWS is required to utilize
2424
this data. The search requires AWS Cloudtrail logs.
2525
known_false_positives: While this search has no known false positives, it is possible

detections/cloud/kubernetes_abuse_of_secret_by_unusual_location.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ search: '`kube_audit` objectRef.resource=secrets verb=get
1919
| search NOT `kube_allowed_locations`
2020
| stats count by objectRef.name objectRef.namespace objectRef.resource requestReceivedTimestamp requestURI responseStatus.code sourceIPs{} stage user.groups{} user.uid user.username userAgent verb City Country
2121
| rename sourceIPs{} as src_ip, user.username as user
22-
| `kubernetes_abuse_of_secret_by_unusual_location_filter` '
22+
| `kubernetes_abuse_of_secret_by_unusual_location_filter`'
2323
how_to_implement: The detection is based on data that originates from Kubernetes Audit logs. Ensure that audit logging is enabled in your Kubernetes cluster.
2424
Kubernetes audit logs provide a record of the requests made to the Kubernetes API server, which is crucial for monitoring and detecting suspicious activities.
2525
Configure the audit policy in Kubernetes to determine what kind of activities are logged. This is done by creating an Audit Policy and providing it to the API server.

detections/cloud/kubernetes_abuse_of_secret_by_unusual_user_agent.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ search: '`kube_audit` objectRef.resource=secrets verb=get
1818
| fillnull
1919
| stats count by objectRef.name objectRef.namespace objectRef.resource requestReceivedTimestamp requestURI responseStatus.code sourceIPs{} stage user.groups{} user.uid user.username userAgent verb
2020
| rename sourceIPs{} as src_ip, user.username as user
21-
| `kubernetes_abuse_of_secret_by_unusual_user_agent_filter` '
21+
| `kubernetes_abuse_of_secret_by_unusual_user_agent_filter`'
2222
how_to_implement: The detection is based on data that originates from Kubernetes Audit logs. Ensure that audit logging is enabled in your Kubernetes cluster.
2323
Kubernetes audit logs provide a record of the requests made to the Kubernetes API server, which is crucial for monitoring and detecting suspicious activities.
2424
Configure the audit policy in Kubernetes to determine what kind of activities are logged. This is done by creating an Audit Policy and providing it to the API server.

detections/cloud/kubernetes_abuse_of_secret_by_unusual_user_group.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ search: '`kube_audit` objectRef.resource=secrets verb=get
1818
| fillnull
1919
| stats count by objectRef.name objectRef.namespace objectRef.resource requestReceivedTimestamp requestURI responseStatus.code sourceIPs{} stage user.groups{} user.uid user.username userAgent verb
2020
| rename sourceIPs{} as src_ip, user.username as user
21-
| `kubernetes_abuse_of_secret_by_unusual_user_group_filter` '
21+
| `kubernetes_abuse_of_secret_by_unusual_user_group_filter`'
2222
how_to_implement: The detection is based on data that originates from Kubernetes Audit logs. Ensure that audit logging is enabled in your Kubernetes cluster.
2323
Kubernetes audit logs provide a record of the requests made to the Kubernetes API server, which is crucial for monitoring and detecting suspicious activities.
2424
Configure the audit policy in Kubernetes to determine what kind of activities are logged. This is done by creating an Audit Policy and providing it to the API server.

detections/cloud/kubernetes_abuse_of_secret_by_unusual_user_name.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ search: '`kube_audit` objectRef.resource=secrets verb=get
1818
| fillnull
1919
| stats count by objectRef.name objectRef.namespace objectRef.resource requestReceivedTimestamp requestURI responseStatus.code sourceIPs{} stage user.groups{} user.uid user.username userAgent verb
2020
| rename sourceIPs{} as src_ip, user.username as user
21-
| `kubernetes_abuse_of_secret_by_unusual_user_name_filter` '
21+
| `kubernetes_abuse_of_secret_by_unusual_user_name_filter`'
2222
how_to_implement: The detection is based on data that originates from Kubernetes Audit logs. Ensure that audit logging is enabled in your Kubernetes cluster.
2323
Kubernetes audit logs provide a record of the requests made to the Kubernetes API server, which is crucial for monitoring and detecting suspicious activities.
2424
Configure the audit policy in Kubernetes to determine what kind of activities are logged. This is done by creating an Audit Policy and providing it to the API server.

detections/cloud/kubernetes_access_scanning.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ search: '`kube_audit` "user.groups{}"="system:unauthenticated" "responseStatus.c
1818
by sourceIPs{} Country City
1919
| where count > 5
2020
| rename sourceIPs{} as src_ip, user.username as user
21-
| `kubernetes_access_scanning_filter` '
21+
| `kubernetes_access_scanning_filter`'
2222
how_to_implement: The detection is based on data that originates from Kubernetes Audit logs. Ensure that audit logging is enabled in your Kubernetes cluster.
2323
Kubernetes audit logs provide a record of the requests made to the Kubernetes API server, which is crucial for monitoring and detecting suspicious activities.
2424
Configure the audit policy in Kubernetes to determine what kind of activities are logged. This is done by creating an Audit Policy and providing it to the API server.

detections/cloud/kubernetes_anomalous_inbound_network_activity_from_process.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ search: '| mstats avg(tcp.*) as tcp.* avg(udp.*) as udp.* where `kubernetes_metr
3636
| stats count(anomalies) as count values(anomalies) as anomalies by k8s.cluster.name dest.workload.name dest.process.name
3737
| where count > 5
3838
| rename k8s.cluster.name as host
39-
| `kubernetes_anomalous_inbound_network_activity_from_process_filter` '
39+
| `kubernetes_anomalous_inbound_network_activity_from_process_filter`'
4040
how_to_implement: 'To gather NPM metrics the Open Telemetry to the Kubernetes Cluster and
4141
enable Network Performance Monitoring according to instructions found in Splunk Docs
4242
https://docs.splunk.com/observability/en/infrastructure/network-explorer/network-explorer-setup.html#network-explorer-setup

detections/cloud/kubernetes_anomalous_inbound_to_outbound_network_io_ratio.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ search: '| mstats avg(k8s.pod.network.io) as io where `kubernetes_metrics` by k8
3333
| rename service as k8s.service
3434
| where count > 5
3535
| rename k8s.node.name as host
36-
| `kubernetes_anomalous_inbound_to_outbound_network_io_ratio_filter` '
36+
| `kubernetes_anomalous_inbound_to_outbound_network_io_ratio_filter`'
3737
how_to_implement: 'To implement this detection, follow these steps:
3838
3939
* Deploy the OpenTelemetry Collector (OTEL) to your Kubernetes cluster.

detections/cloud/kubernetes_anomalous_outbound_network_activity_from_process.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ search: '| mstats avg(tcp.*) as tcp.* avg(udp.*) as udp.* where `kubernetes_metr
3535
| stats count(anomalies) as count values(anomalies) as anomalies by k8s.cluster.name source.workload.name source.process.name
3636
| where count > 5
3737
| rename k8s.cluster.name as host
38-
| `kubernetes_anomalous_outbound_network_activity_from_process_filter` '
38+
| `kubernetes_anomalous_outbound_network_activity_from_process_filter`'
3939
how_to_implement: 'To gather NPM metrics the Open Telemetry to the Kubernetes Cluster and
4040
enable Network Performance Monitoring according to instructions found in Splunk Docs
4141
https://docs.splunk.com/observability/en/infrastructure/network-explorer/network-explorer-setup.html#network-explorer-setup

detections/cloud/kubernetes_anomalous_traffic_on_network_edge.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ search: '| mstats avg(tcp.*) as tcp.* avg(udp.*) as udp.* where `kubernetes_metr
3131
| rename service as k8s.service
3232
| where count > 5
3333
| rename k8s.cluster.name as host
34-
| `kubernetes_anomalous_traffic_on_network_edge_filter` '
34+
| `kubernetes_anomalous_traffic_on_network_edge_filter`'
3535
how_to_implement: 'To gather NPM metrics the Open Telemetry to the Kubernetes Cluster and
3636
enable Network Performance Monitoring according to instructions found in Splunk Docs
3737
https://docs.splunk.com/observability/en/infrastructure/network-explorer/network-explorer-setup.html#network-explorer-setup

detections/cloud/kubernetes_create_or_update_privileged_pod.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ search: '`kube_audit` objectRef.resource=pods verb=create OR verb=update request
1515
| stats count values(user.groups{}) as user_groups by kind objectRef.name objectRef.namespace objectRef.resource
1616
requestObject.kind responseStatus.code sourceIPs{} stage user.username userAgent verb requestObject.metadata.annotations.kubectl.kubernetes.io/last-applied-configuration
1717
| rename sourceIPs{} as src_ip, user.username as user
18-
| `kubernetes_create_or_update_privileged_pod_filter` '
18+
| `kubernetes_create_or_update_privileged_pod_filter`'
1919
how_to_implement: The detection is based on data that originates from Kubernetes Audit logs. Ensure that audit logging is enabled in your Kubernetes cluster.
2020
Kubernetes audit logs provide a record of the requests made to the Kubernetes API server, which is crucial for monitoring and detecting suspicious activities.
2121
Configure the audit policy in Kubernetes to determine what kind of activities are logged. This is done by creating an Audit Policy and providing it to the API server.

detections/cloud/kubernetes_cron_job_creation.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ search: '`kube_audit` verb=create "objectRef.resource"=cronjobs
1616
| stats count values(user.groups{}) as user_groups by kind objectRef.name objectRef.namespace objectRef.resource
1717
requestObject.kind requestObject.spec.schedule requestObject.spec.jobTemplate.spec.template.spec.containers{}.image responseStatus.code sourceIPs{} stage user.username userAgent verb
1818
| rename sourceIPs{} as src_ip, user.username as user
19-
| `kubernetes_cron_job_creation_filter` '
19+
| `kubernetes_cron_job_creation_filter`'
2020
how_to_implement: The detection is based on data that originates from Kubernetes Audit logs. Ensure that audit logging is enabled in your Kubernetes cluster.
2121
Kubernetes audit logs provide a record of the requests made to the Kubernetes API server, which is crucial for monitoring and detecting suspicious activities.
2222
Configure the audit policy in Kubernetes to determine what kind of activities are logged. This is done by creating an Audit Policy and providing it to the API server.

0 commit comments

Comments
 (0)