成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

移動(dòng)應(yīng)用:進(jìn)入物聯(lián)網(wǎng)的后門(mén)?

安全 移動(dòng)安全
在本文中,我們將解決逆向工程繁瑣這個(gè)問(wèn)題,并提出一個(gè)更容易的方法來(lái)逆向智能對(duì)象。我們的思路是,在許多情況下無(wú)需關(guān)注對(duì)象本身,而是關(guān)注相關(guān)的移動(dòng)應(yīng)用程序。我們?cè)敿?xì)介紹了該方法在三個(gè)智能對(duì)象上的應(yīng)用,結(jié)果表明這種方法的效果非常棒。

[[180995]]

摘要

現(xiàn)在,每天都有大量新設(shè)備接入物聯(lián)網(wǎng),但是迫于市場(chǎng)的壓力,這些設(shè)備的安全性和隱私性往往沒(méi)有得到足夠的重視。為了評(píng)估和改善這些設(shè)備的安全狀況,研究人員需要對(duì)它們進(jìn)行逆向工程。不幸的是,這可不是一個(gè)容易的任務(wù),因?yàn)樗麄冃枰鎸?duì)各種不同的智能對(duì)象,并且它們經(jīng)常使用定制的硬件、固件、操作系統(tǒng)和協(xié)議,這意味著每次逆向工程都需要從頭開(kāi)始,這是相當(dāng)費(fèi)時(shí)費(fèi)力的。

在本文中,我們將解決這個(gè)問(wèn)題,并提出一個(gè)更容易的方法來(lái)逆向智能對(duì)象。我們的思路是,在許多情況下無(wú)需關(guān)注對(duì)象本身,而是關(guān)注相關(guān)的移動(dòng)應(yīng)用程序。我們?cè)敿?xì)介紹了該方法在三個(gè)智能對(duì)象上的應(yīng)用,結(jié)果表明這種方法的效果非常棒。實(shí)驗(yàn)的設(shè)備包括:智能牙刷、智能手表和家用安全報(bào)警器。

引言

在牛津英語(yǔ)詞典中,將物聯(lián)網(wǎng)(IoT)定義為“互聯(lián)網(wǎng)的進(jìn)一步拓展,能讓日常生活中的所有對(duì)象互聯(lián)互通,允許它們發(fā)送和接收數(shù)據(jù)”。現(xiàn)在,物聯(lián)網(wǎng)正在逐步走入我們的生活。2014年,約有20億個(gè)物聯(lián)網(wǎng)設(shè)備,這已經(jīng)超過(guò)了筆記本電腦和臺(tái)式電腦的數(shù)量(15億),并且與智能手機(jī)的數(shù)量(18億)相當(dāng)。一些最常見(jiàn)的物聯(lián)網(wǎng)對(duì)象包括:智能手表(請(qǐng)注意,截止2015年第4季度,智能手表的出貨量就已經(jīng)超過(guò)了瑞士手表)、健身腕帶(通常用于人類(lèi),但也可用于貓和狗的設(shè)備,如奧托寵物系統(tǒng))、智能電視和智能眼鏡。但這些只是其中的很少一部分,物聯(lián)網(wǎng)設(shè)備實(shí)際上涉及廣泛的領(lǐng)域:

  • 娛樂(lè)領(lǐng)域,例如Archos公司的音樂(lè)智能比尼帽,Mattel公司的智能芭比娃娃Hello Barbie。
  • 高科技領(lǐng)域,例如Recon Instruments公司的增強(qiáng)現(xiàn)實(shí)防雪面罩,Narrative公司的可穿戴相機(jī)等。
  • 時(shí)尚領(lǐng)域,例如Volvorii公司的物聯(lián)網(wǎng)高跟鞋或服裝。
  • 農(nóng)業(yè)領(lǐng)域,例如奶牛授精。
  • 健康和安全領(lǐng)域,例如Netatmo June公司的皮膚暴露檢測(cè)儀,Vigo公司的睡眠檢測(cè)儀,Glow-Cap公司的藥物提醒帽。等等。

然而,這些設(shè)備的隱私和安全問(wèn)題卻非常讓人擔(dān)憂(yōu)。迫于市場(chǎng)壓力,這些物聯(lián)網(wǎng)設(shè)備通常會(huì)急不可耐的盡早面世,因此,通常都沒(méi)有經(jīng)過(guò)適當(dāng)?shù)陌踩珜彶椋袝r(shí)甚至缺乏正確的安全設(shè)計(jì)。例如,HP研究發(fā)現(xiàn),90%的IoT設(shè)備至少會(huì)收集一條個(gè)人信息,70%的設(shè)備使用未加密的網(wǎng)絡(luò),10個(gè)UI中有6個(gè)設(shè)備容易受到諸如XSS和弱憑證的威脅。根據(jù)這些現(xiàn)狀,IDC預(yù)測(cè)到2016年12月,90%的IT網(wǎng)絡(luò)將因IoT的安全漏洞而遭受威脅。在消費(fèi)者方面,埃森哲咨詢(xún)公司在28個(gè)不同國(guó)家對(duì)28,000個(gè)人進(jìn)行了調(diào)查結(jié)果表明,47%的消費(fèi)者對(duì)IoT存在隱私和安全擔(dān)憂(yōu)。

