0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

嵌入式设备也要预防攻击?

机智云 2022-10-13 10:17 次阅读

以前的嵌入式系统对安全问题相对不那么重视,但随着时间的推移,你会发现很多嵌入式设备都在做各种“保护措施”,你平时在产品开发和设计时,有注意安全问题吗?

b718b67c-4a5a-11ed-b116-dac502259ad0.png嵌入式系统12种常见攻击嵌入式系统的攻击可根据其目标分为三类:

  • 基于软件的攻击
  • 基于网络的攻击
  • 旁道攻击

b72481d2-4a5a-11ed-b116-dac502259ad0.jpg让我们找出针对这些类型攻击的关键特征,常见示例以及可能的对策。b718b67c-4a5a-11ed-b116-dac502259ad0.png第一类:基于软件的攻击基于软件的攻击针对系统的大脑-管理设备的应用程序。对软件的成功攻击使黑客能够访问数据或获得对嵌入式系统的控制。搜索软件设计和代码中的漏洞是最常见的攻击手段,因为可以远程进行此类攻击。而且,基于软件的攻击不需要黑客的专业知识,因为他们可以使用典型的攻击,例如部署恶意软件和暴力破解。最普遍的基于软件的攻击包括:· 恶意软件·暴力访问·内存缓冲区溢出·利用web服务对嵌入式系统的恶意软件攻击与任何其他系统的工作方式相同:黑客部署了一段恶意代码,这些代码试图拦截存储在系统内部的数据,控制受害系统或对其进行破坏。通常,黑客会伪造固件更新,驱动程序或安全补丁来分发恶意软件。为了防止此类攻击,可以实施以下保护措施:

  • 应用黑名单方法,即开发人员为系统检测到的任何新恶意软件创建签名,并将这些签名添加到嵌入式系统固件中。当系统检测到具有已知签名的软件时,它将不会运行它。
  • 使用白名单保护,为所有受信任的软件源创建特定的签名。这允许系统只运行具有正确签名的软件。

