汽车安全测试的最佳实践与克服挑战的技巧 Part 2
导语:在本文中,我们将讨论如何保护汽车软件,以及为什么安全测试如此重要。
汽车软件的常见攻击向量
普通汽车包含一百多个运行某种软件的 ECU,黑客可以攻击其中的任何一个。但是网络犯罪分子最感兴趣的是车辆的哪些部件可以让他们访问有价值的数据或交出对整个车辆的完全控制权。
让我们看一下汽车软件的关键攻击向量:
汽车领域的关键网络攻击媒介
· 无钥匙进入系统。许多现代车辆使用无钥匙遥控钥匙而不是传统钥匙。这个遥控钥匙发送一个短波无线电信号,当汽车的接收器接收到它时,它会解锁车门、启动发动机或启动其他一些动作。钥匙对司机来说很方便,但也很容易被犯罪分子滥用。犯罪分子可以使用中继设备将信号从遥控钥匙传输到汽车,即使它们相距很远。利物浦维多利亚的保险研究表明,48% 的车辆盗窃索赔是特斯拉、宝马、捷豹、雷克萨斯和其他豪华品牌的无钥匙盗窃。
· 车载移动应用程序。移动应用程序为驾驶员提供改进的导航、汽车气候控制、自动泊车、远程解锁、娱乐和许多其他便利功能。它们还可用于安排汽车共享和车队管理。但是,黑客可能会通过绕过签名验证系统、安装自己的签名以及为应用程序提供 root 访问权限来破坏这些功能。通过被入侵的车辆移动应用程序,犯罪分子可以窃取保存在车辆应用程序中的凭据,并进一步滥用车辆和与其同步的设备。
· 汽车制造商服务器。根据Upstream Security的数据,与 2019 年相比,2020 年汽车制造商服务器攻击的数量增长了 73% 。制造商服务器处理车辆内外的所有通信,包括与驾驶员的移动设备以及其他车辆的通信。对于恶意行为者来说,这是一个有利可图的攻击面。攻击者可以使用勒索软件感染目标服务器、拦截传输的数据或执行拒绝服务 (DoS) 攻击。通过这种方式,黑客可以窃取敏感数据或破坏汽车服务的工作。
· 汽车传感器。传感器收集有关汽车周围环境的信息,例如天气、道路标记、轮胎压力、发动机转速和燃油温度。使用传感器欺骗或信号干扰,黑客可以改变车辆的行为。他们还可以捕获传感器信号并对其进行逆向工程以了解汽车的内部系统。
· 信息娱乐系统。该系统为驾驶员和乘客提供有用的信息和娱乐内容。信息娱乐系统积累了大量的个人数据:凭证、浏览历史、旅行路线、个人偏好。恶意行为者可以拦截来自信息娱乐系统的流量并扰乱其设置。通过这种方式,他们可以窃取司机的敏感数据。
· Wi-Fi、蓝牙和蜂窝连接。网络连接系统可以成为黑客进入信息娱乐系统的入口点。从那里,他们可以访问关键的汽车部件、影响车辆行为或窃取传输的数据。通过破坏网络连接,黑客甚至可以同时攻击多辆汽车。
· 车载网络。这些网络由实时工作的 ECU 和控制区域网络 (CAN) 总线组成。按照设计,ECU 和 CAN 总线首先接受任何数据,然后对其进行验证并将其发送到其他车辆组件。如果软件开发商此时不实施数据加密,黑客就可以利用这种数据处理机制。他们可以滥用它并用垃圾数据包淹没车载网络,创建 DoS 攻击,或者嗅探流量并从中提取敏感数据。
· 板载诊断 (OBD)、SD 卡和 USB 端口。攻击车载 OBD 或 USB 端口是一种不太普遍的攻击类型,因为它需要对目标车辆上的端口进行物理访问。然而,攻击者可以通过车载端口造成大量破坏:向设备注入恶意软件、控制车辆、劫持交通或访问各种车辆组件。
如您所见,这些攻击通常针对隐藏在汽车软件和嵌入式车载系统中的特定弱点和漏洞。为确保网络犯罪分子无法利用您的汽车软件解决方案,您需要确保在将产品投放市场之前检测并解决这些安全问题。这就是汽车软件安全测试发挥作用的地方。
测试汽车网络安全的最佳实践
要验证汽车软件的安全性,请考虑遵循以下七个最佳实践:
汽车软件的 7 个安全测试最佳实践
1.研究并遵循最新的网络安全要求。正如我们上面提到的,许多政府和标准化机构正在研究汽车软件安全的要求。这就是为什么您需要不断关注新出现的法律、法规和标准。关注那些仍在开发或讨论中的内容也是有意义的。由于车辆生产周期持续数年,因此您可能需要在预发布安全测试期间考虑这些要求。
2.同步生产、开发和测试。汽车安全需要与软件开发和汽车生产流程同时进行测试。这样,安全测试团队可以在开发过程中检测漏洞并避免重大代码返工。在物理车辆硬件上测试安全性和软件行为也很重要。要同步这些活动,您可以实施灵活的项目管理方法,例如敏捷和 Scrum。
3.应用模糊测试。使用随机数据注入车辆软件组件并寻找故障是一种称为模糊测试或模糊测试的有效安全测试技术。模糊测试是发现可破解的错误和代码错误的可靠方法,如果不加以解决,可能会导致软件崩溃、行为变化以及内存和数据泄漏,甚至可能成为潜在的后门。
4.分析软件组成。汽车软件通常由几个使用开源代码及时交付组件的第三方供应商开发。其中一些开源组件可能包含已知漏洞并成为恶意行为者的入口。手动发现用于构建汽车软件的所有开源库和解决方案非常耗时,并且容易出现人为错误。软件组合分析工具可以为您的测试团队自动完成这项工作。
5.特别注意集成测试。考虑到有多少汽车软件组件是由不同的团队甚至组织开发的,它们之间很有可能发生意想不到的交互。这些交互可以隐藏潜在威胁,例如建立不受保护的连接或接受来自未知来源的数据。这就是为什么汽车软件需要对所有组件进行仔细的集成测试。
6.进行渗透测试。汽车渗透测试模拟对汽车软件的攻击,试图发现任何漏洞并评估攻击的潜在损害。汽车渗透测试可以由熟悉软件的内部安全测试团队或可以从新角度分析您的产品的外部团队进行。
7.定期更新您的软件。黑客更有可能以安装过时软件的汽车为目标,因为他们已经了解该软件中的安全漏洞。这就是为什么您需要定期针对新类型的攻击测试您的代码并推出新的安全更新。
遵循这些最佳实践将帮助您优化安全测试过程、检测代码中的更多漏洞并发布安全软件。但是,您需要注意测试汽车软件安全性的几个挑战。
汽车安全测试的挑战
凭借独特的测试条件和实践,您的 QA 团队可能面临独特的挑战。这些挑战的一部分与汽车行业的整体特征有关,您在规划安全测试时需要考虑这些特征。但是通过正确的测试方法可以减轻甚至避免一些问题。
让我们来看看对汽车项目进行安全测试的主要挑战以及应对方法。
汽车安全测试的 5 个关键挑战
1.缺乏特定的测试专业知识。汽车软件的全面安全测试包括检查嵌入式、物联网、移动、虚拟、基于云和客户端-服务器系统的保护。先进的汽车系统还可以采用人工智能算法进行预测性维护和自动驾驶。在所有这些领域拥有专业技能的安全测试人员和测试团队极为罕见。这就是为什么在内部创建一个全栈团队或快速聘请具有所需技能的工程师可能是一项挑战。应对这一挑战的一个解决方案是寻找拥有所需专业知识的外包团队。
2.缺乏用于测试的物理硬件。车辆是一种安全关键设备,不能仅使用虚拟机进行测试。安全测试人员需要确保在真实设备上运行的汽车软件不会被滥用。然而,获得最终测试所需的必要硬件可能很棘手,因为它通常是根据汽车制造计划制造的。为避免等待硬件制造商,您可以使用灵活的项目管理方法并将测试活动与汽车生产同步。
3.需要快速测试 OTA 更新。当开发团队推送安全更新时,测试团队必须搁置计划任务并专注于它。他们必须确保更新修复了已发现的漏洞,并且在现实硬件上启动时不会产生新的漏洞。这是必须尽快完成的大量工作。这就是为什么 OTA 更新的安全测试必须由一个能够轻松适应新任务的高度灵活的团队来完成。
4.供应链发展标准化程度低。汽车制造商与数百家开发汽车硬件和软件组件的供应商合作。在整个供应链中保持一致的标准几乎是不可能的。供应商使用允许他们以尽可能低的成本及时交付产品的语言、操作系统、开源组件和硬件部件。这给安全测试团队带来了额外的压力,他们必须进行广泛的集成和兼容性测试,以寻找第三方代码中的漏洞。
5.高水平的所需测试覆盖率。测试覆盖率通常不是一个特别重要的指标,但它适用于汽车软件。测试覆盖率显示测试覆盖的代码百分比以及未在代码中实现的需求百分比。这两个参数都可以指示潜在的安全漏洞。测试覆盖率还有助于 QA 团队识别无用的测试用例并从中学习。然而,实现高水平的测试覆盖率需要测试团队进行大量耗时的手动工作,因为几乎没有用于汽车的自动化安全测试工具来衡量覆盖率。手动覆盖评估也为人为错误留下了空间。
结论
汽车软件使车辆更安全、更舒适、更易于管理。不幸的是,这也使他们成为黑客攻击的目标。恶意行为者可以滥用汽车软件来获取个人数据、盗窃或损坏车辆,或者破坏制造商的服务器。全面的汽车网络安全测试可帮助您在黑客之前检测到漏洞。
发表评论