999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

藍牙OBEX協(xié)議漏洞挖掘技術(shù)研究

2020-08-21 09:09:32張尚韜
數(shù)字技術(shù)與應用 2020年7期

張尚韜

摘要:通過分析了傳統(tǒng)網(wǎng)絡協(xié)議漏洞挖掘工具在生成測試數(shù)據(jù)的不足,深入研究了Fuzz漏洞挖掘技術(shù)方法。通過研究藍牙OBEX協(xié)議的格式規(guī)范,提出了基于TLV(Type-Length-Value)的藍牙OBEX協(xié)議Fuzz數(shù)據(jù)生成模型。最后基于TLV數(shù)據(jù)生成模型設計并實現(xiàn)了藍牙OBEX協(xié)議漏洞挖掘工具(ObexFuzzer)。

關(guān)鍵詞:藍牙OBEX;Fuzz;漏洞挖掘

中圖分類號:TP309 文獻標識碼:A 文章編號:1007-9416(2020)07-0047-05

0 引言

綠盟科技高級研究員于旸曾這樣說過“凡是歷史上傳統(tǒng)網(wǎng)絡設備出現(xiàn)過的問題,幾乎都已經(jīng)在無線設備上重演了”。藍牙作為無線技術(shù)的一種重要應用,自然也不能例外。幾乎所有的藍牙協(xié)議棧都已經(jīng)被發(fā)現(xiàn)各種安全問題,其中很多問題可以直接導致系統(tǒng)被控制、數(shù)據(jù)被竊取。絕大多數(shù)人對藍牙的安全威脅都一無所知,也沒有解決藍牙安全問題的意識。另外,很多使用藍牙的設備是手機、平板等,普通用戶根本不知道如何給這些設備升級以解決安全問題。更糟的是,有些藍牙協(xié)議棧開發(fā)商出于自身利益的考慮,甚至不肯為存在漏洞的軟件發(fā)布補丁[1-4]。

OBEX(Object Exchange)即對象交換協(xié)議,是藍牙協(xié)議棧、紅外線協(xié)議棧等面向應用層的協(xié)議,該協(xié)議支持文件傳輸、對象Push、數(shù)據(jù)同步等多種應用,提供了設備之間簡單易行的對象交換手段[5-6]。隨著藍牙技術(shù)的廣泛應用,藍牙OBEX協(xié)議已經(jīng)被更多地應用于智能手機、筆記本電腦、平板電腦、數(shù)字相機等各種設備之間進行數(shù)據(jù)的交換。而根據(jù)CVE著名安全漏洞數(shù)據(jù)庫統(tǒng)計已收錄藍牙協(xié)議棧漏洞62個,其中關(guān)于OBEX協(xié)議漏洞就有18個。通過這些可利用漏洞可以達到控制別人的設備和竊取用戶的敏感數(shù)據(jù)。因此,對該協(xié)議進行安全漏洞挖掘技術(shù)的研究,具有極其重大的意義[7-17]。

1 基于TLV的藍牙OBEX協(xié)議Fuzz數(shù)據(jù)生成模型

1.1 Fuzz技術(shù)模型

Fuzz是一種自動化的安全漏洞挖掘技術(shù),它使用大量半有效(Semi-Valid)的數(shù)據(jù)或者文件作為應用程序的輸入,試圖發(fā)現(xiàn)應用程序存在的安全漏洞。

Fuzz技術(shù)在大多數(shù)情況下用于發(fā)現(xiàn)安全Bug,因此也可以應用于軟件測試方面。Fuzz技術(shù)是通過構(gòu)造Fuzzer工具來實現(xiàn)的,圖1顯示了Fuzz的通用測試過程。

1.2 OBEX協(xié)議格式

OBEX即對象交換(Object Exchange)協(xié)議最開始是紅外數(shù)據(jù)協(xié)會IrDA(Infrared Data Association)開發(fā)的用于紅外數(shù)據(jù)鏈路上數(shù)據(jù)對象交換的會話層協(xié)議。OBEX請求數(shù)據(jù)包主要有三個部分組成:操作碼+包長度+必須或者可選的數(shù)據(jù),另外,OBEX響應數(shù)據(jù)包也由三個部分組成:響應碼+包長度+必須或者可選的數(shù)據(jù)。

當應用第一次請求發(fā)送OBEX對象時,則發(fā)出一個請求連接分組,啟動一個OBEX會話,OBEX會話建立過程由OBEX客戶端啟動。該會話自連接請求發(fā)出開始。該請求格式如表1所示。

