无人机不像你10岁生日时打开的遥控特技飞机。它们以不同的形式出现在民用空域,或作为军事任务中不可或缺的参与者飞行。制造无人驾驶系统的公司吗安全和安保是非常重要的考虑因素。因此,ISO 14508和DO-178可以证明有助于维持无人驾驶系统的安全和安保。自动化这些认证标准所需流程的软件工具正在减轻负担。
【代码静态分析、SCA、渗透测试、网络设备安全性评估系统、漏洞挖掘系统、Web 安全性评估系统、勒索软件破解系统。合作请后台私信工程师13381155803(微信同步)】
作为一个基本概念,无人机(UAV或“无人机”)的想法是“幼稚”的简单:一个可以远程驾驶的微型飞机。无人机和我们童年时代的玩具之间的主要区别是飞行器本身及其导航和驾驶系统的复杂性。鉴于这些飞行器进入民用空域,并且随着它们开始用于越来越多的民用活动,将继续这样做,无人机软件的安全性变得至关重要。最重要的是,我们要提高代码的健壮性,并尽量减少其对黑客的潜在脆弱性。
无人机使用的这种扩展挑战了FAA“提供世界上最安全,最有效的航空航天系统”的目标。由于无人机上没有人类驾驶员,控制软件主要负责维护无人机的安全和安保。而且,由于没有强制标准来管理无人机系统的安全和保障,无人机的激增增加了我们安全和保障的总体风险。
值得注意的是,即使联邦航空局的标准,安全仍然可能处于危险之中,除非安全标准的强制执行。2011年,美国中央情报局(CIA)一架无人机在伊朗坠毁,这突显出,除非一个系统能够承受黑客攻击,否则安全仍处于危险之中。在那次事件中,地方当局声称,他们通过黑客入侵车辆的GPS使车辆改道。当德克萨斯大学的莱斯教授和一群美国研究人员在美国国土安全部代表面前黑掉一架无人机时,他们的说法得到了证实。该团队通过模仿发送到全球定位设备的实际信号来欺骗机载GPS接收器,以欺骗无人机遵循不同的命令。
为了解决这种情况,空军理工学院的开发人员正在开发一种系统,使无人机能够像人类飞行员一样,通过使用带有模式识别软件的相机来补充GPS导航。这些努力的安全性取决于所部署软件的安全性。
应制定哪些安全/安保标准
关于无人机的安全和安保,有两种标准需要考虑:
1).过程标准描述了为确保以安全的方式(DO-178)或安全的方式(ISO 14508)编写成品而应遵循的开发过程。
2) 编码标准描述了一个高级编程语言子集,确保软件尽可能安全地(MISRA C)和安全地(CERT C)编写。
在无人机的发展中,安全显然是很重要的,但只有当无人机不能被敌对入侵者控制时,它才能被认为是安全的。
ISO 14508(也称为“通用标准”,参考其衍生的合并文档)是一个定义IT安全要求的国际流程导向标准。这些要求根据七个评估测试保证级别(EAL)进行分类,如表1所示,其中EAL 7代表最安全的系统。安全功能需求包括审计、通信、加密、数据保护、身份验证、安全管理、隐私和评估目标(TOE)保护。莱斯教授伪造的GPS信号只证明了一个漏洞,当这些一般原则不适用于无人机通信时。
表1:ISO 14508定义了一系列评估保证等级(EAL),这些等级确定了与每个软件组件相关的过程严格性。
为无人机福尔斯开发的软件遵循DO-178“机载系统和设备认证中的软件考虑”的指导方针。DO-178 B和最近批准的DO-178 C都为机载系统和设备的所有软件的生产提供了详细的指导方针,无论是否是安全关键的。作为这些指南的一部分,DO-178 B/C定义了设计保证等级(DAL),其中A级涉及最严格的故障防护措施。DO-178将这些DAL转换为软件级别,如表2所示。每个软件级别都有相关的目标,这些目标必须在开发过程中得到满足。
表2:DO-178定义了必须针对每个软件组件检查和确定的一系列软件级别。
DO-178认识到软件安全必须在整个开发生命周期中以系统的方式解决。为了帮助开发人员做到这一点,该标准概述了所需的过程,如需求可追溯性,软件设计,编码,以及确保软件的信心,正确性和控制的确认和验证。强大的软件确认和验证过程使开发人员能够检测和纠正软件开发过程中引入的错误。
在软件方面,两个标准之间的重叠相当大,特别是在配置管理、软件开发、质量保证、验证和规划方面。然而,DO-178只关注机载系统中软件的安全性,而ISO 14508则关注系统安全性。
DO-178和ISO 14508都建议使用语言子集(或“编码标准”),例如MISRA C:2012用于安全性,CERT C或CWE用于安全性。这些语言子集主要由开发人员为了确保代码安全而避免的构造和实践列表组成。例如,完全可以遵守MISRA C:2012和CERT C的编码规则,以获得可接受的安全性和安全性级别。
考虑到无人机将同时符合DO-178和ISO 14508标准,开发团队应该努力实现这两个标准的目标。
确保无人机的开发满足系统要求,确保安全和安保问题得到处理,这当然是至关重要的。然而,随着无人机开发相关的市场压力越来越大,改进上市时间和开发成本也很重要。幸运的是,供应商在提供自动化这些认证标准所需流程的工具方面已经取得了很大的进展(图1)。例如,DO-178和ISO 14508的基础是需求可追溯性、静态分析和动态分析,并且可以使用工具来帮助自动化所有三个目标的劳动密集型方面。
图1:满足一个标准是一个挑战;遵守两个标准,如DO-178和ISO 14508,是完全令人生畏的。通过应用适当的自动化技术,开发团队可以最小化所涉及的开销。
需求跟踪工具
这两个标准都要求高级需求可以追溯到设计文档,设计文档可以追溯到代码,代码可以追溯到测试--然后再次备份,从测试到需求,以获得“双向需求可追溯性”。
如果需求从一开始就是静态的和固定的,那么可追溯性将相对简单。然而,这种情况很少发生,因此维护矩阵以显示任何特定时间的可追溯性成为一项非常劳动密集型的任务。
为了帮助管理这种关系矩阵,需求跟踪工具将系统需求链接到软件需求,从软件需求到设计工件,然后到源代码和相关的测试用例。自动化的双向需求跟踪可确保所开发的无人机完全按照最终需求集的要求进行工作--不多不少,也不受这些需求变化的影响(图2)。
图2:需求可追溯性是满足安全性和安全标准的一个重要因素。动态地将高级需求与源代码和验证任务联系起来,确保始终保持最新的可追溯性矩阵。
静态分析工具
当需求建立和设计到位时,开发安全可靠的源代码需要使用适当的编码规则。同样,设计用于开发安全代码的规则与设计用于安全代码的规则相似。例如,许多不安全的C语言功能同样不安全。
值得注意的是,手动检查是否符合MISRA C和CERT C语言子集是不切实际的。静态分析自动验证编码规则。一旦选择了规则,就会对源代码进行静态分析,以突出显示任何违反规则的精确位置。
静态分析也有助于履行其他义务。例如,它识别不必要的复杂代码,因此更容易出错。并且,它确认代码执行了指定的操作。开发人员不仅必须证明代码功能正确,而且必须证明所有代码都在与系统关键性相适应的程度上运行。
动态分析工具
动态分析工具通过单元或集成测试将代码作为整个系统或片段来执行,以显示正确的功能。允许构建和执行子系统所需的任何代码都是自动创建的,并识别执行的代码。
具有成本效益的安全和安保
如前所述,无人机项目既不需要满足DO-178也不需要满足ISO 14508。即使它们是,这些标准也不坚持使用自动化工具或开发过程的自动化。然而,鉴于无人机的作用扩大,其安全性和可靠性的需求至关重要。自动化的需求可追溯性与现代静态和动态分析工具相结合,使其能够以高效和经济的方式满足这些标准的严格要求。
原文始发于微信公众号(StaticCodeAnalysis):如何确保无人机软件的安全性
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论