Detection rules › Panther

GCP K8s IOCActivity

Status
Deprecated
Severity
medium
Log types
GCP.AuditLog
Tags
Deprecated, GCP, Optional, Encrypted Channel - Asymmetric Cryptography, Command and Control
Reference
https://medium.com/snowflake/from-logs-to-detection-using-snowflake-and-panther-to-detect-k8s-threats-d72f70a504d7
Source
github.com/panther-labs/panther-analysis

This detection monitors for any kubernetes API Request originating from an Indicator of Compromise.

MITRE ATT&CK coverage

Rule body yaml

AnalysisType: rule
RuleID: "GCP.K8s.IOC.Activity"
DisplayName: "GCP K8s IOCActivity"
Enabled: false
Status: Deprecated
Filename: gcp_k8s_ioc_activity.py
LogTypes:
  - GCP.AuditLog
Tags:
  - Deprecated
  - GCP
  - Optional
  - Encrypted Channel - Asymmetric Cryptography
  - Command and Control
Severity: Medium
Description: This detection monitors for any kubernetes API Request originating from an Indicator of Compromise.
Reports:
  MITRE ATT&CK:
    - TA0011:T1573.002 # Encrypted Channel: Asymmetric Cryptography
Runbook: Add IP address the request is originated from to banned addresses.
Reference: https://medium.com/snowflake/from-logs-to-detection-using-snowflake-and-panther-to-detect-k8s-threats-d72f70a504d7
Tests:
  - Name: triggers
    ExpectedResult: true
    Log:
      {
        "operation": { "producer": "k8s.io" },
        "p_enrichment": { "tor_exit_nodes": ["1.1.1.1"] },
      }
  - Name: ignore
    ExpectedResult: false
    Log:
      {
        "operation": { "producer": "chrome" },
        "p_enrichment": { "tor_exit_nodes": ["1.1.1.1"] },
      }

Detection logic

Condition

operation.producer eq "k8s.io"
p_enrichment.tor_exit_nodes is_not_null

Indicators

Each row is a field, operator, and value that the rule matches. The corpus column counts how many other rules in the catalog look for the same combination: high numbers point to widely-used, community-vetted indicators. Blank or 1 shows that the indicator is specific to this rule.

FieldKindValues
operation.producereq
  • k8s.io
p_enrichment.tor_exit_nodesis_not_null
  • (no value, null check)

Output fields

Fields the rule emits when it matches. Chronicle authors list these in the outcome block; they appear on the detection and $risk_score drives alerting. Sentinel / Defender XDR rules build them up through project / summarize / extend stages. Sentinel maps these into alert fields via entityMappings and customDetails; Defender XDR custom detections surface them as alert fields directly.

FieldSource
projectresource.labels.project_id
principalprotoPayload.authenticationInfo.principalEmail
caller_ipprotoPayload.requestMetadata.callerIP
methodNameprotoPayload.methodName
resourceNameprotoPayload.resourceName
serviceNameprotoPayload.serviceName