acm-header
登录

ACM通信

Kode恶性

Kode Vicious在Traffic中扮演角色


在人行横道停车的车辆和学生

信贷:Photographee.eu

回到顶部

亲爱的KV,

我听说现在很多汽车都是由几百个cpu组成的分布式系统组成的,这些cpu控制着汽车的最小部分。这些包含数百万行代码的组件看起来非常复杂——比典型的操作系统还要复杂。这听起来不像是一个非常好的想法,因为今天我们在优化编译器的存在下很难理解系统的多核行为,更不用说无法访问原子操作的分布式系统所带来的挑战了。我听说他们甚至计划进一步使用以太网。我害怕一辆车发生故障,或者被人利用,从我身上碾过去。我们能做些什么来补救这种情况?

真诚地,

一个害怕的市民从车里跑出来

亲爱的吓坏了,

我们唯一需要担心的是恐惧本身——以及编写糟糕的代码,这些代码具有动力学副作用和差一个错误。换句话说,我们有很多东西要害怕。关于汽车的愚蠢行为,有一个非常简单的答案,那就是自行车。漂亮、机械、肌肉驱动的机器,周围没有处理器。

不幸的是,自行车不太可能很快取代汽车,正如你所指出的,汽车正变得越来越自动化。作为从事软件工作的人,我们知道这是一个糟糕的想法,因为我们看到了编写了多少糟糕的代码,然后强加给这个世界。在某一时刻,KV可能会建议更严格的要求,比如在航空工业中使用的那些,可能是一种方法来减轻我们周围的四轮杀人机器中软件的危险,但后来波音737开始从空中坠落,这个想法也被排除在了窗外。

对于如何将软件应用于可能会杀死我们的系统,没有唯一的答案,但有一些模型可以遵循,可以帮助改善风险。这些系统涉及的风险来自三个主要领域:市场营销、会计和管理。并不是说不可能安全地设计这样的系统,但自动化系统的历史告诉我们,很难做到既便宜又迅速。老话说,“快速、廉价或正确——选择两者”,实际上应该是“选择正确,忘掉快速或廉价”。但是第三条凳子,管理,从来不去做。


有大量关于安全关键系统的文献,其中很多都指向同一个方向:简单化。


有大量关于安全关键系统的文献,其中很多都指向同一个方向:简单化。随着复杂性的增加,风险也在增加,部分原因是人类——我被告知管理层是由人类组成的——不善于理解复杂性和风险。理解一个系统的安全参数意味着理解整个系统,简单的系统比复杂的系统更容易理解。

任何安全关键系统的首要设计原则必须是简单。像您在信中提到的以太网这样的系统,众所周知是复杂的,有许多隐藏的故障模式,因此在安全关键系统中使用它是一个糟糕的选择。但我听到会计在抱怨在汽车控制系统的线束上额外布线的成本。“想想看,如果所有的信号都通过一对电线而不是10根线束发出,我们能节省多少钱啊!”作为回应,我们必须说,“想想看,当你的孩子看他们最喜欢的电视节目的网络流量干扰了刹车踏板的信号时,会发生什么。”

这就引出了下一个设计原则:关注点分离。安全关键系统绝对不能与不安全关键的系统混合,因为这既增加了复杂性,又降低了系统整体提供的安全水平。刹车和转向系统远比娱乐系统重要,至少如果你认为停车等红灯比跟着《火星生活》(Life on Mars)一起唱更重要的话。这种类型的设计失败已经出现在各种安全关键系统中,包括汽车。

第三个(但并非最终的)设计原则是:“不要与陌生人交谈。”系统中的许多最新功能——比如汽车系统——都是为了使它们成为互联网的延伸。我不知道你最近有没有看到互联网,但它不是一个安全的空间。为什么每个人都应该在开车时被电子邮件分心,这超出了KV的理解,但这显然是营销想要推动的事情,所以,违背所有理智,它肯定会发生。这一领域已经出现了白帽攻击者对汽车的大规模占领,所以很明显,这是一个重要的设计原则,任何告诉我这个问题可以通过防火墙解决的人都会被拖到SUV后面扔下悬崖。添加防火墙会增加复杂性,违反了前面提到的第一条原则。

具有讽刺意味的是,这份榜单并不新鲜。这些原理以这样或那样的形式存在了至少40年,但现在它们有了更大的重量,或者可能是动能。

KV

ACM队列的q戳相关文章
queue.acm.org

DNS的复杂性
保罗使得
https://queue.acm.org/detail.cfm?id=1242499

汤姆的十大高管应该知道的关于软件
托马斯·a·Limoncelli
https://queue.acm.org/detail.cfm?id3325792

编程语言
Kode恶性
https://queue.acm.org/detail.cfm?id=1035604

回到顶部

作者

乔治诉Neville-Neilkv@acm.org)是Neville-Neil咨询公司的所有者和ACM的联合主席队列编辑委员会。他从事网络和操作系统的代码编写工作,从中获得乐趣和利润,教授各种与编程相关的课程,并鼓励您发表与他有关的评论、妙语和代码片段通信列。


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

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


没有发现记录

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