本文档介绍了 Security Command Center 中的一种威胁发现结果类型。当威胁检测器在您的云资源中检测到潜在威胁时,会生成威胁发现结果。如需查看可用威胁发现结果的完整列表,请参阅威胁发现结果索引。
概览
Container Threat Detection 观察到一个意外生成子 Shell 进程的进程。此事件可能表示攻击者正在尝试滥用 Shell 命令和脚本。
如何应答
如需响应此发现结果,请执行以下操作:
第 1 步:查看发现结果详情
按照查看发现结果中所述,打开
Unexpected Child Shell
发现结果。系统会打开发现结果详细信息面板,以显示摘要标签页。在摘要标签页上,查看以下部分中的信息:
- 检测到的内容,尤其是以下字段:
- 父级进程:意外创建子级 Shell 进程的进程。
- 子进程:子 Shell 进程。
- 参数:提供给子 Shell 进程二进制文件的参数。
- 环境变量:子 Shell 进程二进制文件的环境变量。
- 容器:容器的名称。
- 容器 URI:容器的映像 URI。
- Kubernetes Pod:Pod 名称和命名空间。
- 受影响的资源,尤其是以下字段:
- 资源显示名称:受影响资源的名称。
- 资源全名:集群的完整资源名称。完整资源名称包含以下信息:
- 包含集群的项目:
projects/PROJECT_ID
- 集群所在的位置:
zone/ZONE
或locations/LOCATION
- 集群的名称:
projects/CLUSTER_NAME
- 包含集群的项目:
- 相关链接,尤其是以下字段:
- VirusTotal 指示器:指向 VirusTotal 分析页面的链接。
- 检测到的内容,尤其是以下字段:
点击 JSON 标签页并注意以下字段:
+processes
:包含与发现结果相关的所有进程的数组。此数组包括子 Shell 进程和父进程。+resource
:+project_display_name
:包含资产的项目的名称。+sourceProperties
:+VM_Instance_Name
:在其中执行 Pod 的 GKE 节点的名称。
第 2 步:查看集群和节点
在 Google Cloud 控制台中,前往 Kubernetes 集群页面。
如有必要,在 Google Cloud 控制台工具栏中选择
resource.project_display_name
中列出的项目。选择
resource.name
中列出的集群。请记下有关集群及其所有者的所有元数据。点击节点标签页。选择
VM_Instance_Name
中列出的节点。点击详细信息标签页,并记下
container.googleapis.com/instance_id
注解。
第 3 步:审核 Pod
在 Google Cloud 控制台中,前往 Kubernetes 工作负载页面。
如有必要,在 Google Cloud 控制台工具栏上,选择您在发现结果摘要的集群的资源全名 (
resource.name
) 中记下的项目。点击显示系统工作负载。
根据您在发现结果摘要的资源全名 (
resource.name
) 中记下的集群名称以及(如有必要)您记下的 pod 命名空间 (kubernetes.pods.ns
) 过滤工作负载列表。点击与您之前在发现结果 JSON 中记下的
VM_Instance_Name
属性的值匹配的工作负载名称。Pod 详情页面随即会打开。在 Pod 详情页面上,记下可能有助于您解决威胁的有关 Pod 的任何信息。
第 4 步:检查日志
在 Google Cloud 控制台中,前往 Logs Explorer。
在 Google Cloud 控制台工具栏中,选择
resource.project_display_name
中列出的项目。将选择时间范围设置为感兴趣的时间段。
在加载的页面上,执行以下操作:
- 使用以下过滤条件查找
Pod_Name
的 Pod 日志:resource.type="k8s_container"
resource.labels.project_id="resource.project_display_name"
resource.labels.location="location"
resource.labels.cluster_name="cluster_name"
resource.labels.namespace_name="Pod_Namespace"
resource.labels.pod_name="Pod_Name"
- 使用以下过滤条件查找集群审核日志:
logName="projects/resource.project_display_name/logs/cloudaudit.googleapis.com%2Factivity"
resource.type="k8s_cluster"
resource.labels.project_id="resource.project_display_name"
resource.labels.location="location"
resource.labels.cluster_name="cluster_name"
Pod_Name
- 使用以下过滤条件查找 GKE 节点控制台日志:
resource.type="gce_instance"
resource.labels.instance_id="instance_id"
- 使用以下过滤条件查找
第 5 步:调查正在运行的容器
如果容器仍在运行,则或许可以直接检查容器环境。
前往 Google Cloud 控制台。
在 Google Cloud 控制台工具栏中,选择
resource.project_display_name
中列出的项目。点击激活 Cloud Shell。
通过运行以下命令获取集群的 GKE 凭据。
对于可用区级集群,请运行以下命令:
gcloud container clusters get-credentials cluster_name --zone location --project resource.project_display_name
对于区域级集群,请运行以下命令:
gcloud container clusters get-credentials cluster_name --region location --project resource.project_display_name
如需在容器环境中启动 Shell,请运行以下命令:
kubectl exec --namespace=Pod_Namespace -ti Pod_Name -c Container_Name -- /bin/sh
此命令要求容器在
/bin/sh
处安装 shell。如需查看在容器中运行的所有进程,请在容器 shell 中运行以下命令:
ps axjf
此命令要求容器安装
/bin/ps
。
第 6 步:研究攻击和响应方法
- 查看此发现结果类型的 MITRE ATT&CK 框架条目:Command and Scripting Interpreter: Unix Shell。
- 点击 VirusTotal 指标中的链接,以检查 VirusTotal 上标记为恶意的二进制文件的 SHA-256 哈希值。VirusTotal 是一项 Alphabet 自有服务,提供了有关潜在恶意文件、网址、网域和 IP 地址的上下文。
- 如需制定响应方案,请将您的调查结果与 MITRE 研究和 VirusTotal 分析相结合。
第 7 步:实现响应
以下响应方案可能适合此发现结果,但也可能会影响运营。 请仔细评估您在研究中收集的信息,以确定解析发现结果的最佳方法。
后续步骤
- 了解如何在 Security Command Center 中处理威胁发现结果。
- 请参阅威胁发现结果索引。
- 了解如何通过 Google Cloud 控制台查看检测结果。
- 了解生成威胁发现结果的服务。