摘要
- Reddit 的 2018 年安全事件应归入风险与问责档案,因为该公司在其公告(https://www.reddit.com/r/announcements/comments/93qnm5/we_had_a_security_incident_heres_what_you_need_to/)中表示,攻击者通过入侵员工在云和源代码托管提供商的账户,尽管采用了基于短信的双因素认证,仍访问了部分 Reddit 系统。
- 此案不仅关乎短信认证是否弱于更强大的多因素认证。更关键的是,为何员工访问权限泄露会导致一份包含早期用户数据的完整旧数据库备份被暴露,以及 2018 年 6 月的邮件摘要日志为何能将用户名和电子邮件地址关联起来,影响到那些可能依赖 Reddit 匿名上下文的人群。
- 公开报道(https://www.wired.com/story/reddit-hacked-thanks-to-woefully-insecure-two-factor-setup/、https://arstechnica.com/information-technology/2018/08/password-breach-teaches-reddit-that-yes-phone-based-2fa-is-that-bad/、https://krebsonsecurity.com/2018/08/reddit-breach-highlights-limits-of-sms-based-authentication/和https://techcrunch.com/2018/08/01/reddit-breach-exposes-user-data-but-not-much/)支持了时间线和短信拦截的说法,但本文将 Reddit 自身的公告视为主要公开记录。
- NIST 数字身份指南(https://pages.nist.gov/800-63-3/sp800-63b.html)以及当前的 NIST 控制词汇(https://www.nist.gov/cyberframework和https://csrc.nist.gov/publications/detail/sp/800-53/rev-5/final)之所以重要,是因为该事件涉及认证、访问控制、可审计性、保留、备份处理、事件响应和用户通知等多个方面,而非单纯的登录缺陷。
- 问责问题很实际:谁有证据证明被暴露的备份是旧数据?谁知道哪些邮件摘要将账户与地址关联起来?谁决定哪些用户应被联系?谁确保事后强化了员工认证和备份数据治理?
为何此案应归入风险与问责档案
Reddit 应被归入风险与问责档案,因为其公共价值主张始终依赖于开放参与、匿名身份、社区管理和集中式平台基础设施这一脆弱的组合。用户可以在普通浏览中不暴露真实姓名的情况下,通过用户名透露敏感兴趣、政治观点、健康问题、工作关切、本地信息、关系问题、财务担忧或身份信号。因此,将电子邮件地址、用户名、旧私信、旧凭据或邮件摘要收件人联系起来的泄露事件会改变用户面临的风险,即使被暴露的记录并非完整档案。平台的问责问题不仅限于是否有人窃取了当前密码,更在于平台能否证明旧记录、备份、日志、联系系统和员工管理访问并未成为匿名参与与现实世界联系性之间的桥梁。
核心公开记录是 Reddit 在 2018 年 8 月发布的公告(https://www.reddit.com/r/announcements/comments/93qnm5/we_had_a_security_incident_heres_what_you_need_to/)。Reddit 表示,他们发现一名攻击者在 2018 年 6 月 14 日至 18 日期间入侵了员工在云和源代码托管提供商的几个账户。公司称这些账户受到双因素认证保护,但第二因素是短信,Reddit 得出结论认为基于短信的认证并不像他们希望的那样安全。Reddit 表示,攻击者对包含备份数据、源代码和其他日志的某些系统拥有只读访问权限。Reddit 还表示,攻击者获取了一份包含 2007 年及更早 Reddit 用户数据的旧数据库备份的完整副本,以及包含 Reddit 在 2018 年 6 月发送的邮件摘要的日志。
该声明使这一事件超越了密码重置故事的范围。攻击者无需修改 Reddit 内容即可造成问责暴露。只要可访问的系统包含历史备份、源代码、日志和用户联系记录,只读访问就足够了。备份是旧的,但旧数据仍可识别人员。邮件摘要是近期的,但它们是由通信功能产生的,而非用户主动导出账户数据。员工账户受到保护,但所选的第二因素易受拦截。每个事实都指向不同的控制所有者:身份和访问管理、备份保留、云提供商访问、源代码托管、电子邮件运营、日志记录、用户通知和法律响应。
因此,核心问题并非抽象的「Reddit 被黑了吗?」问责问题是:谁对基于短信的员工多因素认证、云和源代码托管访问、备份数据保留、日志最小化、邮件摘要身份关联、用户通知以及证明旧数据并未比用户合理预期的更易暴露拥有实际控制权?Reddit 的公开声明通过确定数据类别和缓解措施回答了部分问题。但它没有(且可能无法在公开声明中)披露完整的供应商访问地图、所有受影响的员工账户、完整的备份保留理由、完整的日志模式或导致发现的每个检测信号。
事件始于员工访问,而非用户账户接管
第一个问责区别在于用户账户接管与员工访问泄露之间。Reddit 自己的公告描述了员工账户在支持云和源代码工作流程的提供商处被入侵。Wired 的同期报道(https://www.wired.com/story/reddit-hacked-thanks-to-woefully-insecure-two-factor-setup/)强调,攻击者通过入侵与云存储和源代码存储相关的员工管理账户获得访问权限。TechCrunch 的报道(https://techcrunch.com/2018/08/01/reddit-breach-exposes-user-data-but-not-much/)同样描述了短信拦截的双因素认证绕过 Reddit 已有控制的方式。KrebsOnSecurity(https://krebsonsecurity.com/2018/08/reddit-breach-highlights-limits-of-sms-based-authentication/)则将此事件视为移动短信作为第二因素局限性的教训。
这一区别之所以重要,是因为公共用户建议可能会误入错误的缓解措施。用户可以更改密码、停止重用旧凭据、启用更强的账户保护并警惕钓鱼。这些步骤很有用。但用户无法修复保护 Reddit 提供商账户的员工认证方法。他们无法决定 Reddit 如何存储备份数据。他们无法决定保留哪些邮件摘要日志。他们无法在云和代码托管提供商之间强制执行最小权限。当被入侵的边界位于平台运营商的管理环境内部时,问责答案必须留在运营商及其提供商手中,而非受影响的用户。
公开事实还表明,为何「只读」本身并非低风险形容词。只读访问可防止内容篡改,但无法防止数据泄露、关联、凭据破解、源代码检查或后续的社会工程。在平台背景下,读取旧备份可揭示历史账户凭据和电子邮件地址。读取日志可揭示哪个账户收到了哪些通信。读取源代码可帮助攻击者了解架构,尽管公开报道并未确定源代码被用于后续攻击。问责要求将这些可能性分开。可以公平地说只读访问可能是严重的。但仅凭公开记录,不能声称所有可能的后续滥用都已发生。
Reddit 的公告通过命名所涉内容进行了有用的范围界定。较旧的备份包含 2007 年及更早的账户凭据和电子邮件地址。Reddit 称这些凭据已加盐哈希处理。2018 年 6 月的邮件摘要日志包含已订阅这些摘要的用户的用户名和相关电子邮件地址。Reddit 表示正在向受影响的用户发送消息,并要求对凭据可能仍然有效的账户进行密码重置。这些是已确认的公开事实。它们也暴露了核心问责主题:安全控制必须根据被入侵的员工账户可以读取什么来评估,而不仅仅是攻击者能否更改生产内容。
短信多因素认证成为可见的控制失败
该事件最常被引用的教训是,对于高风险管理访问,基于短信的多因素认证不如抗钓鱼或基于应用的替代方案强大。Ars Technica 的报道(https://arstechnica.com/information-technology/2018/08/password-breach-teaches-reddit-that-yes-phone-based-2fa-is-that-bad/)直截了当地指出了这一点。Wired 和 KrebsOnSecurity 以不同措辞表达了相同观点。Reddit 自己的声明称短信认证并不像公司希望的那样安全。这句话成了这次数据泄露的公众代名词。
这个代名词很有用,但也可能变得过于狭隘。短信容易受到 SIM 卡交换欺诈、号码移植滥用、运营商社会工程、信令弱点、端点恶意软件、通知拦截以及平台运营商无法完全控制的运营故障模式的影响。对于普通消费者账户,短信可能仍然比没有第二因素能更好地抵御广泛的凭据填充攻击。对于员工访问云系统、源代码系统、备份存储、生产支持工具和日志存储库,风险阈值不同。高价值的管理访问需要更强的保证、更强的设备绑定、更强的抗钓鱼能力、特权会话控制和持续监控。
NIST SP 800-63B(可从https://pages.nist.gov/800-63-3/sp800-63b.html获取)之所以相关,是因为它将公共交换电话网络上的带外认证视为受限制的认证器。本案的重点并非某份 NIST 文档能追溯性地裁决 Reddit 的事件。重点是公共标准已经转向对短信采取更谨慎的态度。对于管理访问,平台应说明为何受限制的认证器足够,存在哪些补偿控制,以及为有权限访问用户数据、备份、源代码、日志和提供商控制台的员工,能多快迁移到更强的因素。
因此,问责档案应避免得出 Reddit 没有第二因素的草率结论。Reddit 确实有两因素认证。失败在于所选的第二因素未能为威胁模型提供足够的保证。这是一个更精确也更有用的教训。控制可以存在但仍然不足。清单可以满足,但风险仍然过高。测试不是平台能否说「多因素认证已启用」;测试是多因素认证的形式是否适合资产、参与者、提供商账户和爆炸半径。
备份将历史数据转化为当前暴露
第二个教训是关于备份数据问责。Reddit 表示攻击者访问了一份包含 2007 年及更早早期用户数据的旧数据库备份的完整副本。该备份包含账户凭据和电子邮件地址。Reddit 描述密码已加盐哈希处理,这很重要,因为加密保护降低了即时凭据风险。但备份存在于可通过被入侵的提供商账户访问的地方,仍然引发了保留、访问、加密、分段和删除等问题。
备份对于韧性是必要的。平台不能不负责任地运营而不具备可恢复性。但备份系统不仅仅是运营保险。它们是并行数据存储。它们通常包含较旧的模式、已弃用的字段、历史标识符以及生产系统不再以相同方式暴露的数据。它们可能跨区域复制,按不同时间表保留,并由不同的管理员访问。备份越旧,其字段越可能反映早期的安全实践、早期的哈希算法、早期的产品假设和早期的隐私期望。
这就是为什么不能将这一事件简化为备份的年龄。备份的年龄可以限制因凭据重用而直接受影响的当前用户数量,但也可能产生不同的风险:在平台早期加入的人可能使用了后来分离的电子邮件地址、消息和密码。2007 年的电子邮件地址可能仍然是账户恢复地址、工作地址、学校地址或用户名线索。加盐哈希的密码仍可能可破解,具体取决于算法、盐处理、密码强度和攻击者资源。公开记录并未证明所有这些风险都已实现,但证明它们必须被评估。
NIST SP 800-53 Rev.5(https://csrc.nist.gov/publications/detail/sp/800-53/rev-5/final)为这部分事件提供了有用的控制语言:访问控制、审计与问责、介质保护、系统和通信保护、应急计划和风险评估。这些是通用控制,而非 Reddit 特定的发现。它们有助于定义负责任的备份程序应回答的问题。谁能列出备份?谁能读取备份?备份是否使用普通云提供商会话无法获取的密钥进行加密?历史备份是否与源代码工作流程隔离?访问是否以能在入侵中幸存的方式记录?旧备份是否测试过删除和最小化,而不仅仅是恢复?
公开的未知因素很重要。Reddit 2018 年的公告并未披露确切的备份存储架构、加密安排、密钥管理模型、完整保留时间表或提供商配置。它也没有披露被访问的旧备份是否是唯一可访问的历史备份。这些未知因素并不证明疏忽。它们指出了公众无法独立验证的内容。在平台问责记录中,已确认事实与未解答的控制问题之间的边界是分析的一部分。
邮件摘要创造了身份关联表面
2018 年 6 月的邮件摘要是本案中最重要的用户通知边界。Reddit 表示攻击者访问了包含 2018 年 6 月 3 日至 17 日期间发送的邮件摘要的日志,并且这些日志将用户名与电子邮件地址关联起来。邮件摘要通常不被认为是高风险的身份基础设施。它们是产品通信。但它们可以将匿名用户名与真实或持久的电子邮件地址关联起来。对于建立在社区基础上的平台,这种关联可能是敏感的,即使它不包含密码、支付卡、护照号码或政府标识符。
敏感度取决于上下文。附加到普通爱好社区的用户名可能不会造成实质性的伤害。附加到支持社区、政治言论、就业投诉、性别或性取向讨论、健康状况、法律问题、成瘾康复、地方活动或告密的用户名可能会造成不同的暴露。电子邮件地址可能直接识别个人。它可能识别雇主、学校、家庭域名或地区。它也可能是一个恢复地址,对手可利用它进行钓鱼。滥用联系经济学很简单:一旦用户名与电子邮件地址关联,在 Reddit 之外针对个人的成本就会降低。
这并不意味着每个受影响的摘要接收者都遭受了伤害。公开记录并未证实这一点。这意味着平台必须将可联系性视为一种暴露类别,而非次要的通信产物。Reddit 的公告称将向当前电子邮件地址受摘要日志影响的用户发送消息。这一回应之所以相关,是因为它认识到受影响的用户不仅限于旧的 2007 年备份群体。最近的邮件摘要群体创建了第二个通知组。
该事件还表明,产品日志需要隐私审查。日志通常是为调试、分析、客户支持、反滥用审查、电子邮件可送达性或运营监控而构建的。它们会积累标识符,因为这使诊断更容易。但是,当日志将用户身份与可联系的地址关联起来时,它就变成了敏感数据。因此,安全自动化应根据日志可以关联什么来分类,而不仅仅是它们是否包含秘密。不包含密码的日志仍可能暴露身份关系。
(文章较长,后续部分依此类推)
数据主权与本地性仍大多为公开未知因素
本文档包含数据主权和本地性,因为 Reddit 是一个全球平台,并且公开通知确定了云和源代码托管提供商,而非简单的单地点数据中心。Reddit 用户不限于一个司法管辖区。他们的电子邮件地址、账户历史、消息和摘要记录可能涉及美国、欧洲、亚洲、拉丁美洲、非洲和其他地区的个人。公开通知并未提供备份或摘要日志的详细地点地图。
这种公开细节的缺失在事件通知中并不罕见。公司通常避免披露可能帮助攻击者的基础设施细节。但地点细节的缺失留下了一个治理问题。如果一个全球平台在云提供商处存储历史用户备份和日志,谁知道数据存储在哪些司法管辖区?哪些提供商人员或支持路径可以访问它?哪些法律和违约通知规则适用?哪些用户应收到特定地区的权利信息?这些问题很重要,即使事件是在美国公开披露框架下处理的。
Reddit 后来的 SEC 注册声明(https://www.sec.gov/Archives/edgar/data/1713445/000162828024006294/reddits-1q423.htm)和投资者关系文件索引(https://investor.redditinc.com/financials/sec-filings/default.aspx)并非事件特定的取证来源。它们之所以重要,是因为它们显示了 Reddit 当前的上市公司背景,以及全球平台在隐私、安全、审核、数据和信任义务方面的持续重要性。2018 年事件发生在 Reddit 上市之前,但上市公司的风险披露强调了相同的问责类别:数据安全失败可能影响用户信任、监管暴露、业务运营和声誉。
对于本文,支持的推论是狭窄的。合理地推断全球平台数据和基于提供商的基础设施使地点治理具有相关性。但无法仅凭公开记录声称 Reddit 在 2018 年事件中违反了特定的数据传输规则。问责档案应要求提供地点映射的证据,而非编造答案。正确的公开声明是,地点和主权是重要的治理问题,公开披露不完整。
通知必须区分旧凭据与当前身份关联
Reddit 的公开通知必须面向两个不同的受影响群体。一个群体涉及数据位于旧 2007 年备份中的用户,包括早期账户凭据和电子邮件地址。另一个群体涉及 2018 年 6 月邮件摘要创建了用户名-邮件关联的用户。这些群体具有不同的风险概况、不同的用户行动和不同的证据要求。将它们合并为一条通用的违约通知会削弱问责。
对于较旧的备份群体,密码重用是用户面临的主要风险。Reddit 表示,对于凭据可能仍然有效的账户,要求重置密码,并建议用户在重用密码的情况下更改其他服务上的密码。这一建议是合理的,因为旧的哈希凭据在别处重用时可能变得危险,尤其是如果原始密码很弱或哈希被破解。然而,平台的责任不仅仅是告诉用户更改密码。它应该解释为何 2007 年的备份是可访问的,使用了哪种凭据保护方法,以及事件发生后发生了什么变化。
对于邮件摘要群体,用户行动不那么直接。用户不能像更改密码那样轮换用户名历史。用户可以更改电子邮件地址、取消订阅摘要、加固邮件账户并警惕钓鱼。但关联可能已存在于用户控制之外。这使得平台的范围界定和通知证据尤为重要。用户需要知道被暴露的日志是否仅包含用户名和电子邮件地址,是否包含摘要主题或帖子引用,以及是否包含任何其他标识符。Reddit 的公开通知确定了关联,但公众无法检查日志模式。
公共报道记录有助于强化这一区别。Wired 强调了员工账户路径以及源代码/云存储上下文。Ars Technica 强调了密码数据、消息、电子邮件地址和短信弱点。KrebsOnSecurity 强调了移动短信的教训。ESET 的 WeLiveSecurity 报道指出,泄露包括旧数据库备份和 6 月邮件摘要的用户名和地址。这些报道对时间线有用,但公司通知仍是仔细范围界定的基础。
其他公开摘要(https://siliconangle.com/2018/08/01/historical-data-stolen-reddit-sms-two-factor-authentication-intercept-hack/和https://www.helpnetsecurity.com/2018/08/02/reddit-breach/)主要因为它们保留了相同的公开序列:员工账户、短信拦截、历史备份数据和近期邮件摘要日志。它们不是独立的取证记录,但有助于表明问责问题在事件发生后立即显现,而非仅在多年后重构。FTC 的一般企业安全指南(https://www.ftc.gov/business-guidance/resources/start-security-guide-business和https://www.ftc.gov/business-guidance/resources/protecting-personal-information-guide-business)强化了访问限制、保留纪律、服务提供商监督和个人信息谨慎处理等主题。
安全自动化只在了解保护对象时才可问责
安全自动化在本案中以两种形式出现:认证自动化和数据治理自动化。认证自动化决定员工会话是否应被允许。数据治理自动化决定哪些备份和日志存在、它们存活多久、谁可以读取它们以及如何检测访问。2018 年的事件表明,看起来强大的自动化如果与资产敏感度不匹配,可能会失败。
基于短信的挑战可以阻止广泛的驱动式攻击。它对于针对员工提供商账户的定向尝试则较弱。备份计划可以保护韧性。但如果旧备份通过广泛的管理凭据仍然可访问,就会变得危险。日志管道可以支持邮件传递和诊断。但如果它创建了持久的用户名-邮件映射而没有严格的保留和访问边界,就会变得危险。通知工作流可以快速联系受影响的用户。但如果平台无法自信地识别受影响的用户,就会变得不足。
互联网安全中心控制(https://www.cisecurity.org/controls)和 NIST 网络安全框架(https://www.nist.gov/cyberframework)有助于将此视为控制系统问题。库存、账户管理、访问控制、数据保护、审计日志管理、安全配置、事件响应和服务提供商管理都相互交叉。本文并未将这些框架作为 Reddit 在特定控制上失败的证据。而是将它们作为负责任的补救文件应涵盖的词汇。
该事件后最有价值的自动化问题是爆炸半径测量。当特权身份被入侵时,组织能否快速回答哪些备份、存储库、日志、秘密和客户记录是可读的?如果答案需要太长时间,公司就无法精确通知用户。如果答案依赖于手动部落知识,平台就容易受到不完整范围界定的影响。如果答案是自动化的但排除了备份存储或邮件日志,平台就可能遗漏那些恰好创造风险的历史数据。
滥用联系经济学改变了伤害模型
Reddit 事件处于安全与滥用联系经济学的交集。知道用户名和电子邮件地址的攻击者可以将滥用从平台审核环境转移到电子邮件、凭据填充、骚扰、勒索、人肉搜索或定向钓鱼。Reddit 的社区包括许多普通低风险讨论,但该平台也托管敏感上下文。在一个社区中无害的用户名在另一个社区中可能是敏感的。可联系的电子邮件地址改变了目标的成本,因为攻击者不再需要依赖平台内的公开评论或私信。
这就是为什么公共安全分析不应夸大伤害,同时仍应认真对待暴露。已确认的事实表明,某些用户名-邮件关系通过邮件摘要日志被暴露,旧备份数据包含凭据和电子邮件地址。已确认的事实并未表明每个受影响的用户都成为目标,每个密码都被破解,或者每个社区成员都被暴露。支持的推论是身份关联数据增加了联系风险和社会工程的可信度。这一推论是合理的,因为它遵循数据类别。
因此,平台问责应包括对滥用敏感的通知。一个仅说「更改密码」的通用安全通知可能会忽略关联身份的社会风险。更好的通知有助于用户了解钓鱼风险、邮件账户加固、密码重用、账户恢复、摘要偏好以及公司所知范围的限制。Reddit 的通知包含了针对用户的消息承诺和密码重置步骤。未解决的公开问题是这些针对用户的消息详细程度如何,以及它们是否以匹配用户上下文的方式解释了身份关联风险。
该事件还表明,用户隐私不能与员工访问治理分开。平台可以让用户选择假名,但如果员工管理的基础设施可以通过日志或备份揭示邮件关联,那么假名模型依赖于管理安全。这并不意味着假名是不可能的。这意味着平台必须将邮件关联数据集视为高敏感性资产,即使它们是运营副产品。
已确认事实、支持推论和未知因素
已确认的公开事实包括 Reddit 自己的声明,即攻击者在 2018 年 6 月 14 日至 18 日期间入侵了员工在云和源代码托管提供商的几个账户。已确认的公开事实还包括 Reddit 的声明,即这些账户受到基于短信的双因素认证保护,攻击者对包含备份数据、源代码和日志的某些系统拥有只读访问权限,一个包含 2007 年及更早数据的旧数据库备份被访问,以及将用户名和电子邮件地址关联起来的 2018 年 6 月邮件摘要日志被访问。Reddit 还确认已联系受影响的用户并采取了缓解措施,包括为某些账户重置密码。
支持的推论包括,基于短信的认证本身不适合高风险员工访问有权访问备份、源代码和日志的提供商账户。支持的推论还包括,旧备份和邮件日志创造了当前的用户风险,因为它们包含凭据、电子邮件地址和用户名-邮件关联。另一个支持的推论是,更强的多因素认证、最小权限、备份分段、保留审查、日志最小化和自动化爆炸半径分析是相关的补救主题。这些推论得到了 Reddit 自身数据类别和公共控制框架的支持,但它们与私有取证结果不同。
未知因素包括用于拦截或绕过短信的确切方法、云和源代码托管提供商的身份、所有受影响的员工账户的完整列表、访问的源代码的确切数量、完整的备份存储架构、旧凭据的确切哈希方法、邮件摘要的完整日志模式、完整的保留时间表、受影响数据的区域或地点地图,以及是否因暴露的记录发生了任何特定的下游滥用。未知因素还包括事件后补救措施的完整集合。Reddit 的公开通知提供了信息,但并非完整的取证报告。
这些边界对于公共安全问责写作至关重要。本文不应指控 Reddit 故意不当行为、犯罪行为或故意暴露。公开记录支持一个更狭窄、更有用的主张:该事件表明,基于短信的员工多因素认证、提供商账户权限、备份保留和用户联系日志必须作为一个问责系统来治理。当该系统失败时,暴露不仅仅是登录失败。它是对平台能否证明什么数据存在、为何存在、谁可以读取、谁受到影响以及泄露后发生了什么变化的测试。
提供商访问使最小权限变得可衡量
提供商访问层是使最小权限变得可衡量而非修辞性的地方。公司可以说它限制生产访问,但实际测试是,被入侵的员工账户可以在云控制台、源代码存储库、备份存储、日志系统和支持工具之间读取什么。Reddit 的公告称,攻击者对包含备份数据、源代码和日志的某些系统拥有只读访问权限。这句话足以确定问责控制面。如果一个提供商账户可以跨这些类别读取,那么平台必须能够证明为什么该账户拥有这样的访问权限,该访问是临时的还是常设的,是否与设备姿态和位置相关,是否需要更强的升级认证,以及是否每次读取都记录有足够保真度以供后续范围界定。
最小权限还必须根据数据年龄进行评估。当前的生产数据库可能获得最多关注,因为它为实时服务提供动力。历史备份可能更容易被遗忘,因为它不是普通用户体验的一部分。但是,能够读取旧备份的特权云会话具有与只能部署代码、读取监控指标或管理窄服务的会话不同的爆炸半径。公开记录并未揭示 Reddit 的确切访问模型。支持的教训是,提供商账户应根据数据类别而非仅根据系统进行映射。「可以读取备份数据」是一种与「可以重启服务」本质上不同的特权。
这一区别对于源代码访问也很重要。源代码并非自动成为个人数据,但源代码存储库可能错误地包含秘密、模式细节、数据流线索、日志惯例、依赖信息、部署脚本或帮助攻击者了解敏感记录位置的注释。公开记录并未显示 Reddit 的源代码被用于后续利用。尽管如此,事件响应团队必须确定源代码访问是否改变了风险评估。这需要存储库审计日志、秘密扫描、密钥轮换决策以及区分代码机密性与用户数据暴露的方法。
提供商监督还应包括撤销速度。一旦 Reddit 检测到事件,相关账户、令牌、会话、密钥、提供商授权和存储库凭据必须被审查。成熟的响应文件应显示受影响访问被多快禁用,凭据是否被轮换,短信因素是否被替换,提供商会话是否被终止,以及是否有任何持久令牌在面向用户的事件窗口之后仍然存在。这些细节不是公开的。问责分析不需要编造它们。它需要将它们命名为将一般保证转化为可验证补救记录的证据。
备份最小化是韧性问题,而非隐私事后考虑
备份最小化听起来像是隐私奢侈品,直到事件证明它是韧性控制。包含旧凭据、旧电子邮件地址和旧账户元数据的备份可以在此后多年产生响应工作。组织必须确定哪些用户受到影响,凭据是否仍然有效,哈希方法是否足够强大,电子邮件地址是否当前,数据主体是否可联系,以及旧账户记录是否与当前记录具有不同的法律地位。这些任务消耗事件响应时间,而速度正是关键。
更好的备份程序并不仅是删除所有旧数据。平台需要可恢复性、法律保留、滥用调查和历史完整性。问责点是目的特定保留。为灾难恢复保留的备份应具有明确的恢复目的、加密边界、保留期限、访问路径、恢复测试和删除测试。为法律保留保留的备份应具有不同的访问和审查模型。因无人知道是否可以删除而保留的备份是在等待泄露的问责失败。Reddit 2018 事件说明了为何旧的平台记录必须有当前所有者。
备份最小化也会改变通知质量。如果旧记录被高度分段、使用单独控制的密钥加密并按保留类别索引,事件响应者可以更快地确定暴露范围。如果旧记录与源代码系统、广泛云存储或松散的操作日志混合,响应者可能不得不在压力下重建爆炸半径。公开通知为用户提供了有用的数据类别信息,但并未显示底层的库存过程。对于拥有全球用户和匿名身份的平台来说,该库存过程是信任的核心。
相同的原则适用于邮件摘要日志。如果摘要日志为传递故障排除而保留,保留窗口应匹配该目的。如果为分析而保留,公司应询问用户名和电子邮件地址是否都需要保留在同一条记录中。如果为反滥用调查而保留,访问应受到严格限制和监控。摘要系统对于用户来说可以是便利功能,同时也为攻击者创建了高价值的身份映射。负责任的自动化应在事件之前而非仅在披露之后认识到这种双重性质。
用户信任取决于精确语言
Reddit 的事件还表明精确语言在违约通知中的重要性。对于建立在匿名使用基础上的平台,说「一些数据被访问」是不够的。用户需要知道受影响的数据能否暴露账户访问、可联系性、身份关联、私人通信或旧凭据。Reddit 的通知将 2007 年备份与 2018 年 6 月邮件摘要日志分开。这种分离帮助用户理解两种不同的风险路径。它也创建了公共记录,后续分析师可对照控制框架进行测试。
精确语言还避免不必要的夸大。通知没有说当前密码被广泛暴露。没有说每个 Reddit 用户都受到影响。没有说所有私信都以与旧备份群体相同的方式被暴露。好的问责语言告诉用户什么是已知的、什么被排除以及什么仍然不确定。它应当是具体的,而不是虚假地安慰人。过度最小化事件的通知可能会侵蚀信任;过度夸大事件的通知可能造成混乱和疲劳。
对于 2007 年备份群体,精确语言必须解释历史凭据风险。对于 2018 年 6 月摘要群体,必须解释身份关联风险。对于更广泛的社区,必须解释为何更强的员工认证很重要,即使普通用户账户未被直接接管。这些受众重叠但不相同。版主、敏感社区参与者、重用密码的旧用户和近期摘要订阅者可能通过不同的风险视角阅读同一份通知。当平台为每个群体提供足够的信息以采取行动时,公共问责得到改善。
事件后问责应是什么样子
对此类事件的负责任的响应有几个层面。首先,高风险员工提供商账户应转向抗钓鱼或更强的应用/设备方法,并辅以特权访问管理和异常会话的条件控制。其次,云和源代码提供商访问的范围应被限定,使得入侵少量员工账户不会打开通向备份、代码和日志的广泛读取路径。第三,历史备份应作为用户数据存储进行库存、加密、分段和保留审查,而不是作为惰性运营工件。
第四,邮件摘要和通知日志应按关联风险进行分类。将用户名映射到电子邮件地址的日志应具有保留目的、保留限制、访问策略和监控模型。第五,事件响应应针对爆炸半径问题拥有自动化证据:什么可读、何时、由谁、通过哪个提供商、在什么权限下以及涉及哪些数据类别。第六,用户通知应区分凭据风险、身份关联风险、账户恢复风险和钓鱼风险。受影响的用户需要与暴露数据相关的具体建议,而非单一的通用警告。
SEC 的网络安全披露规则页面(https://www.sec.gov/news/press-release/2023-139)是有用的上下文,因为现在上市公司被要求披露重大网络安全事件并描述其网络安全风险管理、策略和治理。Reddit 的 2018 年事件早于其上市,此处不根据后来的披露规则进行评判。更广泛的问责方向仍然相关:网络安全治理不再仅仅是技术支持功能。它是董事会、投资者、监管者、用户信任和运营韧性问题。
最后的教训是,旧数据在仍然可访问的情况下并不会保持过时。2007 年的备份在 2018 年变得相关。2018 年 6 月的电子邮件日志因关联账户和电子邮件地址而成为用户身份暴露。对于普通访问可能看似足够的短信控制对于特权提供商会话变得不足。因此,Reddit 案例是依赖匿名参与的平台的一个持久问责测试:保护员工的门,但也证明备份、日志和通信记录以与实时账户数据相同的严肃性进行治理。
CISA 当前的多因素认证指南(https://www.cisa.gov/MFA)为现代运营者指出了相同方向:更强的多因素认证不是装饰性控制,尤其当特权访问可以触及用户数据时。对于 Reddit 的 2018 年案例,这意味着持久的教训不是反对短信的口号。而是在下一次员工访问事件将历史档案变成当前披露问题之前,将认证器强度、提供商权限、备份敏感度、日志保留和用户通知证据对齐的要求。

