“确保系统能运行,以及如何确信这一点。”——托尼·霍尔
“安全工程师是技术领域的诉讼律师。我们只有在出问题时才会被支付报酬,而且我们总能找到问题。”——戴夫·韦斯顿
“进步在于改变;完美在于不断改变。”——温斯顿·丘吉尔

28.1 绪论:从“没有明显缺陷”到持续演进的保障
我在这本书中探讨了许多复杂的主题,但最核心的部分留到了最后:保障(Assurance)、合规(Compliance)和可持续性(Sustainability)。这三者紧密相连,并与许多实际问题息息相关。我们应该何时发布产品?如何向保险公司展示我们的安全性和可靠性?我们需要维护系统多久,以及维护成本是多少?
2020年,可持续性成为焦点。在2008版的书中,我将这一章节命名为“评估与保障”,并总结说,健全的漏洞公开和产品更新流程正在成为与产品发布前测试同样重要的环节。当时,重点是测试和评估方案,如Common Criteria。但那个世界已经过时了。现在,仅仅因为一个设备在五年前花费了10万美元的评估实验室测试,就能保证其安全,这会让人觉得很可笑。保障不再是静态的,而是一个持续演进的过程。
十年前,我们知道如何构建两种类型的安全系统:像手机和笔记本电脑这样的在线设备,由于软件每月更新,相对安全。还有像汽车和医疗设备这样的非在线设备,它们经过了“测试到死亡”的验证,然后才上市,之后只能希望一切顺利,因为补丁意味着物理召回。现在,汽车和医疗设备开始联网,它们也需要在线补丁。
常见平台上的漏洞数量如此之多,以至于我们必须自动化漏洞处理流程。正如上一章所述,软件开发生命周期已经演变为DevOps,并进一步发展为DevSecOps。在线组件通过持续集成进行维护,而现场组件则需要定期更新。
对于新产品,保障可以粗略地衡量为,经过足够多的有能力且积极的专业人员的攻击测试。但“足够多”是什么意思?“系统”究竟指什么?我们如何处理那些保护错误的东西?我们如何处理可用性问题?太多的系统是为经验丰富的专业人士设计的,对于普通用户来说却过于复杂,或者对错误容错性太低。一旦它们投入使用,事故索赔或欺诈纠纷就开始出现。
十年前的安全工程中,我们经常谈论保障,指的是通过证据的收集,向领导、客户(必要时也向陪审团)证明系统确实有效(或至少在过去某个时间有效)。然而,正如我们反复看到的,许多问题是因为一方承担了保护成本,而另一方却承担了失败的风险。第三方评估方案,如Common Criteria,本应提高这些风险的透明度并加以缓解,但反而成为了一种责任盾牌,尤其是在公共部门和监管行业,如银行业。保护敏感信息的系统受到严格的合规要求,必须使用经过评估的产品作为攻击面的一部分。医疗系统和航空航天系统也类似,只是细节有所不同。这些监管措施都以安全为导向。
商业系统由大型审计公司制定政策,支付系统则由PCI制定。我们在之前的章节中已经触及了它们的具体要求。这里我们将探讨一些更广泛的原则。
本书一开始的第1.1图,我提出了一套基于激励、政策、机制和保障的安全工程框架。
- 激励(Incentives)至关重要,正如我们反复看到的。它们经常超出正式的保障流程,但却是定义安全政策环境中最关键的部分。
- 政策(Policy)往往被忽视:人们经常保护错误的东西,或者以错误的方式保护正确的东西。我们在第二部分的大部分时间里探讨了不同应用的安全政策。
- 机制(Mechanisms)可能独立于政策,但可以通过简化某些政策选项的实施而与政策相互作用。
- 保障(Assurance)是我们对系统在特定情况下不会失败的可能性的估计。这种估计可以基于开发和维护流程、开发和维护人员以及具体的技术评估,如故障率统计、错误报告、安全漏洞报告和保险索赔。传统上,它指的是在给定的安全政策和机制强度下,产品是否已正确实施。漏洞是否已被发现和修复?平均故障时间(MTTF)是多少?如今,更多的是关注供应商的长期承诺:系统将持续多久,以及他们将如何勤奋地进行补丁更新?
在2008年本书的第二版中,我注意到一个重要的缺失环节是可用性(Usability)。许多系统故障都与人为因素密切相关。可用性是上述框架中的一个贯穿始终的问题:如果处理得当,它会对政策、机制选择和测试方式产生微妙的影响,并对系统测试产生巨大影响。它跨越了各个产品:不同产品具有不同的用户界面是事故发生的一个常见原因,我们将会在后续章节中探讨这个问题。然而,设计师经常将保障简单地视为没有明显的漏洞,而没有考虑人类的脆弱性,只是设计了技术保护机制。当然,也有例外,如会计系统,它们的设计就考虑到了错误和欺诈。
可用性不仅是最终用户的责任,也是开发者的责任。许多漏洞是因为安全机制难以理解或使用过于繁琐。开发者经常不使用操作系统级别的访问控制,而是直接以管理员权限运行代码;当移动设备不允许这样做时,他们就过度要求应用程序的权限;而密码学经常使用ECB模式,因为它在许多密码库中是默认的。
客户和供应商在价值链的不同阶段想要不同的东西。监管并非总是能帮助,因为政府有其自身的、往往相互冲突的议程:情报机构、安全监管机构和竞争监管机构从不同的方向施压。在这种充满挑战的环境中,保障游戏就展开了。
保障因此是一个政治和经济过程,它也是一个动态的过程,就像代码或文档的开发一样。就像代码和规范中存在错误一样,安全和安全政策中也会存在问题,导致测试套件中的遗漏和错误。因此,保障正逐渐从一次性项目转变为持续演进的一个方面。
带着这个警告,我们首先从评估一个在单个项目中构建的静态产品这一经典问题开始。
案例一:智能家居的隐患
李明是一位软件工程师,负责开发一家智能家居系统的核心软件。这个系统集成了门锁、摄像头、传感器等设备,用户可以通过手机APP进行控制。李明和他的团队在开发过程中,主要关注功能实现和性能优化,对安全性方面投入的精力相对较少。
系统发布后,用户陆续反映了一些问题:
- 门锁被非法打开: 有用户发现自己的智能门锁在没有授权的情况下被打开,导致家中物品被盗。
- 摄像头隐私泄露: 有用户担心摄像头被黑客入侵,导致隐私信息泄露。
- 传感器数据异常: 有用户发现传感器数据出现异常,导致系统无法准确判断家中是否安全。
经过调查,问题的原因主要有以下几点:
- 缺乏安全设计: 系统的设计中缺乏安全考虑,例如没有采用强密码策略、没有进行数据加密、没有进行访问控制等。
- 漏洞未及时修复: 在系统发布后,一些安全漏洞被发现,但由于修复流程不完善,这些漏洞未能及时修复。
- 用户安全意识薄弱: 一些用户没有设置强密码、没有开启双重验证等,导致系统更容易受到攻击。
分析: 这个案例清晰地说明了信息安全意识和保密常识的重要性。如果开发人员在设计阶段就充分考虑安全性,并采取必要的安全措施,就可以避免这些问题。同时,用户也需要提高安全意识,采取必要的安全措施,才能保护自己的隐私和财产安全。
为什么需要信息安全意识和保密常识?
- 保护个人隐私: 我们的个人信息,如身份、财务、健康等,都具有很高的价值,需要加以保护。
- 保护财产安全: 智能家居设备连接互联网,容易受到黑客攻击,导致财产损失。
- 维护社会稳定: 网络安全事件可能对社会稳定造成威胁,例如关键基础设施瘫痪、金融系统崩溃等。