由表1可以看出,請求連接分組由一個字節(jié)的操作碼,兩個字節(jié)的連接請求分組長度,一個字節(jié)的OBEX版本號,一個字節(jié)的標志位,兩個字節(jié)的OBEX分組最大長度以及不定個字節(jié)的可選分組頭組成。

連接請求由在遠程主機的OBEX服務端接收。服務端通過向客戶端發(fā)出成功應答確認連接,通過發(fā)送其它應答信息到客戶端表示建立連接失敗。連接應答分組格式如表2所示。

1.3 TLV語義

TLV(Type-Length-Value)語法格式應用在很多協(xié)議的編碼格式之中。其中T(Type)字段類似標簽表示后面數(shù)值表示的含義,L(Length)字段表示定義數(shù)值的長度,V(Value)字段表示實際的數(shù)值。因此,一個編碼值又稱為TLV三元組。編碼可以是基本型或結(jié)構(gòu)型,如果它是一個簡單類型的、完整的顯示值,那么編碼就是基本型(Primitive);如果它表示的值具有嵌套結(jié)構(gòu),那么編碼就是結(jié)構(gòu)型(Constucted)。如表3所示。

1.4 藍牙OBEX協(xié)議Fuzz數(shù)據(jù)生成模型

藍牙OBEX協(xié)議操作數(shù)據(jù)包都是以協(xié)議數(shù)據(jù)單元(PDU)方式傳送的,每個藍牙OBEX協(xié)議數(shù)據(jù)單元一個操作碼頭+默認格式(共7字節(jié))開始,后跟可選頭,而這些可選頭格式就是以TLV通用編碼格式來編碼的。且可選頭可以含有多個TLV三元組。每個TLV元組可以按任意順序出現(xiàn),這使應用程序可以很容易地跳過不支持的元組。本文以Put發(fā)送數(shù)據(jù)包為例。如表4所示。

根據(jù)TVL的編碼格式的規(guī)則說明,Put命令數(shù)據(jù)包的可選頭編碼是基本型用TVL格式編碼的OBEX協(xié)議Put命令數(shù)據(jù)包。表5給出了以TLV形式表示的藍牙OBEX協(xié)議Put操作碼數(shù)據(jù)包中的可選頭。

該TLV字段的內(nèi)容進行Fuzz測試時,其內(nèi)容長度這一字段也要進行變更,否則,該協(xié)議數(shù)據(jù)包發(fā)送到服務端,服務端將檢查校驗碼可得知此數(shù)據(jù)包不符合協(xié)議規(guī)范此數(shù)據(jù)包將丟棄。這樣將產(chǎn)生大量的無效數(shù)據(jù)包,嚴重影響Fuzz工具的效率。而在進行藍牙OBEX協(xié)議Fuzz數(shù)據(jù)生成時,其數(shù)據(jù)包將存在多個TLV三元組,為了提高藍牙OBEX協(xié)議數(shù)據(jù)包高效的生成,提出了基于TLV的Fuzz數(shù)據(jù)生成技術(shù)模型。

藍牙OBEX協(xié)議Fuzz測試數(shù)據(jù)生成技術(shù),是通過進行前期研究分析OBEX協(xié)議規(guī)范格式的基礎(chǔ)上,對常用操作請求/響應數(shù)據(jù)包進行配置、填充合理數(shù)據(jù)內(nèi)容生成Fuzz測試數(shù)據(jù)包集,為了達到高效目的,需要完成的工作如下。

(1)數(shù)據(jù)包預處理,識別協(xié)議數(shù)據(jù)包中的靜態(tài)部分和動態(tài)部分。靜態(tài)部分表示數(shù)據(jù)包中不可改變的部分,比如版本號、保留位。動態(tài)部分代表了可被改變的變量。例如協(xié)議字段中的ID的值,把協(xié)議中的各個字段按屬性劃分。

(2)分析易觸發(fā)漏洞的字段,這些字段最容易導致目標軟件在解析時發(fā)生錯誤,按照威脅度的高低確定字段的優(yōu)先級。

(3)分析字段易觸發(fā)的漏洞類型,按照所要觸發(fā)漏洞類型來確定該數(shù)據(jù)類型的填充。

Fuzz數(shù)據(jù)生成技術(shù)依賴研究者對協(xié)議中的各個字段的分析能力,研究者需要充分分析協(xié)議規(guī)范中最容易導致目標軟件在解析時發(fā)生故障的位置。本研究將使用一個數(shù)據(jù)生成模塊生成Fuzz測試數(shù)據(jù)包集。該技術(shù)模型如圖2所示。

