b4c84e8a40
* Update Tags * Bump updated date separately to be easy to revert if needed * Update resource_development_ml_linux_anomalous_compiler_activity.toml * Apply changes from the discussion * Update persistence_init_d_file_creation.toml * Update defense_evasion_timestomp_sysmon.toml * Update defense_evasion_application_removed_from_blocklist_in_google_workspace.toml * Update missing Tactic tags * Update unit tests to match new tags * Add missing IG tags * Delete okta_threat_detected_by_okta_threatinsight.toml * Update command_and_control_google_drive_malicious_file_download.toml * Update persistence_rc_script_creation.toml * Mass bump * Update persistence_shell_activity_by_web_server.toml * . --------- Co-authored-by: Mika Ayenson <Mika.ayenson@elastic.co> Co-authored-by: Mika Ayenson <Mikaayenson@users.noreply.github.com>
81 lines
3.1 KiB
TOML
81 lines
3.1 KiB
TOML
[metadata]
|
|
creation_date = "2022/07/05"
|
|
integration = ["kubernetes"]
|
|
maturity = "production"
|
|
min_stack_comments = "New fields added to Kubernetes Integration"
|
|
min_stack_version = "8.4.0"
|
|
updated_date = "2023/06/22"
|
|
|
|
[rule]
|
|
author = ["Elastic"]
|
|
description = """
|
|
This rule detects an attempt to create or modify a pod attached to the host PID namespace. HostPID allows a pod to
|
|
access all the processes running on the host and could allow an attacker to take malicious action. When paired with
|
|
ptrace this can be used to escalate privileges outside of the container. When paired with a privileged container, the
|
|
pod can see all of the processes on the host. An attacker can enter the init system (PID 1) on the host. From there,
|
|
they could execute a shell and continue to escalate privileges to root.
|
|
"""
|
|
false_positives = [
|
|
"""
|
|
An administrator or developer may want to use a pod that runs as root and shares the hosts IPC, Network, and PID
|
|
namespaces for debugging purposes. If something is going wrong in the cluster and there is no easy way to SSH onto
|
|
the host nodes directly, a privileged pod of this nature can be useful for viewing things like iptable rules and
|
|
network namespaces from the host's perspective. Add exceptions for trusted container images using the query field
|
|
"kubernetes.audit.requestObject.spec.container.image"
|
|
""",
|
|
]
|
|
index = ["logs-kubernetes.*"]
|
|
language = "kuery"
|
|
license = "Elastic License v2"
|
|
name = "Kubernetes Pod Created With HostPID"
|
|
note = """## Setup
|
|
|
|
The Kubernetes Fleet integration with Audit Logs enabled or similarly structured data is required to be compatible with this rule."""
|
|
references = [
|
|
"https://research.nccgroup.com/2021/11/10/detection-engineering-for-kubernetes-clusters/#part3-kubernetes-detections",
|
|
"https://kubernetes.io/docs/concepts/security/pod-security-policy/#host-namespaces",
|
|
"https://bishopfox.com/blog/kubernetes-pod-privilege-escalation",
|
|
]
|
|
risk_score = 47
|
|
rule_id = "df7fda76-c92b-4943-bc68-04460a5ea5ba"
|
|
severity = "medium"
|
|
tags = ["Data Source: Kubernetes", "Tactic: Execution", "Tactic: Privilege Escalation"]
|
|
timestamp_override = "event.ingested"
|
|
type = "query"
|
|
|
|
query = '''
|
|
event.dataset : "kubernetes.audit_logs"
|
|
and kubernetes.audit.annotations.authorization_k8s_io/decision:"allow"
|
|
and kubernetes.audit.objectRef.resource:"pods"
|
|
and kubernetes.audit.verb:("create" or "update" or "patch")
|
|
and kubernetes.audit.requestObject.spec.hostPID:true
|
|
and not kubernetes.audit.requestObject.spec.containers.image: ("docker.elastic.co/beats/elastic-agent:8.4.0")
|
|
'''
|
|
|
|
|
|
[[rule.threat]]
|
|
framework = "MITRE ATT&CK"
|
|
[[rule.threat.technique]]
|
|
id = "T1611"
|
|
name = "Escape to Host"
|
|
reference = "https://attack.mitre.org/techniques/T1611/"
|
|
|
|
|
|
[rule.threat.tactic]
|
|
id = "TA0004"
|
|
name = "Privilege Escalation"
|
|
reference = "https://attack.mitre.org/tactics/TA0004/"
|
|
[[rule.threat]]
|
|
framework = "MITRE ATT&CK"
|
|
[[rule.threat.technique]]
|
|
id = "T1610"
|
|
name = "Deploy Container"
|
|
reference = "https://attack.mitre.org/techniques/T1610/"
|
|
|
|
|
|
[rule.threat.tactic]
|
|
id = "TA0002"
|
|
name = "Execution"
|
|
reference = "https://attack.mitre.org/tactics/TA0002/"
|
|
|