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

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

3天内不再提示

嵌入式系统安全的 10 个致命错误

陆军航空兵 来源:陆军航空兵 作者:陆军航空兵 2022-07-20 15:20 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

嵌入式系统的一个不幸事实是:一旦部署并投入使用,它们永远不会 100% 安全,尤其是当世界变得更加紧密时。应用于这些系统的安全工程历来松懈的方法进一步加剧了这一现实。大多数设备专注于设备特定的软件,往往忽略操作系统和较低级别的组件。

随着全球数十亿嵌入式系统的使用和日益互联,攻击者有巨大的动机去设计新的和阴险的方法来提取敏感数据和/或重新利用现场设备以谋取私利。

此外,设备本身和特定功能的软件通常需要随着时间的推移进行更新,以应对新的安全威胁。犯罪黑客不断开发破坏性攻击的新方法,例如今年早些时候对佛罗里达州一家水处理厂的攻击。

让我们来看看 10 个致命的安全错误,这些错误可能会危及我们的业务、金融和关键基础设施中的嵌入式系统。

1. 保留您的敏感数据和应用程序

根据MITRE 常见弱点枚举列表,犯罪分子可以读取、提取和利用您以明文形式留下的数据和应用程序。加密数据和应用程序是不够的;您还必须担心加密密钥的存储位置和方式以及使用的算法。假设我们可以只使用 SSL/TLS 来保护传输中的数据是错误的,因为我们经常忘记相同的数据存储在本地边缘设备和云平台中。

网络犯罪分子很容易获取明文数据并在暗网上出售或将其发布在公共文本存储网站上。

此外,犯罪分子可以很容易地对明文应用程序进行逆向工程和恶意修改。犯罪黑客这样做是为了暴露秘密、敏感的算法或导致您的代码以意想不到的方式执行。

2. 在没有安全、经过身份验证的引导的情况下启动您的系统

正如ZDNet报道的那样,一名软件工程师发现了 LG Android 智能手机中的引导加载程序漏洞,使设备容易受到冷启动攻击。

网络犯罪分子可以对未使用安全启动过程启动的设备进行 root。此外,它们可以更改您的引导加载程序、操作系统、UEFI BIOS 和硬件/软件配置,或者用恶意版本替换它们。

更糟糕的是,即使完全重新安装主机操作系统,其中一些恶意修改也会持续存在。

除了以硬件为基础的经过身份验证和安全的引导实施之外,您无法保护引导序列免受篡改引导加载程序并随后损害系统的网络弹性的攻击。此外,缺乏安全启动也会导致各种攻击和设备重新利用。

3.让未经授权的软件访问未经授权的组件

犯罪黑客可以利用一个组件的漏洞或隐含信任来泄露内存内容和地址等关键信息,从而实现各种二阶攻击。

如果不限制仅访问完成工作所必需的那些组件,您会留下意想不到的开口,允许攻击者从一个组件转向另一个组件。例如,共享硬盘驱动器或内存组件的两个软件可以通过该硬件进行通信(可能通过利用各种侧通道攻击),利用其中一个漏洞访问另一个。

4. 忽略或错误配置容器化或隔离机制

根据 NIST CVE-2021-21284,一个名为“–userns-remap”的易受攻击的 Docker 引擎函数允许攻击者提升权限并以 root 用户身份写入任意文件。在这种情况下,弱功能特性打破了容器隔离。但是,将容器作为特权容器执行并提供对主机系统、其文件和其他容器的无限制访问权限的情况并不少见。

错误配置软件容器或忽略软件隔离可能允许网络犯罪分子提升权限并获得对系统的未经授权的根级别访问(完全控制)。所谓的容器和/或 VM 突破使攻击者能够自省和修改系统上其他容器或来宾的内容,并可能以意想不到的方式与基于云的服务进行交互。

5. 留下太多的攻击面

您使用过多的接口和功能使软件膨胀得越多,您的攻击面就越大——攻击者可以用来利用您的系统的漏洞、漏洞和漏洞。同样,您在操作系统映像或应用程序包中包含的库越多,您的攻击面就越大,并增加更新、修补和解决各种可能的安全漏洞的负担。犯罪黑客只需要扫描您的系统就知道要攻击什么。