2 模塊設計與實現(xiàn)

ObexFuzzer工具是針對藍牙OBEX服務應用程序進行漏洞挖掘,其系統(tǒng)結(jié)構(gòu)設計分為三大模塊,分別為:數(shù)據(jù)生成模塊、測試發(fā)送模塊、服務響應監(jiān)控模塊,如圖3所示。

數(shù)據(jù)包生成模塊包含靜態(tài)分析協(xié)議數(shù)據(jù)包字段屬性、優(yōu)先級和動態(tài)生成Fuzz測試數(shù)據(jù)包集。動態(tài)生成測試數(shù)據(jù)包集首先通過初始化數(shù)據(jù)包模板,填入固定值部分,并按照獨立字段優(yōu)先級和相關(guān)字段優(yōu)先級將各個字段依次填入。然后根據(jù)字段要觸發(fā)的漏洞類型選擇填充方式進而生成測試數(shù)據(jù)包集。

測試發(fā)送模塊主要完成把數(shù)據(jù)包生成模塊中所生成在本地文件夾中的數(shù)據(jù)包發(fā)送到服務端進行測試。首先初始化藍牙設備,搜尋藍牙服務程序。打開服務連接,然后讀取本地生成Fuzz測試數(shù)據(jù)包,依次發(fā)送到服務端進行測試。

服務響應監(jiān)控模塊屬于動態(tài)監(jiān)視程序,負責對客戶端數(shù)據(jù)發(fā)送進行動態(tài)的監(jiān)視跟蹤和對服務端的通信的響應。及時記錄服務端與客戶端的數(shù)據(jù)包的交互狀態(tài)并顯示動態(tài)的日志記錄。服務響應監(jiān)控模塊功能使用Spylite工具完成。

3 挖掘?qū)嵗治?/p>

3.1 手機藍牙協(xié)議棧漏洞挖掘

在利用ObexFuzzer工具測試時,當ObexFuzzer程序在發(fā)送第32個Fuzz測試數(shù)據(jù)包時,SpyLite監(jiān)控程序返回了手機服務端連接中斷的響應。程序中斷發(fā)送。圖4顯示了當時SpyLite監(jiān)測到發(fā)送第32個數(shù)據(jù)包時的情況。圖5顯示的是SpyLite監(jiān)測到手機服務端返回的響應結(jié)果。

分析測試樣本可知漏洞是通過OBEX協(xié)議發(fā)送一個Put請求包,由于數(shù)據(jù)包中Name字段的值包含超長的“..”特殊字符,手機的OBEX Object Push應用服務程序在解析Name Header字段的值就會觸發(fā)該安全漏洞。該漏洞是一個已知的漏洞,CVE編號是CVE-2020-0523。觸發(fā)漏洞時的畸形數(shù)據(jù)包樣本如圖6所示。

3.2 適配器藍牙協(xié)議棧漏洞挖掘

利用OBEXFuzzer工具對藍牙適配器進行漏洞挖掘,進行相關(guān)配置后生成畸形數(shù)據(jù)包對其進行Fuzz測試。其測試步驟方法可參見手機藍牙協(xié)議棧挖掘。

查看Spylite記錄日志信息,出現(xiàn)異常的進程是BTStackServer。用Windbg加載該進程,重新發(fā)送該數(shù)據(jù)包觸發(fā)該異常,如圖7所示。

該漏洞是通過OBEX協(xié)議發(fā)送一個Put請求,由于請求協(xié)議數(shù)據(jù)包Name字段內(nèi)容超長觸發(fā)漏洞,該漏洞是一個未知的緩沖區(qū)溢出漏洞。

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

// 出現(xiàn)連接字串,或者對數(shù)據(jù)沒做處理的錯誤

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 ? ?

//拷貝覆蓋函數(shù)堆棧

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指向的空間是自己精心構(gòu)造的畸形協(xié)議數(shù)據(jù)包,由于Strcpy函數(shù)在拷貝該數(shù)據(jù)包時覆蓋了堆棧及函數(shù)返回地址,出現(xiàn)讀取地址不可訪問。通過JMP Esp方法就可以成功利用該漏洞。

4 結(jié)語

