freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

鉴源丨民用飞机机载软件是如何表明适航符合性的
2022-10-09 16:58:18
所属地 上海

作者 | 蔡喁 上海控安可信软件创新研究院副院长版块 |鉴源论坛 · 观擎

01

机载软件的基本特征

机载计算机在现代飞机各组成部分中占有举足轻重的位置,是现代航空电子系统的基础和核心,其研制、生产和应用水平已成为衡量飞机先进性的重要标志。机载计算机通常是飞机上各种计算机的总称,包括导航计算机、大气数据计算机、飞行控制计算机、任务计算机、雷达信号/数据处理机、显示控制处理机和通用综合处理机等。

机载计算机系统负责完成飞行的数据采集、信息处理和指挥控制任务。可以毫不夸张地说,现代飞机每一个动作的完成都离不开机载软件的支持,飞行员的每一个意图也必须依靠机载软件才能实现。同时,机载软件还有一个明显的发展趋势,那就是它所完成的功能将越来越多。以美国军用飞机的发展为例,第二代战斗机F-111的航电系统,其20%的功能是通过软件实现的;第三代战斗机F-16,这个比例达到40%;到最先进的第四代战斗机F-22中,航电系统功能中竟有80%是通过软件实现的。机载软件的规模呈超几何级数增长。如美国F-106战斗机的早期型号仅装备1台计算机,其作战飞行程序为4K,占据了计算机存储器容中的绝大部分;F-111D战斗机的作战飞行程序约51K;F-16战斗机早期型号(F-16A)的作战飞行程序为128K;70年代末舰载F/A-18战斗机的作战飞行程序则增加到约700K;F-22战斗机机载软件的规模已达到170多万条语句。F-35的代码量是F-22软件代码量的4倍多,达到了惊人的800万条语句。

安全性设计是软件设计的重要环节,尤其对于机载软件而言,它的输出会直接或间接地影响硬件的运行,其重要性不言而喻。但是,在进行安全性工作时却遇到许多实际的困难,诸如设计手段不规范、没有明确的验证方法和有效的评估数据、无法准确评估软件中错误的数量等。尽管如此,软件界还是形成了共识,即软件的质量更主要依靠过程(包括规范设计、严格管理等)来保障。

02

民用飞机机载软件适航标准及其符合性

2.1 适航管理

民用航空器的适航管理以保障民用航空器的安全性为目标,是政府适航当局在制定的各种最低产品安全标准的基础上,对民用航空器的设计、制造、使用和维修等环节进行科学统一的审查、鉴定、监督和管理。可相对分为两大类管理,一类是初始适航管理,另一类是持续适航管理。

适航管理的特点主要反映在以下几个方面,即权威性或法规性、国际性、完整性和统一性以及动态发展性。

2.2 适航技术和符合性方法

民用航空器产品的安全性实现需要安全性技术,这些安全性技术要求从属于适航要求才能达到在产品上的具体应用。民用航空器必须在产品生命周期内满足相应的适航标准和要求,以确保产品的适航性和安全性,其首要环节是产品的型号设计符合规定的适航标准。民用航空产品设计符合适航标准并取证的途径和方法是:

民用航空产品适航审定过程通常可理解为概念设计、要求确定、符合性计划制定、计划实施以及颁发型号合格证后等5个阶段。对局方从事适航审定的人员,在适航审定中的技术层面工作主要是适航标准要求确定、评估和批准包括验证试验大纲在内的技术文件和做出符合性判定。

因此,无论是民用航空器的适航管理活动还是产品开发活动,都存在确定的适航技术。通常意义上存在三类适航技术:

1)适航标准确定或安全性指标和要求确定的技术

事故及案例分析及安全特征提取、新颖独特设计安全(适航)设计要求、专项试验(如燃烧、坠撞)设计及参数或指标确定、机队运行数据收集与特征提取、新技术应用,特别是成熟、先进工业标准的引用或裁剪技术等;

2)满足适航标准或要求的工程设计技术

适航标准或适航要求的工程定义或工程需求定义设计技术、系统架构分析与设计技术、系统安全性分析技术、备份或冗余设计技术、在线故障诊断及容错设计技术、系统工程技术、结构设计技术、载荷设计技术、强度设计技术、颤振设计技术、系统生存环境(空间及区域)设计技术、隔离与保护设计技术、特殊风险分析与防范设计技术、维修与保障性设计技术、设计过程保证技术、硬件及软件设计技术、HMI(人机环境)设计技术、噪声抑制或控制设计技术等;

3)满足适航标准或要求的验证技术

系统安全性分析技术、各种平台(台架、模拟机、风洞及飞机)测试与试验技术、试验件和试验装置及试验环境设计技术、计算与分析技术(有限元、流体、运动轨迹、仿真)、工程检验技术等;

表1.png

表1 适航符合性验证方法

03

机载软件的适航与RTCA DO-178C

3.1 软件的适航符合性标准

运输类飞机适航标准(CCAR 25、14 CFR part 25、CS 25)是民用飞机进行适航审定的基本依据。其中与机载软件密切相关的条目CCAR(14CFR/CS)25.1309规定了民用飞机必须满足的设备、系统与安装方面的安全性要求,其中包括:

1)凡航空器适航标准对其功能有要求的设备、系统及安装,其设计必须保证在各种可预期的运行条件下能完成预定功能;

2)飞机系统与有关不见的设计,在单独考虑以及与其它系统一同考虑的情况下,必须符合下列规定:

· 发生任何妨碍飞机继续安全飞行与着陆的失效状态的概率极小;

· 发生任何降低飞机能力或机组处理不利运行条件能力的其它失效状态的概率很小。

RTCA DO-178C就是为机载软件的表明符合性提供指导的一套标准,其目的是指导航空机载软件开发,并确保航空机载软件不仅满足飞机和机载系统对其功能和性能的要求,还要具备不同严苛等级的安全置信度。需要注意的是,DO-178C不是单独存在的,它和ARP 4754A、ARP 4761、DO-254一起构成了现代机载系统(尤其是高度综合和复杂系统)安全性设计与评估的一组指南材料。四个文件之间的关系如下图所示。

图1.png

图1 系统-软硬件过程保证标准间的关系

其中,DO-178C对航空机载软件开发应该遵循的基本理念和规则从以下各个方面进行了说明和规定:

· 机载系统与机载软件之间的内在关系;

· 机载软件生命周期;

· 机载软件计划过程;

· 机载软件的开发过程;

· 机载软件的验证过程;

· 机载软件的构型管理过程;

· 机载软件质量保证过程;

· 适航认证联络过程;

· 软件生命周期数据记录;

· 其它考虑。

总之,软件层面的DO-178C研制过程包含了计划过程、开发过程、综合过程在内的三大类过程,对软件研制的严苛程度进行了规定。在减少引入错误和增强检出错误两个维度下,保持机载软件在不同安全性要求下的适航性。

在DO-178C中,针对每一个过程都涵盖了以下内容:

· 过程需要满足的目标;

· 过程需要产生的数据;

· 数据证明目标的满足;

从以上DO-178C的主要内容可以看出,DO-178C是面向过程和目标的。简单来说,DO-178C主要通过以下三种形式来指导机载软件开发者工作,其中包括:规定航空机载软件生命周期中各个过程的目标;规定达到这些目标的活动和工程实现考虑;规定确认这些目标已经实现的证据记录。DO-178C通过这三种形式的要求较全面地反映了航空机载软件工程的基本理念和规则,指导着当今国际航空机载设备开发商的工程开发。

通过以上提及的四个标准及提供的符合性证据,才能完整形成对于CCAR(14CFR/CS) 25.1309在飞机、系统、设备和软硬件不同层次上的证据链。

图2.png

图2 软件生命周期过程之间的基本关系

3.2 失效状态和软件等级

为达到系统所需的安全性水平,标准首先对各类机载软件定义了软件等级(Software Level)。例如考虑如下两种机载软件情况:

1)飞机尾部厨房中用来控制煮咖啡器的软件失效;

结果:可能会使一些乘客恼怒,但是不会影响到机上乘客的安全。

2)在低可见度情况下用来控制飞机自主进近的软件程序失效;

结果:可能会导致机毁人亡。

显然,这两种软件不可能开发成同样等级,也无法以同样的严格程度来控制开发。需要针对具体情况,根据软件异常行为可能导致的飞机失效状态类别来定义软件的等级。

DO-178C中规定,软件等级应与软件失效可能导致的最严重的系统安全性影响程度相对应。也就是说软件等级是由其失效状态的类别来决定的,而软件失效状态的类别定义则与系统失效状态的类别定义完全相同。同时,软件失效状态的类别与系统失效状态的类别一样,都是通过系统的安全性评估来确定的,即在确定系统的审定基础时确定。表2给出了软件等级与失效状态类别的对应关系和简要说明。

表 2.png

表2 软件等级与失效状态之间的关系

软件等级由申请人和合格审定局方共同确定,且通常作为软件审定的基本前提,记录在相应的审定计划中。商讨确定软件等级的基本过程如图3所示。

图3.png

图3 软件等级的确定过程

对于软件等级的确定问题需要注意以下几个问题:

1)无论系统怎样设计,系统安全性评估过程确定了一个特定系统的软件组件应有的软件等级。失效所造成的功能丧失和故障影响均要在软件等级确定中加以考虑处理。从系统功能出发,评估系统功能失效的影响等级,考虑是否可能由软件的错误导致这种失效,进行确定软件所造成的最大的系统失效为何种等级,从而确定软件自身的等级。

2)一个系统功能可能会被分配给一个或多个彼此相互分割的软件组件来执行,并行执行过程是指一个系统的功能要靠多个软件组件来实现,以至于多个软件组件的异常行为才会引起系统的失效。对于并行执行过程而言,至少要有一个重要或者关键的软件组件的软件等级由该系统的最严重失效状态类别来确定,其它软件组件的软件等级将由系统失去上述功能后的剩余失效状态类别来确定。

3)串行执行过程是指一个系统的功能要靠多个软件组件来共同实现,以至于任何软件组件的异常行为都将会引起系统的失效。对于串行执行过程而言,软件组件的软件等级都将由该系统的最严重失效状态类别来确定。

4)如果一个软件组件的异常行为导致了多个失效状态的发生,那么最严重失效状态类别就决定了该软件组件的软件等级。随着系统设计技术的演变,产生了各种架构策略,例如在DO-178C标准第2.4节中详细介绍,这些策略的使用可能会导致软件等级的修改。例如:

· 分区/隔离

如果使用分区/隔离技术,每个被隔离软件组件的软件等级将由该组件所导致的最严重失效状态来确定。如果分区/隔离保护由软件来实现,那么该软件的软件等级将与被隔离软件中的最高等级相同。

· 安全性监控

如果使用安全性监控技术,被监控功能的软件等级可以降低至丧失该功能后的对应等级。执行安全性监控功能的软件其软件等级则由被监控功能中的最严重失效状态来确定。

5)开发某一等级的软件并不意味着为软件分配失效率,因此软件等级以及基于软件等级的软件可靠率(Software Reliability Rate)就不能像硬件失效率那样在系统评估过程中加以应用。软件的错误并不呈现概率分布。

参考资料:

[1] 机载软件适航符合性教程, 2022, ISBN:9787313241344. 上海交通大学出版社.

[2] Software Considerations in Airborne Systems and Equipment Certification(DO-178C), RTCA, 2011.

# 航空公司
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者