acm-header
登录

ACM通信

内部风险

我们如何提高系统的可信度?


一个插销上有多个锁

信贷:在上面

acm风险论坛(risks.org)现在已经是35年了th一年,通信《内部风险》系列已经有30部了th以及他们创作的《计算机相关的风险》一书725年前付印。不幸的是,这些来源中讨论的问题类型今天仍然以一种或另一种形式在许多不同的应用领域中重复出现,新的问题不断出现。

现在似乎是一个适当的时间来回顾一些相关的基础历史,并反思我们如何可以降低涉及到的每个人的风险,部分是通过显著增加我们的系统和网络的可信性,以及通过更好地理解问题的原因。在这种情况下,“值得信赖的”意味着拥有一些合理且经过深思熟虑的保证,确保某些东西值得信任,以满足特定的系统需求(如人类安全、安全性、可靠性、健壮性和弹性、易用性和系统管理的易用性,以及面对逆境(如高概率实时性能)时的可预测行为)。

Inside Risks最近一次关于诚信的讨论出现在2018年11月通信列。2本专栏对这些问题采取了不同的观点,并得出了一个特定的结论:我们需要对开发和使用计算机系统的艺术和实践状态进行一些根本的改变,而不是试图不断地对基线进行小的增量改进,这可能是不值得的。


在开发和使用计算机系统的技术和实践方面,我们需要一些根本性的改变。


爱因斯坦的至理名言:“一切都应该尽可能的简单。但不简单在计算机系统和网络的设计、修改和配置中尤为重要。过度简化往往是无法满足预期的原因。事实上,这篇专栏文章严重违背了这一原则:每一项都大大简化了它想要表达的观点。因此,每一项目都应被视为一项准则,必须谨慎、有经验和详细地加以运用。因此,考虑到获得信誉本身就很复杂,通常没有简单的答案或快速解决办法,我带着一些担忧提供以下可能有助于提高信誉的想法:

  • 接受我们不能在当今易损坏的硬件和有缺陷的系统上构建足够可靠的应用程序的事实,特别是对于那些生命关键需求。(Common vulnerability Enumerators listcve.mitre.orgnow包括超过120,000个漏洞!)例如,最好的密码学和有用的人工智能可能会被低级攻击、内部人员滥用和硬件故障完全颠覆,而应用程序仍然是一个巨大的漏洞来源,即使存在更强大的操作系统安全性。脆弱性往往无处不在。另一方面,从头开始构建新的系统或密码学可能是有风险的。因此,拥有一套值得信赖的基本系统和加密(例如EverCrypt)组件将是一个非常理想的起点。
  • 为这些组件的可预测组合建立一个理论和实践方法的语料库,解决可组合性(要求保存局部属性)和组合性(要求分析组合的突发属性,其中一些是至关重要的,如在安全和保障中,但有些可能是危险的或容易失败的,如暴露的密钥和隐私侵犯)。组合本身经常会引入新的漏洞。
  • 开发并系统地使用更多的方法,通过组合来可靠地增加可信度。理想的方法可能包括(例如)使用纠错代码、密码学、冗余、交叉检查、将必须信任的内容最小化的体系结构、严格的封装,以及避免对不可靠组件的不利依赖的分层结构。
  • 当一项技术或组件可能不可靠时,必须独立评估可靠性(包括组合和组合性),例如,在生命关键的应用程序中使用机器学习。
  • 采用并遵守计算机系统的基本原则,特别是关于整个系统的安全性和安全性的可信性。
  • 避免在计算机和通信系统中插入后门(或不给现有的后门打补丁)的想法。1很明显,如果系统中的后门有可利用的漏洞,那么它们就会被未经授权使用它们的人和程序利用。然而,政府一再幻想,可以有一些绕道,只有“授权”实体可以安全地进入。(再次考虑这一栏的第一个项目。)
  • 认识到“物联网”的可信性可能总是受到怀疑(例如,关于安全性、完整性、人类安全和隐私)。必须开发各种硬件-软件和操作方法(可能是易于保护和本地维护的防火墙?),以帮助控制和监视各种类型的设备如何更可靠地连接到Internet。自动驾驶汽车、完全自动驾驶的高速公路和完全互联的智能城市意味着,这些组件和整个系统必须更加可信。然而,无处不在地把你的王冠放在物联网上的风险似乎是非常不明智的。
  • 接受这样一个事实:使用远程处理器和存储(例如,云计算)不一定会使您的计算机系统更值得信赖,尽管由于不必管理本地硬件和软件,显然可以节省相当大的成本和操作成本。尽管如此,信任值得信赖的第三方云提供商比试图创建自己的云提供商更可取。在其他情况下,需要考虑许多取舍。
  • 接受这样一个现实:我们无法建立起足以抵御注册数据库黑客入侵、内部人员滥用、猖獗的虚假信息和干扰的可操作选举系统,尤其是使用没有实质性审计追踪或书面记录的组件,而这些组件应该能够进行有鉴证价值的分析。尽管提高系统的可信度会有所帮助,但现有的许多问题不是技术性的,也必须加以解决。
  • 将软件工程和系统工程重塑为工程学科,更多地关注硬件和软件漏洞、系统可靠性方面、定义良好的系统需求的重要性、主动设计、系统可用性、风险评估、计算机科学理论和实践。
  • 改进软件工程专业教育方案,确保毕业生具备必要的能力和资源。3.
  • 认识到没有放之四海而皆准的解决方案,必须考虑许多潜在的取舍。此外,技术本身是不够的,还必须考虑许多其他因素,特别是关键系统。
  • 强调学习,而不仅仅是教学,灌输一种从小学开始就在这里讨论的问题的意识,处理复杂性,原则,抽象,尊重整体的长期思维,而不是短期的过早优化,逻辑推理,利他主义,等等。从一开始就鼓励理性和逻辑思维,然后,使用实用的形式化方法来提高我们计算机系统的质量。近年来,正式的方法已经取得了长足的进步(例如DeepSpec),并且越来越多地将其应用于实践。
  • 广泛地尊重人类问题的重要性(例如,更加强调可用性、个人隐私和对人的宽容的界面)以及技术含量较低的问题(例如,供应链完整性的妥协、环境危害和虚假信息)。此外,独立监督通常是可取的,例如在飞机安全、商业责任和选举方面。
  • 尊重历史,研究文献,从过去的错误中学习,并从你和他人的建设性经验中受益。
  • 认识到这个列表是不完整的,只是一个开始。例如,我甚至没有提到侧通道、投机性执行、嵌入式微控制器和输入输出的直接内存访问以及篡改的风险。

