当前位置: 首页 > 科技观察

智能城市即将来临:如何减少智能城市中的软件漏洞?

时间:2023-03-23 01:55:08 科技观察

Synopsys软件完整性小组高级安全策略师JonathanKnudsen分享了如何减少智能城市中的软件漏洞……我们生活在激动人心且瞬息万变的时代。设备、网络和软件方面的技术进步使几年前无法想象的应用程序和服务成为可能。5G网络的到来提高了网络的容量和速度,这将迎来一个新的可能时代。智慧城市就是这样一种可能性。智能城市只是指使用传感器收集信息和软件来解释信息并根据这些信息采取行动的城市空间。以下是我们可能会在智慧城市中发现的一些功能:如果城市的停车位有传感器知道它们何时被使用,司机可以使用应用程序找到可用的停车位并支付费用。使用交通信号灯上的传感器和摄像头来监控交通,智慧城市可以根据实时情况优化交通流量。支持网络的垃圾箱可以在需要清理时通知智慧城市管理部门,从而优化资源。晚上,当附近没有车辆或行人时,智慧城市可以通过调暗路灯来节省能源。毫无疑问,网络、物联网(IoT)设备和软件的持续扩散将使我们无法想象的应用成为可能。与此同时,爆炸性的技术发展将使犯罪的规模和影响增加到我们无法想象的程度。该怎么办?我们如何确保未来的智慧城市不受影响?不幸的是,没有什么是安全的。坏事会发生;你能做的最好的事情就是减少坏事发生的可能性。例如,如果你去骑自行车,你就有跌倒和头部严重受伤的风险。如果您在骑行时戴上头盔,您头部严重受伤的风险就会降低。智慧城市也不例外。它的目的不是为了防止意外,坏事肯定会发生——至少是系统故障或恶意攻击。但这并不意味着我们不能以最小化这种风险的方式设计和建设智慧城市。智慧城市的大部分风险将来自软件。软件运行在物联网设备上,充当智慧城市的耳目;软件在聚合和协调这些设备的系统上运行;软件将根据数据和用户行为做出决策并采取行动;软件将处理金融交易和记录保存;该软件将应用于未来智慧城市的每一个角落。事实上,软件已经无处不在,只是在未来只会越来越普遍。此外,几乎所有软件都建立在其他软件之上。开源软件组件被用作构建新软件的构建块。应用程序和系统最终是一堆复杂的软件组件,一个令人眼花缭乱的复杂结构。从最近的新闻报道中可以看出软件的风险有多大。勒索软件攻击、系统故障、妥协和数据泄露已变得司空见惯。值得庆幸的是,创建更好、更安全的软件的过程是众所周知的:这是一个安全开发生命周期(SDLC,或SDLC),其中安全是每个开发阶段的一部分。威胁建模等设计时分析有助于将安全性构建到系统本身的结构中,而在整个实施和测试阶段进行的各种类型的安全测试有助于识别可以在软件发布之前修复的弱点。持续监控软件供应链有助于确保在出现新的供应链漏洞时快速发布应用程序更新。同样重要的是要注意应用程序团队通常更关注功能而不是安全性。在各种紧急项目的匆忙中,他们可能会忽视或推迟安全问题。许多软件供应商通常对系统故障问题非常不负责任,下游消费者误认为他们的供应商已经承担了安全责任。而且,不幸的是,软件安全性很难量化。理想情况下,我们希望软件具有安全评分或评级。例如,在智慧城市的情况下,我们会要求所有软件都具有一定的最低安全系数。因此,我们需要对智能道路或应急服务等关键系统提出更高的要求。虽然相应的评分系统仍然是一个遥不可及的梦想,但我们可以观察到软件是如何构建的。供应商是否使用SDLC?他们是否进行了必要的安全流程操作,例如威胁模型和安全测试结果?最近NCSC关于智慧城市等“互联场所”的指南是朝着正确方向迈出的一步。认识到安全性必须是任何软件系统的一部分很重要,但量化它会很困难。政府可以推荐指南;他们是如何执行的?同样,应用程序和设备的购买者如何知道他们希望使用的产品的风险要低多少?提高构建者和购买者的软件安全意识是构建更安全、更具弹性的关键软件基础设施的第一个重要步骤。构建者需要在应用程序开发的每个阶段都包括安全性,从设计到实施、测试和维护。静态代码分析、软件组成分析和模糊测试等自动化工具可以帮助在开发周期中消除更多漏洞,从而产生更具弹性和安全的产品。买家需要意识到他们购买的产品的安全性是最重要的。他们需要了解软件是如何创建的,并根据供应商和产品的构建方式以及他们处理安全和风险的方式来评估供应商和产品。构建智慧城市等未来基础设施的最佳方式是睁大眼睛,充分了解如何将风险降至最低。