原创 | 嵌入式系统网络安全的过去、现在和未来

  • A+
所属分类:逆向工程

作者:天地和兴工业网络安全研究院

编者按:随着泛在连接、自动化、数字化和智能化的发展,嵌入式系统在实现软件驱动的设备新功能方面,发挥着比以往任何时候都重要的作用,但新的网络安全威胁随之而至。嵌入式系统面临的威胁不断演变,这是值得考虑的事情。尽管无法阻止其攻防协同演化进程,但仍然有许多新的尝试来限制不断发展的新系统所带来的漏洞。
近几年,借助工业信息化和智能化发展,嵌入式系统在智能工业、智能家电中的应用也越来越普遍。随着这些设备上网步伐的加快,嵌入式系统的网络安全问题也日益凸显,给网络安全提出了新的课题。

本文聚集嵌入式系统的网络安全问题,分析影响系统安全的因素,解析系统中的关键技术,探讨系统开发过程中重要的安全策略,提供了一些嵌入式设备安全方面的建议。

一、过去的网络威胁

1971年,鲍勃·托马斯(Bob Thomas)创造了有史以来第一个电脑蠕虫病毒,该电脑蠕虫不是恶意的。它只是在通过本地交换机连接的计算机之间来回跳跃,并在屏幕上显示“我是爬虫:如果可以的话,赶快来抓我”。

第一次真正的网络攻击发生在1988年11月,当时罗伯特·莫里斯(Robert Morris)制造了一种电脑蠕虫病毒,使互联网的速度大大减慢——这一次的攻击相当严重。Morris的动机不是造成损害,而是简单地强调Unix Sendmail和密码管理中的安全缺陷。然而,蠕虫确实在无意中导致了部分互联网故障,并持续了数天,造成的损失估计在10万至1亿美元之间。

但直到1999年,微软Windows98推出,安全供应商才开始发布反黑客软件,标志着网络安全行业的开始。从那以后,黑客们一直在密切关注易受黑客攻击的设备的安全性。在这段时间里,所有的玩家,无论是攻击者还是防御者,都主要集中在计算机和服务器上。

直到最近,嵌入式系统的网络安全才成为一个问题。作为背景,嵌入式系统是位于较大系统中的控制器,通常被设计用于执行专用功能。曾经,嵌入式系统由一个硬件、一个固件组件组成,在某些情况下,一个嵌入式操作系统层层叠叠,如下面的图1所示。

原创 | 嵌入式系统网络安全的过去、现在和未来

图1:较旧的嵌入式系统架构

当时,许多嵌入式系统并不是为保护自己免受攻击而设计的。基于以下假设,未将嵌入式系统的网络安全放在首位:

  • 嵌入式系统对黑客来说不是有吸引力的目标。

  • 由于它们需要复杂的身份验证,因此它们不易受到攻击。

  • 在某些情况下,加密提供了足够的保护。

二、嵌入式系统网络安全的挑战

在当今的市场中,嵌入式系统变得越来越先进,并且在其体系结构中包含了许多软件层。在许多情况下,它们在日益复杂的嵌入式系统中执行关键任务的功能。在从航空航天、国防到家用电器的各个行业都有应用。对嵌入式设备的攻击已有许多文献记录,从车辆防盗组件到控制系统,再到打印机。在打印机的情况下,攻击者劫持了打印机,将文件的副本发送到自己的计算机,在某些情况下获得了机密或秘密信息。

首先先来看一下嵌入式系统的总体架构。下面的图2显示了图1中所示的两个层,它们是中间件层和用户应用层。中间件是向用户应用程序提供服务的软件,有时被描述为软件“粘合剂”。中间件的一些示例是数据库、应用服务器和内容管理系统。用户应用程序是为最终用户设计的程序。用户应用的示例是在车辆信息娱乐系统上运行的Internet浏览器或Android Auto。

原创 | 嵌入式系统网络安全的过去、现在和未来

图2:现代嵌入式系统的示例架构