通过采用极简主义的软件开发方法,仅添加实现软件任务所需的功能,网络攻击者将更难以利用您的代码为自己谋利。

6. 发放不受限制的特权

当您为应用程序提供比所需更多的访问权限(自主访问控制、系统级权限、命名空间等)时,网络犯罪分子可以利用该访问权限来解锁权限并操纵您的软件。一旦攻击者利用过多的特权获得管理权限,他们就可以在网络上横向移动,获得对云基础设施的访问权,从那里可以获得对所有设备的访问权,从而执行拒绝服务攻击、降低性能、注入恶意软件等。

有一些简单但相对未使用的机制可用于限制对各种特权的访问。在 Linux 环境中最简单的情况下,我们可以从标准的用户/组访问控制开始,添加使用后删除功能的能力(即,可以使用特权端口启动服务),然后进入Linux 环境中的各种其他安全选项集。

虽然我们特别关注边缘设备上的无限制权限,但同样的概念也适用于您的整个 DevOps 管道、云基础设施和企业网络。

7. 假定信任并允许未经身份验证的通信

在这个ZDNet故事中,研究人员分享了一个成功的理论攻击,称为 Raccoon,它基于 TLS v1.2 协议,它破坏了敏感的和受保护的经过身份验证的通信。当然,业界仍然认为 TLS v1.2 相对安全。但是攻击的成功说明了一点:您必须主动检查和确认安全协议,仅将信任扩展到经过身份验证的用户和系统,并且仅使用加密通道与这些用户和系统进行通信。当然,还有另一个隐含的假设,即我们的设备本身是可以信任的。如果我们与之通信和交换数据的设备不受信任,那么我们必须解决各种其他问题,例如本地数据加密、基于硬件的密钥管理和安全启动。

使用默认设置或易受攻击的协议欢迎未经授权的访问并邀请恶意流量进入您的系统。

8. 未能检查输入

当开发人员不检查输入时,攻击者可以将格式错误的数据引入系统,导致下游组件发生故障。使用畸形数据的常见攻击包括 SQL 注入和缓冲区溢出。

程序员检查从 Web 表单提交到 RF 捕获的所有类型数据的输入,以确保受信任的用户将预期的数据发送到他们的软件。预期数据包括数据的格式和内容。输入验证可防止不受信任的用户发送带有恶意意图的意外数据,并假定所有并非源自应用程序本身的数据都是不受信任的。

9. 错失安全编码的机会

易受攻击的编码实践让软件缺陷在开发过程中未被发现,更糟糕的是,许多这些实践和访问可能导致攻击。如果您不使用安全的开发工具和技术,网络犯罪分子通常会突破您软件中的这些漏洞,并可能利用您的漏洞访问其他网络和组织。

但是通过安全的编码工作流程和自动化测试,您可以在开发流程中及早发现并经常修复漏洞。请记住:安全性和安全开发流程不是单点解决方案,需要一起实践。

10. 将希望作为安全策略

有限的安全人员手动查看事件日志以寻找攻击和违规的迹象需要很长时间。相反,您需要利用自动化工具来持续监控您的系统并检查您的记录以获取入侵的历史证据。当然,这一切都假设我们正在记录正确的事情,并且有足够的细节来做出决定。

现代技术可以摄取和审计整个系统的日志集合。行为工具可以识别您的网络和软件中的可疑活动。您甚至可以从使用当前威胁签名来识别攻击的恶意软件扫描中受益。通过结合这些努力,您可以全面了解您的安全状态并全天候更新。

