前言
2023年Zephyr开发者大会(ZDS)于6月27日至30日在捷克布拉格隆重举行。与以往两次不同,本次ZDS由Zephyr项目规划和管理,并作为首届嵌入式开源峰会(EOSS)的一部分进行。在这个令人期待已久的盛会中,全球Zephyr开发者们共同探讨了Zephyr实时操作系统(RTOS)的最新技术与发展趋势。作为一款开源、灵活和可扩展的嵌入式实时操作系统,Zephyr项目在2014年由英特尔发起,2016年作为Linux基金会项目正式面向公众启动,得到了全球范围内的广泛关注和采用。
ZDS 2023共70余个技术报告,涵盖了使用指导与展示、新功能与技术、架构修改与操作系统、多核异构与虚拟化、模拟器、测试、工业流程与代码管理、安全性、应用案例、工具与调试等丰富多样的内容。湖大嵌入式实验室的小伙伴们将对本次大会的所有技术报告进行逐一收集、整理与分享,尽最大努力为Zephyr开发者提供ZDS 2023技术报告的开发经验、实践成果以及解决方案的参考。
今天分享第23篇技术报告,由王渊整理,题目为:
“Zephyr项目安全概述、进度和状态”
作者简介

David Brown是Linaro物联网和嵌入式团队的成员,多年来一直致力于Linux内核的工作,专注于安全领域。尤其是物联网和嵌入式设备相关的安全性,包括安全引导和安全网络通信。目前担任Zephyr项目的安全主席,并是MCUboot安全引导加载程序的维护者。
Flavio是英特尔的软件工程师,也是Zephyr的开发者。参与安全工作组的部分,负责维护项目中的其他子系统,比如电源管理。
Zephyr是什么
Zephyr是一个开源的嵌入式操作系统,拥有广泛的架构和主板支持,以及丰富的功能集合。它的代码库包括了约130万行C代码,而其模块系统则涵盖了大约2000万行C代码。
Zephyr安全标准
基于目前的Zephyr运行生态,Zephyr适用的安全标准主要包括ETSI EN 303-645消费者物联网设备网络安全标准,FIPS 140-3加密模块安全要求,SP 800-128安全软件开发框架以及C11 中的Annex K标准。
目前,Zephyr安全委员会由项目章程约束,拥有一名白金会员代表,一名技术工程师:Flavio Ceolin以及委员会主席:David Brown。委员会约定每两周进行以此一次非公开安全报告会议。
漏洞的生命周期
什么是漏洞?漏洞是软件系统中的缺陷或弱点,可以被利用来损害系统的安全性或功能。它可能是软件代码、设计、体系结构或用户界面中的错误、设计缺陷或配置疏忽。如果漏洞被利用,可能会导致未经授权的访问、数据丢失或数据被盗。它可能允许攻击者安装恶意软件,访问敏感数据,或控制系统及其资源。
对于Zephyr而言,它可以是代码中的漏洞,设计中的缺陷,配置问题,亦或是实现标准中的问题。与其他项目中的“正常”漏洞的相比,Zephyr中的漏洞可以被善意利用。基于此,我们需要设计一个威胁模型,并且此威胁模型的威胁和用途应随着时间和应用场景而变化。
威胁和BUG的不同处理方式
相对于威胁而言,bug会公开报告,修复会被审查和合并,所有漏洞都会被公开报告,并在“禁运期”保密。与此同时,修复bug仍然会公开进行,包括审查,但在禁运期间不会公开说明与漏洞的关系,理论上是为了让某些方有时间在漏洞被发现之前缓解和处理修复问题。
对于威胁的修复流程,开发者们在实际应用Zephyr的过程中,可以将发现的威胁报告到zephyr-psirt邮件列表或公开在github上面。问题会作为安全建议草案输入到githu。我们还需尝试对问题严重性进行分类,判断可能造成的影响以及对维护者提供修复建议。
在修复的过程之中,维护者与潜在的其他开发人员一起获得对修复的可见性,最终实现一个或多个pr的创建,审查和合并。所有这些流程都需要在github中进行跟踪,目前在安全建议中是文本,但将转移到基于项目的跟踪系统中。一旦合并,它将会发布在Zephyr平台之上。
委员会的工作
委员会专注于漏洞和涉及预算的事情,试图改善漏洞流程,申请预算的事情:例如第三方分析,赞助安全会议,邀请专家出席等等。一般来说,Zephyr会使用多个加密库,我们需要对这些加密库进行统一。此外,一些子系统仍在使用特定的库,若无法实现库的统一,将会极大增加上游工作者的工作量。这些复杂且必要的工作,将是委员会接下来工作的重心和方向。
如何处理模块上的漏洞?修复到哪里去了?报告是来自zephyr还是forward?我们能自动化它吗? 我们需要更多的SBOM信息吗?这些种种,都是我们在Zephyr安全模块设计中遇到的,亟待解决的问题。