随着嵌入式系统的日益普及和多样化,以及它们与物联网(IoT)的连接,针对这些系统的攻击越来越频繁。物联网指的是由相互连接的计算设备以及机械和数字机器组成的系统。这些设备可以在不需要人与人、或人与计算机交互的情况下通过网络传输数据。物联网涉及许多技术,并已发展到包括从分析到机器学习再到嵌入式系统的各种技术的融合。本讨论集中在嵌入式系统上。

2.1系统如何受到攻击

嵌入式操作系统通常是攻击的目标,因为它对整个嵌入式系统(硬件、中间件和用户应用层)拥有最大的控制权。攻击这些系统的参与者可能包括:研究人员、黑客、有组织犯罪和民族国家。可以利用多种方法来开发系统,但常规方法遵循如下过程:

( 1 ) 获得对系统的网络访问权限。

( 2 ) 了解底层软件,硬件和嵌入式OS。

( 3 ) 在基于主机的保护中查找漏洞,无论是硬件驱动程序、操作系统还是中间件。

( 4 ) 操作软件。

( 5 ) 利用软件或整个系统。

大多数嵌入式系统至少部署以下防御机制。

  • 钩子检测:一种检测是否有试图改变或增强软件(嵌入式操作系统,驱动程序,中间 件或应用程序)行为的方法。

  • 证明:检查未经授权的进程是否已更改软件的方法。

  • 固件/驱动程序完整性验证:检测对硬件驱动程序或固件的任何未经授权的更改的工具。

  • 逻辑校验和:一种用于检测数据传输或存储过程中可能引入的错误的机制。

  • 加密:以只有授权用户才能解码的方式对数据(存储或传输)进行编码。

  • 认证方式:一种用于检查用户名和密码并实施密码策略(长度、复杂性、过期时间等)的机制。

2.2按类型划分的漏洞

此图的数据是使用BlackBerry编译的,一个基于云的二进制静态应用程序安全测试(SAST)平台,用于突出汽车行业内嵌入式软件中的漏洞类别。报告显示,在发现的所有类别的漏洞中,大约70%是由不安全的API造成的。表1描述了可能导致每个类别中的漏洞的功能或属性。

请注意,缓冲区溢出位于“不安全API”类别下的利用漏洞列表的顶部。缓冲区溢出需要特别注意,因为它可能导致远程代码执行或攻击者控制系统。

原创 | 嵌入式系统网络安全的过去、现在和未来

图3:使用汽车数据的嵌入式软件中的漏洞类别。BlackBerry Jarvis分析。

原创 | 嵌入式系统网络安全的过去、现在和未来

表1:漏洞分类描述:

原创 | 嵌入式系统网络安全的过去、现在和未来
下图描述了2018年卡巴斯基实验室ICS CERT能够在工业和物联网系统中发掘出的成果。报告显示,截至2018年底,供应商仅能关闭约10%的漏洞(286个漏洞中的29个)。发现这些已识别的漏洞中约有50%有可能导致远程代码执行,使攻击者能够控制设备,或帮助攻击者触发拒绝服务攻击,从而使设备无法使用。
原创 | 嵌入式系统网络安全的过去、现在和未来

图4:按类型发现的ICS漏洞数量

大多数嵌入式软件开发都是由C编程语言主导的。这通常被认为是一种非常灵活但不安全的语言。如果将操作系统、C库、数学库和虚拟机管理程序安全系统认证为最适用于系统的国际标准,例如功能安全标准ISO 26262、IEC 61508或其他标准,则可以减轻一些已知的风险和漏洞。通过这些标准中任何一个的严格认证过程(包括针对设计、开发和测试的详细分析),可以减轻C编程语言的一些已知风险和漏洞。

2.3缓冲区溢出导致内存损坏

