S12X Patch Diffing with QBinDiff
本文通过对商用车制动电子控制单元(ECU)固件更新进行的逆向工程分析,展示了安全召回修复工作同时也通过对 S12X 架构镜像的差异化二进制分析,解决了旧版协议处理中的关键安全漏洞。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
想象一下,汽车的世界不仅仅是金属和橡胶,而是一个巨大的、移动的城市,其中的每一个部件都在相互交谈。在这个城市里,有一种非常古老且非常特定的语言,叫做 J2497,卡车及其挂车用它来互相低声传递警告,比如“我的刹车很烫”或“我正在左转”。这就像是内置在电线里的对讲机系统。多年来,工程师们一直假设卡车的“大脑”(ECU)只倾听最紧急的低语,而忽略其他的声音。但如果这个大脑实际上在倾听“一切”,甚至包括那些毫无意义的闲聊,并试图从中理解意义呢?这正是这篇论文提出的危险问题。它深入到了逆向工程的世界——这就像是拆解一个锁住的玩具来观察内部齿轮是如何运作的——以查明一家卡车公司发布的“安全修复”是否实际上是一个隐藏在众目睽睽之下的秘密安全补丁。
这篇论文的作者本·加德纳(Ben Gardiner)及其同事决定调查一起涉及重型卡车 Bendix EC80 制动控制器的重大安全召回事件。官方说法是,由于卡车的“大脑”会被挂车线路上的“噪声”搞糊涂,导致其崩溃并失去制动力,因此需要进行固件更新。公司发布了一个补丁来阻止这种噪声造成麻烦。但研究人员想知道:这种“噪声”仅仅是随机的静电干扰,还是为黑客留下的一扇敞开的大门?
为了找出答案,他们玩了一场“找不同”的游戏,对象是卡车的软件。他们抓取了“大脑”代码的“之前”版本和“之后”的版本(即补丁版本),并进行了逐字节的对比。这就像是在对比两个版本的庞大说明书。在旧的说明书中,有数百页专门用于倾听挂车可以发送的每一种类型的消息。而在新的说明书中,这些页面被撕掉并扔掉了。
研究人员意识到,“安全修复”不仅仅是在清理静电;它还移除了一整套极其脆弱且危险的功能库。他们发现旧的代码中存在着足以让卡车驶过的巨大漏洞。具体来说,他们发现旧软件存在“缓冲区溢出”漏洞。想象一个应该盛放 10 加仑水的桶,如果你试图往里倒入 100 加仑水,桶就会溢出并洒得到处都是。在卡车的“大脑”中,黑客可以发送一条看起来只有少量数据的消息,但实际上却在秘密地命令大脑将海量数据灌入一个微小的内存桶中。这导致大脑“溢出”了自己的指令,从而允许黑客夺取控制权。
论文证实,通过移除这些特定的功能,该补丁有效地关闭了这些大门。他们通过在工作台上以及在行驶的车辆中尝试破坏旧软件来进行测试。他们发现,使用旧代码,他们可以使卡车制动系统崩溃(拒绝服务攻击),或者在某些情况下,远程控制车辆(远程代码执行)。他们还发现了一个“硬编码密码”,如果猜对了,就可以关闭卡车的牵引力控制系统。
这个故事最令人兴奋的部分在于,卡车公司并没有承认这些安全漏洞。他们只是说:“我们修复了一个安全缺陷(safety bug)。”但研究人员证明,“安全缺陷”和“安全漏洞(security hole)”其实是同一回事。这次更新不仅防止了卡车崩溃,也阻止了黑客劫持车辆。论文得出结论,该补丁是一个伪装的安全修复,它移除了任何在挂车附近拥有无线信号的人利用这些缺陷进行攻击的能力。这提醒我们,在数字时代,修复一个安全问题往往意味着堵住一个安全漏洞,即使没有人公开说出来。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。