一种用于无人机程序脆弱性测试的状态监测装置及方法转让专利

申请号 : CN202010348372.9

文献号 : CN111708344B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 罗冰亓培锋吴兴明何跃鹰何清林刘中金孙中豪张家琦邢燕祯卓子寒张翀

申请人 : 国家计算机网络与信息安全管理中心

摘要 :

本发明公开了一种用于无人机程序脆弱性测试的状态监测装置及方法。使用本发明能够实时检测无人机控制逻辑的运行状态,为测试工具提供更多维度的反馈信息,扩展网络信息安全测试的深度。本发明装置包括通信监测器和逻辑监测器;通信监测器用于检测DUT的通信服务是否正常;逻辑监测器采集DUT的核心模组发出的电调和舵机信号,利用DUT动力学和运动学数值模型计算出其姿态角、加速度、角速度等信息,通过比较数值模型的实时计算结果与历史计算结果,及时识别飞行控制逻辑出现的异常,实现对DUT控制逻辑的状态监测。

权利要求 :

1.一种无人机程序脆弱性测试的状态监测方法,其特征在于,包括如下步骤:构建状态检测装置,包括通信监测器和逻辑监测器;

其中,通信监测器与DUT和测试工具连接,用于检测DUT的通信服务是否正常;

逻辑监测器包括数据采集板、计算机和多自由度倾角调整平台;DUT安装在多自由度倾角调整平台上,DUT的核心模组与电机调速器、舵机之间的信号线断开,核心模组输出的电调信号和舵机信号接至数据采集板;数据采集板采集电调和舵机信号并发送至计算机;计算机根据采集的电调和舵机信号,以及DUT动力学和运动学模型计算出DUT的姿态角、加速度和角速度;根据计算出的DUT姿态角调整多自由度倾角调整平台的角度;

步骤1,将DUT安装在多自由度倾角调整平台上,并断开DUT的核心模组与电机调速器、舵机之间的信号线;将通信监测器和数据采集板与DUT连接;DUT设置为姿态自稳模式;

步骤2,数据采集板采集DUT的核心模组发出的电调和舵机信号;

步骤3,计算机根据数据采集板采集到的电调和舵机信号的电调量和舵机量,以及DUT动力学模型,计算出DUT的姿态角、加速度和角速度,并将多自由度倾角调整平台的倾角设置为计算得到的DUT姿态角;

步骤4,通信监测器对DUT的通信服务进行探测,若探测到通信状态异常则输出状态异常信息,转至步骤9;通信状态无异常则执行步骤5;

步骤5,计算机根据数据采集板采集的电调和舵机信号的信号时间戳,计算电调和舵机信号的实际周期值,如果实际周期值超过预期范围,则输出状态异常信息,转至步骤9,否则执行步骤6;

步骤6,计算机将计算出的DUT姿态角、加速度和角速度与DUT历史数据做比较,若明显偏离历史数据,则输出状态异常信息,转至步骤9,否则执行步骤7;

步骤7,计算机判断计算出的DUT姿态角是否超出设置的姿态角阈值,若超出,则输出状态异常信息,转至步骤9,否则执行步骤8;

步骤8,输出状态正常信息,转至步骤9;

步骤9,在状态监测的下一个更新周期时刻,返回步骤2。

2.如权利要求1所述的状态监测方法,其特征在于,计算机先创建一定长度的FIFO序列,用于存储根据DUT动力学和运动学数值模型计算得到的姿态角、加速度和角速度数据;

计算机每次计算出新的结果后,与FIFO序列中存储的历史数据做比较,如果结果明显偏离FIFO序列存储的历史数据,则判断控制状态异常。

3.如权利要求2所述的状态监测方法,其特征在于,计算机每次计算出新的结果后与FIFO序列中存储的历史数据的统计值做比较。

4.如权利要求1所述的状态监测方法,其特征在于,所述通信监测器将通讯数据包发送至DUT并接收DUT的回复数据;其中,通讯数据包包括通信监测器产生的正常数据包和测试工具产生的畸变数据包;根据DUT的回复数据判断DUT的通信服务是否正常。

5.如权利要求1所述状态监测方法,其特征在于,所述数据采集板记录电调和舵机信号的边沿突变时间,形成信号时间戳,同时将电调和舵机信号转换为相应的数值,形成电调量和舵机量;数据采集板将信号时间戳、电调量和舵机量传送至计算机。

6.如权利要求1所述的状态监测方法,其特征在于,所述多自由度倾角调整平台由1个Stewart平台和1个旋转底座构成;Stewart平台用于调整横滚角和俯仰角,旋转底座用于调整偏航角。

