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

电子说

1.2w人已加入

描述

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-iscsi、picoTCP、FNET 和 Nut/Net)有关。软件弱点也直接来自CWE Top 25;整数环绕、越界读写、整数溢出、不正确的输入验证和不正确的空终止。

 

嵌入式软件




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

审核编辑 黄昊宇

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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分