简单地说,强制访问凭证就是猜测凭证的过程。大多数嵌入式系统提供对图形用户界面(GUI)的远程访问,黑客可以利用该界面进行攻击。你可以通过使用强密码和限制登录尝试次数来防止暴力强制攻击。内存缓冲区溢出是一种攻击,当黑客手动溢出分配给包含在嵌入式系统中移动的数据的内存缓冲区时。黑客部署的漏洞攻击使内存缓冲区充满了过多的数据。在这种情况下,嵌入式操作系统将把其中的一些数据记录到缓冲区旁边的内存段中。记录的数据可能包含外壳代码或其他漏洞,帮助黑客获取凭据并提升其访问权限。通过创建一个沙箱将溢出的数据与系统隔离,可以解决此问题。请记住,你的沙箱必须非常复杂,因为许多现代漏洞利用了躲避沙箱的技术。b718b67c-4a5a-11ed-b116-dac502259ad0.png第2类:基于网络的攻击这种攻击利用网络基础设施漏洞,也可以远程执行。利用这些漏洞,黑客可以侦听、拦截和修改嵌入式系统传输的流量。让我们看一下最常见的基于网络的攻击:· 中间人(MITM)·域名系统(DNS)中毒·分布式拒绝服务(DDoS)·会话劫持·信号干扰MITM攻击用于拦截或更改嵌入式系统传输的数据。为了执行它,黑客改变两个设备的连接参数,以便在它们之间放置第三个设备。如果黑客可以获得或更改这两个设备使用的加密密钥,他们就可以以一种很难检测到的方式进行窃听,因为这不会对网络造成干扰。通过加密传输的数据并使用Internet协议安全(IPsec)安全地传输密钥和数据,可以防止或阻止MITM攻击。DNS中毒会迫使本地DNS服务器根据黑客的需求修改其记录。DNS服务器将可记忆的域名和主机名转换为相应的IP地址。通过使用DNS服务器的漏洞并毒害其缓存,黑客可以将流量从目标网站重新路由到任何其他地址。域名系统安全扩展(DNS-SEC)协议通过对DNS发布或传输的任何数据进行数字签名来防止DNS服务器中毒。DDoS是一种众所周知的攻击,它通过来自不同来源的请求使系统溢出从而使系统不可用。这种攻击很难阻止,因为请求量巨大。没有针对DDoS攻击的通用保护。但是,在你的嵌入式软件中添加防火墙以及流量分析和过滤算法将大大提高防止DDoS攻击或及时检测它们的机会。会话劫持类似于MITM攻击,但目标不同:黑客侦听嵌入式系统流量以获取身份验证凭据。执行劫持的方法有多种:固定用户会话标识符,窃取会话缓存,跨站点脚本等等。防范此类攻击的方法很经典:对凭据和可能包含凭据的任何数据进行加密,定期更改凭据,以及在会话结束时处置与会话相关的任何数据。 信号干扰在无线网络中很常见。借助这种技术,黑客会在网络中造成干扰,从而干扰或扭曲来自设备的通信。根据干扰器的类型,它可能会阻塞信道上的任何通信,在目标设备传输数据时开始工作,或者在检测到特定数据包时被激活。这样的攻击会使嵌入式系统不可用。要停止信号干扰,请部署适合你软件的抗干扰机制 [PDF]。请记住,此保护措施还将保护你的嵌入式系统免受其他设备造成的意外干扰。b718b67c-4a5a-11ed-b116-dac502259ad0.png第3类:旁道攻击旁道攻击是利用嵌入式系统中的硬件安全缺陷来攻击它们。旁道攻击是最困难和最昂贵的攻击类型,因为它需要精确了解目标系统的硬件设计和物理可用性。为了进行侧信道攻击,黑客收集系统功耗、电磁泄漏、操作时间等信息。因此,他们可以计算出系统和连接设备的内部操作,窃取密码密钥,甚至获得对系统的控制权。以下是最常见的旁道攻击列表:· 功率分析·定时攻击·电磁分析功耗分析攻击需要对嵌入式系统进行物理访问,以便探测其连接并检测功耗的变化。这些变化取决于系统处理的数据,因此黑客可以检测到系统何时处理特定类型的信息并截获它。要防止此攻击,请使用数据屏蔽技术修改敏感内容,使其看起来像不重要的数据。定时攻击是基于嵌入式系统操作的时间。它们用于获取信息,如应用的加密算法、指令时间和代码分支中的数据依赖差异、缓存访问时间等等。这种类型的攻击还需要对设备进行物理访问和对嵌入式系统架构的深入了解。由于定时攻击强烈依赖于线性和可预测的软件操作,你可以通过使用随机数对空闲周期中的活动进行重新安排来防止此类攻击。基于此对嵌入式系统的时序分析将具有极大的挑战性。电磁分析为黑客提供了另一种无需黑客攻击就能查看嵌入式软件的方法。黑客可以使用电磁分析来记录和分析设备的发射,找出其加密操作,甚至提取秘密密钥。这是最耗时且成本最高的攻击类型,因为它需要:·物理上接近嵌入式系统·有关系统嵌入到的设备的布局的信息·与其他设备隔离以保护系统免受电磁干扰硬件设计师可以通过降低信号强度或增加物理保护(例如使用某些类型的胶水或电路和电线屏蔽)来使收集电磁信号变得困难。随机性和加密过程的中断也是对抗电磁分析的有效措施。我们上面讨论的嵌入式系统的网络安全措施可以帮助你预防或阻止特定类型的攻击。在下一部分中,我们提供了11条建议来有效保护嵌入式硬件和软件。b718b67c-4a5a-11ed-b116-dac502259ad0.png保护嵌入式系统的11个最佳实践在开始编码之前,请研究嵌入式软件开发的行业标准,以发现有效的安全措施和开发实践。例如,注意: ·OWASP嵌入式应用程序安全性·IEEE标准·NIST 为物联网设备制造商提供的基础网络安全活动 ·IPA的嵌入式系统开发过程参考指南 通过以下实践,你可以在从设计到支持的所有开发阶段使你的保护更加可靠:b75119cc-4a5a-11ed-b116-dac502259ad0.jpg提高嵌入式系统安全性的11个最佳实践。b718b67c-4a5a-11ed-b116-dac502259ad0.png第一类:设计和软件配置1.使用安全的语言。在编写第一行代码之前,请针对你选择的语言研究嵌入式软件开发标准。例如,如果你要使用C或C ++,请首先学习MISRA-C / C ++。2.启用安全启动。此功能允许微处理器在执行固件之前验证加密密钥和固件的位置。为了增强这种保护,您还可以启用处理器的受信任执行环境功能,该功能在微处理器中创建一个安全区域来存储固件。3.禁用不安全和不必要的服务。要定义此类服务,你需要分析系统的操作。通常,此类服务的列表包括Telnet和琐碎文件传输协议,调试代理,开放端口等。b718b67c-4a5a-11ed-b116-dac502259ad0.png第2类:内存和应用程序安全1.限制内存分配。实现一个内存管理单元,为缓冲区、操作系统和应用程序分配足够的内存。内存管理单元有助于保持嵌入式系统运行的平衡,并防止内存缓冲区溢出。此外,尽可能将内存切换到只读模式。2.创建分区。将嵌入式系统的重要部分(如操作系统、GUI和安全应用程序)划分为不同的分区,有助于将它们彼此隔离并包含攻击。分区可以是物理分区和虚拟分区。b718b67c-4a5a-11ed-b116-dac502259ad0.png第3类:通讯安全1.实施访问控制。不受保护地访问嵌入式系统的任何部分都是对黑客的公开邀请。要保护您的访问点,请使用强凭据并对其进行加密,实现最小权限原则,并尽可能启用身份验证。2.保护通信通道。实现IPsec、DNS-SEC、SSH或SSL协议,并使用VPN保护与嵌入式系统的任何通信。部署防火墙来过滤流量也是一个很好的做法。b718b67c-4a5a-11ed-b116-dac502259ad0.png第4类:数据保护1.加密所有内容。所有固件更新、传输和处理的数据以及存储的凭证都必须加密。使用加密签名来验证从可信来源获得的文件并检测可疑的修改。
2.混淆目标代码。混淆是一个过程,使你的代码纠缠在一起,对黑客来说不清楚,但在嵌入式系统中是可执行的。甚至可以通过混淆来加速代码的执行。这项措施将使黑客更难对你的代码进行反向工程。b718b67c-4a5a-11ed-b116-dac502259ad0.png第5类:发布和支持1.进行端到端威胁评估。完整的安全评估包括:a.从设备制造商,软件开发人员和最终用户的角度执行完整的生命周期分析并识别潜在威胁b.创建风险矩阵,并通过每个可能的渠道估算攻击的可能性和成功率c.自己模拟黑客攻击或进行黑盒渗透测试2.定期更新软件。无论为旧的嵌入式系统开发软件有多么困难,这样做总是有益的。在新的软件版本中,你可以推出其他安全措施,以抵消新型攻击或修补漏洞(如果在产品发布后发现一个漏洞)。别忘了添加如上所述的黑名单和白名单保护。这些方法将阻止从不受信任的来源安装软件。有了这些实践,你就可以使网络犯罪分子更难为嵌入式系统盗用你的软件。 b718b67c-4a5a-11ed-b116-dac502259ad0.png最后为嵌入式系统开发软件是一个很大的挑战。开发人员必须实现所有必需的功能,同时要考虑多个设备的限制并保护软件免受攻击。
当然,威胁可能来自不同的来源和渠道,因此在微处理器和少量内存中安装针对所有这些威胁的保护似乎是不可能的。

