2. 云服务模型与取证对象

云取证与传统的单机取证最大的区别,不在于技术工具,而在于“证据到底掌握在谁手里”。同一份业务数据,在 IaaS、PaaS、SaaS 三种服务模型下,可能分别落在客户可完全控制的虚拟磁盘、由平台托管的数据库实例、或厂商封闭的日志后台中。取证工程师必须先判断服务模型,才能确定哪些证据可获取、通过什么接口获取、以及获取到的证据是否具备可采信性。本节围绕三种服务模型展开,梳理虚拟机、容器、对象存储、日志服务等核心取证对象的证据来源差异。

一、责任边界决定证据边界

云服务模型本质上是一份责任划分契约。IaaS 把计算、存储、网络等基础设施以虚拟化资源的形式交付给客户,客户负责操作系统及以上的一切;PaaS 进一步托管了运行时、中间件和数据库,客户只负责应用与数据;SaaS 则连应用逻辑都由厂商提供,客户仅使用功能并产生数据。责任边界越往上移,客户能直接接触的底层证据就越少,取证工作就越依赖厂商配合与 API 接口。

因此,判断证据来源的第一步不是找工具,而是画出一条“控制线”:控制线以下的资源由客户自主管理,通常可以直接镜像、导出或采集;控制线以上的资源由厂商管理,只能通过管理控制台、审计日志、API 或正式协查流程获取。这条控制线在三种模型中的位置截然不同,直接决定了取证方案的设计。

三种云服务模型的取证控制线与证据来源 IaaS PaaS SaaS 客户控制:OS / 应用 / 数据 可直接镜像、挂载、采集 厂商控制:虚拟化 / 物理层 需厂商配合获取 核心取证对象 • 虚拟机磁盘镜像(VMDK/QCOW2) • 内存快照 / 云主机快照 • 虚拟网络流量、安全组日志 • 块存储卷、客户自建日志 客户控制:应用 / 数据 通过 API / 控制台导出 厂商控制:运行时 / 中间件 / DB 仅暴露有限接口与日志 核心取证对象 • 容器镜像与容器文件系统 • 托管数据库审计日志 • 应用运行日志、API 调用记录 • 对象存储中的业务数据 客户控制:仅使用与数据 依赖导出与厂商协查 厂商控制:应用 / 平台 / 基础设施 证据基本不可直接接触 核心取证对象 • 租户操作审计日志 • 邮件 / 文档 / 协作记录 • 登录与访问日志 • 数据导出包(PST/CSV/JSON) 取证控制线:线以下客户可自主采集,线以上需厂商配合或走正式协查流程 取证优先级建议:先固定客户侧可直接获取的证据(镜像、快照、自建日志),再通过 API 导出平台日志, 最后对 SaaS 与厂商控制层发起正式数据调取请求,避免因等待厂商响应而错过易失性证据的固定窗口。

二、IaaS:证据最丰富,也最考验采集规范

IaaS 是取证条件最接近传统主机的模型。客户拥有虚拟机的完整控制权,可以登录操作系统、查看进程、导出磁盘。核心取证对象包括虚拟机磁盘镜像、内存快照、云主机快照、块存储卷以及虚拟网络流量。以某云平台为例,一台运行 Linux 的云主机,其系统盘通常以 QCOW2 或 VMDK 格式存储在对象存储后端,客户可通过控制台创建快照,再基于快照生成镜像文件下载。

实际操作中,一个典型流程是:先对目标云主机创建快照(示例命令 openstack server image create --name evidence-vm01 web01),快照生成后导出为镜像文件,再在取证工作站上以只读方式挂载分析。需要注意,快照只包含磁盘状态,不包含内存中的进程、网络连接和临时文件。若案件涉及正在运行的恶意进程,应优先通过云平台的内存转储能力或系统内工具(如 LiME、AVML)固定内存,再制作磁盘快照。采集顺序应遵循“易失性优先”原则:内存 → 网络连接 → 临时文件 → 磁盘。

IaaS 的另一个重要证据来源是虚拟网络层。安全组规则、VPC 流日志、负载均衡访问日志都记录了通信关系,可用于还原攻击路径。这些日志通常由云平台提供,客户可在控制台开启并导出,属于客户可自主获取的范围。

三、PaaS:容器与托管服务成为主战场

PaaS 把操作系统和运行时托管给平台,客户拿到的往往是一个容器或一个应用实例。此时虚拟机层面的证据基本消失,取证对象转向容器镜像、容器文件系统、托管数据库日志和应用日志。容器的一个重要特性是“分层文件系统”:镜像由多个只读层叠加,容器运行时在最上层写入。若容器被删除,其可写层可能随之消失,因此对运行中容器的取证必须及时。

常见做法是通过 docker export 或 docker commit 导出容器文件系统,或直接读取 /var/lib/docker/overlay2 下的可写层目录。示例中,一个被入侵的容器可能在可写层留下 WebShell 文件,通过 docker diff 可以列出容器启动后被修改的文件,快速定位异常写入。对于托管数据库,客户通常无法直接访问数据文件,但可以获取慢查询日志、审计日志和连接日志,这些日志能反映异常查询和越权访问。

PaaS 环境中的对象存储也是关键证据源。应用常把用户上传的文件、备份和导出数据存放在对象存储桶中,桶的访问日志和版本控制记录可以证明某对象何时被写入、覆盖或删除。若桶开启了版本控制,即使对象被删除,历史版本仍可恢复,这对勒索软件或数据篡改案件尤为重要。

四、SaaS:证据高度依赖厂商与导出机制

SaaS 是取证难度最高的模型。客户既不掌握基础设施,也不掌握应用逻辑,能接触到的只有自己产生的数据和平台提供的有限日志。核心取证对象包括租户操作审计日志、登录与访问日志、邮件与文档记录、协作平台的会话与文件。以企业邮箱 SaaS 为例,管理员可以通过管理后台导出某用户的邮件为 PST 文件,也可以查询登录日志中的 IP、时间、客户端类型,判断账号是否被盗用。

SaaS 取证的关键在于“提前准备”。多数平台只保留有限期限的日志(如 30 天、90 天),且导出接口有频率和范围限制。因此,在事件响应初期就应尽快导出审计日志和关键数据,并记录导出时间、操作账号和文件哈希,形成证据链。对于需要厂商配合调取底层日志的情况,应通过正式协查流程提出,明确时间范围、对象标识和所需字段。

五、跨模型取证对象对照

取证对象 IaaS PaaS SaaS
虚拟机磁盘 / 内存 客户可直接镜像、转储 不可见,被平台抽象 不可见
容器镜像 / 文件系统 客户可自建并采集 核心对象,可导出可写层 不可见
对象存储 客户自建或使用托管桶 应用数据主要载体 平台内部存储,仅可导出
日志服务 系统日志 + 云平台流日志 应用日志 + 托管服务审计日志 租户审计日志 + 登录日志
获取方式 控制台 / API / 系统内工具 API / 控制台 / 容器运行时 管理后台导出 / 厂商协查
在实际案件中,同一业务往往跨越多种模型:前端是 SaaS 协作工具,后端是 PaaS 容器,底层跑在 IaaS 虚拟机上。取证时应按“从客户可控到厂商可控”的顺序逐层固定证据,先采集自己手里的,再向平台申请,最后走正式协查。每一层都要记录采集时间、工具版本、哈希值和操作人,确保证据链完整。

理解三种服务模型下的证据来源差异,是云取证工程的第一步。它决定了后续的采集工具选择、证据固定顺序和法律程序安排。只有先明确“证据在哪里、由谁控制、通过什么途径获取”,才能设计出既合法又有效的取证方案。