说明书 :

一种用于无人机程序脆弱性测试的状态监测装置及方法

技术领域

[0001] 本发明涉及计算机软件漏洞挖掘技术领域,具体涉及一种用于无人机程序脆弱性测试的状态监测装置及方法。

背景技术

[0002] 无人机是融合计算机技术、通信技术、传感器技术和自动控制理论的新型设备,被广泛用于抢险救灾、城市管理、电力巡检、农林植保等行业。无人机有较强的机动性,一旦它
被黑客攻击劫持,很可能造成撞伤人群、闯入禁区、干扰航线、甚至外泄情报等严重后果。对
无人机进行程序脆弱性测试,可以挖掘软件漏洞,有助于厂商及时修补漏洞并升级固件,进
而降低无人机的网络信息安全风险。
[0003] 由于无人机是一类新兴设备,市场上暂未出现针对它的通用的脆弱性测试产品,另外,一般情况下测试人员无法获取它的程序源码,因此在测试中,通常采用模糊测试手
段,以通信作为突破口,通过收发数据包的方式测试程序的脆弱性。选择通信作为突破口的
原因是,通信是无人机的必要功能之一,在飞行准备(例如,参数设置、路径规划等)、空中控
制(例如,更新路径点、改变姿态、修改参考位置等)、故障诊断等阶段,以及多机协同等应用
场景,无人机均须与基站或其它无人机通信,通信接口(包括有线参数设置接口、无线数据
传输信道、无线遥控信道等)就是攻击面。
[0004] 在针对无人机的程序脆弱性测试中,通常采用商业级测试工具覆盖基础协议(例如,TCP、UDP、ICMP等),再定制开发专用插件来检测私有协议。这些测试工具都包含被测设
备状态检测模块,用于捕获被测设备的异常状态,作为脆弱性判断的主要依据。通常的状态
监测方法是根据协议格式发送数据包,然后观察回复报文来判断被测设备状态。此类方法
的优点是通用化程度高、容易稳定运行,然而,由于无人机的通信组件与飞行控制组件具有
耦合性,有可能出现飞行控制组件异常但通信组件仍正常回复的情况(多在黑客劫持、失速
坠机等场景出现),此时这类方法就检测不到更深层次的控制逻辑产生的异常状态,导致漏
检。

发明内容

