2019年5月,美国最大的产权保险和房屋结算服务提供商First American Financial Corporation被曝出其网站直接暴露了超过8.85亿条包含客户敏感信息的记录。令人惊讶的是,这次并非黑客入侵造成的泄露,而是由于系统设计缺陷导致任何知道正确网页链接的人都可以直接访问到其他用户的私人数据。这起事件被信息安全界称为"裸奔"案例,因为它说明即使没有外部攻击,企业自身的安全设计缺陷也可能导致大规模数据泄露。

事件导入

2019年5月,知名信息安全记者Brian Krebs接到消息称First American公司的一个网站存在严重的安全漏洞。进一步调查发现,该公司的一个面向客户的网站在URL中使用了连续的数字作为文档标识符。这意味着任何人只要修改URL中的数字,就可以访问到其他客户的文档,而系统不会进行任何身份验证。这些文档包括银行账号、银行对账单、抵押贷款和税务记录、社会保险号码、驾照图片等高度敏感信息。据估计,该网站自2014年起就开始运行,这意味着超过8.85亿条记录在长达五年的时间里一直暴露在公开的互联网上。事件曝光后,First American公司关闭了该网站,随后面临了多起集体诉讼和政府调查。

泄密链路分析

这次大规模泄露并非因为外部黑客攻击或内部人员恶意行为,而是完全源自一个基本的安全架构缺陷。First American公司在建设其客户文档管理系统时,采用了基于顺序数字ID的URL来访问文档。更严重的是,系统在设计时没有实施任何访问控制机制,服务器不会验证请求者是否有权限访问被请求的文档。这种设计缺陷使得任何人都可以通过简单的枚举方式访问到其他客户的敏感信息。攻击者不需要任何技术手段,只需在浏览器中不断修改URL末尾的数字,就可以浏览到任意客户的文档内容。从信息安全的角度看,这是一个典型的不安全直接对象引用的漏洞,即系统在提供对对象的访问时,没有验证请求者对该对象的访问权限。更令人担忧的是,如此明显的安全漏洞在公司内部存在了五年之久未被发现,说明该公司的安全审查流程存在系统性的缺陷。

企业启示

访问控制是信息安全的基础性要求,任何直接面向用户的Web应用都必须实现对用户身份的验证和对资源访问权限的授权检查。企业应当建立Web应用的安全开发生命周期管理流程,确保在开发阶段就考虑了安全设计要求,并在上线前进行安全测试。对于已经上线的业务系统,定期进行安全审查和渗透测试可以帮助发现潜在的安全漏洞。对存储敏感信息的系统,建议部署额外的保护措施,包括数据加密存储和安全日志审计。

行动建议

企业应当对面向公众的Web应用进行一次全面排查,重点检查是否存在不安全的直接对象引用这类基础性安全漏洞。建议建立包含安全设计评审、代码安全审计和上线前安全测试的开发流程。对于已经运行的系统,特别是那些处理敏感个人数据的系统,应当定期进行安全评估和渗透测试。在访问控制方面,对每个数据请求都进行访问权限验证,确保用户只能访问自己有权查看的数据。北京企密安为企业提供Web应用安全评估服务和代码安全审计服务,帮助企业识别和修复应用层面的安全漏洞,欢迎致电010-63711822或访问baomiwang.com。

FAQ

问:什么是直接对象引用漏洞,企业如何检测这类问题? 答:直接对象引用漏洞是指系统在提供对数据资源的访问时没有验证用户是否有权访问该资源。企业可以通过渗透测试和代码安全审计来检测这类漏洞,重点关注URL参数、表单字段和API请求中的对象标识符是否经过了权限验证。

问:没有发生黑客攻击的情况下,企业数据是否就安全了? 答:数据安全不仅需要防范外部攻击,也需要防范自身系统设计缺陷导致的数据泄露。程序错误、配置不当、访问控制缺失等问题同样可能导致大规模的数据泄露。企业应当建立完善的软件开发安全体系和定期的安全审查机制,全面保障数据安全。