0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

测试和分析工具有助于验证和实施军事系统的安全性

星星科技指导员 ? 来源:嵌入式计算设计 ? 作者:CHRIS TAPP,JAY THOM ? 2022-11-11 15:04 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

作者:CHRIS TAPP,JAY THOMAS

经过适当测试和验证的安全编码实践有助于确保军事系统的可靠和安全运行。组织应从头开始,结合使用静态和动态分析、单元和集成测试以及需求可追溯性。

军事系统中的安全漏洞可能是毁灭性的。具有严重后果的安全中断的一个例子是据称在2011年由中央情报局在伊朗上空捕获的美国RQ-170无人机(UAV)。据伊朗称,该飞船被伊朗网络战部队安全降落,并设法接管了它。断言是,无人机是通过干扰卫星和陆地控制信号捕获的,随后是GPS欺骗攻击,该攻击向无人机提供虚假的GPS数据,使其降落在伊朗,无人机认为是其在阿富汗的大本营。

虽然实际细节可能永远不清楚,但似乎无人机确实受到了损害,以至于它可以安全地降落在伊朗境内,并被敌人拥有以进行可能的逆向工程。该无人机软件中的某些内容允许访问系统的至少一部分,这显然打开了对其重要内部的访问。

保护嵌入式系统

嵌入式系统现在渗透到军队中,从车辆控制、通信、武器控制和制导到自主和半自主系统,包括无人机和类似飞行器。这些设备现在相互连接,用于控制和协调目的。为了人员安全、完成任务的能力以及通常的国家安全,这些设备必须对其操作员安全且操作可靠。此外,它们必须免受未经授权的访问和攻击。如果它们不安全,则不能认为它们是安全或可靠的。因此,对安全性、可靠性和安全性的要求是不可分割和相互依存的。

这些要求不能是事后的想法,而必须从头开始构建。它们还经常要求软件遵守某些编码准则,如MISRA或CERT C,并且必须遵循工业或政府规定的标准,如DO-178C。随着这些系统越来越受到认证要求的约束,必须证明和记录编码和功能的正确性。

尽管有许多策略可用于实现安全性,但仍有必要确保这些策略也正确编码 - 无论是在编码标准方面还是在整个应用程序中的正确功能方面。传输层安全性 (TSL) 等传输协议 – 这是对安全套接字层 (SSL)、安全文件传输协议 (SFTP) 和其他协议的改进 – 现在被广泛使用,但通常从组织外部获取。其他策略可能包括使用安全设备驱动程序、远程实施安全和加密固件升级的过程,以及个人验证协议,如密码、视网膜扫描和射频识别 (RFID) 芯片,以确保访问安全。其他分层安全策略仅允许对系统部分进行选定访问,但这些策略也可能引入漏洞,如果未检测到,这些漏洞可能会被利用。

过去,组织可能已经能够通过手动代码审查和软件演练来检查其代码。然而,当今关键程序的规模和复杂性使得使用这种方法和手段无法确保完整的分析。需要一套新的测试和分析工具及方法来满足当今的安全要求。

建立和实施安全性

当今全面的工具套件在单个开发环境中集成了用于测试、分析和验证的工具。使用工具环境还可以帮助在组织内建立一种规范的方法,该方法可以帮助团队协作,即使他们可能在不同的位置工作。

为了满足认证或资格要求,实现双向需求可追溯性的工具(从需求和设计到实施、验证活动和工件)可以使组织与竞争对手区分开来,并确保获得设备批准的最短路径。需求管理工具允许团队处理单个活动,并将代码和验证工件链接回更高级别的目标。

需要基于需求文档的双向可追溯性,以确保一个或多个低级别需求涵盖每个高级需求,并且每个低级别需求都可以追溯到高级需求。

除此之外,还需要这些工具来执行基于静态分析、动态覆盖分析和单元/集成测试的广泛基础测试。这些结果有助于确保安全性、功能安全性和符合编码标准,以及跟踪需求并通过广泛测试确保它们是否实际按预期运行的能力。

静态和动态分析:安全合作伙伴

在确保安全方面,两个主要问题是数据和控制。设计人员必须考虑谁有权访问数据、谁可以从数据中读取/写入、数据如何流动以及不同级别的访问和控制。为了解决这些问题,静态和动态分析必须同时进行。

在静态分析方面,这些工具使用未编译的源代码来检查代码与所选规则,这些规则可以是支持的标准以及开发人员或公司可能指定的任何自定义规则和要求的任意组合。这些工具还可以查找可能危及安全性的软件结构,检查内存保护以确定谁有权访问内存的哪些部分,以及跟踪可能遍历内存位置的指针。为了获得最佳结果,信息应以图形屏幕显示,以便于评估,以确保符合编码标准。