审核编辑 黄昊宇

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

    关注

    5188

    文章

    20181

    浏览量

    329312
  • 系统
    +关注

    关注

    1

    文章

    1043

    浏览量

    22189
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    什么是嵌入式操作系统

    要理解嵌入式操作系统(Embedded Operating System,简称 RTOS/EOS),我们可以从本质定义→核心区别→实际作用→典型特征→嵌入式开发场景适配,五维度来拆解
    发表于 12-09 10:33

    精准对时与全面加密:嵌入式工控机助力光伏储能系统安全稳定运行

    英康仕工控推出的NIS-YS839嵌入式工控机,以其B码对时功能和全面国密算法支持,为光伏储能行业提供安全可靠的硬件解决方案。
    的头像 发表于 11-18 14:22 2010次阅读
    精准对时与全面加密:<b class='flag-5'>嵌入式</b>工控机助力光伏储能<b class='flag-5'>系统安全</b>稳定运行

    嵌入式系统的定义和应用领域

    嵌入式系统,简而言之,就是一种专为特定设备或装置设计的计算机系统。它们通常配备一嵌入式处理器,其控制程序被存储在ROM中。这些
    发表于 11-17 06:49

    嵌入式开发的关键点介绍

    开发需要考虑嵌入式系统的资源限制,例如:内存、CPU处理能力等等。因此,嵌入式开发需要开发人员具备优化代码的能力。嵌入式系统
    发表于 11-13 08:12

    嵌入式实时操作系统的特点

    的故障情况下提供适当的错误处理机制。 硬实时和软实时支持:实时嵌入式操作系统通常提供对硬实时(Hard Real-Time)任务和软实时(Soft Real-Time)任务的支持。硬实时任务必须在严格
    发表于 11-13 06:30

    如何采用SAFERTOS和ESM保护嵌入式系统安全

    信任根的重要组成部分是实时操作系统(RTOS),它为应用程序的运行提供了一安全的平台。嵌入式系统的具体
    的头像 发表于 10-24 15:51 1212次阅读

    入行嵌入式应该怎么准备?

    架构、总线协议和存储器管理等概念的理解也是必不可少的。 三、操作系统嵌入式系统通常需要运行一实时操作系统(RTOS)或者一
    发表于 08-06 10:34

    运行在嵌入式系统上的emApps

    在当今快节奏的嵌入式系统世界中,灵活性和适应性是嵌入式系统实现的关键。SEGGER推出了其最新创新:Embedded apps(emApps)应用,类似于手机上的应用程序,可以运行在
    的头像 发表于 06-18 09:53 658次阅读
    运行在<b class='flag-5'>嵌入式</b><b class='flag-5'>系统</b>上的emApps

    嵌入式应用中常见的安全威胁

    越来越多的嵌入式设备存在互联需求,在安全应用开发中,除功能安全外,应用还需考虑信息安全
    的头像 发表于 04-28 14:45 1016次阅读
    <b class='flag-5'>嵌入式</b>应用中常见的<b class='flag-5'>安全</b>威胁

    嵌入式适合自学吗?

    嵌入式适合自学吗?其实并不建议大家自学嵌入式,主要有以下原因。 一)学习难度大 1)知识体系复杂:嵌入式系统是一复杂的领域,涉及到计算机、
    发表于 04-27 09:54

    嵌入式软件单元测试的必要性、核心方法及工具深度解析

    一、为什么嵌入式软件必须重视单元测试? ‌嵌入式系统的特殊性‌ 在汽车 ECU、医疗设备控制器等场景中,软件直接操控硬件,‌单比特错误可能导致刹车失灵或呼吸机故障‌。不同于 PC 软件
    的头像 发表于 03-21 14:53 1011次阅读

    Python在嵌入式系统中的应用场景

    你想把你的职业生涯提升到一新的水平?Python在嵌入式系统中正在成为一股不可缺少的新力量。尽管传统上嵌入式开发更多地依赖于C和C++语言,Python的优势在于其简洁的语法、丰富的
    的头像 发表于 03-19 14:10 1233次阅读

    IAR分析嵌入式系统的市场前景

    作为全球领先的嵌入式系统开发软件解决方案供应商,IAR始终致力于为客户提供高性能与高安全性的开发工具,支持不同行业的嵌入式产品开发。
    的头像 发表于 02-26 15:34 928次阅读

    如何提高嵌入式代码质量?

    嵌入式系统的发展已经深刻地影响了我们日常生活的方方面面,从智能家居到汽车控制系统,再到医疗设备和工业自动化等领域,嵌入式系统无处不在。
    发表于 01-15 10:48

    嵌入式主板的概述与发展

    随着科技的迅猛发展,嵌入式系统在现代电子产品中扮演着越来越重要的角色。嵌入式主板作为嵌入式系统的核心组件之一,承担着控制、处理和通讯等多种功
    的头像 发表于 01-13 16:30 1203次阅读
    <b class='flag-5'>嵌入式</b>主板的概述与发展