為了評(píng)估智能對(duì)象的安全性和隱私性,研究人員需要密切分析它們的具體實(shí)現(xiàn)。但是,由于技術(shù)文檔很少,所以第一步通常需要對(duì)相關(guān)設(shè)備進(jìn)行逆向工程。逆向工程本來(lái)就不是一個(gè)輕松的任務(wù),對(duì)于物聯(lián)網(wǎng)設(shè)備來(lái)說(shuō),就更加困難了,因?yàn)?i)它們使用的組件越特殊,人們對(duì)它的了解就越少,以及(ii)因?yàn)橹悄軐?duì)象彼此差異很大。前者需要了解陌生領(lǐng)域的專(zhuān)業(yè)知識(shí)(例如,Riot,Contiki,Brillo等操作系統(tǒng)),而后者則意味著需要逆向智能對(duì)象,但是逆向一個(gè)智能對(duì)象的經(jīng)驗(yàn),在逆向其他對(duì)象的時(shí)候幫助不大。例如,智能手表的逆向工程與智能牙刷的逆向工程幾乎沒(méi)有共同之處。因此,在第一個(gè)任務(wù)期間獲得的經(jīng)驗(yàn)對(duì)第二個(gè)任務(wù)幾乎沒(méi)有幫助。

這些正是本文要解決的問(wèn)題。我在這里提出了一種簡(jiǎn)單的方法,并且我已經(jīng)多次實(shí)踐,證明該方法確實(shí)有效。這種方法能夠使得逆向過(guò)程的前面幾步更加簡(jiǎn)單,從而有助于研究人員更快地了解設(shè)備本身。此外,它還能提供許多有價(jià)值的信息,可以使進(jìn)一步的逆向工作更集中、更有針對(duì)性。

在本文中,我們首先討論這個(gè)主題的前期工作(第2節(jié)),然后解釋我們使用的方法(第3節(jié))。然后,通過(guò)三種不同智能對(duì)象舉例說(shuō)明我們的方法:智能牙刷(第4節(jié))、智能手表(第5節(jié))和(第6節(jié))。最后,我們將對(duì)這種方法進(jìn)行總結(jié)。

發(fā)展現(xiàn)狀

雖然物聯(lián)網(wǎng)已經(jīng)開(kāi)始流行,但是,其安全研究仍處于早期階段,相關(guān)的出版物也遠(yuǎn)少于其他領(lǐng)域,如操作系統(tǒng)安全。我們可以引用的文獻(xiàn)有NEST恒溫器、WeMo電源插座、健康輸液泵中的漏洞、在Fitbit Flex dongles中注入任意代碼、藍(lán)牙掃描、嬰兒監(jiān)視器等等。一方面,這些研究為逆向物聯(lián)網(wǎng)設(shè)備提供了有趣的線索,同時(shí),也說(shuō)明了不同的智能對(duì)象的差距是多么大,以及研究人員為了了解它們而需要做的工作量有多么大。

參考文獻(xiàn)[14]將這項(xiàng)任務(wù)比作CTF競(jìng)賽,這看起來(lái)是非常合適的,因?yàn)槊總€(gè)挑戰(zhàn)是不同的而且非常耗時(shí),并且在網(wǎng)絡(luò)上也找不到立即可用的解決方案。

在學(xué)術(shù)界,一些研究人員提出了相關(guān)的方法或自動(dòng)化方法來(lái)幫助逆向固件。文獻(xiàn)[15]給出了物聯(lián)網(wǎng)不同攻擊面的詳細(xì)清單。該清單有助于在安全審核/滲透測(cè)試時(shí)防止遺漏某些領(lǐng)域。然而,它對(duì)逆向工程本身沒(méi)有提供幫助,只是旨在幫助我們涵蓋安全相關(guān)的所有方面。對(duì)于自動(dòng)化框架和工具,它們是有發(fā)展?jié)摿Φ模壳叭蕴幱谠缙陔A段,因此現(xiàn)在還難以在實(shí)踐中大展拳腳。

方法論

為了簡(jiǎn)化物聯(lián)網(wǎng)設(shè)備的逆向工程,本文提出了以下方法:這種方法不是直接逆向智能對(duì)象本身,而是首先側(cè)重于逆向與它們打交道的移動(dòng)應(yīng)用程序。

許多物聯(lián)網(wǎng)設(shè)備都是通過(guò)相關(guān)的移動(dòng)應(yīng)用程序來(lái)進(jìn)行控制、監(jiān)督或與之交互的。例如,Meian公司的安全報(bào)警器就提供了相應(yīng)的Android應(yīng)用程序,幫助最終用戶(hù)啟動(dòng)、停止設(shè)備,獲取狀態(tài)或設(shè)置警報(bào)區(qū)域。類(lèi)似地,Beam牙刷也配備了與智能牙刷等通信的iOS或Android應(yīng)用程序。當(dāng)有這樣的移動(dòng)應(yīng)用程序可用時(shí),那就為我們提供了很大的優(yōu)勢(shì):

更簡(jiǎn)單。有許多工具可以用來(lái)逆向移動(dòng)應(yīng)用程序(例如apktool、baksmali、clutch以及IDA Pro)。反病毒分析師經(jīng)常使用這些工具來(lái)考察移動(dòng)病毒,因此我們會(huì)有一個(gè)良好的支持社區(qū)。

