公有云存储桶配置错误导致的数据泄露事件在最近几年真的屡见不鲜。这次要说的是发生在加拿大航空运输业的一个事件——泛加拿大航空公司,是加拿大一家知名的廉价航空公司,主营业务是国内的航空客运,每年服务数百万乘客。运营一个航空公司就不可避免地需要收集和处理大量的乘客个人信息,包括姓名、电子邮箱、联系电话、家庭住址、出生日期、护照号码和一些旅行偏好信息。根据加拿大联邦的隐私保护法律,这些个人信息的处理和保护有一套严格的法规要求,对违反者会处以高额罚款。

2019年,有安全研究人员在例行的互联网安全扫描中,发现了一个属于泛加拿大航空公司的Amazon Web Services S3云存储桶被错误地配置成了公共可读状态。也就是说,这个存储桶里面的所有文件都是可以直接在互联网上被任何人访问和下载的,不需要任何访问密钥或者身份验证。研究人员尝试访问了其中的文件,发现里面存储的数据量很大,储存了数百万条乘客记录。更糟糕的是,进一步分析发现这个存储桶里的数据最早可以追溯到三年以前——也就是说,这个配置错误很可能已经持续了整整三年,三年的时间跨度内,所有在该公司注册过的乘客的个人信息全部处于公开暴露的状态,任何知道这个存储桶地址的人都可以随意获取。

这三年时间里,这个存储桶就像在互联网上开了一扇没有锁的门,没有任何访问控制、没有日志记录、没有人定期检查。有多少人无意中发现了这扇门、有多少人走进来看过里面的内容、有多少人的个人信息被悄悄下载后用于不当用途——这一切都是未知数。而且因为S3存储桶在没有配置访问日志的情况下,你甚至无法追溯在暴露期间有多少次访问、来自哪些IP地址。这就是为什么说"暴露了多少数据"是可以统计的,但"有多少数据已被下载"常常是永远的一笔糊涂账。

泛加拿大航空公司得知此事后,立刻修复了这个配置错误,关闭了存储桶的公共访问权限,并向受影响的乘客发送了数据泄露通知。但修复漏洞只是第一步,后续面临的还有巨额的隐私罚款、集体诉讼的巨额赔偿、品牌信誉的严重受损。那些在三年间累积被暴露的乘客个人数据,有一部分可能已经被用于网络诈骗和身份盗窃,受害乘客蒙受的损失也要由航空公司来承担。泛加拿大航空公司的母公司在事后的一份声明中尝试将部分责任推给云服务配置的技术失误,但问题在于——作为数据的控制者和责任方,保护数据安全是你的法定义务,底层技术的配置失误不能作为免责的理由。

泄密链路的分析揭示了IT管理中的一个常见通病:云存储桶在创建的时候默认可能是私有的,但有权限的管理人员在操作过程中手动修改了存储桶的访问策略,将其设置为"公开可读"。这个修改可能是为了方便某个临时性的数据共享需求,修改之后没有人记得把它改回私有状态。如果团队没有建立起定期的云资源安全配置审计机制,那么这个配置错误可能永远得不到修复。更严苛地说,三年时间都没有被发现,暴露的不仅仅是数据安全的问题,更是整个公司在云计算安全管理、权限审计和监控报警体系方面的系统性溃败。

这个案例带给我们一个非常重要的教训:云端的数据安全不是默认的,而是需要主动配置和维护的。在云环境里,一个错误的勾选、一条不当的权限策略、一个被遗忘的公开存储桶,都能让数以百万计的个人信息在互联网上裸奔数年。任何使用云服务的企业,都必须建立对云资源配置的自动化审计和持续监控体系,特别是针对存储桶、数据库、消息队列这类可能批量存放敏感数据的服务。默认情况下所有数据存储都应该是私有的。要专门安排人员定期扫描云资产的暴露面,发现未经授权的公开配置立即告警和修复。很多公司出事后都喜欢说"这是技术团队配置不当导致的",但本质上这是企业安全管理体系不健全的表现,核心责任在管理层。数据安全不能靠某个技术人员的自觉性来保障,必须通过制度和自动化工具来兜底。