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

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

3天内不再提示

TCP/IP 堆栈漏洞是嵌入式软件的警钟

张英 来源:小佳99 作者:小佳99 2022-07-15 15:43 次阅读

URGENT/11和其他最近的漏洞(例如与嵌入式 TCP/IP 堆栈相关的AMNESIA:33)表明在审查和审计软件供应链方面存在缺陷。责任不仅仅在于软件供应商,还指出嵌入式设备制造商需要评估的不仅仅是他们目前开发的产品

同时,这个问题不仅限于嵌入式软件,或具体的 TCP/IP 堆栈。相反,它暴露了由重用软件组件和频繁发现与之相关的新漏洞所造成的安全风险。

让我们仔细看看 Urgent/11 和 Amnesia:33 漏洞。两者都在嵌入式 TCP/IP 堆栈中,这是令人担忧的,因为网络连接是消费、医疗和工业应用中常用的物联网 (IoT) 设备最有可能的攻击媒介。尽管受影响设备上的网络堆栈是一个常见弱点,但这些漏洞通常与过时的软件版本有关。漏洞令人担忧,但可以修复和修补。

更令人担忧的是,已知漏洞并未得到修补。截至 2020 年 12 月,97% 的 URGENT/11易受攻击的设备仍未打补丁。这可以部分归因于嵌入式系统供应商、最终用户、经销商和集成商对他们暴露于这些漏洞的缺乏了解。

知名的漏洞集可能是 URGENT/11,它最初隶属于 Wind River VxWorks,影响许多流行的嵌入式实时操作系统 (RTOS) 使用的 Interpeak IPnet 嵌入式 TCP/IP 堆栈,并且是商业软件。URGENT/11 中的漏洞代表了软件弱点的名人录:缓冲区溢出、整数下溢、内存缓冲区越界访问、竞争条件、参数注入和空指针取消引用。

受影响的产品通常使用 ENEA、GreenHills Software、ITRON、IP Infusion ThreadX 和 Wind River 的嵌入式操作系统 (OS)。在所有情况下,这些供应商都更新或替换了其产品中受影响的 IPnet TCP/IP 堆栈。但是,这些操作系统的旧版本仍在数百万台设备上运行。

与 URGENT/11 类似,AMNESIA:33 漏洞集与一组嵌入式开源 TCP/IP 堆栈(uIP-Contiki、uIP、open-iscsipicoTCP、FNET 和 Nut/Net)有关。软件弱点也直接来自CWE Top 25;整数环绕、越界读写、整数溢出、不正确的输入验证和不正确的空终止。

pYYBAGLO-b2AUWA9AAK1DBl-GCQ315.png




picoTCP 是一种占用空间非常小的开源 TCP/IP 堆栈,用于许多 IoT 设备,现在在无数产品中都容易受到 Amnesia:33 漏洞的影响。(来源:GrammaTech)。

TCP/IP 堆栈漏洞(例如 URGENT/11 和 AMNESIA:33)在商业和开源嵌入式组件中都很普遍,并说明了对将要集成到设备中的所有类型的第三方软件进行尽职调查的重要性。

审计和管理嵌入式设备软件组件漏洞的最有效方法是维护软件材料清单 (SBOM)。这种方法不仅考虑了定制软件,还考虑了 RTOS、库(商业和开源)、板级支持包以及产品中使用的所有内容。SBOM 还将包括构成商业的组件(例如 RTOS 和附加组件,例如 TCP/IP 堆栈)和开源产品,包括所有版本和已知漏洞的详细说明。SBOM 的整体性很重要,因为任何产品的安全性都取决于其中最不安全的组件。

SBOM 是使用软件组成分析 (SCA) 创建的。但是,SCA 工具不能仅依赖源代码的可用性,因为许多商业产品仅作为二进制文件提供。相反,需要使用二进制分析的 SCA 工具来检测和检查在开发的发布、集成和构建阶段创建的二进制文件。

例如,依赖源代码的 SCA 工具无法检测二进制代码中的漏洞,而这是提供第三方产品的最有可能的方式。RTOS 和其他嵌入式软件通常是为特定目标架构预构建的,只有板支持包是由客户在本地定制和编译的。

SBOM 应该在产品生命周期的各个阶段进行维护,因为漏洞不断被发现,并且以前安全的组件可能变得不安全。它使开发团队能够对他们使用的第三方产品进行尽职调查。只要二进制签名可用于漏洞,就有可能检测到有风险的组件。在这个早期阶段,很容易修补、更新或更换产品。将 SBOM 更新为任何现有流程的一部分也很重要,无论是 CI/CD 管道还是其他流程。

在安全方面,运输或报废的产品通常很少受到关注。URGENT/11 和 AMNESIA:33 与过时和报废产品有关的事实表明,安全是整个生命周期的关注点。使用二元分析的优势在于可以分析现有和遗留产品以创建整个产品线的 SBOM。这为嵌入式设备开发人员以及他们所依赖的供应商提供了可能的安全风险预警。

这种场景的一个很好的例子是 picoTCP,这是一种占用空间非常小的开源 TCP/IP 堆栈,用于许多 IoT 设备。在过去的几年里,这个项目似乎已经走到了生命的尽头,几乎没有什么发展(看看 GitHub 的活动,写这篇文章时的最新提交是 15 个月前,大部分源代码在四年多的时间里都没有被触及。 ) 尽管有这一事实,但它仍被用于无数产品中,这些产品现在很容易受到 Amnesia:33 漏洞的影响。

使用 SCA 为产品组合创建 SBOM 是对组件和集成第三方软件进行编目以检测已知漏洞存在的重要步骤。这种方法允许制造商建立和维护一个组织范围的开源和内部/闭源库和可执行文件的存储库,因此他们知道他们交付的软件中实际包含什么。

