DO-178介绍
作为国际公认的航空电子软件的认证标准,DO-178标准全称为“航空无线电设备软件考虑指南”(Guidanc++e for Aviation Radiocommunications Software Considerations),它对确保航空器的飞行安全起着至关重要的作用。由无线电技术委员会(RTCA)特别委员会SC-167和欧洲组织EUROCAE联合制定。其进化过程反映了航空电子软件适航认证要求的发展和完善。简要梳理如下:
✦
•
DO-178最初在1982年发布,被称为DO-178A,它为机载系统软件的开发提供了基本的指导原则。
✦
•
随后在1992年,DO-178B发布,它对A版进行了更新和改进,以适应当时软件工程的实践和技术发展。DO-178B根据软件故障对乘客、机组人员和飞机的潜在影响,将软件分为A到E五个不同的安全等级,并为每个等级提供了详细的开发、验证和确认流程。
✦
•
经过多年的实践和技术进步,特别是软件开发技术和工具的发展,DO-178C在2011年发布。作为对DO-178B的更新和升级,DO-178C对原有的标准进行了勘误、澄清和补充,增强了生命周期流程,增加了对形式化方法和基于模型的开发的支持,同时对工具资质和认证提出了新的要求。
通过以上的进化过程我们可以发现,从A版本基本的指导思想,到B版本分级进行管理,直至目前C版本全生命周期的流程化自动管理,DO-178C是现代航空航天领域/行业开发环境中关键和被广泛认可的认证标准之一,对确保航空器的飞行安全起着至关重要的作用。由于其复杂性和对安全性的严格要求,遵循DO-178C标准的软件开发通常需要专业的知识和经验。
DO-178在软件缺陷测试方面的要求
1、软件缺陷引起的故障风险
在DO-178C标准的2.3.1章节中,明确表示:软件的错误会导致飞机的故障。且软件错误往往潜伏较深,不是立刻就会产生故障,在实际情况中比硬件问题更加复杂,不易发现。
►
在商业领域,有充分证据证明,越早期发现软件缺陷,其经济效益越好。
►
作为嵌入式领域的产品,一旦发布后再解决问题具有挑战性。要召回航天器材的成本同样也远高于其它产品。
►
作为关键应用的航天科技领域,代码的缺陷及潜在问题,除了导致修复成本增加外,软件故障很可能导致不可预估的风险,甚至大量人员的死亡。这会带来法律诉讼风险和重大的品牌商誉损害。
2、代码质量与安全要求
在DO-178C标准的6.3.4章节中,明确定义了源代码的检查与分析要求。
►
►
自主可控解决方案——Corax
基于上述的分析,如果希望能够研发出符合DO-178C标准的软件,必须在软件的研发过程中引入专业的静态代码分析工具,从而高效全面地发现代码中潜在的质量与安全问题。如何选择分析工具也将直接影响软件研发的效率与最终效果,下面我们具体介绍如何使用蜚语科技的Corax实现对DO-178C标准的支持。
Corax简介
Corax是由蜚语科技自研的国产化下一代静态代码分析平台。不同于传统的基于模式匹配的静态代码扫描产品,Corax引入了符号执行、函数摘要、污点分析、路径可达性分析、数据流分析、自然语言处理等前沿的程序分析和人工智能技术。除了分析代码的语法信息外,Corax还能够处理程序的复杂语义信息,从而使得Corax能够发现传统代码扫描工具无法发现的复杂程序漏洞,并且拥有比传统工具更加优秀的误报率和漏报率。
3.1 结果精确
对于SAST产品来说,优秀的误报率和漏报率是必不可少的。而在航空航天领域/行业,绝大部分的软件使用C/C++编写。Corax团队在C/C++及嵌入式领域具备多年的研发与分析技术积累,能够提供十分精确的扫描能力。
Corax的核心能力主要包含如下三点:
01
Corax提供强大的嵌入式系统底层引擎
具备约束求解能力及路径敏感特性的符号执行引擎。通过对程序中的变量和输入进行符号化处理,以符号的形式代替具体的数值,从而在不实际执行程序的情况下,模拟程序的执行过程并进行静态分析。可以帮助分析工具更准确地模拟程序的执行过程,发现潜在的问题和漏洞。
02
Corax支持对代码的深度扫描
对代码中的内存分配和释放函数的调用进行建模;支持污点分析、AST匹配、指针别名、函数摘要、流敏感分析等技术;支持过程内、跨过程、跨模块(CTU)三种方式的扫描。
03
Corax快速支持对不同目标的代码扫描
Corax通过灵活的配置可以快速支持对不同目标的代码扫描(如文件/函数的黑白名单配置);通过不同的分析策略支持不同的业务场景(如扫描时可以选择保守/常规/激进分析策略确保少漏报或少误报);通过自定义函数模型能够更全面地理解各种自定义函数所引发的深层次问题,从而提高代码扫描的准确性和效率。
3.2 规则明确
DO-178C中明确要求使用编码规范指导软件研发,但需要注意的是,DO-178C并未强制规定具体使用哪个编码规范,研发团队可以基于自身的情况选择合适的编码规范指导开发。在这里我们推荐嵌入式行业最为常用的MISRA-C/C++编码规范,主要考虑到该标准关注于代码鲁棒性和正确性,有助于最大限度地减少编码错误和歧义的可能性,从而提高软件的安全性和可靠性,这一点和DO-178C要求确保机载系统的完整性软件开发的目标是非常一致的。除了MISRA C/C++,Corax同时也内置了GJB8114、CERT等其他主流编码规范,用户可以自定选择。如果客户需要对成型的编码规范进行定制化,Corax可以通过自定义规则和自定义规则集来快速适配。
蜚语科技推荐航天企业使用MISRA-C和MISRA-C++规范。Corax内置通用标准(如CERT、MISRA-C/MISRA-C++),可快速支持DO-178C标准6.3.4中D小节中的代码规范支持。
MISRA C/C++简介
在航空航天领域/行业,软件的可靠性至关重要,因为软件故障可能导致任务失败,甚至危及人员安全。MISRA规范提供了一套全面的指导原则和规则,帮助开发者编写出更加安全、可靠且可维护的代码。这些规范涵盖了编码风格、程序结构、运行时行为等多个方面,旨在减少软件缺陷和潜在的安全风险。MISRA规范的使用场景主要包括以下几个方面:
提高软件安全性:航天任务对软件的安全性要求极高,MISRA规范提供了一套全面的指导原则和规则,帮助开发者编写出更加安全、可靠且可维护的代码。
跨领域应用:MISRA C已经成为汽车、航空航天、电信、医疗设备、国防、铁路等领域的开发人员广泛接受的最佳编码规范,这表明其在航空航天领域/行业的适用性。
静态测试:MISRA规范与静态测试工具的结合使用,可以自动化检测代码中的潜在问题,提高代码审查的效率和准确性。
自动生成代码的合规性:MISRA规范提供了对自动生成代码应用的指导,确保这些代码也能满足高安全性要求。
功能安全和信息安全:MISRA C:2012 Addendum 2/3以及Amendment 1都是用来补充和说明MISRA C:2012是如何保证网络信息安全的,这在航空航天领域/行业中尤为重要,因为航天系统越来越多地采用智能网联技术。
遵循国际标准:MISRA规范经常与ISO标准相结合使用,如ISO 26262 & IEC 61508,为航天软件的开发提供更为严格的安全要求。(蜚语科技Corax已通过ISO 26262 & IEC 61508认证)
同时,对于航空航天领域/行业此类较为复杂的嵌入式环境,除常见代码的可维护性、可阅读性、稳定性等代码质量问题外,DO-178C标准的6.3.4中F小节特别指出需要确保代码中不存在严重的未定义行为。针对C/C++中未定义行为(比如错误的指针与内存操作)这类复杂的代码问题,Corax提供业界领先的静态分析能力,帮助用户快速精确的定位代码中的未定义行为,部分高危检测规则如下:
3.3 持续集成
►
Corax提供配置yaml文件添加CLI命令行的方式,快速集成到CI/CD流程中,使其能够在代码提交或定期构建时自动触发安全扫描。
►
Corax提供常见的IDE插件支持。如:Eclipse、VS Code、Android Studio、IDEA、PyCharm、webstorm等。
►
在自动生成安全报告后,可在Corax平台查看扫描结果,也可展出相应报告。扫描结果也与缺陷跟踪系统集成,以便开发团队可以方便地追踪和管理安全问题。
►
可通过代码门禁的方法进行自动提醒相关人员。也可通过门禁配置对航天关键系统的代码进行卡点。避免高危缺陷软件发布。
►
在修复完结后,开发人员继续提交代码,自动扫描,并通过门禁自动确认修复状况。
3.4 清晰溯源
对于航空航天领域的C/C++软件缺陷,其问题的触发往往涉及较为复杂的上下文环境。面对分析工具产出的结果,研发团队往往需要花费大量的时间去定位问题的成因并完成修复。Corax针对每一个发现的问题提供详细的漏洞溯源展示,准确识别漏洞出现时程序的调用栈与相关数据。强大的路径分析能力能够很好地展示漏洞成因,帮助追溯漏洞成因。精确的分支判断帮助判断漏洞出现时的程序状态。协助开发人员快速定位并修复漏洞,降低修复的成本。
✦
✧
小结
✦
正如本文介绍,由于其复杂性和对安全性的严格要求,遵循DO-178C标准的软件开发通常需要专业的知识和经验,使用静态分析工具保障软件的开发是必不可少的环节。
在静态代码分析领域,蜚语科技正是专注于提供开发与软件供应链安全创新解决方案的信息安全企业,具备专业的知识和经验。其推出的Corax,通过结果精确、规则明确、持续集成和清晰溯源等专业技术能力,满足DO-178C标准,助力航空航天领域/行业代码质量和安全建设。
除了帮助用户满足DO-178C的要求,Corax平台同步提供业界领先的C/C++与Java分析能力,具备完善的嵌入式编译环境支持和完善的Java开发框架支持,实现低至10%的实战误报率;产品基于模块化设计,可快速接入任意CI/CD环境,具备丰富的API接口,快速实现DevSecOps流转,其详细的结果展示,可帮助用户快速定位成因;在AI时代,Corax可以无缝接入大模型的智能化能力,实现对分析结果的智能误报分析、修复代码自动生成。
往期推荐
Corax稳定版更新日志-v3.11
Corax社区版更新v2.8,引入CPG分析框架支持
Corax已全面支持MISRA C/C++:2023指南
蜚语实践|如何用Corax社区版实现0day自由(二):实战第一课
蜚语科技是一家专注于提供软件供应链安全创新解决方案的网络安全企业,成立于2019年。蜚语科技孵化自上海交通大学计算机系,创始团队由4名博士组成,拥有十数年的前沿安全研究和一线安全业务经验。蜚语科技扎根左移安全开发赛道,深耕企业安全服务市场,以自动化程序分析技术为核心,致力于探索软件供应链安全的新场景和新边界。蜚语科技现已完成多轮融资,服务于众多世界500强、高科技与互联网公司。得益于客户与资本市场的信任,蜚语科技正处在快速增长之中。
蜚语官网
Corax开源版
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...