[0005] 有鉴于此,本发明提供了一种用于无人机程序脆弱性测试的状态监测装置及方法,能够实时检测无人机控制逻辑的运行状态,为测试工具提供更多维度的反馈信息,扩展
网络信息安全测试的深度,解决上述漏检问题。
[0006] 本发明的用于无人机程序脆弱性测试的状态监测装置,包括通信监测器和逻辑监测器;
[0007] 其中,通信监测器与DUT和测试工具连接,用于检测DUT的通信服务是否正常;
[0008] 逻辑监测器包括数据采集板、计算机和多自由度倾角调整平台;DUT安装在多自由度倾角调整平台上,DUT的核心模组与电机调速器、舵机之间的信号线断开,核心模组输出
的电调信号和舵机信号接至数据采集板;数据采集板采集电调和舵机信号并发送至计算
机;计算机根据采集的电调和舵机信号,以及DUT动力学和运动学模型计算出DUT的姿态角、
加速度和角速度;根据计算出的DUT姿态角调整多自由度倾角调整平台的角度。
[0009] 较优的,所述通信监测器将通讯数据包发送至DUT并接收DUT的回复数据;其中,通讯数据包包括通信监测器产生的正常数据包和测试工具产生的畸变数据包;根据DUT的回
复数据判断DUT的通信服务是否正常。
[0010] 较优的,所述数据采集板记录电调和舵机信号的边沿突变时间,形成信号时间戳,同时将电调和舵机信号转换为相应的数值,形成电调量和舵机量;数据采集板将信号时间
戳、电调量和舵机量传送至计算机。
[0011] 较优的,所述多自由度倾角调整平台由1个Stewart平台和1个旋转底座构成;Stewart平台用于调整横滚角和俯仰角,旋转底座用于调整偏航角。
[0012] 本发明还提供了一种采用上述状态监测装置的监测方法,包括如下步骤:
[0013] 步骤1,将DUT安装在多自由度倾角调整平台上,并断开DUT的核心模组与电机调速器、舵机之间的信号线;将通信监测器和数据采集板与DUT连接;DUT设置为姿态自稳模式;
[0014] 步骤2,数据采集板采集DUT的核心模组发出的电调和舵机信号;
[0015] 步骤3,计算机根据数据采集板采集到的电调和舵机信号的电调量和舵机量,以及DUT动力学模型,计算出DUT的姿态角、加速度和角速度,并将多自由度倾角调整平台的倾角
设置为计算得到的DUT姿态角;
[0016] 步骤4,通信监测器对DUT的通信服务进行探测,若探测到通信状态异常则输出状态异常信息,转至步骤9;通信状态无异常则执行步骤5;
[0017] 步骤5,计算机根据数据采集板采集的电调和舵机信号的信号时间戳,计算电调和舵机信号的实际周期值,如果实际周期值超过预期范围,则输出状态异常信息,转至步骤9,
否则执行步骤6;
[0018] 步骤6,计算机将计算出的DUT姿态角、加速度和角速度与DUT历史数据做比较,若明显偏离历史数据,则输出状态异常信息,转至步骤9,否则执行步骤7;
[0019] 步骤7,计算机判断计算出的DUT姿态角是否超出设置的姿态角阈值,若超出,则输出状态异常信息,转至步骤9,否则执行步骤8;
[0020] 步骤8,输出状态正常信息,转至步骤9;
[0021] 步骤9,在状态监测的下一个更新周期时刻,返回步骤2。
[0022] 较优的,计算机先创建一定长度的FIFO序列,用于存储根据DUT动力学和运动学数值模型计算得到的姿态角、加速度和角速度数据;计算机每次计算出新的结果后,与FIFO序
列中存储的历史数据做比较,如果结果明显偏离FIFO序列存储的历史数据,则判断控制状
态异常。
[0023] 较优的,计算机每次计算出新的结果后与FIFO序列中存储的历史数据的统计值做比较。
[0024] 有益效果:
[0025] (1)本发明的监测结果不仅包括被测无人机的通信状态,而且反映其控制逻辑的运行状态,相比常见测试工具只监听通信报文作状态判断的方式,本发明的输出结果更有
助于发现深层次的程序脆弱性。
[0026] (2)本发明将电调和舵机信号数字化后代入被测无人机的动力学和运动学数值模型,通过检测模型的姿态等计算结果的波动,以判断被测无人机控制逻辑的运行状态,这样
不仅可以第一时间捕捉到控制逻辑异常及其导致的直观结果(例如,失控、坠机等),而且可
以避免直接检测数值波动强烈的电调或舵机信号产生的虚警问题。
[0027] (3)本发明将占据被测无人机绝大部分体积的动力系统(包括机翼、旋翼、电机、发动机、舵机等)剥离出来,放在计算机中进行模拟,不占用实际空域,大幅降低测试的场地需
求,甚至可以在室内对大型无人机开展飞行状态的程序脆弱性测试工作。
[0028] (4)本发明禁用被测无人机的动力组件,螺旋桨、旋翼等运动机构均可以拆卸或不启动,避免被测无人机失控对测试人员造成身体伤害的情况。
[0029] (5)本发明适用于多种无人机构型(例如,旋翼、固定翼等),只需要更改动力学和运动学数值模型,就可以适用不同构型的无人机。

附图说明

[0030] 图1为本发明的状态监测装置示意图。
[0031] 图2为本发明的状态监测方法流程图。
[0032] 图3为实施例的状态监测装置示意图。

具体实施方式

