审计范围与边界:云上资产识别、责任共担模型下的审计边界、第三方服务审计要点

各位同学,咱们今天聊一个非常实际的问题——审计范围与边界。

说实话,我刚开始做金融云审计那会儿,最头疼的就是这个问题。客户问「你们到底审什么?」我说「审云上资产」,客户又问「哪些算云上资产?」……嗯,这就尴尬了。边界不清,审计就是一笔糊涂账。

今天我就把这块掰开揉碎了讲。核心就三件事:资产识别、责任边界、第三方审计

一、云上资产识别——你连自己有什么都不知道,审什么?

资产识别是审计的起点。没有资产清单,后面全是空中楼阁。

我个人习惯把云上资产分成四类:

资产类型 典型示例 审计关注点
计算资源 ECS、容器、函数计算 镜像来源、补丁状态、配置基线
存储资源 OSS、NAS、云盘 加密策略、访问控制、生命周期
网络资源 VPC、SLB、NAT网关 安全组规则、流量日志、隔离策略
数据资源 RDS、Redis、MQ 备份策略、审计日志、敏感数据发现

你想想看,很多团队连自己开了多少个ECS都不清楚。我在项目中遇到过一家银行,审计时发现有三台「幽灵服务器」——没人知道是谁建的,也没人敢关。最后查出来是半年前一个实习生测试用的,一直挂着没销毁。

所以,资产识别的第一步是自动化发现。别指望人工登记,那玩意儿永远滞后。

核心原则:所有云上资产必须纳入CMDB(配置管理数据库),且CMDB必须与云平台API实时同步。审计时,以CMDB为准,但需要交叉验证云平台账单和资源列表。

这里给一个简单的资产发现脚本思路:

# 伪代码示例:云资产自动发现
def discover_assets(cloud_provider):
    assets = []
    # 调用云平台API获取所有ECS实例
    ecs_list = cloud_provider.list_instances()
    for ecs in ecs_list:
        asset = {
            'id': ecs.id,
            'type': 'compute',
            'name': ecs.name,
            'tags': ecs.tags,
            'create_time': ecs.create_time,
            'status': ecs.status
        }
        assets.append(asset)
    # 同理获取存储、网络、数据库等
    return assets

说白了,资产识别不是一次性工作,而是持续的过程。每次审计前,先跑一遍全量发现,对比上次结果,找出新增、变更、下线的资产。

二、责任共担模型下的审计边界——谁的地盘谁做主?

这是金融云审计里最容易扯皮的地方。

云厂商常说「责任共担」,但具体怎么担?我给大家画个图就清楚了。

责任共担模型下的审计边界 客户责任区(审计重点) 身份与访问管理(IAM) 用户权限、MFA、密钥管理 数据安全 加密、分类、脱敏、备份 应用与配置安全 代码审计、配置基线、补丁 云厂商责任区(审计依赖) 物理基础设施 机房、网络、硬件、电力 虚拟化层 Hypervisor、资源隔离 平台服务安全 对象存储、数据库引擎安全 审计边界 = 客户责任区(可审计) + 云厂商责任区(依赖其审计报告)

这张图我建议你保存下来。每次跟业务方讨论审计范围时,直接甩出来,省得吵架。

审计边界怎么定?我的经验是:客户能控制的,就是审计能覆盖的

  • 客户责任区:IAM策略、数据加密、网络ACL、应用配置——这些必须审,而且可以审。
  • 云厂商责任区:物理安全、虚拟化安全、平台服务底层——这些审不了,但可以依赖厂商的SOC2、ISO27001等报告。

注意:千万不要试图去审计云厂商的物理机房。我曾经见过一个审计团队,非要进阿里云的张北数据中心现场检查……结果可想而知,被礼貌地拒绝了。这不是你的审计范围,你只需要验证厂商的合规资质是否有效即可。

还有一个容易忽略的点:共享责任区。比如安全组的配置——云厂商提供安全组功能,但规则是你自己写的。出了问题,谁的责任?我建议在审计报告中明确标注「责任共担项」,并给出双方各自应承担的义务。

三、第三方服务审计要点——别让外包成为你的短板

金融云上很少只用一家云厂商的原生服务。SaaS、PaaS、API网关、CDN……各种第三方服务混在一起。审计时,这些第三方服务往往是最大的黑洞。

我记得有一次审计一家互联网金融公司,他们用了某第三方风控服务。结果一问,对方连基本的加密传输都没做,用户数据直接明文传输。更离谱的是,这家第三方公司连个合规资质都没有。

所以,第三方服务审计,我总结了四个要点:

  1. 资质审查——第三方有没有等保三级?有没有金融行业认证?没有?直接一票否决。
  2. 数据流向——你的数据到了第三方那里,存不存?存多久?能不能删?这些必须在合同中写清楚。
  3. 访问控制——第三方服务以什么身份访问你的云资源?AK/SK?临时令牌?权限最小化了吗?
  4. 应急响应——第三方出安全事件了,多久通知你?有没有SLA?

小技巧:审计第三方时,别只看对方提供的材料。我习惯做一次「暗访」——用自己的测试账号调用第三方API,看看实际返回的数据里有没有不该出现的信息。有一次我就在返回的报错信息里看到了完整的数据库连接字符串……嗯,那个第三方当场被要求整改。

这里给一个第三方服务审计清单的示例:

# 第三方服务审计检查项
checklist = {
    '资质': ['等保三级', 'ISO27001', '金融行业认证'],
    '数据安全': ['传输加密(TLS 1.2+)', '存储加密', '数据销毁机制'],
    '访问控制': ['最小权限原则', '临时凭证', '审计日志'],
    '合规承诺': ['数据不二次使用', '数据本地化', '配合监管检查'],
    '应急能力': ['事件响应SLA', '安全通告机制', '灾备演练记录']
}

你想想看,如果第三方服务出了问题,监管机构可不会管「这是外包的」——板子照样打在你身上。所以,第三方服务的风险,最终由你承担。审计时一定要把第三方纳入范围,不能有「法外之地」。

总结一下

审计范围与边界,说白了就是三句话:

  • 资产识别——搞清楚你有什么,别漏了「幽灵资产」。
  • 责任共担——客户管客户的事,厂商管厂商的事,别越界也别留空白。
  • 第三方审计——外包不是免责牌,第三方出问题,你买单。

我曾经见过一个团队,审计范围画得特别大,连云厂商的空调温度都要审……结果审计资源全浪费了,真正该审的IAM策略反而没细看。所以,边界要清晰,重点要突出。

好了,这一节就到这里。记住:审计不是越全越好,而是越准越好。


专注资料整理