• 图纸下载
  • 专业文献
  • 行业资料
  • 教育专区
  • 应用文书
  • 生活休闲
  • 杂文文章
  • 范文大全
  • 作文大全
  • 达达文库
  • 文档下载
  • 音乐视听
  • 创业致富
  • 体裁范文
  • 当前位置: 达达文档网 > 图纸下载 > 正文

    蓝牙OBEX协议漏洞挖掘技术研究

    时间:2021-01-27 16:15:12 来源:达达文档网 本文已影响 达达文档网手机站

    张尚韬

    摘要:通过分析了传统网络协议漏洞挖掘工具在生成测试数据的不足,深入研究了Fuzz漏洞挖掘技术方法。通过研究蓝牙OBEX协议的格式规范,提出了基于TLV(Type-Length-Value)的蓝牙OBEX协议Fuzz数据生成模型。最后基于TLV数据生成模型设计并实现了蓝牙OBEX协议漏洞挖掘工具(ObexFuzzer)。

    关键词:蓝牙OBEX;Fuzz;漏洞挖掘

    中图分类号:TP309 文献标识码:A 文章编号:1007-9416(2020)07-0047-05

    0 引言

    绿盟科技高级研究员于旸曾这样说过“凡是历史上传统网络设备出现过的问题,几乎都已经在无线设备上重演了”。蓝牙作为无线技术的一种重要应用,自然也不能例外。几乎所有的藍牙协议栈都已经被发现各种安全问题,其中很多问题可以直接导致系统被控制、数据被窃取。绝大多数人对蓝牙的安全威胁都一无所知,也没有解决蓝牙安全问题的意识。另外,很多使用蓝牙的设备是手机、平板等,普通用户根本不知道如何给这些设备升级以解决安全问题。更糟的是,有些蓝牙协议栈开发商出于自身利益的考虑,甚至不肯为存在漏洞的软件发布补丁[1-4]。

    OBEX(Object Exchange)即对象交换协议,是蓝牙协议栈、红外线协议栈等面向应用层的协议,该协议支持文件传输、对象Push、数据同步等多种应用,提供了设备之间简单易行的对象交换手段[5-6]。随着蓝牙技术的广泛应用,蓝牙OBEX协议已经被更多地应用于智能手机、笔记本电脑、平板电脑、数字相机等各种设备之间进行数据的交换。而根据CVE著名安全漏洞数据库统计已收录蓝牙协议栈漏洞62个,其中关于OBEX协议漏洞就有18个。通过这些可利用漏洞可以达到控制别人的设备和窃取用户的敏感数据。因此,对该协议进行安全漏洞挖掘技术的研究,具有极其重大的意义[7-17]。

    1 基于TLV的蓝牙OBEX协议Fuzz数据生成模型

    1.1 Fuzz技术模型

    Fuzz是一种自动化的安全漏洞挖掘技术,它使用大量半有效(Semi-Valid)的数据或者文件作为应用程序的输入,试图发现应用程序存在的安全漏洞。

    Fuzz技术在大多数情况下用于发现安全Bug,因此也可以应用于软件测试方面。Fuzz技术是通过构造Fuzzer工具来实现的,图1显示了Fuzz的通用测试过程。

    1.2 OBEX协议格式

    OBEX即对象交换(Object Exchange)协议最开始是红外数据协会IrDA(Infrared Data Association)开发的用于红外数据链路上数据对象交换的会话层协议。OBEX请求数据包主要有三个部分组成:操作码+包长度+必须或者可选的数据,另外,OBEX响应数据包也由三个部分组成:响应码+包长度+必须或者可选的数据。

    当应用第一次请求发送OBEX对象时,则发出一个请求连接分组,启动一个OBEX会话,OBEX会话建立过程由OBEX客户端启动。该会话自连接请求发出开始。该请求格式如表1所示。

    由表1可以看出,请求连接分组由一个字节的操作码,两个字节的连接请求分组长度,一个字节的OBEX版本号,一个字节的标志位,两个字节的OBEX分组最大长度以及不定个字节的可选分组头组成。

    连接请求由在远程主机的OBEX服务端接收。服务端通过向客户端发出成功应答确认连接,通过发送其它应答信息到客户端表示建立连接失败。连接应答分组格式如表2所示。

    1.3 TLV语义

    TLV(Type-Length-Value)语法格式应用在很多协议的编码格式之中。其中T(Type)字段类似标签表示后面数值表示的含义,L(Length)字段表示定义数值的长度,V(Value)字段表示实际的数值。因此,一个编码值又称为TLV三元组。编码可以是基本型或结构型,如果它是一个简单类型的、完整的显示值,那么编码就是基本型(Primitive);如果它表示的值具有嵌套结构,那么编码就是结构型(Constucted)。如表3所示。

    1.4 蓝牙OBEX协议Fuzz数据生成模型

    蓝牙OBEX协议操作数据包都是以协议数据单元(PDU)方式传送的,每个蓝牙OBEX协议数据单元一个操作码头+默认格式(共7字节)开始,后跟可选头,而这些可选头格式就是以TLV通用编码格式来编码的。且可选头可以含有多个TLV三元组。每个TLV元组可以按任意顺序出现,这使应用程序可以很容易地跳过不支持的元组。本文以Put发送数据包为例。如表4所示。

    根据TVL的编码格式的规则说明,Put命令数据包的可选头编码是基本型用TVL格式编码的OBEX协议Put命令数据包。表5给出了以TLV形式表示的蓝牙OBEX协议Put操作码数据包中的可选头。

    该TLV字段的内容进行Fuzz测试时,其内容长度这一字段也要进行变更,否则,该协议数据包发送到服务端,服务端将检查校验码可得知此数据包不符合协议规范此数据包将丢弃。这样将产生大量的无效数据包,严重影响Fuzz工具的效率。而在进行蓝牙OBEX协议Fuzz数据生成时,其数据包将存在多个TLV三元组,为了提高蓝牙OBEX协议数据包高效的生成,提出了基于TLV的Fuzz数据生成技术模型。

    蓝牙OBEX协议Fuzz测试数据生成技术,是通过进行前期研究分析OBEX协议规范格式的基础上,对常用操作请求/响应数据包进行配置、填充合理数据内容生成Fuzz测试数据包集,为了达到高效目的,需要完成的工作如下。

    (1)数据包预处理,识别协议数据包中的静态部分和动态部分。静态部分表示数据包中不可改变的部分,比如版本号、保留位。动态部分代表了可被改变的变量。例如协议字段中的ID的值,把协议中的各个字段按属性划分。

    (2)分析易触发漏洞的字段,这些字段最容易导致目标软件在解析时发生错误,按照威胁度的高低确定字段的优先级。

    (3)分析字段易触发的漏洞类型,按照所要触发漏洞类型来确定该数据类型的填充。

    Fuzz数据生成技术依赖研究者对协议中的各个字段的分析能力,研究者需要充分分析协议规范中最容易导致目标软件在解析时发生故障的位置。本研究将使用一个数据生成模块生成Fuzz测试数据包集。该技术模型如图2所示。

    2 模块设计与实现

    ObexFuzzer工具是针对蓝牙OBEX服务应用程序进行漏洞挖掘,其系统结构设计分为三大模块,分别为:数据生成模块、测试发送模块、服务响应监控模块,如图3所示。

    数据包生成模块包含静态分析协议数据包字段属性、优先級和动态生成Fuzz测试数据包集。动态生成测试数据包集首先通过初始化数据包模板,填入固定值部分,并按照独立字段优先级和相关字段优先级将各个字段依次填入。然后根据字段要触发的漏洞类型选择填充方式进而生成测试数据包集。

    测试发送模块主要完成把数据包生成模块中所生成在本地文件夹中的数据包发送到服务端进行测试。首先初始化蓝牙设备,搜寻蓝牙服务程序。打开服务连接,然后读取本地生成Fuzz测试数据包,依次发送到服务端进行测试。

    服务响应监控模块属于动态监视程序,负责对客户端数据发送进行动态的监视跟踪和对服务端的通信的响应。及时记录服务端与客户端的数据包的交互状态并显示动态的日志记录。服务响应监控模块功能使用Spylite工具完成。

    3 挖掘实例分析

    3.1 手机蓝牙协议栈漏洞挖掘

    在利用ObexFuzzer工具测试时,当ObexFuzzer程序在发送第32个Fuzz测试数据包时,SpyLite监控程序返回了手机服务端连接中断的响应。程序中断发送。图4显示了当时SpyLite监测到发送第32个数据包时的情况。图5显示的是SpyLite监测到手机服务端返回的响应结果。

    分析测试样本可知漏洞是通过OBEX协议发送一个Put请求包,由于数据包中Name字段的值包含超长的“..”特殊字符,手机的OBEX Object Push应用服务程序在解析Name Header字段的值就会触发该安全漏洞。该漏洞是一个已知的漏洞,CVE编号是CVE-2020-0523。触发漏洞时的畸形数据包样本如图6所示。

    3.2 适配器蓝牙协议栈漏洞挖掘

    利用OBEXFuzzer工具对蓝牙适配器进行漏洞挖掘,进行相关配置后生成畸形数据包对其进行Fuzz测试。其测试步骤方法可参见手机蓝牙协议栈挖掘。

    查看Spylite记录日志信息,出现异常的进程是BTStackServer。用Windbg加载该进程,重新发送该数据包触发该异常,如图7所示。

    该漏洞是通过OBEX协议发送一个Put请求,由于请求协议数据包Name字段内容超长触发漏洞,该漏洞是一个未知的缓冲区溢出漏洞。

    0045E5FF    83C4 04          add     esp, 4

    0045E602    8945 98          mov     dword ptr [ebp-68], eax

    0045E606    55               push ebp

    0045E607    98               cwde

    0045E608    52               push    edx

    0045E609    50               push eax

    0045E60A    E8 F1FFFFFF     call    0045E5FF

    // 出现连接字串,或者对数据没做处理的错误

    0045E60F    83C4 04         add     esp, 4

    0045E612    50              push    eax

    // EAX指向的是Name字段Value的超长字符

    0045E613    8D45 9C         lea     eax, dword ptr [ebp-64] //局部变量

    0045E616    50              push    eax

    0045E617    E8 78460700     call    

    //拷贝覆盖函数堆栈

    0045E61C    83C4 08         add     esp, 8

    0045E61F    8D4D 9C        lea     ecx, dword ptr [ebp-64]

    0045E622    51              push    ecx

    0045E623    E8 72460700     call    

    0045E628    83C4 04         add     esp, 4

    0045E62B    C64405 9B 00    mov     byte ptr [ebp+eax-65], 0

    0045E630    EB 68           jmp     short 0045E69A

    此时EAX指向的空间是自己精心构造的畸形协议数据包,由于Strcpy函数在拷贝该数据包时覆盖了堆栈及函数返回地址,出现读取地址不可访问。通过JMP Esp方法就可以成功利用該漏洞。

    4 结语

    本文在研究蓝牙技术、Fuzz技术和蓝牙OBEX协议规范的基础上,总结了以往的Fuzzer工具对协议漏洞挖掘的缺陷与不足,提出了基于TLV蓝牙OBEX协议Fuzz数据生成模型并采用该技术模型实现了ObexFuzzer工具的设计。测试结果表明,该工具对蓝牙OBEX协议的漏洞挖掘具有很强的实用性。

    参考文献

    [1] 张文安,洪榛,朱俊威,等.工业控制系统网络入侵检测方法综述[J].控制与决策,2019,34(11):2277-2288.

    [2] 王群,李馥娟,周倩.网络空间安全体系结构及其关键技术研究[J].南京理工大学学报,2019,43(4):495-504.

    [3] 杨世超.物联网云平台接入安全技术研究[C]//中国通信学会.2019年全国公共安全通信学术研讨会优秀论文集.中国通信学会:中国通信学会,2019:5.

    [4] 陆英.大数据时代使用蓝牙的风险及解决方案[J].计算机与网络,2019,45(14):52-53.

    [5] 韩冰.在线移动音频分享平台的应用权限与用户权利探究[J].西部广播电视,2019(13):7-8.

    [6] 冯贵兰,李正楠,周文刚.大数据分析技术在网络领域中的研究综述[J].计算机科学,2019,46(06):1-20.

    [7] 王旭.网络攻击行为的宏观模型与分析[D].北京:北京邮电大学,2019.

    [8] 安星硕.雾计算环境下入侵防御模型及算法研究[D].北京:北京科技大学,2019.

    [9] 董晓峰.基于集成学习的多特征Android恶意应用程序检测[D].西安:西安科技大学,2019.

    [10] Bluetooth Product Shipments More Than Double Again Reports In-Stat. http://www.allbusiness.com/electronics/computer-equipment-personal-computers/5075329-1.html.oct,2008.

    [11] Andreas Becker.Bluetooth Security & Hacks[C].Seminar ITS.August,2007.

    [12] Luca Carettoni,Claudio Merloni,Stefano Zanero.Studying Bluetooth Malware Propogation [J]. IEEE Security&Privacy.2007,5(2):17-25.

    [13] CVSS. Common Vulnerabilities and Exposures[M].Betascript Publishing,2010.

    [14] Michael Sutton,Adam Greene,Pedram Amini.Fuzzing:Brute Force VulnerabilityDiscovery [M].2008.

    [15] AJ Solon,M Callaghan,J Harkin,TM.McGinnity.Case Study on the Bluetooth Vulnerabl-ities in Mobile Devices[J].IJCSNS International Jounrnal of Computer and Network Security.2006,6(4):125-129.

    [16] David Kammer,Gordon McNutt,Brian Senese,Jennifer Bray.Bluetooth Application Developers Guide[M].Elsevier Science Ltd.2005.

    [17] Infrared Data Association,(IrDA)Object Exchange Protocol OBEX Version 1.3[EB/OL].http://www.irda.org.oct,2008.

    相关热词搜索: 蓝牙 技术研究 漏洞

    • 生活居家
    • 情感人生
    • 社会财经
    • 文化
    • 职场
    • 教育
    • 电脑上网