今天要为大家推荐的论文是来自澳大利亚新南威尔士大学和西安电子科技大学联合投稿的关于无人机的安全的工作Control Parameters Considered Harmful: Detecting Range Specification Bugs in Drone Configuration Modules via Learning-Guided Search,该工作已发表于ICSE 2022.
为了支持多种任务,应对不同的飞行环境,无人机控制程序通常提供可配置的控制参数。然而,这种灵活变化的修改机制会带来一种新的漏洞--range specification bugs(范围规范错误)。该漏洞的特点是:即使一个配置中的每个参数值都在官方规定的范围内,整体配置仍然可能会影响无人机的物理稳定性。作者开发了一种新颖的学习引导搜索系统LGDFuzzer,来找到这样的组合,并尝试提供了更合理的参数范围。该系统应用元启发式搜索算法(GA)来搜搜这种配置参数。同时通过利用多目标优化,该系统根据变异搜索结果总结可供选择的参数指导范围。比较特殊的是,该系统使用基于机器学习的预测器(predictor)作为启发搜索中的评估器(fitness evaluation)来帮助配置进行突变,这样的优势是搜索中的配置评估不需要实际/模拟的飞行执行,从而提高了搜索的效率。评估结果表明,该系统报告的不正确的配置中超过 85% 导致了真实不稳定的物理状态。
「背景介绍」
飞行控制程序的特点
正常情况下,飞行控制程序定期观察当前的飞行状态和传感器数据,并结合任务以估计无人机下一个时间点的飞行参考状态。然后控制程序生成执行器信号(电机命令)将无人机驱动到参考状态。在稳定飞行的状态下,下一时刻的真实状态和参考状态一般是十分接近的。如果无人机飞行出现不稳定状态,这种偏差将变大。
存在的物理不稳定状态
下面列出了文章中出现的无人机飞行不稳定状态:
飞行冻结:一个不正确的配置可能会导致无人机意外冻结在航路点,使它在一个小范围内徘徊。
视频样例:https://www.youtube.com/watch?v=g79lsTp6H4g
航道偏离:在真实飞行中,可能出现飞行偏离情况。而不正确的配置可能会引发重大偏差,这种偏差可能导致无人机无法修正回正确的轨迹。
视频样例:https://www.youtube.com/watch?v=0buFPNhkLJc
无人机坠毁:偏航最特殊的情况是无人机撞向物体并最终坠毁。
视频样例:https://www.youtube.com/watch?v=TZFcyl5d2mk
潜在推力损失:无人机电机所能做的调整是有限的。如果设置了错误的配置,即使将电机饱和到 100% 油门,无人机也可能无法接近参考状态,这种时候无人机就会出现潜在动力损失的警告,导致后续一系列问题。
发布后权限提升:在起飞前,飞控程序会验证配置并确定是否会触发不稳定的飞行状态,如果触发则中止起飞操作。但是,如果这些被标记为不正确配置在起飞后设置,它们仍然可以被飞行控制程序接受。
视频样例:https://www.youtube.com/watch?v=B_WULGY-Dbg
「LGDFuzzer方法设计」
该方法主要包括三个组件:State Change Predictor, Learning-Guided Mutation Searcher, Range Guideline Estimator。
LGDFuzzer 通过重复执行无人机飞行任务 ({1}) 以生成日志条目。日志条目分为两组,一组被 state change predictor 用于生训练特征{2}) ,另一组被 learning-guided mutation searcher 进行聚类抽样 ({5})提取参与搜索的状态数据。对于state change predictor,它使用特征生成一个predictor({3}{4})。而learning-guided mutation searcher对数据进行聚类并从每类中选择具有代表性的样本 ({6}),searcher进一步使用这些的样本来搜索相应的错误配置({7})。对于搜索过程,learning-guided mutation searcher 迭代改变配置,在每一次迭代中使用predictor来评估哪种配置更有可能导致不稳定状态({8}),直到满足结束条件时停止迭代。对于所有搜索出的潜在不正确配置 ({9}),LGDFuzzer 通过模拟飞行 ({10}{11}{12})验证其是否会真实的导致物理问题。最后,根据验证结果,range guideline estimator 使用多目标优化来生成多个可行范围指南,以平衡特定条件下的可用性和稳定性({13}{14})。
State Change Predictor
参考控制算法根据当前状态和传感器数据估计下一个参考状态这一流程,文章利用机器学习 (ML) predictor来模拟输入状态和输出状态的流程关系,并用于评估配置是否会影响飞行状态。predictor结合一组飞行状态和配置,然后预测出下一个参考状态,最后计算真实并参考状态之间的偏差来确定这组配置会导致问题的概率。
Learning-Guided Mutation Searcher
文章使用遗传算法GA来搜索不正确的配置。LGDFuzzer使用Meanshift对日志中的状态数据进行聚类并进行采样。之后它从每个聚类中随机抽取 m个样本以进行后续搜索。对于每个样本,搜索器执行 GA 搜索,通过迭代变异、交叉和选择来探索不正确的配置。其中评估环节(fitness evaluation)是由predictor代替的。整个搜索的目标是找到含有较大的Fitness的配置,也就predictor预测出这些配置有较大的概率会造成飞行状态的偏差。
Range Guideline Estimator
提供给用户的范围指南应考虑稳定性和适应性,也就是在消除离散的错误配置的同时保留相对完整的可配置空间。由于无法保证未经验证的配置的稳定性,范围指南的估计参考搜索给出的验证过的配置(预测的坏配置实际有好有坏)。LGDFuzzer使用了多元优化来确定合适的范围指南。
目标一:该指南需要提高已验证配置的覆盖数量,也就是尽可能利用验证结果,提高可配置范围;
目标二:该指南需要降低错误配置的占比,也就是尽可能地安全;
用户最终可以根据自身需求选择两者的高低,更高的适应性(更宽的可配置范围)还是更高的稳定性(安全性)。
论文下载:https://arxiv.org/pdf/2112.03511.pdf
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...