安全性。物聯(lián)網(wǎng)供應(yīng)商開(kāi)發(fā)這些移動(dòng)應(yīng)用程序(因?yàn)樗鼈儗?duì)最終用戶(hù)很有吸引力)通常是處于營(yíng)銷(xiāo)的角度來(lái)考慮的,所以不會(huì)將它們完全集成到其安全設(shè)計(jì)中(如果有的話(huà))。因此,我們通常有機(jī)會(huì)訪問(wèn)這些移動(dòng)應(yīng)用程序未經(jīng)混淆的源代碼,更有甚者,我們還能在這些應(yīng)用中找到危及智能對(duì)象本身的安全漏洞,具體參考第6節(jié)。

退可守。如果針對(duì)移動(dòng)應(yīng)用的分析不足以解決問(wèn)題,則研究人員總是可以將逆向智能對(duì)象作為研究的第二步。在第一階段收集的信息很可能有助于在第二階段進(jìn)行更有針對(duì)性的逆向工程。

Beam牙刷

概述

智能牙刷的問(wèn)世已經(jīng)有一段時(shí)間了,但直到2015年才引起了相關(guān)媒體的關(guān)注,因?yàn)楫?dāng)時(shí)Beam在一份圍繞其聯(lián)網(wǎng)設(shè)備的牙科保險(xiǎn)計(jì)劃中提到了它。每支Beam牙刷都納入了牙科保險(xiǎn)計(jì)劃,并且每支牙刷有自己的特殊優(yōu)惠(例如免費(fèi)牙膏)和附屬牙醫(yī)。

與胰島素泵或起搏器相比,牙刷可能還涉及不到最敏感的健康數(shù)據(jù)。然而,一旦與保險(xiǎn)單掛鉤,就會(huì)引發(fā)多個(gè)問(wèn)題,無(wú)論從安全教育角度還是從隱私角度考慮,考察該牙刷的工作原理都是非常有趣的。

該牙刷除了提供其商品規(guī)格:藍(lán)牙LE 4.0(BLE)、聲波電機(jī)、尺寸和顏色之外,沒(méi)有提供其他技術(shù)信息。此外,也沒(méi)有用戶(hù)論壇,沒(méi)有開(kāi)發(fā)者社區(qū),也沒(méi)有學(xué)術(shù)出版物。不幸的是,這種情況對(duì)于物聯(lián)網(wǎng)設(shè)備來(lái)說(shuō)是非常常見(jiàn)的:我們必須從頭開(kāi)始,因?yàn)闆](méi)有信息可供利用。

面對(duì)這種處境,一條路是拆卸牙刷的硬件:拆開(kāi)它,拿到電子組件,探測(cè)測(cè)試點(diǎn)等。但是,這里我們決定重點(diǎn)探索該設(shè)備相關(guān)的iOS和Android移動(dòng)應(yīng)用。

逆向iOS應(yīng)用程序

在逆向iOS應(yīng)用程序的時(shí)候,它的架構(gòu)對(duì)我們是很有幫助的。因?yàn)閼?yīng)用程序會(huì)使用名為BeamBrushData.sqlite的sqlite數(shù)據(jù)庫(kù),其中包含多個(gè)表,如BrushEvent、ClientDevice和ClientSession(請(qǐng)參見(jiàn)圖1),所以,我們可以通過(guò)在函數(shù)名稱(chēng)中搜索關(guān)鍵字“primaryKey”來(lái)列出這些表。

http://p4.qhimg.com/t01cbb49290dd78dc7d.png

圖1:Beam牙刷的移動(dòng)應(yīng)用程序所使用的SQL表。

每個(gè)表的內(nèi)容都是由mappings命名的函數(shù)進(jìn)行描述的,例如Insured表的[Insured mappings]。

了解每個(gè)表的字段對(duì)于掌握哪些數(shù)據(jù)被存儲(chǔ)以及哪些數(shù)據(jù)可能泄露給對(duì)手是非常有用的。例如,BTStarCardInfo表包含最終用戶(hù)的積分的變化情況:name,beforeValue,afterValue,starCount,lastTotalStars,totalStars。積分是最終用戶(hù)完成指定挑戰(zhàn)(例如連續(xù)刷牙超過(guò)兩分鐘)時(shí)授予終端用戶(hù)的虛擬點(diǎn)數(shù)。攻擊者當(dāng)然可以嘗試修改這里的值來(lái)獲取積分——當(dāng)然,還可能存在其他相關(guān)的檢查,例如在遠(yuǎn)程服務(wù)器上的檢查事項(xiàng)等。

存儲(chǔ)在這些表中的信息對(duì)于廣告工具包或廣告軟件來(lái)說(shuō),可能是非常有價(jià)值的。例如,Insured表保存被保險(xiǎn)用戶(hù)的稱(chēng)謂,名字,中間名,姓氏,性別和出生日期,當(dāng)然用戶(hù)也可能是家庭中的成年人(通常是父親或母親)。然后,User表為家庭的其他成員(例如兒童)提供相同的信息。因此,通過(guò)分析這些表中包含的數(shù)據(jù),間諜軟件可以了解特定家庭的組成成員,然后給他們發(fā)送有針對(duì)性的廣告等。

除了數(shù)據(jù)庫(kù)結(jié)構(gòu)之外,通過(guò)反匯編iOS應(yīng)用程序還能揭示它實(shí)現(xiàn)的類(lèi)的結(jié)構(gòu)。移動(dòng)應(yīng)用程序二進(jìn)制文件的objc節(jié)提供了每個(gè)類(lèi)的方法和字段的完整概述。例如,圖2示出了UserSummary類(lèi)的字段——也稱(chēng)為屬性(例如,beamScore,numberOfBrushDaysLeft)和方法(例如,beamScoreRoundedInteger)。此外,IDA Pro中的注釋也特別有用,甚至為每個(gè)字段的類(lèi)型和方法都提供了簽名。