缓冲区溢出造成的内存损坏是嵌入式系统上软件中最常见的漏洞,如上面的汽车和工业漏洞数字所强调的那样。当攻击者修改软件,将数据写入内存缓冲区,使其超出缓冲区限制并覆盖相邻内存缓冲区时,就会发生缓冲区溢出攻击。这可能导致软件执行任意代码,并可能允许攻击者控制系统或导致系统崩溃。这些类型的攻击极其危险,特别是当系统正在执行关键任务时,例如,在制造设施中与人类交互时搬运重型物资的工业机器人,或者帮助导航车辆穿越交通的先进驾驶员辅助系统。能够通过内存损坏攻击系统对于攻击者来说通常很复杂,因为它需要硬件或软件进行逆向工程。此外,访问嵌入式系统的独特软件也是具有挑战性的。

但在当今市场上,嵌入式系统与物联网相连,在某些情况下,它们使用开源操作系统(如Linux),这导致攻击面大幅增加。使用开源操作系统,需要设计自己的软件对策来保护系统,并跟上不断变化的威胁。没有可信的第三方来提供持续的安全更新,或者帮助指导安全策略。

此外,与服务器或计算机等商用设备(2-5年)相比,嵌入式设备的保质期(10-20年)要长得多,更新嵌入式设备软件极具挑战性。事实上,嵌入式设备的开发被大多数系统设计者认为是不可避免的。

三、嵌入式系统网络安全的建议

今天,保护嵌入式系统有了新的希望。这三种利用漏洞的缓解措施现在正由商业嵌入式操作系统提供商实施,通常被称为三个火枪手:

  • 可执行空间保护(ESP):一种将特定内存区域标记为不可执行的技术,以便在这些区域中执行机器代码的尝试将导致异常。

  • 地址空间布局随机化:一种涉及随机定位可执行文件的基址,以及进程的地址空间中库、堆和堆栈的位置的技术。随机混合意味着攻击者不再知道所需代码的位置。这样就使得利用现有漏洞变得更具挑战性。

  • Stack canaries: OS可以在执行恶意代码之前检测到堆栈缓冲区溢出的技术。该方法通过在堆栈返回指针之前的内存中放置一个小整数(在程序启动时随机选择其值)来工作。这使得利用缓冲区溢出极具挑战性,因为在OS覆盖新的内存空间之前,会检查堆栈值,如果不相同,则会停止执行并引发异常。

但是,并不是所有的嵌入式操作系统都具备所有这些安全机制。事实上,根据Twente大学的Ali Abbasi的调查,在30个最流行的嵌入式操作系统中,只有大约7%包含这些机制。对于BlackBerry QNX 用户来说,所有这些机制都可以在QNX RTOS和QNX虚拟机管理程序中使用,无论是安全认证版本还是非安全认证版本的RTOS。

3.1准备迎接新的威胁

没有人能预测明天会发生什么,更不用说未来5到10年会发生什么了。然而,我们可以根据当前和过去的趋势做出一些假设。下面的图5显示了不同行业中易受攻击的产品数量。随着物联网现在连接嵌入式系统,通过互联网(Web、电子邮件、用户应用程序)的恶意攻击占30%以上,可移动媒体攻击约占10%,这两种攻击几乎占整个行业攻击类型的一半。

原创 | 嵌入式系统网络安全的过去、现在和未来

图5:不同行业中易受攻击的产品数量

原创 | 嵌入式系统网络安全的过去、现在和未来

图6:物联网连接设备的统计数据(2015-2025)

3.2人工智能(AI)--新的威胁来源

有一个新的威胁即将到来,它可以被认为是我们所见过的最重要的威胁之一:人工智能(AI)。这些威胁不是像电影“终结者”中的人工超级智能系统天网那样的虚构威胁。今天对嵌入式系统的攻击利用了人工智能,使机器人或自动驾驶系统等系统自动化。这些攻击之所以存在,是因为人工智能算法存在一些基本限制,攻击者可以利用这些限制来使系统发生故障或行为异常。这些攻击不同于传统的网络攻击,因为它们不是程序员或用户所犯错误的结果。这些都是由于AI的缺点造成的。让AI系统运行良好的算法还包含一些缺陷,这些限制和缺陷为网络攻击创造了机会。

3.3操作系统安全设计是最好的防线