审核编辑 黄昊宇

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

    关注

    4

    文章

    228

    浏览量

    26386
  • 堆栈
    +关注

    关注

    0

    文章

    171

    浏览量

    19535
  • 漏洞
    +关注

    关注

    0

    文章

    194

    浏览量

    15118
收藏 人收藏

    评论

    相关推荐

    嵌入式软件开发应该掌握哪些知识?

    嵌入式软件开发应该掌握哪些知识? 一、 什么是嵌入式软件嵌入式软件通常是指
    发表于 02-19 11:23

    嵌入式学习步骤

    嵌入式行业是一个涉及广泛领域的行业,嵌入式、物联网、人工智能、智能与科学、电子信息工程、通信工程、自动化工程、测控、计算机科学等专业在嵌入式系统中使得软件和硬件的结合更加高效,适合从事
    发表于 02-02 15:24

    嵌入式系统中堆栈监控的作用

    在微控制器或微处理器中,堆栈是内存的一个保留区域,用于存储临时数据和函数调用信息,管理函数的执行,跟踪返回地址、局部变量和函数参数。堆栈监控是嵌入式系统运行中起关键作用的一项安全措施,促进了
    的头像 发表于 01-05 11:13 218次阅读

    嵌入式硬件和软件哪个好?

    嵌入式硬件和软件哪个好? 嵌入式软硬件工程师哪个更有前途呢?一起来看看。 嵌入式是分为软硬件工程师的,首先我们先来看看嵌入式硬件工程师吧!
    发表于 12-05 15:17

    嵌入式软件开发常用工具有哪些?

    分享一些嵌入式软件开发常用工具。 1、Keil MDK:这是德国Keil公司开发的基于8051、9051、ARM7、ARM9系列微控制器的嵌入式软件开发工具,它提供了包括C编译器、
    发表于 11-10 11:03

    嵌入式软件设计和单片机软件设计的区别是什么?

    嵌入式软件设计和单片机软件设计目前的应用很多,这两者有什么区别? 嵌入式主要说的什么?结构是啥!
    发表于 11-10 07:46

    什么是嵌入式Linux?

    之有运行程序的能力与作用。在很多智能家电开发,智能产品的研究上有着主导的作用。(对个人、团队开发产品有兴趣的朋友一定要看看嵌入式!) linux的嵌入式系统开发,涵盖了从硬件到软件设计的多个领域,并且
    发表于 10-11 13:47

    从事嵌入式工作有哪些优势?

    随着物联网和人工智能的发展,嵌入式技术越来越值钱,学嵌入式的人也越来越多,现在开始入行嵌入式。根据一些权威部门统计,我国目前嵌入式软件人才缺
    发表于 10-08 15:05

    嵌入式软件好还是硬件好?

    架构,有一定的C语言基础,熟悉ARM、PROTEL设计软件,有四层板开发经验。 成为优秀的嵌入式硬件开发工程师需具备以下技能:由需求分析至总体方案、详细设计的规划能力;熟练运用设计工具、设计原理图
    发表于 09-18 15:31

    如何对嵌入式设备进行漏洞利用

    过去的几个月我一直在周游以指导人们如何对嵌入式设备进行漏洞利用,单单幻灯片已经不足以承载足够的信息,所以我将所有的都写下来以便与知识的消化。接下来的内容是 第一部分,介绍了一些嵌入式设备端的
    发表于 09-06 11:22 290次阅读
    如何对<b class='flag-5'>嵌入式</b>设备进行<b class='flag-5'>漏洞</b>利用

    EasyWeb:微小的TCP/IP协议栈和Web服务器

    。如果局域网通过路由器连接到互联网,数据可以在全世界范围内交换。处理以太网接口的软件比处理序列接口复杂得多。在多数情况下,TCP/IP协议用于数据传输,因为它向局域网其他成员提供了快速可靠的连接。这个小的
    发表于 09-04 07:39

    HTTP服务器使用uIP TCP/ IP堆栈的示例

    应用程序: HTTP 服务器使用 uIP TCP/ IP 堆栈的示例 BSP 版本:M480系列BSP CMSIS V3.03.001 硬件: NuMaker-PFM-M487 VER 3.0
    发表于 08-22 07:07

    如何将TCP/IP堆栈移植到新环境

    本章讨论将TCP/IP堆栈移植到新环境。 假设堆栈正在被移植到一个带有网络接口的小型嵌入式系统,并且ADS 1.0可用。 本章包含以下各节:
    发表于 08-18 08:17

    TCP/IP协议是什么?TCP/IP参考模型的结构是怎样的?

    TCP/IP协议组在OSI模型之前流行。最初的TCP/IP有四层,显然与OSI模型的层不匹配。当OSI模型被引入时,人们相信它将在商业上压倒TCP
    的头像 发表于 08-11 15:26 1444次阅读
    <b class='flag-5'>TCP</b>/<b class='flag-5'>IP</b>协议是什么?<b class='flag-5'>TCP</b>/<b class='flag-5'>IP</b>参考模型的结构是怎样的?

    Renesas R-IN32M4-CL3 系列用户手册 TCP/IP 堆栈 Rev.1.00

    Renesas R-IN32M4-CL3 系列用户手册 TCP/IP 堆栈 Rev.1.00
    发表于 07-03 20:27 0次下载
    Renesas R-IN32M4-CL3 系列用户手册 <b class='flag-5'>TCP</b>/<b class='flag-5'>IP</b> <b class='flag-5'>堆栈</b> Rev.1.00