大众排放丑闻:物联网的丧钟?

一则或许对你有用的小广告

欢迎加入小哈的星球 ,你将获得:专属的项目实战 / Java 学习路线 / 一对一提问 / 学习打卡/ 赠书活动

目前,正在 星球 内带小伙伴们做第一个项目:全栈前后端分离博客项目,采用技术栈 Spring Boot + Mybatis Plus + Vue 3.x + Vite 4手把手,前端 + 后端全栈开发,从 0 到 1 讲解每个功能点开发步骤,1v1 答疑,陪伴式直到项目上线,目前已更新了 204 小节,累计 32w+ 字,讲解图:1416 张,还在持续爆肝中,后续还会上新更多项目,目标是将 Java 领域典型的项目都整上,如秒杀系统、在线商城、IM 即时通讯、权限管理等等,已有 870+ 小伙伴加入,欢迎点击围观

如果不将我们的集体 Fahrvergnügen 替换为 Schadenfreude ,就很难读到关于最近的大众汽车排放丑闻的一个字。大型德国汽车制造商被发现伪造排放数据。头要滚了!

虽然我们不得不称赞大众高管最终承认了欺骗行为,但他们找替罪羊是另一回事。根据大众领导层的说法,这起令人遗憾的故事是谁的错? 三个流氓软件工程师

严重地?涉及数十亿美元的风险,谁负责计划和执行涉及数十万辆汽车的大规模掩盖?三个 编码员

尽管这种相互指责听起来难以置信,但有关这个肮脏故事中谁在何时做了什么的具体信息尚未披露。所以从现在开始,我将假设性地发言。

那么,假设地讲,让我们考虑一个我们称之为 XY 的汽车制造商。 XY 排放设备软件的程序员是否可能是这种越轨行为的肇事者?

对软件进行编程当然有可能产生不正确的结果。毕竟,您可以对软件进行编程以提供您想要的任何结果。然而,任何优秀的软件质量保证 (SQA) 团队都应该能够捕捉到此类恶作剧。

SQA 的基础是 白盒 黑盒测试 。白盒意味着测试人员分析源代码本身——这通常会捕获任何故意给出错误结果的代码。

然而,即使编码人员的渎职行为足够微妙,可以绕过白盒测试,那么黑盒测试也应该让他们绊倒。

通过黑盒测试,测试人员从一组测试数据开始,然后通过软件运行它们。他们根据预期结果检查实际结果。如果它们不匹配,那么他们就知道有问题。由于恶意代码的全部意义在于生成不正确的结果,因此任何称职的黑盒测试都应该指出犯罪行为。

我们只能假设有问题的代码通过了所有测试。因此,至少,XY 的测试人员要么不称职,要么与三名流氓工程师勾结——这两种情况中的任何一种都表明存在比三个坏程序员苹果更广泛的问题。

内部校准攻击

那么,XY 的肮脏欺骗故事中的肇事者是否是一个涉及工程师和测试人员的广泛阴谋?也许,也许不是。

还有另一种完全伪造排放数据的方法,这种方法不必涉及为排放设备编写代码的工程师或测试人员。这种方法是 校准攻击

校准攻击离网络安全雷达还很远,以至于它们甚至还没有维基百科页面。这是令人惊讶的,因为它们不依赖于恶意代码,而且加密并不能阻止它们,因此它们成为了黑客箭袋中的一支大箭。

在 XY 的案例中,他们的诡计实际上可能是这样的内部校准攻击。这是它的工作原理。

每辆汽车中都有排放传感器,可生成原始数据流。这些原始数据必须设法进入产生误导性结果的排放装置内运行的软件。但介于两者之间,无论是在物理设备上还是作为软件本身的算法,都必须有一个 校准 步骤。

此校准步骤使原始数据与这些数据的真实含义保持一致。例如,如果传感器正在检测排气中颗粒物的百万分之一 (PPM),则在受控测试期间,特定的传感器读数将是某个数字,例如 48947489393。然而,如果没有适当的校准,就无法理解这个数字。

为了进行校准,校准工程师会使用模拟测试工具来确定当时的实际 PPM 值,比方说,3.2 PPM。校准因子是 48947489393 与 3.2 的比值,即 15296090435.3125(在现实世界中,公式可能更复杂,但你明白了)。

