本文档介绍了 Security Command Center 中的一种威胁发现结果类型。当威胁检测器在您的云资源中检测到潜在威胁时,会生成威胁发现结果。如需查看可用威胁发现结果的完整列表,请参阅威胁发现结果索引。
概览
检测到一个进程通过网络套接字启动常见的 UNIX 命令,可能会模拟反向 shell。此行为表明攻击者试图建立对系统的未经授权的远程访问,从而授予攻击者执行任意命令的权限,就像他们直接与遭入侵的计算机进行互动一样。攻击者经常利用反向 shell 绕过防火墙限制,并对目标进行持续控制。检测到通过套接字发起的命令执行意味着存在重大安全风险,因为这允许进行各种恶意活动,包括数据渗漏、横向移动和进一步的利用,因此这是一个严重的发现结果,需要立即进行调查,以识别连接来源和执行的操作。
如何应答
如需响应此发现结果,请执行以下操作:
第 1 步:查看发现结果详情
按照查看发现结果中所述,打开
Execution: Possible Remote Command Execution Detected
发现结果。系统会打开发现结果详细信息面板,以显示摘要标签页。在摘要标签页上,查看以下部分中的信息:
- 检测到的内容,尤其是以下字段:
- 程序二进制文件:所执行二进制文件的绝对路径。
- 参数:二进制文件执行期间传递的参数。
- 受影响的资源,尤其是以下字段:
- 资源全名:集群的完整资源名称,其中包括项目编号、位置和集群名称。
- 检测到的内容,尤其是以下字段:
在发现结果的详情视图中,点击 JSON 标签页。
在 JSON 中,请注意以下字段。
resource
:project_display_name
:包含集群的项目的名称。
finding
:processes
:binary
:path
:所执行二进制文件的完整路径。
args
:执行二进制文件时提供的参数。
sourceProperties
:Pod_Namespace
:Pod 的 Kubernetes 命名空间的名称。Pod_Name
:GKE Pod 的名称。Container_Name
:受影响的容器的名称。Container_Image_Uri
:要部署的容器映像的名称。VM_Instance_Name
:在其中执行 Pod 的 GKE 节点的名称。
识别此容器在相似时间发生的其他发现结果。 相关发现结果可能表明此活动是恶意活动,而不是未遵循最佳实践。
第 2 步:查看集群和节点
在 Google Cloud 控制台中,前往 Kubernetes 集群页面。
如有必要,在 Google Cloud 控制台工具栏中选择
resource.project_display_name
中列出的项目。选择发现结果详细信息摘要标签页中资源全名行上列出的集群。请记下有关集群及其所有者的所有元数据。
点击节点标签页。选择
VM_Instance_Name
中列出的节点。点击详细信息标签页,并记下
container.googleapis.com/instance_id
注解。
第 3 步:审核 Pod
在 Google Cloud 控制台中,前往 Kubernetes 工作负载页面。
如有必要,在 Google Cloud 控制台工具栏中选择
resource.project_display_name
中列出的项目。如有必要,对发现结果详细信息摘要标签页中资源全名行上列出的集群以及
Pod_Namespace
中列出的 Pod 命名空间进行过滤。选择
Pod_Name
中列出的 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 PROJECT_NAME
对于区域级集群:
gcloud container clusters get-credentials CLUSTER_NAME \ --region LOCATION \ --project PROJECT_NAME
替换以下内容:
CLUSTER_NAME
:resource.labels.cluster_name
中列出的集群LOCATION
:resource.labels.location
中列出的位置PROJECT_NAME
:resource.project_display_name
中列出的项目名称
检索已执行的二进制文件:
kubectl cp \ POD_NAMESPACE/POD_NAME:PROCESS_BINARY_FULLPATH \ -c CONTAINER_NAME \ LOCAL_FILE
将
local_file
替换为本地文件路径,以存储添加的二进制文件。通过运行以下命令连接到容器环境:
kubectl exec \ --namespace=POD_NAMESPACE \ -ti POD_NAME \ -c CONTAINER_NAME \ -- /bin/sh
此命令要求容器在
/bin/sh
处安装 shell。
第 6 步:研究攻击和响应方法
- 查看此发现结果类型的 MITRE ATT&CK 框架条目:Command and Scripting Interpreter。
- 如需制定响应方案,请将您的调查结果与 MITRE 研究相结合。
第 7 步:实现响应
以下响应方案可能适合此发现结果,但也可能会影响运营。 请仔细评估您在研究中收集的信息,以确定解析发现结果的最佳方法。
后续步骤
- 了解如何在 Security Command Center 中处理威胁发现结果。
- 请参阅威胁发现结果索引。
- 了解如何通过 Google Cloud 控制台查看检测结果。
- 了解生成威胁发现结果的服务。