动态分析测试编译的代码,该代码使用编译器生成的符号数据链接回源代码。动态分析,尤其是代码覆盖率分析,需要大量的测试。开发人员可能能够手动生成和管理自己的测试用例(生成测试用例的典型方法),从需求文档开始工作,该过程可能会以不同程度的有效性刺激和监视应用程序的各个部分。然而,鉴于当今代码的大小和复杂性,这种方法通常不足以获得某些必需的认证。

图1:LDRA 工具套件的动态分析功能可生成基于当前测试运行的变量和参数使用情况报告。该报告突出显示了文件中使用该变量的文件和位置,并使用自定义筛选器进行了更精细的测试。

21

安全性需要对功能漏洞进行严格而彻底的测试,以及遵守正在运行的应用程序中的编码规则和指令。如果覆盖率分析要求包括语句或分支/决策覆盖率、过程/函数调用覆盖率,或者在更严格的环境中,修改条件/决策覆盖率 (MC/DC) — 则这些通常需要源代码和目标代码分析。它还可能需要自动生成测试,作为衡量测试有效性的一种手段(图 1)。

自动测试生成基于代码的静态分析,并在动态分析期间使用此信息来确定对应用程序中软件组件的适当激励。基本边界值测试的这一支柱可以通过从需求文档手动创建的功能测试轻松扩展。这些应包括任何功能安全测试,例如模拟尝试访问控制设备或向其提供会改变其任务的错误数据。此外,基于创建的测试的功能测试应包括稳健性,例如测试不允许的输入和异常条件的结果。

深入了解代码

发现安全漏洞可能涉及更微妙的问题。例如,存在与“死”代码区域相关的危险,这些代码可能被黑客激活或系统中的模糊事件用于恶意目的。尽管从头开始实现安全性是理想的,但大多数项目都包含预先存在的代码,这些代码可能没有经过与当前项目相同的严格测试。静态和动态分析一起使用可以揭示死代码区域,这些区域可能是危险源或可能占用所需空间。

区分真正死代码和很少使用的代码的能力是双向需求可追溯性很重要的另一个原因;为了能够检查应用程序中的代码是否满足需求,还可以从实际代码中将代码追溯到实际需求。如果这些路由都没有显示连接,则代码肯定不属于那里。

因此,静态分析的功能是分析源代码以获得正确的编程实践,还可以帮助为覆盖率测试、功能测试、控制和数据流分析设置动态分析。后者对于突出和纠正潜在的问题领域并产生软件质量指标至关重要。

为满足机载或作战系统的严格安全要求而开发的公司可能需要展示对数据流和控制流的分析,以进行软件认证。在根据DO-178C认证机载软件和系统的情况下,需要在对象级别进行验证。这涉及将源代码级别的代码覆盖率与目标代码级别的代码覆盖率相关联的能力。在某些情况下,可能还需要提供在汇编程序级别扩展代码覆盖率的机制。此扩展对于 DO-178C A 级认证特别有用,其中软件故障可能导致飞机损失和/或生命损失。

从单元测试开始并发展项目

除非可以从头开始进行测试,否则从头开始考虑和开发安全性没有多大帮助 - 这包括在目标硬件可用之前在主机开发系统上进行测试。在这个阶段,没有人在谈论项目接近完成的阶段,因此通常可以进行早期单元测试,然后进行集成测试,因为任务来自不同团队或开发人员。

此方法也适用于可能从头开始编写、从其他项目引入、作为商业产品购买或作为开源获得的代码部分。即使是内部代码也需要检查,因为它最初可能没有经过相同的分析。使用单元测试工具的决定归结为商业决策:产品开发中发现缺陷的时间越晚,修复成本就越高(图 2)。

图2:在开发周期的后期,修复缺陷的成本急剧增加。

22

可以在不考虑硬件时序的情况下完成主机上的功能测试,在某些情况下,可以在具有模拟连接的外围设备的基于主机的虚拟目标上执行。在主机上执行的相同测试也必须在目标硬件上执行,以确保正确的功能测试。