本文在研究藍牙技術(shù)、Fuzz技術(shù)和藍牙OBEX協(xié)議規(guī)范的基礎(chǔ)上,總結(jié)了以往的Fuzzer工具對協(xié)議漏洞挖掘的缺陷與不足,提出了基于TLV藍牙OBEX協(xié)議Fuzz數(shù)據(jù)生成模型并采用該技術(shù)模型實現(xiàn)了ObexFuzzer工具的設計。測試結(jié)果表明,該工具對藍牙OBEX協(xié)議的漏洞挖掘具有很強的實用性。

參考文獻

[1] 張文安,洪榛,朱俊威,等.工業(yè)控制系統(tǒng)網(wǎng)絡入侵檢測方法綜述[J].控制與決策,2019,34(11):2277-2288.

[2] 王群,李馥娟,周倩.網(wǎng)絡空間安全體系結(jié)構(gòu)及其關(guān)鍵技術(shù)研究[J].南京理工大學學報,2019,43(4):495-504.

[3] 楊世超.物聯(lián)網(wǎng)云平臺接入安全技術(shù)研究[C]//中國通信學會.2019年全國公共安全通信學術(shù)研討會優(yōu)秀論文集.中國通信學會:中國通信學會,2019:5.

[4] 陸英.大數(shù)據(jù)時代使用藍牙的風險及解決方案[J].計算機與網(wǎng)絡,2019,45(14):52-53.

[5] 韓冰.在線移動音頻分享平臺的應用權(quán)限與用戶權(quán)利探究[J].西部廣播電視,2019(13):7-8.

[6] 馮貴蘭,李正楠,周文剛.大數(shù)據(jù)分析技術(shù)在網(wǎng)絡領(lǐng)域中的研究綜述[J].計算機科學,2019,46(06):1-20.

[7] 王旭.網(wǎng)絡攻擊行為的宏觀模型與分析[D].北京:北京郵電大學,2019.

[8] 安星碩.霧計算環(huán)境下入侵防御模型及算法研究[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.

主站蜘蛛池模板: 亚洲人免费视频| 国产成人高精品免费视频| 国产一级做美女做受视频| 91福利免费| 日韩毛片免费视频| 亚洲综合色吧| 中国一级毛片免费观看| 日韩美毛片| 五月天香蕉视频国产亚| 国产精品丝袜视频| 国产中文在线亚洲精品官网| 夜夜高潮夜夜爽国产伦精品| 亚洲日韩精品无码专区| 久久黄色小视频| 亚洲男人的天堂久久精品| 免费在线国产一区二区三区精品| 亚洲国产成人超福利久久精品| 国产无码在线调教| 色噜噜在线观看| 精品少妇人妻一区二区| 欧美激情二区三区| 黄色网在线免费观看| 男女性色大片免费网站| 激情综合五月网| 国产午夜精品鲁丝片| 日韩中文欧美| 中文无码毛片又爽又刺激| 免费在线看黄网址| 国产成人高清在线精品| 国产乱子伦一区二区=| 日本色综合网| 2021精品国产自在现线看| 久久无码免费束人妻| 国内精品久久人妻无码大片高| 538国产在线| 国产成人综合日韩精品无码不卡| 2021最新国产精品网站| 青草视频在线观看国产| 久久精品丝袜| 亚洲免费人成影院| 看国产一级毛片| 久久天天躁狠狠躁夜夜2020一| 5555国产在线观看| 激情综合激情| 国产亚洲精品在天天在线麻豆| 99热这里只有精品免费| 中文国产成人精品久久一| 天堂岛国av无码免费无禁网站| 国产香蕉在线视频| 亚洲成肉网| 亚洲二三区| 久久久久青草线综合超碰| 成人国产小视频| 欧美另类一区| 亚洲精品无码AⅤ片青青在线观看| 日本一区中文字幕最新在线| 宅男噜噜噜66国产在线观看| 在线观看精品国产入口| 亚洲最大在线观看| 日本亚洲欧美在线| 国产在线观看一区精品| 亚卅精品无码久久毛片乌克兰| 中文字幕免费视频| 国产毛片一区| 九九视频免费在线观看| 亚洲第一区欧美国产综合| 成人午夜网址| 久久久久久尹人网香蕉| 丰满的熟女一区二区三区l| 欧美性爱精品一区二区三区| 国产福利免费视频| 福利视频99| 色综合日本| 国产菊爆视频在线观看| 国产麻豆精品手机在线观看| 伊人久久大线影院首页| 国产成人免费高清AⅤ| 57pao国产成视频免费播放| 久久毛片基地| 亚洲系列无码专区偷窥无码| 亚洲欧州色色免费AV| 亚洲一级毛片免费观看|