IDA Pro顯示了UserSummary類(lèi)的方法和屬性

圖2:IDA Pro顯示了UserSummary類(lèi)的方法和屬性。屬性的注釋顯示了該字段的具體類(lèi)型。

從這里我們可以了解到:

牙刷提供了加速度計(jì)和陀螺儀。兩者都在BTBrushData類(lèi)中提供了一個(gè)三軸向量。牙刷就是通過(guò)它們來(lái)了解最終用戶(hù)是否正在刷牙,如果是的話(huà),當(dāng)前位于哪個(gè)象限(口腔被分為四個(gè)區(qū)域,或象限:左上,右上,右下,左下)。

固件的空中下載服務(wù)。BTFirmwareUpdater類(lèi)的內(nèi)容表明,該固件提供了通過(guò)空中下載進(jìn)行的更新服務(wù)。更新固件時(shí),會(huì)將新固件的字節(jié)發(fā)送到牙刷,直到寫(xiě)入所有字節(jié)為止。

  1. char *firmware; 
  2. unsigned int totalLength; 
  3. unsigned int written; 
  4. unsigned int toWrite; 
  5. unsigned int loopCount; 
  6. int state; 
  7. CBService *otaService; 
  8. CBCharacteristic *otaControlPoint, *otaDataPoint; 

這些積分只是軟件而已。特定最終用戶(hù)的積分?jǐn)?shù)量并不存儲(chǔ)在牙刷本身上,而是存儲(chǔ)在移動(dòng)電話(huà)上(并且可能在遠(yuǎn)程服務(wù)器數(shù)據(jù)庫(kù)上)。事實(shí)上,類(lèi)BTBrushData,BTBrushEvent,Device和ClientDevice中沒(méi)有積分相關(guān)的字段。從這些類(lèi)的內(nèi)容可以看出,牙刷是由固件、硬件、序列號(hào)、閃光燈、電池電量、電動(dòng)機(jī)(其速度是可控的)、三軸陀螺儀、三軸加速度計(jì)、自動(dòng)關(guān)閉定時(shí)器和具有BLE功能的芯片構(gòu)成的。

逆向Android應(yīng)用程序

通過(guò)逆向該Android應(yīng)用程序,我們可以獲得更多的詳細(xì)信息。例如,雖然我們知道牙刷導(dǎo)出了幾種BLE服務(wù)和characteristic(參見(jiàn)圖3),但是除了標(biāo)準(zhǔn)的服務(wù)之外,大多數(shù)都是未知的。

牙刷的BLE characteristic

圖3:牙刷的BLE characteristic。

通過(guò)逆向Android應(yīng)用程序,能夠更輕松地找到每個(gè)characteristic的意義。例如,圖4中的代碼給出了牙刷的電動(dòng)機(jī)速度(其轉(zhuǎn)換為刷子每分鐘的行程)的UUID和象限蜂鳴(當(dāng)最終用戶(hù)在特定象限中的刷牙時(shí)間足夠長(zhǎng)時(shí),牙刷就會(huì)振動(dòng))。我們?cè)诒?和2中分別列出了已知的BLE服務(wù)和characteristic。

用于電機(jī)速度和象限蜂鳴的BLE characteristic

圖4:用于電機(jī)速度和象限蜂鳴的BLE characteristic。

  1. UUID                               描述 
  2. 00001800-0000-1000-8000-00805f9b34fb 通用訪問(wèn)(標(biāo)準(zhǔn)) 
  3. c05fc343-c076-4a97-95d3-f6d3e92a2799 固件 OTA 服務(wù) 
  4. 04234f8e-75b0-4525-9a32-193d9c899d30 Beam 服務(wù) 
  5. 89bae1fa-2b59-4b06-919a-8a775081771d 可能是加速度計(jì)/陀螺儀芯片服務(wù) 

表1:Beam牙刷的BLE服務(wù)。

  1. UUID                                   描述 
  2. a8902afd-4937-4346-a4f1-b7e71616a383 布爾指示器,指示牙刷處于活動(dòng)狀態(tài) 
  3. 267b09fd-fb8e-4bb9-85ccade55975431b  電機(jī)狀態(tài) 
  4. 3530b2ca-94f8-4a1d-96beaa76d808c131  當(dāng)前時(shí)間 
  5. 833da694-51c5-4418-b4a9-3482de840aa8 電機(jī)速度 
  6. 19dc94fa-7bb3-4248-9b2d-1a0cc6437af5 自動(dòng)關(guān)閉和象限蜂鳴指示器(2位) 
  7. 6dac0185-e4b7-4afd-ac6b-515eb9603c4c 電池電量(2字節(jié)) 
  8. 0971ed14-e929-49f9-925f-81f638952193 牙刷顏色(1 byte) 
  9. 0227f1b0-ff5f-40e3-a246-b8140205bc49 加速度計(jì)數(shù)據(jù)(6字節(jié)) 
  10. ed1aa0cf-c85f-4262-b501-b9ddf586a1db 陀螺儀(6字節(jié)) 
  11. cf0848aa-ccdb-41bf-b1e1-337651f65461 按鈕狀態(tài) 

表2:我們對(duì)Beam牙刷最感興趣的BLE characteristics