[0033] 下面结合附图并举实施例,对本发明进行详细描述。
[0034] 本发明提供了一种用于无人机程序脆弱性测试的状态监测装置,如图1所示,它包括通信监测器1和逻辑监测器。
[0035] 通信监测器1:通信监测器1有两个接口,一个连接至DUT(被测无人机设备)通信接口,另一个连接至测试工具。通信监测器1有两个作用,一是转发,即根据DUT通信接口电气
特性,将测试工具产生的畸形数据包转发至DUT通信接口、并将DUT回复的数据包转发至测
试工具;二是探测,即依据DUT通信协议,周期性地产生正确的数据包发送至DUT,并接收DUT
回复的数据包,以此探测DUT的通信服务是否正常。
[0036] 逻辑监测器:逻辑监测器与DUT的电调和舵机信号线连接,并通过捷联方式调整DUT姿态。逻辑监测器的作用是通过DUT的电调和舵机信号监测DUT控制逻辑是否正常。逻辑
监测器的硬件部分由数据采集板2、计算机3和多自由度倾角调整平台4组成。DUT被捷联安
装至多自由度倾角调整平台4,多自由度倾角调整平台4可以调整DUT的姿态角(包括横滚
角、俯仰角和偏航角)。测试时,须将DUT的核心模组与电机调速器(电调)和舵机之间的信号
线断开,并将电调和舵机信号(由DUT输出,用于控制电调和舵机的信号)接至数据采集板2。
数据采集板2对电调和舵机信号作两方面处理,一是记录信号边沿突变时间,形成信号时间
戳,二是将信号转换为相应的数值,形成电调量和舵机量。信号时间戳、电调量和舵机量被
传送至计算机3。计算机3向多自由度倾角调整平台4发送角度设置指令,调整DUT的姿态角。
[0037] 本发明同时提供一种利用上述装置实现的用于无人机程序脆弱性测试的状态监测方法,它由通信状态检测算法、信号状态检测算法和控制状态检测算法组成,当所有算法
结果均为“状态正常”时,状态监测方法的结果为“正常”,当有至少一个算法结果为“状态异
常”时,状态监测方法的结果为“异常”。
[0038] 通信状态检测算法:测量通信监测器周期性向DUT发送探测数据包和从DUT接收回复数据包的间隔时间,当间隔时间大于预期通信响应时间时,算法结果为“状态异常”,否则
为“状态正常”。
[0039] 信号状态检测算法:利用数据采集板测量的信号时间戳(电调和舵机信号的边沿突变时间),计算信号周期值,当周期值偏离预期信号周期时,算法结果为“状态异常”,否则
为“状态正常”。
[0040] 控制状态检测算法:它是逻辑监测器的软件部分,通过动力学和运动学数值模拟来判断DUT的控制状态是否正常。更具体地说,将数据采集板2获取的电调和舵机量值作为
DUT动力学和运动学数值模型的自变量,数值模型在计算机3中运行,数值计算的结果为模
型的姿态角、加速度和角速度,其中的姿态角作为多自由度倾角调整平台4的角度设定值。
多自由度倾角调整平台4通过捷联方式改变DUT的姿态角,DUT感受到姿态变化后,更新电调
和舵机信号。DUT在正常飞行时,电调和舵机信号会控制电机、舵机等动力组件做出调整,从
而改变其姿态和位置;在本发明中,DUT的电调和舵机信号接入数据采集板2,完成闭环。DUT
的飞行控制逻辑正常运行时,其动力学和运动学数值模型的输出是平稳的,姿态角等计算
结果会保持在一定范围内;当飞行控制逻辑异常时,数值模型的输出就会紊乱,姿态角等计
算结果会出现剧烈变化,或者超出正常范围,因此通过比较数值模型的实时计算结果与历
史计算结果,就可以及时识别飞行控制逻辑出现的异常,实现对DUT控制逻辑的状态监测。
[0041] 本发明的状态监测方法的流程如图2所示,主要步骤为:
[0042] [1]装置初始化:将DUT捷联安装至多自由度倾角调整平台;断开电调、舵机的信号线,并将其接至数据采集板;根据DUT的类型、机身尺寸、动力特性,选择合适的动力学和运
动学数值模型,设置参数、初始化。
[0043] [2]DUT初始化:将DUT设置为姿态自稳模式,即飞行控制逻辑通过感知姿态并调整动力的方式保持姿态稳定,不采用全球定位系统(GPS)、声呐等获取的位置信息。
[0044] [3]状态监测初始化:①通信状态检测算法初始化,设置预期通信响应时间范围;②信号状态检测算法初始化,设置预期电调和舵机信号周期范围;③控制状态检测算法初
始化,计算机创建一定长度的先入先出(FIFO)序列,用于存放DUT动力学和运动学数值模型
的结果,设置合适的姿态角阈值,DUT正常运行时,姿态角在阈值内波动;④设置合适的状态
监测更新周期。
[0045] [4]数据采集板将DUT的电调和舵机信号转换为相应数值,送入计算机。
[0046] [5]计算机以步骤[4]的结果作为输入,更新DUT动力学和运动学数值模型。
[0047] [6]计算机设置多自由度倾角调整平台的倾角为步骤[5]结果中的姿态角。
[0048] [7]计算机将步骤[5]中的数值模型的更新结果压入步骤[3]创建的FIFO序列。
[0049] [8]根据通信监测器的记录,计算实际通信响应时间,如果超过预期最长响应时间,则捕捉到通信状态异常并转至步骤[13],否则转至步骤[9]。
[0050] [9]利用数据采集板测量的信号时间戳,计算电调和舵机信号的实际周期值,如果偏离预期周期值范围,则捕捉到信号状态异常并转至步骤[13],否则转至步骤[10]。
[0051] [10]计算机将步骤[5]的结果与FIFO序列的统计值(如均值、方差等)做比较,如果结果明显偏离FIFO序列存储的历史数据,则判断控制状态异常并转至步骤[13],否则转至
步骤[11]。
[0052] [11]计算机将步骤[5]的结果与步骤[3]设置的姿态角阈值作对比,如果姿态角超过阈值,则判断控制状态异常并转至步骤[13],否则转至步骤[12]。
[0053] [12]监测结果无异常,向程序脆弱性测试工具输出状态正常信息,转至步骤[14]。
[0054] [13]捕获到一次异常状态,向程序脆弱性测试工具输出状态异常信息,转至步骤[14]。
[0055] [14]在状态监测的下一个更新周期时刻,返回步骤[4]。
[0056] 步骤[1]至[3]为参数设置及初始化阶段,需要人工参与;步骤[4]至[14]在计算机上自动执行。
[0057] 下面结合一个具体实施例进行说明。
[0058] 多自由度倾角调整平台由1个Stewart平台和1个旋转底座构成,Stewart平台可以调整横滚角和俯仰角,旋转底座可以调整偏航角(也可以采用其他的形式,只要能够调整
DUT的横滚角、俯仰角和偏航角,形式不限)。DUT为一台四旋翼无人机,它的飞行控制系统硬
件与电调之间的连接线被断开,电调信号线接至信号调理采样模块(四旋翼无人机的动力
组件一般不包括舵机)。
[0059] DUT为问答式通信,在正常状态下测量通信响应时间为20ms,设置预期通信响应时间范围为[18,22]ms。
[0060] DUT输出给电调的信号为PWM波形,周期恒定为100Hz,设置预期信号周期值范围为[9.5,10.5]ms。
[0061] 根据DUT的机身尺寸和动力特性,测量其质量m、转动惯量I、旋翼电机到无人机重心的距离L、推力系数k、扭矩系数b、比例系数kp,DUT的动力学方程为:
[0062]
[0063] 其中ω为机体坐标系下的角速度向量,τB为机体坐标系下的无人机力矩,
[0064]
[0065]
[0066] 其中Ωi为第i旋翼的转速,η为DUT的欧拉角向量,η=(φ,θ,ψ)T,φ、θ和ψ分别是无人机的俯仰角、翻滚角、偏航角,即多自由度倾角调整平台的姿态角。 为角速度向量ω
与欧拉角向量一阶时间导数 之间的转换矩阵:
[0067]
[0068] 设无人机总推力造成的加速度为aT,则DUT的运动学方程为
[0069]
[0070] 其中 是从机体坐标系到惯性坐标系的转移矩阵,通过对公式(5)进行时间积分就可以得到DUT的位置(虚拟)。
[0071] 在本实施例中,DUT的电调信号为脉冲宽度调制(PWM)信号,它的占空比与无人机电机转速呈近似线性关系,设第i个电调信号的占空比为ζi,比例系数为kp,则
[0072] Ωi=kpζi  (6)
[0073] 本实施例实现的技术方案流程图(图2)的步骤[7]即为求解以上方程,具体为,将信号调理采样模块捕获的电调信号占空比ζ代入方程(6),联合求解DUT动力学和运动学方
程(1)至(6),即可得到数值模型的结果:姿态角η、加速度aT和角速度ω。
[0074] 给定参考姿态角,将DUT设置为姿态自稳模式,即飞行控制逻辑通过感知姿态并调整动力的方式保持姿态稳定,不采用全球定位系统(GPS)、声呐等获取的位置信息。启动DUT
后,它会在多自由度倾角调整平台上逐渐调整至给定参考姿态角,同时,计算机上显示的数
值模型结果趋于稳定。
[0075] 设置状态监测周期为10ms,采用的FIFO序列长度为500,即可以存放5s的数值模型历史结果。FIFO序列的元素为数值模型的姿态角、加速度和角速度。本实施例实现的技术方
案流程图(图2)步骤[10]为:分别针对姿态角、加速度和角速度,计算FIFO序列历史数据的
均值和方差,如果数值模型的当前结果与均值的偏离程度超过方差值的2倍,则判断为状态
异常。
[0076] 由于四旋翼在姿态自稳模式飞行时,姿态角的波动会稳定在一定范围,本实例设置姿态角阈值为3°,实现的技术方案流程图(图2)步骤[11]为:将姿态角减去给定参考值,
结果的绝对值超过3°时,判断为状态异常。
[0077] 综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的
保护范围之内。