elastic / elastic/detection-rules

[New Rule] Kubernetes Secrets Enumeration

Open
#1,188 10 comments 0 reactions 1 assignee Assigned to @imays11 View on GitHub
backlog Rule: New v8.3.0
Dominant language
Python
Stars
2.7k
Forks
696
Avg merge
4d 17h
Merged PRs (30d)
87

Description

## Description

Kubernetes is an attacking vector that current there is no detection rules for. During my initial analysis I was able to create a KQL queries that can detect the following activity:

The purpose of this rule is to detect a user enumerating kubernetes secrets

## Required Info

### Target indexes

`filebeat-*` with `gcp` module having `audit` configured.

### Additional requirements

### Target Operating Systems

Kubernetes

### Platforms

Google Kubernetes Engine

### Tested ECS Version
1.8.0

## Optional Info

### Query

In this query I'm excluding any enumeration done by `system*` which could include the following:
- `system:serviceaccount:elastic-system:elastic-operator`
- `system:apiserver`
- `system:serviceaccount:default:ingress-controller-ingress-nginx-admission`
- `system:serviceaccount:kube-system:generic-garbage-collector`

Query

```
"query": {
"bool": {
"must": [],
"filter": [
{
"bool": {
"must_not": {
"bool": {
"should": [
{
"query_string": {
"fields": [
"gcp.audit.authentication_info.principal_email"
],
"query": "system*"
}
}
],
"minimum_should_match": 1
}
}
}
},
{
"range": {
"@timestamp": {
"gte": "2021-05-04T13:29:16.495Z",
"lte": "2021-05-05T13:29:16.495Z",
"format": "strict_date_optional_time"
}
}
},
{
"match_phrase": {
"event.module": "gcp"
}
},
{
"match_phrase": {
"gcp.audit.type": "type.googleapis.com/google.cloud.audit.AuditLog"
}
},
{
"match_phrase": {
"gcp.audit.method_name": "io.k8s.core.v1.secrets.get"
}
}
],
"should": [],
"must_not": [
{
"match_phrase": {
"gcp.audit.status.message": "PERMISSION_DENIED"
}
}
]
}
}
```

### New fields required in ECS/data sources for this rule?

### Related issues or PRs

Ready to create the necessary detection rule `toml` files

### References

https://cloud.google.com/kubernetes-engine/docs/how-to/audit-logging

## Example Data

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.