有了這些信息,我們便可以使用自己的實(shí)現(xiàn)代碼來(lái)控制自動(dòng)關(guān)閉和象限蜂鳴功能了。

我們可以控制的功能包括:

打開(kāi)與牙刷的BLE連接。

將字節(jié)值寫(xiě)入相應(yīng)的characteristic UUID中。最低有效位用來(lái)控制象限蜂鳴,第二位控制自動(dòng)關(guān)閉。

斷開(kāi)牙刷的連接。

BLE命令可以使用諸如建立在bluez(藍(lán)牙棧實(shí)現(xiàn))之上的gattlib [21]之類(lèi)的庫(kù)和簡(jiǎn)單的BLE USB dongle來(lái)發(fā)送。

利弊

通過(guò)對(duì)Beam牙刷的移動(dòng)應(yīng)用程序進(jìn)行逆向,我們發(fā)現(xiàn)了下列有效信息。

存在陀螺儀和加速度計(jì)。這一點(diǎn)上,通過(guò)拆卸牙刷的硬件也能達(dá)到同樣的效果,只不過(guò)做起來(lái)可能會(huì)有點(diǎn)難度,具體取決于芯片的封裝方式。顯然,逆向移動(dòng)應(yīng)用程序的優(yōu)點(diǎn)是我們不需要拆開(kāi)牙刷,并且也沒(méi)有毀壞它的風(fēng)險(xiǎn)。缺點(diǎn)是我們看不到組件的銘牌和型號(hào),因此也無(wú)法了解其電器規(guī)格。

存在固件更新服務(wù)。對(duì)于這一點(diǎn)來(lái)說(shuō),很難通過(guò)其他方式(例如通過(guò)監(jiān)聽(tīng)BLE流量)來(lái)獲得。

積分并未存儲(chǔ)在牙刷本身中。這一點(diǎn)很難通過(guò)硬件探測(cè)或BLE掃描找到。

實(shí)現(xiàn)代碼的設(shè)計(jì)。顯然,沒(méi)有反匯編代碼的話(huà),是沒(méi)有辦法了解這一點(diǎn)的。我們唯一不知道的部分,就是硬件設(shè)計(jì)。

識(shí)別BLE服務(wù)和characteristic。這一點(diǎn)也可以使用BLE掃描器應(yīng)用程序(例如nRF主控制面板[22])來(lái)達(dá)到目的,但需要消耗更長(zhǎng)的時(shí)間,因?yàn)楸仨毻ㄟ^(guò)嘗試各種值,然后通過(guò)觀察牙刷的行為差異來(lái)進(jìn)行識(shí)別。

智能手表

架構(gòu)

我們對(duì)索尼的智能手表SmartWatch 2 SW2進(jìn)行了相應(yīng)的實(shí)驗(yàn)。

與Beam牙刷不同,這款智能手表提供了很多技術(shù)信息和開(kāi)發(fā)人員信息,這主要得益于索尼鼓勵(lì)開(kāi)發(fā)人員為其編寫(xiě)新的應(yīng)用程序。索尼為該產(chǎn)品提供了相應(yīng)的API、文檔、示例和教程。該智能手表含有STM32F439 SoC(包括ARM Cortex-M4和加密加速器)、光傳感器、加速器,支持NFC和藍(lán)牙3.0(注意不兼容低功耗藍(lán)牙技術(shù))和LiPo電池。它運(yùn)行的是Micrium的μC/ OS-II實(shí)時(shí)操作系統(tǒng)。

知道了這一點(diǎn),那么就可以請(qǐng)μC/ OS-II或ST微電子SoC專(zhuān)家繼續(xù)對(duì)設(shè)備的相關(guān)部件進(jìn)行深入調(diào)查。在本文中,我們假設(shè)研究人員無(wú)法接觸這方面的專(zhuān)家,相反,我們將重點(diǎn)研究該智能手表的應(yīng)用情況。要使用智能手表,必須至少安裝兩個(gè)Android應(yīng)用程序:一個(gè)名為Smart Connect的應(yīng)用程序以及一個(gè)名為SmartWatch 2 SW2的應(yīng)用程序。這里,我們將重點(diǎn)考察這兩個(gè)應(yīng)用程序。

要了解這些應(yīng)用程序,必須首先掌握索尼的有關(guān)術(shù)語(yǔ)。對(duì)于索尼而言,智能手表更一般的稱(chēng)呼為智能配件,因?yàn)檫€有其他類(lèi)型的配件,如耳機(jī)等。一個(gè)智能手表的“應(yīng)用程序”(我們稍后就會(huì)發(fā)現(xiàn),實(shí)際上根本沒(méi)有這樣的東西)被稱(chēng)為智能擴(kuò)展。

要?jiǎng)?chuàng)建新的智能擴(kuò)展程序,開(kāi)發(fā)人員需要對(duì)使用了索尼的智能擴(kuò)展API的代碼進(jìn)行編譯,從而得到一個(gè)Android應(yīng)用程序(即一個(gè).apk程序,研究人員可以使用標(biāo)準(zhǔn)工具,如apktool,baksmali等對(duì)它們進(jìn)行逆向)——但需要注意的是,只有將我們前面提到的兩個(gè)應(yīng)用程序都安裝之后,該應(yīng)用程序才能正常運(yùn)行。

因此,為了安裝智能擴(kuò)展程序,最終用戶(hù)需要安裝開(kāi)發(fā)人員的apk,即Android應(yīng)用程序。該應(yīng)用程序由兩個(gè)強(qiáng)制性應(yīng)用程序之一的Smart Connect自動(dòng)找到,并添加到相應(yīng)的智能配件中。這樣,新的智能擴(kuò)展圖標(biāo)就會(huì)出現(xiàn)在智能手表上。

