腾讯安全沙龙:低空防线:无人机通信协议模糊测试与系统安全研究新突破_第1页
腾讯安全沙龙:低空防线:无人机通信协议模糊测试与系统安全研究新突破_第2页
腾讯安全沙龙:低空防线:无人机通信协议模糊测试与系统安全研究新突破_第3页
腾讯安全沙龙:低空防线:无人机通信协议模糊测试与系统安全研究新突破_第4页
腾讯安全沙龙:低空防线:无人机通信协议模糊测试与系统安全研究新突破_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

腾讯安全云鼎实验室龚伟炜长沙五戎科技有限公司创始人&CEO●毕业于国防科大,曾在战支某部、梆梆安全、三六零等公司任职社网络安全专家委员●行业技术报告2篇,技术发明专利5项,挖掘智能网联汽车零部件Oday漏洞上百个网联汽车国家标准团体标准多项低空防线:无人机通信协议模糊测试与系统安全研究新突破——基于模糊测试的多旋翼无人机安全研究一无人机软硬件架构特征二无人机通信协议三无人机模糊测试初探四无人机漏洞视频演示一、无人机软硬件架构特征多旋翼和固定翼100C多旋翼架构特征通信协议操通信协议硬件飞行控制系统:MCU、IMU、气压计、GPS模块(大脑)通信模块:无线、卫星通信(嘴巴,耳朵)动力系统:电机与电子调速器、BMS(四肢)传感器系统:摄像头,红外、避障、环境等传感器(视、听、触)存储设备:SD卡辅助调试:调试接口硬件1、飞行姿态欺骗漏洞原理针对无人机地面控制站(GroundControlGCS)的“姿态欺骗”攻击。通过伪造无人机的姿态数据(包括俯仰角、滚转角和偏航角),让地面控制站误判无人机的实际方位和运动。这种欺骗可能导致操作员基于虚假的数据做出错误决策,根据姿态自动调整的时候,会导致机器失去平衡。send_mavlink_packet(heartbeat_packet,target_ipsend_mavlink_packet(attitude_packet,target_iproll=random.uniform(-1.0,1.0)#滚转角(弧度)飞行姿态欺骗7飞行姿态欺骗—(kali@kali)-[~/Desktop/NewFoldssudopython./zitai.py7#伪代码示例:姿态角合理性校验ifheartbeat.system_statusnotin操作系统100实时操作系统(RTOS):如果有任务需要执行,实时操作系统会立即(在较短时间内)执行该任务,保证了任务在指定时间内完两大核心:任务调度:根据任务的优先级和资源需求,合理分配CPU时间,确保高优先级任务及时执行,从而满足实时性要求中断管理:快速响应外部事件(如硬件信号)来暂停当前任务,执行中断处理程序,完成后恢复,保障系统的实时响应能力。(1)无人机仿真,避免摔坏真机。(2)开源生态:有全球最大的机器人开源社区(3)在无人机中负责多方面的控制与数据处理。向地面控制站(GCS)发送虚假的电池状态数据,以误导其了解无人机的实际电池状态。无人机电量达到一个临界点0,会导致触发紧急着陆协议或其他安全措施。例如终止当前任务,自动返航、无视GPS信号质量直接迫降、禁用电机输出(部分固件版本)battery_status_packet=create_battersend_mavlink_packet(battery_status_packet,tarbattery_status=mav.battery_status_encode(id=0,#Batteryvoltages=[3000,3000,3000,θ,θ,θ,θ,θ,θ,e],#VeryLowbatteryvoltageofcells(inmillivolts)returnbattery_stat7)1.启用MAVLink签名字段(signature)验证消息来源2.部署电池物理指纹技术(如内阻动态检测)3.引入卡尔曼滤波器预测电量消耗曲线,拒绝突变数据7通信协议74G/5G/卫星通信协议RTSP:视频传输协议·MAVLink是为微型飞行器MAV(MicroAirVehicle)设计的·无人飞行器和地面站(GCS)之间,以及无人飞行器之间通讯常用的协议。面站均使用了MAVLink协议进行通讯。字节索引012345MSG值0~2551~2550~2550~2550~255字节16位校验码的低字节解释有效载荷数据的字节长度(N)消息帧的序列号,每发送完一个消息,内容加1。用以检测丢包情况系统ID:发送本条消息包的系统/飞行器的编号。用于消息接收端在同一网络中识别发送消息的系统或飞行器。组件ID:发送本条消息包的部件的编号。用于消息接收端在同一系统中区分不同的组件,如IMU和飞控消息ID:有效载荷中消息包的编号。该id定义了有效载荷内放的是什么类型的消息,以便消息接收端正确地解码消息包要用的数据放在有效载荷里,内容取决于messageid,长度为LEN校验位:ITUX.25/SAEAS-4哈希校验(CRC-16-CCITT),不包括数据包起始位,从第一个字节到有效载荷(字节1..(N+6))进行crc16计算(还要额外加上一个MAVLINK_CRC_EXTRA字节),得到一个16位校验码这是MAVLink协议的起始标志位,在MAVLinkv1中,每个数据包都以0xFE开始。这个字节表示数据包中有效载荷(不包括起始字节、长度、系统ID、组件ID和校验和)的长度。在这个例子中,09意味着有效载荷长度为9字节。数据包序列号:48代表这是发送的第73个序列即系统id为255,这里接收的是QGC的默认系统id。组件ID:BEBE在十六进制中对应的十进制数值是190,对应id为190的这个组件。对应数字0,代表这是一条心跳广播。具体消息对应id在官网找到。有效载荷(Payload):000000000608CO这是消息的数据部分,内容取决于消息ID。最后两个字节是校验和,用于验证数据包的完整性。校验和是根据数据包中的特定字节计算得出的。TypeoftheMAV(quadrotor,helicAutopilottype/class.definedinMAV_AUTOPILOTSystemmodebitfield.mavlinkfinclude/mavlink_typeAbitfieldforusefoMAVLinkversion.notwritablebyuser.getsaddedbyprotocol心跳包一般用来表明发出该消息的设备是否活跃,消息接收端会根据是否及时收到了心跳包来判断是否和消息发送端失去了联系。心跳包由6个数据成员组成,占用9个字节。1、type:飞行器类型,表示了当前发消息的是什么飞行器,如四旋翼,直升机等。type的取值对应枚举类型MAV_TYPE(如四旋翼,对应数值2)。2、autopilot:飞控类型,什么牌子,如apm,Pixhawk等)3、basemode:基本模式:飞控现在所处的飞行模式(手动、自动、返航、悬停等模式)4、custommode:用户模式:在基础上,更详细飞行状态(自动起飞、自动降落、执行特定任务、自动导航)5、systemstatus:系统状态(正常工作、启动中、警告、故障、关闭)6、mavlinkversion:版本:消息发送端的MAVLink版本。0值uint8_tmagic数据包起始标志协议特定的文本开始(STX)标记,用于12有效载荷长度不兼容标志-标识该消息包中负载长度为实现MAVLink兼容性必须理解的标志3如果不理解,则可以忽略的标志(即使不4uint8_tseq包序列号0-255消息发送序列号,用于检测数据包的丢失5uint8_tsysid系统ID(发送者)1-2551-255网络上的系统.6组件ID(发送者)发送消息的组件的ID。用于区分系统中的1发送消息的组件的ID。用于区分系统中的EQ\*jc3\*hps26\o\al(\s\up4(有),码)EQ\*jc3\*hps26\o\al(\s\up4(效),回)EQ\*jc3\*hps26\o\al(\s\up4(负),消)EQ\*jc3\*hps26\o\al(\s\up4(载中消),息对象)消息内部的负载信息签名信息(可选)签名以确保链接是防篡改的.协议漏洞案例3、告警欺骗SentSTATUSTEXTpacketwithseveSentSTATUSTEXTpacketwithseverity4a[07:26:28.259]Info:ArduCopterV4.4.4(865[97:28:83.222]ALERT:ALERT:Attentionneeded[97:28:04.270]Warning:WARNING:Hightemperaturedetected【07:28:05.322]Notice:NOTICE:SystEQ\*jc3\*hps18\o\al(\s\up5(07),97)EQ\*jc3\*hps18\o\al(\s\up5(28),28)EQ\*jc3\*hps18\o\al(\s\up5(06),87)EQ\*jc3\*hps18\o\al(\s\up5(36),4)EQ\*jc3\*hps18\o\al(\s\up5(8),5)EQ\*jc3\*hps18\o\al(\s\up5(ERT),ALE)EQ\*jc3\*hps18\o\al(\s\up5(AL),RT)EQ\*jc3\*hps18\o\al(\s\up5(ERT),ALE)EQ\*jc3\*hps18\o\al(\s\up5(At),T)EQ\*jc3\*hps18\o\al(\s\up5(en),A)EQ\*jc3\*hps18\o\al(\s\up5(tio),te)EQ\*jc3\*hps18\o\al(\s\up5(n),n)EQ\*jc3\*hps18\o\al(\s\up5(n),e)EQ\*jc3\*hps18\o\al(\s\up5(ee),e)EQ\*jc3\*hps18\o\al(\s\up5(d),d)EQ\*jc3\*hps18\o\al(\s\up5(e),e)EQ\*jc3\*hps18\o\al(\s\up5(d),d)[07:28:09.499]Marning:WARNING:H1ght[07:28:10.523]Error:ERRO4、验证绕过自100%5、RTSP窃听EQ\*jc3\*hps19\o\al(\s\up3(4),r)EQ\*jc3\*hps19\o\al(\s\up3(tcp),sp)EQ\*jc3\*hps19\o\al(\s\up3(n),r)EQ\*jc3\*hps19\o\al(\s\up3(r),e)I_rtsp-mechods:OPTIOiNS,DeSCRIbE,ANIMOUNCE,GET_PARAMETER,PAUSE,PLAY,RECOEQ\*jc3\*hps14\o\al(\s\up4(RD),30)EQ\*jc3\*hps14\o\al(\s\up4(SE),00)EQ\*jc3\*hps14\o\al(\s\up4(UP),cp)EQ\*jc3\*hps14\o\al(\s\up4(ET),o)EQ\*jc3\*hps14\o\al(\s\up4(_),p)EQ\*jc3\*hps14\o\al(\s\up4(P),e)EQ\*jc3\*hps14\o\al(\s\up4(A),n)EQ\*jc3\*hps14\o\al(\s\up4(MET),ppp)MACAddress:02:42:0A:0D:00:03(Unknffplayversion7.1-3+b1Copyright(c)2--incdir=/usr/include/×86bdir=/usr/lib/x86_64-linux-amd64-enable-gpl-disable-strippinge-gnutls-enable-libaom-enable-libass-enable-libbs2b-enable-libcdioenable-libcodec2-enable-libdav1d-enable-libflite-enable-lib-enable-libgsm-enable-libharfbuzz-enable-libgsm-enable-libharfbuzz-enabenable-libopenjpeg-enable-libopenmpt--enable-libopuenable-libopenjpeg-enable-libopenmpt--enable-libopud-enable-libshine-enable-libsnappy-enable-libsoxrenable-libvpx--enable-libwebp-enable-lib×265nable-libtheora--enable-libtwolame-enable-libvidstabenable-libvpx--enable-libwebp-enable-lib×265xvid-enable-libzimg-enable-open模糊测试引擎设计种子选择策略评分维度关键消息类型代码覆盖率提升消息结构复杂度崩溃相关性状态转移触发校验和有效性计算方式心跳包=1.0,控制指令=3.0,参数配置=2.0,数据回传=0.5新覆盖基本块数×2+新覆盖边数×1(字段数/10)+嵌套深度×2+数组字段存在标志×1触发新状态转换次数×2有效CRC=1.5/无效CRC=0.5权重系数#基础权重模糊测试引擎设计种子变异策略·字段值的边界测试#生成长度与payload不匹配的用例ifrandom.random()<0.3:self.base.len=(self.base.len+random.randint(-5,defmutate_magic(header):magic_values=[xFE,QxFD,0x80,8xFF]#MAVLinkv1=8xFE,v2ifrandom.random()<0.3:模糊测试引擎设计种子变异策略#生成异常序列号模式#最小值#最大值溢出#最小值#最大值溢出模糊测试引擎设计·Payload字段级变异iffield_def.type=='uint8_t':eliffield_def.type=='float':def_mutate_int(self,value,min_val,max_val):min_val-1,#下溢出max_val+1,#上溢出EQ\*jc3\*h

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论