该怎么做?不该怎么做?
- 开发人员:
- 在设计阶段就充分考虑安全性,采用安全设计原则。
- 采用强密码策略、数据加密、访问控制等安全措施。
- 定期进行安全测试,及时修复漏洞。
- 关注最新的安全威胁,并采取相应的防御措施。
- 用户:
- 设置强密码,并定期更换。
- 开启双重验证,提高账户安全性。
- 定期更新设备固件,修复安全漏洞。
- 谨慎点击不明链接,避免下载可疑文件。
- 关注安全新闻,了解最新的安全威胁。
案例二:企业数据泄露的教训
某大型金融机构在进行系统升级时,由于缺乏安全评估和风险控制,导致大量客户数据泄露。这些数据包括客户姓名、身份证号、银行账号、交易记录等,造成了巨大的经济损失和声誉损害。
分析: 这个案例揭示了企业在数据安全方面存在的严重问题:
- 缺乏安全评估: 在进行系统升级时,没有进行充分的安全评估,未能发现潜在的安全风险。
- 风险控制缺失: 没有制定完善的风险控制措施,未能有效防止数据泄露。
- 员工安全意识薄弱: 一些员工没有遵守安全规定,例如将敏感数据存储在非安全设备上,导致数据泄露。
为什么需要信息安全意识和保密常识?
- 保护客户权益: 数据泄露可能导致客户遭受经济损失、身份盗用等损害。
- 维护企业声誉: 数据泄露会损害企业的声誉,导致客户流失和股价下跌。
- 遵守法律法规: 各国都有相关的法律法规对数据安全进行监管,企业必须遵守。
该怎么做?不该怎么做?
- 企业:
- 定期进行安全评估,识别潜在的安全风险。
- 制定完善的风险控制措施,防止数据泄露。
- 加强员工安全意识培训,提高员工的安全防范能力。
- 采用先进的安全技术,如防火墙、入侵检测系统、数据加密等。
- 建立完善的应急响应机制,及时处理安全事件。
- 员工:
- 遵守安全规定,保护敏感数据。
- 不将敏感数据存储在非安全设备上。
- 不点击不明链接,避免下载可疑文件。
- 及时报告安全问题。
总结:

信息安全意识和保密常识不再是技术人员的专属,而是每个人都需要具备的能力。无论是开发人员、用户还是企业员工,都应该提高安全意识,采取必要的安全措施,共同守护数字世界的安全。这不仅是对个人和企业负责,也是对整个社会负责。
在数据安全日益重要的今天,昆明亭长朗然科技有限公司致力于为企业提供全面的信息安全、保密及合规解决方案。我们专注于提升员工的安全意识,帮助企业有效应对各种安全威胁。我们的产品和服务包括定制化培训课程、安全意识宣教活动、数据安全评估等。如果您正在寻找专业的安全意识宣教服务,请不要犹豫,立即联系我们,我们将为您量身定制最合适的解决方案。
- 电话:0871-67122372
- 微信、手机:18206751343
- 邮件:info@securemymind.com
- QQ: 1767022898