嵌入式设备制造商需要架构和实施的安全设计必须确保所有层(硬件、驱动程序、嵌入式操作系统、中间件和用户应用程序),免受篡改、数据窃取、通信和恶意攻击。遗憾的是,这些产品的制造商甚至安全供应商都没有一种适合所有的安全设计或解决方案,但是下面列出的一些建议值得我们遵循。

  • 安全引导。

  • 身份验证。

  • 入侵检测/保护。

  • 嵌入式安全管理。

  • 安全更新。

  • 安全通信。

  • 安全监控。

  • 数据安全。

  • 嵌入式防火墙。

  • 设备篡改检测。

上面确定的一些安全方法和规定是相互依赖的。例如,为了拥有嵌入式防火墙或入侵检测/保护,需要首先确定如何执行安全更新,因为这两个项目都需要频繁更新(例如,病毒定义、特征码文件或安全补丁),以便跟上新的攻击。还应该考虑在某些情况下(如驱动程序或嵌入式操作系统)的安全更新可能需要重新启动系统。对于安全关键型设备或其他关键设备,应该在受控环境中进行。这与常规的个人计算机更新不同,在该更新中,可以在重启计算机之前保存数据。对于关键的嵌入式系统,在任何情况下都不允许发生数据丢失。

3.4网络安全构建

现在和将来防御攻击的关键是在开发系统时考虑成功攻击的风险和成本。这些成本包括经济、环境、社会、信息、个人隐私泄露和制造商品牌信誉。实施强大的安全解决方案带来的好处远远超过无所作为的代价。攻击可能会危及系统,并使工程运营、法律和其他团队无法应对后果。这些攻击以及相关攻击媒介的风险和可能性是真实存在的,并且与日俱增。当开始考虑嵌入式系统网络安全策略中的元素时,请考虑以下构件:

  • 加密:以只有授权用户才能访问的方式对信息进行编码的过程

  • 网络通信:确保嵌入式系统所有层之间通信安全的一种方法。

  • 生命周期管理:管理产品从开始到结束的整个网络安全生命周期。

  • 身份管理:策略和访问列表框架,用于确保使用嵌入式系统的适当软件或用户具有对所需资源(硬件或软件)的适当访问权限。

  • 威胁防御:预防或管理网络安全攻击。

  • 软件或驱动程序更新:安全地更新软件或驱动程序,同时确保对最终用户和整个嵌入式系统功能的影响降至最低甚至没有影响的做法。

参考资料

[1] “Cyber Threat Forecast Through 2022,” https://www.secureworldexpo.com/industry-news/isfthreat-horizon-report-2022

[2] “First Computer Virus”. https://history-computer.com/Internet/Maturing/Thomas.html

[3] “What the world’s first cyber attack has taught us about cybersecurity,”

https://www.weforum.org/agenda/2018/11/30-years-ago-the-world-s-first-cyberattack-set-thestage-for-modern-cybersecurity-challenges

[4] “Security Requirements for embedded devices – what is really needed?”

https://www.iconlabs.com/prod/security-requirements-embedded-devices-–-what-really-needed

[5] “20% of industrial control systems affected by critical vulnerabilities,”

https://www.bleepingcomputer.com/news/security/20-percent-of-industrial-control-systems-affected-by-critical-vulnerabilities/

[6] “IoT Connected devices installed base worldwide from 2015 to 2025”.

https://www.statista.com/statistics/471264/iot-number-of-connected-devices-worldwide/

[7] “Attacking Artificial Intelligence: AI’s Security Vulnerability and What Policymakers Can Do About It,”

https://www.belfercenter.org/publication/AttackingAI

[8] Technical talk by Ali Abbasi of the University of Twente on the security of RTOS found in PLC’s and other devices,  https://www.youtube.com/watch?v=rlic2A7VB80

[9] “Seventeen steps to safer C code,” https://www.embedded.com/seventeen-steps-to-safer-c-code/

[10] “Heading off the inevitable hack attack,”

https://www.sme.org/technologies/articles/2017/october/heading-off-the-inevitable-hack-attack/ 



转载请注明来自:关键基础设施安全应急响应中心

原创 | 嵌入式系统网络安全的过去、现在和未来

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: