机载嵌入式软件安全性保证技术研究
周梦姣 鲁东原 周渭民
生成PDF 清样下载 引用

复制成功

导出题录

参考文献( GB/T 7714-2015 ) 复制

周梦姣 鲁东原 周渭民,. 机载嵌入式软件安全性保证技术研究[J]. 中国电气工程,2024.7. DOI:10.12721/ccn.2024.157060.
摘要: 随着航空技术的飞速发展,机载嵌入式软件已成为现代飞机不可或缺的组成部分。这些软件控制着飞机的关键功能,如自动驾驶、发动机管理、飞行控制等,其性能直接关系到飞行的安全性和乘客的生命安全。然而,嵌入式软件的复杂性和多样性也带来了潜在的安全风险,一旦软件出现故障或遭受恶意攻击,可能导致严重的飞行事故。因此,机载嵌入式软件的安全性保证技术研究显得尤为迫切。
关键词: 机载嵌入式软件;安全性;保证技术
DOI:10.12721/ccn.2024.157060
基金资助:

引言

在现代航空领域,机载嵌入式软件的安全性是确保飞行安全和系统可靠性的关键因素。随着航空电子系统的复杂性不断增加,嵌入式软件在飞机控制系统、导航系统、通信系统等多个方面发挥着至关重要的作用。因此,对机载嵌入式软件的安全性保证技术进行深入研究,对于提升航空安全水平具有重要意义。

1机载嵌入式软件安全性保证技术的重要性

第一,飞行安全保障。机载嵌入式软件控制着飞机的关键系统,如飞行控制、导航、发动机管理等。这些软件的安全性直接关系到飞机的飞行安全。一旦软件出现故障或被恶意攻击,可能会导致严重的飞行事故,甚至危及乘客和机组人员的生命安全。第二,系统可靠性提升。安全性保证技术有助于提高嵌入式软件的可靠性,确保其在各种操作条件下都能稳定运行。这对于飞机在极端天气条件、复杂飞行任务或紧急情况下的表现至关重要。第三,法规合规性。航空业是一个高度规范化的行业,机载嵌入式软件必须符合严格的国际和国内安全标准。安全性保证技术有助于确保软件开发和维护过程遵循这些标准,从而满足法规要求。第四,乘客信任度提升。乘客对飞行安全的信任是航空公司运营的关键。安全性保证技术有助于提升乘客对飞机安全性的信心,从而吸引更多的乘客选择航空旅行。第五,技术创新推动。随着航空技术的不断进步,新的嵌入式软件和系统不断涌现。安全性保证技术需要不断创新,以适应新技术带来的挑战,推动整个航空行业的技术发展。

2机载嵌入式软件安全性面临的挑战

2.1软件复杂性

随着功能的增多,软件模块之间的交互变得更加复杂,这导致难以预测的行为和潜在的系统级故障。复杂性增加了理解和测试软件的难度,使得发现和修复安全漏洞变得更加困难。随着代码量的增加,维护和更新软件的成本和风险也随之增加。复杂性还导致开发过程中的沟通障碍,不同团队成员之间对系统理解的不一致会引入设计缺陷和实现错误。

2.2外部威胁

随着网络攻击技术的日益复杂和隐蔽,恶意软件、黑客攻击和拒绝服务攻击等威胁手段不断进化,使得传统的安全防护措施面临被绕过的风险。这些攻击导致系统数据泄露、功能被篡改或系统完全失效,严重威胁飞行安全和乘客生命财产安全。随着飞机与地面基础设施、其他飞机以及乘客个人设备之间的互联互通性增强,攻击面也随之扩大,增加了潜在的安全漏洞。

2.3内部故障

软件内部的逻辑错误、数据损坏或硬件故障都可能导致系统失效。确保软件能够正确处理这些内部故障是一个挑战。

3机载嵌入式软件安全性保证技术的实施策略

3.1安全性设计

安全性设计在机载嵌入式软件开发中扮演着至关重要的角色,它涉及到采用一系列设计原则和策略来确保软件的安全性和可靠性。这一原则要求系统中的每个模块或组件只被授予完成其任务所需的最小权限。通过限制权限,可以减少潜在的安全漏洞被利用的风险,因为即使某个组件被攻破,攻击者也无法获得超出该组件权限范围的系统访问权。模块化设计通过将系统分解为独立的、可管理的模块来降低复杂性。每个模块负责特定的功能,并且与其他模块保持低耦合。这种设计使得系统更易于理解和测试,同时也便于隔离和修复故障,因为一个模块的问题不会轻易传播到其他模块。数据隔离确保敏感数据和关键操作被隔离在安全的环境中,防止未授权访问和数据泄露。这可以通过使用访问控制、加密和安全协议来实现。数据隔离还有助于防止数据在系统中的错误传播,从而提高系统的整体安全性。有效的错误处理机制能够检测和响应系统中的异常情况,防止故障扩散。这包括设计健壮的错误检测和恢复逻辑,以及实施适当的日志记录和监控,以便在发生错误时能够迅速定位问题并采取纠正措施。安全性架构设计确保系统的关键组件具有冗余和容错能力。这意味着系统中的关键功能和数据存储通常会有备份,以便在主组件发生故障时能够无缝切换到备用组件。

3.2安全性编码实践

安全性编码实践是确保机载嵌入式软件安全性的基石。它涉及到一系列的编码标准、最佳实践和审查流程,旨在减少软件中的安全漏洞。安全性编码标准如MISRAC/C++、CERTC/C++等,提供了编码规则和指南,帮助开发者避免常见的安全漏洞。例如,避免使用不安全的函数(如strcpy、sprintf等),这些函数容易导致缓冲区溢出。使用安全的函数库(如strncpy、snprintf等)可以减少这类风险。进行严格的输入验证,确保所有外部输入都经过检查和清洗,以防止注入攻击和其他基于输入的漏洞。代码审查是一种有效的质量保证手段,它涉及同行评审代码,以发现潜在的逻辑错误、设计缺陷和安全漏洞。通过定期的代码审查,可以及早发现问题并进行修复,从而提高代码的质量和安全性。审查过程中应特别关注安全性相关的代码,确保遵循了安全性编码标准和最佳实践。静态代码分析工具能够在不运行代码的情况下检查代码,自动识别潜在的安全问题和编码违规。这些工具可以检测出缓冲区溢出、内存泄漏、未初始化的变量、不安全的类型转换等问题。定期运行静态代码分析可以帮助团队发现并修复安全漏洞,同时也有助于提高开发人员的编码质量意识。除了静态分析,动态分析和测试也是发现安全漏洞的重要手段。这包括单元测试、集成测试、系统测试和模糊测试等。动态测试可以模拟实际运行环境中的攻击场景,检测系统在面对异常输入和条件时的行为,确保系统能够正确处理这些情况。

3.3安全性测试

安全性测试是确保机载嵌入式软件安全性的关键环节,它通过一系列的测试策略和方法来验证软件的安全功能和防御机制。安全性测试应从单元测试开始,确保每个软件组件都按照预期安全地运行。集成测试则关注组件之间的交互,确保它们在组合时不会引入新的安全风险。系统测试评估整个系统的安全性能,确保所有组件协同工作时能够抵御外部攻击。验收测试则确保软件满足最终用户的安全需求和标准。模拟黑客攻击,评估系统的安全防御能力。渗透测试专家尝试利用已知的安全漏洞或寻找新的漏洞,以测试系统的安全边界和响应机制。通过向系统输入大量随机或异常数据来检测潜在的安全漏洞。模糊测试可以发现输入验证不足、边界条件错误和异常处理不当等问题。故意在系统中引入故障,如内存损坏、时钟偏差或网络延迟,以测试系统的容错能力和恢复机制。

结束语

机载嵌入式软件安全性保证技术的研究是一个持续发展的领域,它对于确保航空安全和提升乘客信任至关重要。随着航空技术的不断进步,软件在飞机运行中的作用日益增强,因此,对软件安全性的关注和投入也必须相应增加。通过综合运用安全性设计、编码、测试等多种策略,可以构建一个全面的安全性保证框架。这些策略不仅需要在软件开发过程中得到严格执行,还需要在整个软件生命周期中持续更新和改进,以应对不断变化的安全威胁和技术挑战。

参考文献

[1]邢浩,胡佳贝,李碧涵,等.一种基于机载嵌入式软件的自动化测试方法[J].信息技术与信息化,2022,(02):17-20.

[2]周光海.机载嵌入式软件的安全性机制研究[J].电子测试,2019,(06):18-19.

[3]李亚晖,张亚棣,郭鹏.机载嵌入式软件的安全性机制研究[J].通信学报,2015,36(S1):16-21.

[4]徐丙凤.构件化嵌入式软件安全性分析方法研究[D].南京航空航天大学,2014.

[5]霍宏,周兴社,董云卫.机载嵌入式软件安全性保证技术研究[J].计算机测量与控制,2010,18(08):1931-1933+1946.

》在线投稿系统

*文章题目:
*作者姓名:
*电子邮箱:
*通讯地址:
*联系方式:

  备      注:

*上传稿件:

支持上传.doc,.docx,.pdf,.txt,.wps文件

投稿须知:

1、审稿结果将于1~7个工作日以邮件告知,请注意查收(包含录用通知书、审稿意见、知网CNKI查重报告)。

2、提交投稿后,若7个工作日之内未接到录用通知,则说明该文章未被录用,请另投他刊。

3、凡投寄本刊稿件,如在内容上有侵权行为或不妥之处,均应文责自负。本刊有权对来稿进行文字编辑、加工和修改,如不同意,请附说明,以便妥善处理。

4、多作者文稿署名时须征得其他作者同意,排好先后次序,通知用稿后不再改动。

5、凡投往本刊稿件一经录用发表,其版权归本刊所有。

6、本刊已全文录入中国知网、万方、维普等数据库,如作者不同意被收录,请提前申明,未申明者,本刊一律视为同意被收录。

7、请勿一稿多投。