本文档介绍了 Security Command Center 中的一种威胁发现结果类型。当威胁检测器在您的云资源中检测到潜在威胁时,会生成相应的威胁发现结果。如需查看可用威胁发现结果的完整列表,请参阅威胁发现结果索引。
概览
机器学习模型将执行的 Bash 代码识别为恶意代码。 攻击者可以利用 Bash 来传输工具,并在不使用二进制文件的情况下执行命令。确保容器不可变是一项重要的最佳实践。使用脚本传输工具的过程与攻击者采用的 Ingress 工具传输方法类似,因此会导致不必要的检测。
如何响应
如需响应此发现结果,请执行以下操作:
第 1 步:查看发现结果详情
按照查看发现结果中所述,打开
Malicious Script Executed
发现结果。系统会打开发现结果详细信息面板,以显示摘要标签页。在摘要标签页上,查看以下部分中的信息:
- 检测到的内容,尤其是以下字段:
- 程序二进制文件:有关调用脚本的解释器的详细信息。
- 脚本:磁盘上的脚本名称的绝对路径;此属性仅会针对写入磁盘的脚本显示,不会针对字面量脚本执行显示,例如
bash -c
。 - 参数:调用脚本时提供的参数。
- 受影响的资源,尤其是以下字段:
- 资源全名:集群的完整资源名称,其中包括项目编号、位置和集群名称。
- 相关链接,尤其是以下字段:
- VirusTotal 指示器:指向 VirusTotal 分析页面的链接。
- 检测到的内容,尤其是以下字段:
在发现结果的详情视图中,点击 JSON 标签页。
在 JSON 中,请注意以下字段。
finding
:processes
:script
:contents
:所执行脚本的内容,可能会因性能原因而截断;这有助于您的调查sha256
:script.contents
的 SHA-256 哈希
resource
:project_display_name
:包含资产的项目的名称。
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
中列出的项目。如有必要,对
resource.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 控制台中,前往 Kubernetes 集群页面。
点击
resource.labels.cluster_name
中显示的集群的名称。在集群页面上,点击连接,然后点击在 Cloud Shell 中运行。
Cloud Shell 将在终端中为集群启动和添加命令。
按 Enter 键,如果出现为 Cloud Shell 提供授权对话框,请点击授权。
通过运行以下命令连接到容器环境:
kubectl exec --namespace=Pod_Namespace -ti Pod_Name -c Container_Name -- /bin/sh
此命令要求容器在
/bin/sh
处安装 shell。
第 6 步:研究攻击和响应方法
- 查看此发现结果类型的 MITRE ATT&CK 框架条目:Command and Scripting Interpreter、Ingress Tool Transfer。
- 点击 VirusTotal 指标中的链接,以检查 VirusTotal 上标记为恶意内容的二进制文件的 SHA-256 哈希值。VirusTotal 是一项 Alphabet 自有服务,可提供有关潜在恶意文件、网址、网域和 IP 地址的上下文信息。
- 如需制定响应方案,请将您的调查结果与 MITRE 研究和 VirusTotal 分析相结合。
第 7 步:实现响应
以下响应方案可能适合此发现结果,但也可能会影响运营。 请仔细评估您在研究中收集的信息,以确定解析发现结果的最佳方法。
后续步骤
- 了解如何在 Security Command Center 中处理威胁发现结果。
- 查看威胁发现结果索引。
- 了解如何通过 Google Cloud 控制台查看发现结果。
- 了解生成威胁发现结果的服务。