参考来源:https://www.apriorit.com/dev-blog/690-embedded-systems-attacks

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    5082

    文章

    19126

    浏览量

    305218
收藏 人收藏

    评论

    相关推荐

    新手怎么学嵌入式?

    新手怎么学嵌入式? 在科技飞速发展的今天,嵌入式技术已经渗透到我们生活的各个角落,从智能手机到智能家居,从汽车电子到医疗设备。对于新手而言,嵌入式技术就像是一座充满神秘和机遇的宝藏,等
    发表于 12-12 10:51

    什么是嵌入式人工智能

    嵌入式人工智能是指将人工智能技术应用于嵌入式系统中的一种技术。嵌入式系统是嵌入到其他设备或系统中的计算机系统,通常用于控制、监测或执行特定任
    的头像 发表于 12-11 09:23 299次阅读
    什么是<b class='flag-5'>嵌入式</b>人工智能

    什么是嵌入式操作系统?

    什么是嵌入式操作系统? 想象一下,如果一个智能设备,比如你口袋里的智能手机,是一个有头脑的机器人,那么嵌入式操作系统(Embedded Operating System,简称EOS)就相当于这个
    发表于 11-08 15:07

    什么是嵌入式?一文读懂嵌入式主板

    在现代科技浪潮中,嵌入式技术已成为支撑各种智能设备和系统运行的核心力量。那么,究竟什么是嵌入式嵌入式系统,顾名思义,是将计算机的硬件和软件嵌入
    的头像 发表于 10-16 10:14 977次阅读

    【「嵌入式Hypervisor:架构、原理与应用」阅读体验】+ Hypervisor应用场景调研

    Hypervisor有两个类型:I型和II型,其中I型直接运行在硬件设备上,II型运行在一个操作系统上,该操作系统运行在硬件设备上,也就是下图中的宿主操作系统。 而我所关心的嵌入式Hypervisor属于I型
    发表于 10-14 11:21

    嵌入式主板是什么意思?嵌入式主板全面解析

    嵌入式主板,通常被称为嵌入式系统的核心组件,是一种用于控制和数据处理的计算机硬件,其设计旨在嵌入特定设备中执行专门任务。嵌入式主板如同是
    的头像 发表于 09-30 10:05 472次阅读

    嵌入式工控主板在金融智能设备行业应用

    嵌入式工控主板在金融智能设备行业的应用广泛且深入,其重要性不言而喻。以下是从几个关键方面来阐述嵌入式工控主板在金融智能设备行业的应用:
    的头像 发表于 07-11 09:38 294次阅读

    如何提升嵌入式编程能力?

    和使用。 9. 网络编程:嵌入式设备越来越多地连接到网络,因此学习TCP/IP、UDP、HTTP等网络协议是必要的。 10. 关注安全性:了解嵌入式系统的安全问题,学习如何编写安全的代码以保护系统免受
    发表于 06-21 10:01

    入门嵌入式系统这些知识你知道吗?

    嵌入式系统是一种专用的计算机系统,作为装置或设备的一部分。通常,嵌入式系统是一个控制程序存储在ROM中的嵌入式处理器控制板。事实上,所有带有数字接口的
    发表于 05-03 09:54 579次阅读

    嵌入式主板,你了解多少?

    嵌入式主板,也称为嵌入式计算机主板,是一种专门设计用于嵌入式系统的计算机主板。与台式机和笔记本电脑中使用的常规主板不同,嵌入式主板设计用于集成到更大的电子
    的头像 发表于 04-17 15:11 1458次阅读

    嵌入式fpga是什么意思

    嵌入式FPGA是指将FPGA技术集成到嵌入式系统中的一种解决方案。嵌入式系统是一种为特定应用而设计的计算机系统,它通常包括处理器、内存、外设接口等组件,并且被嵌入到更大的
    的头像 发表于 03-15 14:29 1260次阅读

    fpga是嵌入式

    FPGA(现场可编程门阵列)不是嵌入式系统,但FPGA在嵌入式系统中有着重要的应用。
    的头像 发表于 03-14 17:19 2321次阅读

    嵌入式系统发展前景?

    嵌入式系统发展前景? 嵌入式系统,从定义上来说,是一种专用的计算机系统,它被设计用来控制、监视或者帮助操作一些设备、装置或机器。在过去的几年里,嵌入式系统已经取得了显著的进步,而未来,
    发表于 02-22 14:09

    嵌入式学习步骤

    开发。 嵌入式学习步骤总结如下: (1).确定目标平台:选择适合您要开发的嵌入式系统的硬件平台。这取决于您要控制的设备以及您需要执行的任务。 (2).选择编程语言:嵌入式系统通常使用C
    发表于 02-02 15:24

    啥是嵌入式嵌入式都有啥?薪资如何?前景如何

    嵌入式系统(Embedded Systems)是一种特殊类型的计算机系统,被嵌入到其他设备或系统中,用于执行特定的任务或控制特定的功能。这些系统通常设计用于特定的应用领域,具有特定的硬件和软件要求
    的头像 发表于 01-17 16:39 934次阅读
    啥是<b class='flag-5'>嵌入式</b>?<b class='flag-5'>嵌入式</b>都有啥?薪资如何?前景如何