将全面的测试和分析框架应用于组织的开发过程,可以大大提高安全措施的彻底性和准确性,以保护重要系统。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    5161

    文章

    19783

    浏览量

    319607
  • RFID
    +关注

    关注

    392

    文章

    6508

    浏览量

    243381
  • gps
    gps
    +关注

    关注

    22

    文章

    2988

    浏览量

    170044
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    直流充电安全测试负载方案解析

    专业化的安全测试负载方案进行系统性验证。本文针对直流充电安全测试需求,深入解析关键技术及
    发表于 03-13 14:38

    全面解析电动汽车充电桩测试方案与自动化测试系统

    随着电动汽车的普及,充电桩作为基础设施的核心组件,其性能和安全性直接影响用户体验和行业发展。充电桩测试系统是确保充电桩质量的关键工具,能够全面验证
    的头像 发表于 02-27 17:45 ?583次阅读

    AI如何增强车辆安全性和用户交互

    人工智能 (AI) 进入汽车领域已经不再是未来世界才会出现的情景了。从能够通过每次车程汲取经验的智能导航,到驾驶员与汽车之间的智能交互,AI 一直在革新驾驶体验。此外,AI 还有助于提升驾乘安全
    的头像 发表于 02-08 09:48 ?1845次阅读

    负载箱在电力系统测试中的应用与优势

    ,发现潜在的瓶颈和薄弱环节。这种测试有助于优化配电系统的设计,提高其效率和可靠。 新能源系统测试
    发表于 02-05 16:39

    如何提高嵌入式代码质量?

    处理:合理设计和实现异常处理机制,确保系统在面对异常情况时能够安全地恢复或进入安全模式。 3. 错误日志和追踪:记录和追踪系统中的错误和异常,有助于
    发表于 01-15 10:48

    断路器的检测方法

    的性能测试。专业诊断工具可以提供更详细和准确的测试结果,有助于快速诊断和解决问题。这些工具通常能够测量断路器的静态参数、动态参数以及机械特性
    发表于 12-27 10:29

    电气安规分析仪的原理和应用

    相关的安全标准和规定。这有助于企业在新产品上市前及时发现并解决潜在的安全隐患。 在用设备的定期维护:对于在用的电气设备,电气安规分析仪可以用于定期维护和检测。通过
    发表于 12-24 14:13

    电池的安全性测试项目有哪些?

    电池的安全性测试是保证电池在实际使用过程中稳定、安全的重要手段。通过一系列严格的测试项目,能够有效评估电池在不同条件下的表现,并提前发现潜在的安全
    的头像 发表于 12-06 09:55 ?2312次阅读
    电池的<b class='flag-5'>安全性</b><b class='flag-5'>测试</b>项目有哪些?

    电池安全性测试关键:圆柱与软包电池测试设备指南

    机、过充/过放测试仪、热失控测试仪、电池短路测试仪以及压力测试机等。通过这些仪器的配合使用,可以全面检测电池的安全性、可靠
    的头像 发表于 12-06 09:35 ?1227次阅读
    电池<b class='flag-5'>安全性</b><b class='flag-5'>测试</b>关键:圆柱与软包电池<b class='flag-5'>测试</b>设备指南

    永磁同步电机的安全性分析

    永磁同步电机的安全性分析主要涵盖其设计、运行、维护以及故障处理等多个方面。以下是对永磁同步电机安全性分析: 一、设计安全性 材料选择 :
    的头像 发表于 11-22 10:44 ?1179次阅读

    村田贴片电容的使用安全性

    村田贴片电容的使用安全性是一个重要的话题,它直接关系到电子产品的整体性能和可靠。以下是对村田贴片电容使用安全性的详细分析: 一、电气安全
    的头像 发表于 11-15 14:22 ?679次阅读

    汽车雷达回波发生器的技术原理和应用场景

    和可靠。这有助于自动驾驶系统更好地适应各种道路和天气条件,提高自动驾驶的安全性和稳定性。 碰撞预警系统
    发表于 11-15 14:06

    智能系统安全性分析

    智能系统安全性分析是一个至关重要的过程,它涉及多个层面和维度,以确保系统在各种情况下都能保持安全、稳定和可靠。以下是对智能
    的头像 发表于 10-29 09:56 ?898次阅读

    固态电池安全性怎么样

    固态电池在安全性方面表现出显著的优势,这主要得益于其独特的固态电解质结构。以下是对固态电池安全性的详细分析
    的头像 发表于 09-15 11:47 ?2453次阅读

    MSPM0-高级控制计时器有助于实现更好的控制和更好的数字输出

    电子发烧友网站提供《MSPM0-高级控制计时器有助于实现更好的控制和更好的数字输出.pdf》资料免费下载
    发表于 08-28 11:30 ?0次下载
    MSPM0-高级控制计时器<b class='flag-5'>有助于</b>实现更好的控制和更好的数字输出