需要注意的是,我們沒(méi)有在智能手表本身上直接安裝軟件。事實(shí)上,根本就沒(méi)有智能手表應(yīng)用程序的概念。實(shí)際上,智能擴(kuò)展的所有工作都是在智能手機(jī)上完成的。智能手表基本上只是充當(dāng)一個(gè)遠(yuǎn)程顯示器。智能擴(kuò)展生成的各種事件和消息都是由兩個(gè)強(qiáng)制性應(yīng)用程序中的第二個(gè),即SmartWatch 2 SW2生成的。這個(gè)應(yīng)用程序?qū)嶋H上就是索尼所謂的主機(jī)應(yīng)用程序,即專(zhuān)門(mén)用來(lái)跟給定智能附件(就本例而言,就是SW2)通信的Android應(yīng)用程序。我們?cè)诒?和圖5中對(duì)相關(guān)的術(shù)語(yǔ)進(jìn)行了詳細(xì)的解釋?zhuān)枰⒁獾氖牵渲幸恍┖苋菀滓鹫`解。

http://p3.qhimg.com/t010a609b96782eaf78.jpg

圖5:索尼SmartWatch 2 SW2的架構(gòu)。

  1. 名稱(chēng)            說(shuō)明 
  2. 主機(jī)應(yīng)用程序?qū)iT(mén)用于跟特定智能配件通信的Android應(yīng)用程序的通用術(shù)語(yǔ)。 
  3. 智能配件    智能手表、智能耳機(jī)等的通用術(shù)語(yǔ) 
  4. Smart Connect這是必須安裝在智能手機(jī)上才能使用智能手表的兩個(gè)強(qiáng)制性Android應(yīng)用程序之一。這是一個(gè)官方的索尼應(yīng)用程序。它管理哪個(gè)擴(kuò)展使用哪個(gè)配件。它的軟件包名稱(chēng)是com.sonyericsson.extras.liveware。 
  5. 智能擴(kuò)展    這是一個(gè)Android應(yīng)用程序,它在手機(jī)上運(yùn)行,但可從智能手表遠(yuǎn)程訪問(wèn)/控制。索尼提供了幾個(gè)擴(kuò)展(Twitter feed,F(xiàn)acebook feed,Chrono),并鼓勵(lì)開(kāi)發(fā)人員創(chuàng)建自己的擴(kuò)展。 
  6. Smart Watch 2 SW 2這是SW2的兩個(gè)強(qiáng)制性Android應(yīng)用程序中的另一個(gè)。實(shí)際上,它是SW2配件的主機(jī)應(yīng)用程序。這是一個(gè)官方的索尼應(yīng)用程序,該軟件包名為com.sonymobile.smartconnect.smartwatch2。 

表3:索尼的智能手表術(shù)語(yǔ)。

推論

知道了智能手表的架構(gòu)之后,可以得到下列推論:對(duì)于智能手表上的任何擴(kuò)展,實(shí)際上都可以通過(guò)逆向其Android應(yīng)用程序的代碼來(lái)進(jìn)行安全分析。

我們假設(shè),需要考察發(fā)送SMS消息的擴(kuò)展。智能手表本身沒(méi)有什么可逆向的,相反,我們需要做的是反匯編相關(guān)的Android應(yīng)用程序,這樣,就能找到像smsManager.sendTextMessage(mPhoneNumber,null,message,...)這樣的代碼。如果智能手表惡意軟件的確存在并在傳播的話(huà),防病毒供應(yīng)商只需要為相應(yīng)的Android應(yīng)用程序?qū)懞灻纯桑@些事情正是他們所擅長(zhǎng)的。

此外,我們還可以對(duì)官方SmartWatch 2 SW2主機(jī)應(yīng)用程序也進(jìn)行逆向工程。逆向結(jié)果表明,與遠(yuǎn)程智能手表的通信是通過(guò)“Costanza”消息來(lái)進(jìn)行處理的。這些消息由類(lèi)型(消息類(lèi)型),消息標(biāo)識(shí)符和打包的緩沖區(qū)字節(jié)組成。打包或解包是通過(guò)名為“protocol”(libprotocol.so)的本機(jī)庫(kù)進(jìn)行處理的。一旦打包完畢,這些消息就可以通過(guò)藍(lán)牙進(jìn)行發(fā)送了——這里是通過(guò)Android API來(lái)打開(kāi)藍(lán)牙套接字的。Costanza消息的類(lèi)型有多種,例如:

電池電量指示(id = 18),電量水平以百分比形式表示。

恢復(fù)出廠設(shè)置的請(qǐng)求和響應(yīng)(id = 20或21)。

'Force crash'(id = 666)。源代碼表明,這里有一個(gè)隱藏的調(diào)試界面,其中含有“Force crash on watch”按鈕。這將創(chuàng)建以下消息:

  1. public RequestForceCrash(int 
  2. newMessageId) { 
  3. super(newMessageId); 
  4. this.type = 666
  5. this.mMagic = 0xC057A72A

注意類(lèi)型666和魔法值,可能與前面講過(guò)的'costanza'消息相匹配。

Fota請(qǐng)求(id = 6)。這可能意味著空中下載更新固件。

傳感器數(shù)據(jù)(請(qǐng)求或響應(yīng))(id = 127或128)。

滑動(dòng)指示(id = 116)。

版本請(qǐng)求和響應(yīng)(id = 4和5)。

振動(dòng)請(qǐng)求(id = 129),其中包括振動(dòng)的持續(xù)時(shí)間等。

這些消息的用法和標(biāo)識(shí)符將很難通過(guò)其他方式找到(特別是在正常情況下不出現(xiàn)的Force Crash消息)。同樣,這也證明了通過(guò)考察移動(dòng)應(yīng)用來(lái)分析物聯(lián)網(wǎng)硬件是多么的有價(jià)值。

安全報(bào)警器

Meian公司是一家家用安全報(bào)警器的制造商。該公司的一些報(bào)警器可通過(guò)SMS進(jìn)行遠(yuǎn)程控制:您可以遠(yuǎn)程啟動(dòng)/停止報(bào)警器、獲取其當(dāng)前狀態(tài)、啟用/禁用某些監(jiān)控區(qū)域等。當(dāng)然,這些命令必須符合特定的格式,同時(shí),還必須提供正確的密碼。為了控制報(bào)警器,最終用戶(hù)必須按照特定格式把相應(yīng)的命令寫(xiě)入SMS,并將其發(fā)送到報(bào)警器。當(dāng)報(bào)警器接收SMS后,會(huì)對(duì)傳入的消息進(jìn)行處理,并回復(fù)執(zhí)行結(jié)果。由于Meian對(duì)于SMS消息的格式的要求非常嚴(yán)格,所以Meian專(zhuān)門(mén)實(shí)現(xiàn)了一個(gè)Android應(yīng)用程序來(lái)自動(dòng)格式化短信。在配置期間,最終用戶(hù)需要提供報(bào)警器的具體配置:報(bào)警器的電話(huà)號(hào)碼、管理密碼、輸入密碼時(shí)可接受的延遲、緊急電話(huà)號(hào)碼(如果檢測(cè)到入侵,則撥打該號(hào)碼)。然后,該應(yīng)用程序就會(huì)提供用于啟動(dòng)/停止/獲取警報(bào)的狀態(tài)(等等)的各種按鈕(參見(jiàn)圖6),這給用戶(hù)的操作帶來(lái)了極大的便利。

http://p3.qhimg.com/t016fd5567d0cf8ead4.png

圖6:用于遠(yuǎn)程控制家用安全報(bào)警器的Android應(yīng)用程序的主屏幕。

同樣的,這里我們還是通過(guò)分析設(shè)備的移動(dòng)應(yīng)用程序來(lái)考察該設(shè)備的安全問(wèn)題。這里存在兩個(gè)安全問(wèn)題:

短信未刪除。發(fā)送的短信會(huì)繼續(xù)保留在智能手機(jī)上,除非手動(dòng)刪除。因此,如果攻擊者能夠讀取它的話(huà),就能得到報(bào)警器的密碼。注意,無(wú)論最終用戶(hù)是否使用該應(yīng)用程序(手動(dòng)寫(xiě)入SMS),都會(huì)出現(xiàn)此問(wèn)題。

報(bào)警器配置的弱保護(hù)。該應(yīng)用程序使用了一個(gè)弱加密算法來(lái)保護(hù)配置數(shù)據(jù)(電話(huà)號(hào)碼、密碼、緊急電話(huà)號(hào)碼和延遲。請(qǐng)注意,配置數(shù)據(jù)是非常敏感的,因?yàn)槿魏稳硕伎梢杂盟鼇?lái)控制報(bào)警器。攻擊者可以輕松逆向該加密算法,從而解密所有的設(shè)置(參見(jiàn)圖7中的概念證明)。該漏洞在2015年就報(bào)告給Meian [23]公司了,但是一直沒(méi)有回應(yīng)。在Play商店中的這個(gè)應(yīng)用程序仍未修復(fù)該漏洞,截至目前已被下載了1,000到5,000次。

http://p7.qhimg.com/t014a75997f9b9a4990.png

圖7:解密安全報(bào)警器的所有主要機(jī)密設(shè)置的概念證明。

這個(gè)家用安全報(bào)警器的安全狀態(tài)總結(jié)在表4中。遺憾的是,它的相關(guān)移動(dòng)應(yīng)用實(shí)際上給該設(shè)備的安全性帶來(lái)了很大的麻煩,這也正是其他物聯(lián)網(wǎng)設(shè)備正面臨的問(wèn)題之一。

情形:攻擊者可以獲得報(bào)警器的密碼或電話(huà)號(hào)碼... 從發(fā)件箱的命令SMS中...? 一旦SMS消息被刪除...?

  1. 手動(dòng)SMS是否 
  2. 使用Meian的Android應(yīng)用程序是是 

表4:使用Android應(yīng)用程序前后報(bào)警器的安全狀況比較

結(jié)束語(yǔ)

物聯(lián)網(wǎng)設(shè)備的安全分析具有很大的挑戰(zhàn)性,主要是因?yàn)樗鼈兊亩鄻有运鶎?dǎo)致的,有時(shí)研究人員根本就不知道如何開(kāi)始或從哪里開(kāi)始。本文表明,在這種情況下,我們不妨從相關(guān)的移動(dòng)應(yīng)用程序開(kāi)始下手,因?yàn)樗鼈兺ǔ?huì)與物聯(lián)網(wǎng)設(shè)備進(jìn)行通信,這是一個(gè)不錯(cuò)的起點(diǎn)。此外,這些移動(dòng)應(yīng)用在物聯(lián)網(wǎng)設(shè)備中是非常常見(jiàn)的。

在本文中,我們通過(guò)相關(guān)移動(dòng)應(yīng)用程序分析了三種不同的設(shè)備:智能牙刷,智能手表和家用安全報(bào)警器。在所有三個(gè)案例中下,我們所用的策略都能夠快速揭示其安全設(shè)計(jì)、協(xié)議詳細(xì)信息和相關(guān)漏洞。當(dāng)然,這些信息也可以通過(guò)其他方式發(fā)現(xiàn),例如藍(lán)牙掃描和模糊測(cè)試,但這樣會(huì)需要消耗更多的時(shí)間,因?yàn)槲覀儾坏貌徊聹y(cè)多種可能,而移動(dòng)應(yīng)用程序逆向工程則能夠直接給出結(jié)果。

事實(shí)上,物聯(lián)網(wǎng)和移動(dòng)應(yīng)用程序的結(jié)合會(huì)帶來(lái)多個(gè)問(wèn)題。為此,供應(yīng)商應(yīng)該設(shè)法完善設(shè)備的安全設(shè)計(jì)和實(shí)現(xiàn),以及提高相關(guān)的移動(dòng)應(yīng)用的安全性。注意,對(duì)代碼進(jìn)行模糊處理的快速修復(fù)方案將很難奏效,而應(yīng)該下大力氣改進(jìn)安全設(shè)計(jì)和實(shí)現(xiàn)。另外,防病毒行業(yè)需要為IoT惡意軟件做好準(zhǔn)備,無(wú)論來(lái)自設(shè)備本身還是來(lái)自移動(dòng)應(yīng)用程序。這可能是安全行業(yè)的下一個(gè)主戰(zhàn)場(chǎng)。

責(zé)任編輯:趙寧寧 來(lái)源: 安全客
相關(guān)推薦

2023-04-20 13:31:35

物聯(lián)網(wǎng)智能建筑

2020-01-20 13:59:10

物聯(lián)網(wǎng)移動(dòng)應(yīng)用藍(lán)牙

2019-05-22 09:00:00

物聯(lián)網(wǎng)移動(dòng)應(yīng)用IOT

2019-05-22 09:43:29

物聯(lián)網(wǎng)應(yīng)用物聯(lián)網(wǎng)IOT

2020-05-19 15:09:52

5G物聯(lián)網(wǎng)移動(dòng)寬帶

2020-03-26 22:03:06

物聯(lián)網(wǎng)移動(dòng)應(yīng)用用戶(hù)體驗(yàn)

2020-06-09 15:17:50

物聯(lián)網(wǎng)自動(dòng)駕駛智能

2021-08-06 10:26:14

蜂窩物聯(lián)網(wǎng)物聯(lián)網(wǎng)IOT

2023-12-06 13:18:00

物聯(lián)網(wǎng)

2023-08-18 11:42:51

物聯(lián)網(wǎng)IOT

2019-06-11 09:45:56

物聯(lián)網(wǎng)應(yīng)用酒店IOT

2023-08-08 10:26:20

2020-08-31 11:36:21

物聯(lián)網(wǎng)移動(dòng)應(yīng)用程序IOT

2020-06-15 07:56:48

物聯(lián)網(wǎng)移動(dòng)基于物聯(lián)網(wǎng)的移動(dòng)應(yīng)UX。 物聯(lián)網(wǎng)為應(yīng)用

2020-05-25 20:54:56

物聯(lián)網(wǎng)智能電網(wǎng)技術(shù)

2022-09-27 16:08:06

物聯(lián)網(wǎng)IOT

2013-03-26 11:41:37

移動(dòng)互聯(lián)網(wǎng)硬件時(shí)代應(yīng)用時(shí)代

2020-04-10 20:50:44

物聯(lián)網(wǎng)眼鏡技術(shù)

2019-08-02 08:38:41

啤酒物聯(lián)網(wǎng)IOT

2021-03-31 09:29:43

物聯(lián)網(wǎng)應(yīng)用安全風(fēng)險(xiǎn)物聯(lián)網(wǎng)安全
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 国产精品1区 | 国产一级视频在线 | 精品国产欧美一区二区三区不卡 | 国产99久久久国产精品 | 国产精品永久免费观看 | 福利社午夜影院 | 国产精品久久国产精品99 | 久久综合色综合 | 成人小视频在线观看 | 国产精品视频一二三区 | 中文字幕精品一区久久久久 | 亚洲精品成人 | 精品国产91 | 色视频欧美 | 成人欧美一区二区 | 久久婷婷香蕉热狠狠综合 | 欧美自拍另类 | 国产日韩中文字幕 | 日韩在线中文字幕 | 激情 一区| 青青久在线视频 | 伊人久久国产 | 91资源在线 | 五月激情婷婷网 | 日韩精品一区二区三区在线播放 | 久久tv在线观看 | 欧美a v在线| 欧美婷婷 | 日日噜噜噜夜夜爽爽狠狠视频97 | 久久另类视频 | 亚洲天堂一区 | 成人在线视频免费观看 | 激情久久av一区av二区av三区 | 日韩精品久久久久久 | 韩国av一区二区 | 亚洲综合在线一区二区 | 日韩欧美一级精品久久 | 欧美一级片在线看 | 天天操天天射综合 | 99精品99| 精品国产高清一区二区三区 |