然后,工程师会在某处(通过物理方式或通过在软件中设置校准系数)转动一个刻度盘来代表这个数字。一旦设备以这种方式正确校准,它给出的读数应该是准确的。

但是,如果校准工程师错误地进行了校准——或者恶意因素 故意引入了错误校准 ——那么最终结果将是错误的。每次。即使传感器数据没有任何问题,传感器和排放设备之间也没有安全漏洞,而且设备中的每一行代码都是完全正确的。

事实上,检测校准攻击的唯一方法是运行独立的模拟测试。换句话说,必须有人拥有自己的废气颗粒物测量装置,并在真实车辆上进行测试,以查看排放装置是否经过正确校准。

当然,这就是大众汽车的肮脏行为——哎呀,我是说 XY——最终被发现的原因。

更大的故事: 外部 校准攻击

那么,为什么我在本文的标题中加上“物联网的丧钟”呢? XY 的排放设备不在互联网上,因此不属于物联网的一部分。但当然,他们本可以成为甜甜圈的美元,很快就会成为现实。

XY 遇到麻烦最有可能的情况是 内部 校准攻击——但黑客从 外部 发起校准攻击的情况要令人不安得多。

我对这个主题的 Internet 研究发现很少有人讨论这种类型的攻击。然而,已经有一些关于医疗设备领域外部校准攻击的学术研究(参见加州大学洛杉矶分校计算机科学系的 这篇学术论文 作为例子)。

这是一个可能的场景:您的物联网智能可穿戴设备将诊断信息发送给您的医生。医生端有软件,可以用来分析来自此类设备的数据以进行诊断。

如果黑客能够破坏传输数据的校准,那么医生可能会被诱骗做出错误的诊断——即使您的可穿戴设备工作正常,医生的软件也工作正常,并且两者之间的通信不正常妥协了。

加州大学洛杉矶分校报告的结论部分写道:“传统密码学无法阻止或检测所提出的攻击,因为攻击是直接处理采样后的数据。传统密码学只能保证数据通过无线通道是安全的。”

事实上,与 XY 场景一样,检测此类攻击的唯一可靠方法是对数据运行独立的模拟测试。在 XY 的案例中, 一次 校准攻击影响了大量设备——仍然需要数年时间才有人愿意运行独立的模拟测试。

就物联网而言, 每个物联网设备 都会受到校准攻击。识别此类攻击的唯一方法是对来自或去往每个物联网端点的数据进行独立测试。

即使有运行此类测试的实用方法(目前还没有),我们仍必须问自己是否会依赖支持 IoT 的设备来运行此类测试。如果是这样,我们还没有解决问题——我们只是扩大了威胁面,将我们用来发现校准攻击本身的设备包括在内。

Intellyx 采取

假设您刚刚穿上了您喜欢的新型健身可穿戴设备。你去跑步,当你回来时,你接到医生的紧急电话,他告诉你你的血压是 150 超过 100——这是一种危险的高血压病例。

但是你问自己,你怎么知道这些值是准确的?好吧,你不知道。唯一的判断方法是使用不同的设备测试您的血压并比较结果。所以你借了你配偶的新奇健身可穿戴设备,它给了你的医生同样的读数。

如果它们是同一制造商的同一型号,那么您当然仍然会怀疑。但即使它们是不同的设备,您也无法知道医生的软件是否经过正确校准。

所以你拿出你值得信赖的血压计(就像我们每个人的药柜里都有一个一样),用老式的方法测试你的血压。

然后你就会明白了。无论如何,这种花哨的新型健身可穿戴设备有什么用?你会怀疑它会给你的医生带来的任何读数,所以为了聪明起见,你无论如何都会戴上那个老式袖带以获得值得信赖的读数。但是,如果您打算这样做,那么为什么首先要为新的 IoT 小玩意儿烦恼呢?

这种血压情况比 XY 情况简单,因为我们只担心单个读数。然而,在一般情况下,我们拥有永无止境的传感器数据流,我们需要复杂的软件来从他们试图告诉我们的信息中得出正面或反面。

如果校准攻击已经破坏了我们的物联网传感器数据,那么唯一的判断方法就是一次检查所有这些数据——随着我们的物联网传感器数据流变得越来越大,这项任务变得非常不切实际。

加密无济于事。测试您的软件无济于事。随着时间的推移,这个问题只会变得更糟。物联网的丧钟?你是法官。