提醒一下,“内部风险”的档案中重复了一些重要的咒语。这里有一些:

  • 描述各种类型的计算机相关系统和操作环境(如自动化)固有的潜在漏洞,11云,9物联网,5和人工智能。16
  • 系统工程和软件工程作为一门学科。215
  • 理论上的基础实践。41415
  • 为实现长期利益而不仅仅是短期利益而制定的有远见的计划。6810

请注意,古老的智慧可能仍然是非常相关和有洞察力的,正如爱因斯坦引用,诺伯特维纳的先见之明人类对人类的利用18和诺曼的日常用品的设计。13与计算机相关的风险7也不例外。此外,在最近的一些进展中有相当大的希望。例如,CHERI硬件-软件架构及其进程内划分17连同它正在进行的硬件规范的正式分析,可以提供一些指导,有多少上述需要的数据和原则12可以建设性地应用在实践中。CertiKos、seL4和Green Hills分离内核是对实际系统组件进行形式化分析的其他例子,但只是针对操作系统微内核。

每一个项目都过于简化,必须面对的问题是复杂和深远的。系统工程师、学者、计算机用户和其他人可能希望反思我们是如何达到今天的位置的历史,以及理论和实践研究和开发经验如何可能帮助实现期望的目标,以及避免已知的缺点和尚未识别的漏洞。然而,底线是,我们仍然有很长的路要走,以实现值得信赖的系统。

回到顶部

参考文献

1.Abelson H.等人。门垫下的钥匙:通过要求政府访问所有数据和通信来强制不安全。2015年7月6日。https://dspace.mit.edu/handle/1721.1/97690

2.贝洛文,S.M.和诺依曼,P.G.。Commun。ACM 61, 2018年11月11日。

3.刘志强等。软件系统工程规划:一种能力方法。在系统与软件学报(2017年3月),354364;文章:JSS9898 doi10.1016 / j.jss.2016.12.016

4.Leveson, N.和Young, W.基于系统理论的安全与保障的综合方法。Commun。ACM 57, 2(2014年2月)。

5.Lindqvist, U.和Neumann, P.G.新兴物联网的风险。Commun。ACM 55, 2(2017年2月)。

6.诺依曼,P.G.,前瞻传奇,返航。Commun。ACM 55, 10(2012年10月)。

7.诺伊曼,打开与计算机相关的风险。Addison-Wesley和ACM出版社,1995年。

8.诺依曼,P.G.,更有远见。Commun。ACM 56, 2(2013年2月)。

9.云计算和云存储的风险和神话。Commun。ACM 5710(2014年10月)。

10.纽曼,p。g。对与电脑有关的有害事件有远见的计划。Commun。ACM 58, 2(2015年2月)。

11.自动化的风险。Commun。ACM 59, 10(2016年10月)。

12.CHERI的基本诚信原则。A. Shrobe, D. Shrier和A. Pentland, Eds。在网络安全新解决方案,麻省理工学院出版社/连接科学,2018,第6章。

13.诺曼,D。日常用品的设计, 2002;修订和扩展版,2013年。

14.软件工程:未完婚。Commun。ACM 40, 9(1997年9月)。

15.无序发展的风险。Commun。ACM 5310(2010年10月)。

16.帕纳斯,D.L.人工智能的真正风险。Commun。ACM 60, 10(2017年10月)。

17.Watson, R.N.M. Capability硬件增强RISC指令:CHERI指令集架构,版本7,剑桥大学,2019年6月;https://www.cl.cam.ac.uk/research/security/ctsrd/cheri/

18.维纳,N。人类对人类的利用。霍顿米夫林,1950年,1954年修订。

回到顶部

作者

彼得·g·诺伊曼neumann@csl.sri.com)是SRI国际计算机科学实验室的首席科学家,也是ACM风险论坛的主持人。


版权归作者所有。
向所有者/作者请求(重新)发布许可

数字图书馆是由计算机协会出版的。版权所有©2019 ACM股份有限公司


没有发现记录

登录为完全访问
»忘记密码? *创建ACM Web帐户
文章内容:
Baidu
map