天天看點

帶你讀《物聯網滲透測試》之二:IoT威脅模組化第2章

點選檢視第一章 點選檢視第三章

第2章

IoT威脅模組化

本章将主要介紹以下主題:

  • 威脅模組化概念簡介。
  • IoT裝置威脅模組化剖析。
  • 固件威脅模組化。
  • IoT Web應用威脅模組化。
  • IoT移動應用威脅模組化。
  • IoT裝置硬體威脅模組化。
  • IoT無線電通信威脅模組化。

2.1 簡介

無論讀者具有軟體研發背景還是具有系統或者網絡運維背景,可能都對各自領域中的攻擊面或者攻擊向量都已經比較熟悉了。攻擊面指的是通過某一輸入源實作裝置入侵的多種途徑。輸入源可以來自硬體、軟體,也可以來自無線方式。一般來說,裝置中包含的攻擊面越多,被入侵的可能性就越大。是以,攻擊面其實就是進入IoT裝置的入口點。有些IoT裝置或應用在設計開發時預設信任這些入口點。但是所發現的攻擊面都有與之相關聯的入侵風險、入侵機率以及入侵影響。是以從本質上來說,攻擊面就是可能對裝置帶來不良影響,進而導緻裝置執行非預期操作的威脅。為了識别出所有攻擊面,在開展滲透測試或開發軟體之前需要盡可能詳盡地列出理論上存在的威脅用例,這一過程稱為威脅模組化。

本章将讨論威脅模組化的基本原理,以及如何借助威脅模組化開展IoT裝置的漏洞利用。對固件、Web應用、移動應用、裝置硬體和無線電通信建立基本的威脅模型能夠幫助讀者找到适當的切入點開展滲透測試。

雖然本章僅是對威脅模組化的一個介紹。但是關于這一主題已經出版了不少相關書籍。如果讀者想深入了解威脅模組化概念并需要查閱相關資料的話,可以選擇有關威脅模組化的書籍或者參考第三方網站進行了解。

2.2 威脅模組化概念簡介

威脅模組化同軟體開發存在一定聯系,因為威脅模組化是在軟體設計階段之後、軟體部署階段之前開展的一次演練。演練通常由軟體開發團隊、系統運維團隊、網絡運維團隊以及安全團隊在重大軟體釋出之前開展,通過繪制完整的端-端資料流圖,或者通過繪制資料流與網絡圖,都能夠對部署安全控制措施與入侵對抗措施提供幫助。上述圖表可以畫在白闆上也可以借助軟體來繪制,例如微軟就提供了免費的威脅模組化工具Threat Modeling Tool,此外還有Web應用

https://draw.io

也可以用來完成這項工作,連結中給出的Web應用提供了大量模闆可以用于繪制多種用途的圖表。圖表繪制的思路是将裝置的所有功能、特性同與之關聯的技術建立映射。而如何繪制威脅模型的版式則取決于機構或者繪制者自身。需要謹記的是,當将元件逐個分解時,威脅模型會進一步細化。對于威脅模組化而言,非常重要的一方面在于需要不斷進行文檔疊代,因為當裝置添加了新特性之後或者對裝置所采用的技術有了更深了解時,對威脅的認識也會不斷深化。

一旦确定了IoT裝置的攻擊面之後,就需要使用STRIDE等方法确定威脅用例,STRIDE方法将會放在後面的章節中進行讨論。這些威脅需要通過評級系統進行評級,進而确定所識别出的威脅的風險等級。在不同的行業中,可以采用不同的威脅評級系統,其中最常見的是DREAD評級系統以及通用安全漏洞評分系統(Common Vulnerability Scoring System,CVSS)。下面分别對CVSS評分系統和DREAD評級系統進行介紹。

CVSS系統的評分粒度更加細緻,該系統囊括了3個度量組共14個度量次元,3個度量組分别是:基本得分、臨時得分和環境得分。這3個度量組又分别包含了6個基本度量次元、3個臨時度量次元和5個環境度量次元。當向廠商送出漏洞時,CVSS系統的評級結果是非常有用的,但是對于威脅模組化來說則可能不夠直覺。想要了解更多關于CVSS系統的内容可以通路連結

https://www.first.org/cvss/user-guide

DREAD評級系統名稱中的每個字母分别表示如下含義:

  • 潛在危害(Damage potential):如果漏洞利用成功可能造成的危害有多大?
  • 可重制性(Reproducibility):重制攻擊的難易度如何?
  • 可利用性(Exploitability):發起攻擊的難易度如何?
  • 受影響使用者(Affected users):大概會有多少使用者受到影響?

發現難度(Discoverability):發現該漏洞的難易度如何?

DREAD評級系統的風險評級範圍為1~3。其中1代表低風險,2代表中風險,3代表高風險。

表2-1展示了各評級類别的評級結果所對應的含義。

帶你讀《物聯網滲透測試》之二:IoT威脅模組化第2章

在開展威脅評級之前,需要識别出威脅。為了準确地闡釋安全隐患,進而識别出潛在威脅,可以采用STRIDE模型。STRIDE模型将威脅分為6種類型。這6種威脅類型分别對應于英文縮寫STRIDE的首字母,其含義如下:

  • 身份欺騙(Spoofing Identity):身份欺騙即通過使用虛假身份資訊來嘗試擷取系統的通路權限。攻擊者可以使用竊取的使用者認證資訊或者僞造的IP位址來實作身份欺騙。當攻擊者以合法使用者或者本地主機的身份成功獲得目标系統通路權限後,就可以進一步以授權身份開展權限提升或者其他惡意操作。
  • 資料篡改(Tampering with Data):篡改是指在未經授權的情況下惡意修改資料,例如篡改網絡中兩台計算機之間的通信資料。
  • 抵賴(Repudiation):抵賴是指使用者能夠(以合法或者不合法的形式)否認其執行了某項操作或業務。如果未配備适當的審計措施,則難以證明攻擊者發起了抵賴攻擊。
  • 資訊洩露(Information Disclose):資訊洩露是指私有資料的意外公開。例如,使用者能夠查閱未授權表格或檔案的内容,或者監控通過網絡發送的明文資料。資訊洩露漏洞的部分執行個體包括隐藏的表單字段、Web頁面注釋中遺留的資料庫連接配接語句和連接配接資訊,以及可能向使用者洩露内部系統資訊的不完善的異常處理等。所有這些資訊對于攻擊者實施攻擊都大有幫助。
  • 拒絕服務(Denial of Service):拒絕服務是指導緻系統或應用不可用的過程。舉個例子,通過向伺服器發送海量請求消耗掉目标系統所有可用的系統資源就可以實作針對目标的拒絕服務攻擊,此外,發送足以導緻應用程序崩潰的畸形輸入也可以實作拒絕服務攻擊。
  • 權限提升(Elevation of Privilege):當擁有有限權限的使用者以特權使用者的身份取得了某應用的特權操作權限時即實作了權限提升。例如,權限受限的攻擊者通過提權可以實作入侵,或者接管具有較高權限并且受信任的程序或賬戶。

可以通過以下連結來了解關于STRIDE模型的更多細節:

https://msdn.microsoft.com/en-us/library/ee823878(v=cs.20).aspx https://msdn.microsoft.com/en-us/library/ff648641.aspx

微軟公司提出了一種非常好的威脅模組化方法,該方法采用多步處理來确定新應用或者新系統所引入威脅的嚴重程度。其威脅模組化處理步驟如圖2-1所示。

帶你讀《物聯網滲透測試》之二:IoT威脅模組化第2章

了解微軟威脅模組化過程的更多内容可以參考以下連結:

https://msdn.microsoft.com/en-us/library/ff648644.aspx

後面我們将采用STRIDE模型和DREAD評級系統以黑盒測試的方式開展威脅模組化演練,并将IoT裝置進行分解,對其中的各個元件分别進行威脅模組化。這裡我們建議,讀者無論在開展任何安全測試之前,最好都先進行威脅模組化,通過威脅模組化來保障測試的覆寫面。思考所有潛在威脅發生的機率并對其分類的過程很有意思,需要讀者好好動動腦筋。

2.2.1 準備工作

在逐一介紹威脅模組化方法時,我們将會用到微軟公司提供的免費威脅模組化工具Threat Modeling Tool以及基于制圖網站

所繪制的圖表。在本書撰寫階段,我們從連結

https://www.microsoft.com/en-us/download/details.aspx?id=49168

下載下傳了微軟的威脅模組化工具Threat Modeling Tool 2016。

2.2.2 測試流程

在本節中,我們使用微軟威脅模組化工具Threat Modeling Tool來進行圖表繪制,采用該工具繪制網絡圖表非常簡單:

1)啟動微軟威脅模組化工具Threat Modeling Tool 2016。選擇“建立模型”(Create A Model)選項,如圖2-2所示。

帶你讀《物聯網滲透測試》之二:IoT威脅模組化第2章

2)然後,熟悉工具中所提供的用于表示裝置、通信傳輸以及輸入輸出可信邊界的模闆(Stencils)。微軟針對不同的模闆與選項提供了使用者指南,當下載下傳工具時可以一并下載下傳,但并不做強制要求。

2016版的微軟威脅模組化工具Threat Modeling Tool中允許使用者自定義模闆,使用者可以建立模闆(Stencils),進而更加準确地刻畫各個元件同威脅之間的關系,如圖2-3所示。

帶你讀《物聯網滲透測試》之二:IoT威脅模組化第2章

3)每套模闆的屬性都可以根據裝置、網絡或者應用的實際情況加以調整,如圖2-4所示。

4)至此,我們通常就可以從一個較高的角度來識别IoT系統的資産了,并且,當通過研究或逆向分析對目标裝置具備了更深的了解之後,可以進一步聚焦于所感興趣的領域。資産識别的過程可以采用表格或者思維導圖的形式加以記錄。表2-2列出了一份基本的資産清單,其中對各項資産進行了簡要說明。

5)圖2-5展示了部署了智能門鈴、LED燈具、移動應用以及IoT Hub的智能家居環境。

帶你讀《物聯網滲透測試》之二:IoT威脅模組化第2章
帶你讀《物聯網滲透測試》之二:IoT威脅模組化第2章
帶你讀《物聯網滲透測試》之二:IoT威脅模組化第2章
帶你讀《物聯網滲透測試》之二:IoT威脅模組化第2章

上面的例子隻是威脅模組化演練的開始。我們已經介紹了如何下載下傳微軟威脅模組化工具Threat Model Tool,并熟悉了模闆及其相關屬性。然後,我們通過研究或逆向分析對智能家居環境進行了簡單描述,進行了智能家居環境中的資産識别。接下來我們繪制了架構圖,形象地展示了識别出的資産。下一步将是威脅模組化的核心,即通過分解IoT系統的各個組成部分,幫助讀者發現攻擊入口點、确定攻擊方法,以及分析IoT系統的某一部分遭受攻擊後所造成的影響。與其他安全分析工作一樣,測試人員對目标測試平台越熟悉,成功實施入侵的可能性也就越大。

2.3 IoT裝置威脅模組化剖析

2016年,我們見證了一起針對IoT裝置的大規模漏洞利用事件,事件中的IoT裝置主要包括網絡攝像頭和數字視訊錄像機(Digital Video Recorder,DVR),攻擊者利用這些裝置發起了全球有史以來最大規模的分布式拒絕服務攻擊(Distributed Denial of Service,DDoS)。這次DDoS攻擊緣起于廠商對IoT裝置安全問題的輕視,而這些問題通過基本的威脅模組化演練就可以避免。考慮到上述類型的裝置在網際網路中普遍存在以及它們可能給網際網路帶來的風險,我們将對聯網DVR與網絡攝像頭安防系統開展威脅模組化,并詳細介紹威脅模組化過程。普通個人使用者或者中小型企業通過電商平台或者衆多電子用品商店以相當低的價格就可以購買到這些聯網的安防系統。聯網DVR系統可以作為IoT系統的一個絕佳示例,因為為了能夠檢視攝像頭監控視訊,裝置中包含了很多入口點,使用者還可以在路由器無須開放端口的情況下連接配接到第三方服務提供商以遠端檢視監控視訊。從黑盒測試的角度來看,搜集IoT裝置及其應用程式的細節資訊可能有點棘手。但是,這些産品一般都有大量線上資源可以利用,進而有助于威脅模組化。

測試流程

開展針對聯網DVR系統的威脅模組化時,我們将繼續采用之前介紹的微軟多步威脅模組化方法。

步驟1 資産識别

首先統計所有DVR資産并形成文檔,以便了解哪些裝置最可能遭受攻擊進而予以重點關注。對于攻擊者而言,如果能夠找到那些存在已知漏洞的資産,那麼在針對DVR系統開展漏洞利用時将節省大量時間。部署裝置時,檢視裝置背部粘貼的标簽以及使用者手冊就可以了解到有關DVR系統資産的資訊,具體資訊如表2-3所示。

帶你讀《物聯網滲透測試》之二:IoT威脅模組化第2章

步驟2 IoT裝置架構概況建構

通過建構架構概況,可以采用可視化的方式形象地展示出攻擊者如何攻擊DVR系統,進而以非預期的手段利用系統。在建構IoT裝置架構概況時,我們的目标是基于在整套流程中搜集或了解到的資料将DVR系統的功能、應用及其實體架構形成文檔。我們希望能夠發現DVR系統設計和實作中的漏洞,其中也包括識别出系統所采用的不同技術。接下來我們将架構概況的建構分為以下3項工作:

  • 編制DVR系統功能特性文檔
  • 建構架構圖,詳細刻畫DVR生态系統
  • 識别系統所采用的技術

在編制DVR系統功能特性文檔之前,我們先準備一組用例。

用例1:使用者在本地網絡中通過本地Web應用檢視視訊

1)使用者安裝DVR裝置及攝像頭。

2)使用者建立使用者賬戶。

3)使用者對DVR裝置和攝像頭配置進行設定。

4)使用者通過以太網連接配接DVR裝置并確定網絡連通。

5)使用者記錄下DVR裝置的IP位址。

6)使用者安裝廠商提供的插件與軟體。

7)使用者通過Web浏覽器登入DVR裝置。

8)使用者選擇攝像頭并檢視監控視訊。

用例2:使用者通過移動應用遠端檢視視訊

1)使用者對平台配置進行設定,確定能夠通路廠商的SaaS服務。

2)使用者下載下傳并安裝Android或iOS應用。

3)在應用安裝時,使用者為廠商的SaaS應用建立獨立的使用者賬戶。

4)使用者登入移動應用。

5)使用者使用移動應用掃描DVR裝置下方的條形碼進行廠商驗證。

6)使用者選擇攝像頭并檢視監控視訊。

圖2-6給出了上述用例的架構圖,圖中包含了DVR生态系統各元件的詳細資訊。

帶你讀《物聯網滲透測試》之二:IoT威脅模組化第2章

架構圖繪制完成後,就需要識别并分析系統所采用的各種技術了。鑒于某些作業系統、協定和底層函數庫可能早已存在已知漏洞。是以,為了便于開展進一步分析,并清晰刻畫出潛在的威脅用例,将系統中所采用的技術(見表2-4)形成文檔非常重要。

帶你讀《物聯網滲透測試》之二:IoT威脅模組化第2章
帶你讀《物聯網滲透測試》之二:IoT威脅模組化第2章

步驟3 IoT裝置分解

接下來,我們對DVR系統環境中的應用與協定資料流進行分析,定位裝置或用戶端應用中的漏洞。我們所要搜尋的位置可能需要更高權限才能通路,在此過程中需要記錄下每個可能的入口點。其中,隻需要找到一個能夠危害到DVR系統的機密性和完整性的攻擊入口點,就能夠幫助攻擊者赢得攻防中的主動權。

這些入口點根據所使用的平台、技術和協定的差別可能有所不同,在本節中,我們将從一個更高的層次來看待這個問題。同時,我們還需要檢查技術和特性之間的各種信任邊界。一旦完成了對DVR架構的分解,讀者就可以更好地了解攻擊面以及針對資料的破壞方式。

圖2-7是DVR系統環境中對資料流的分解示意圖示例:

帶你讀《物聯網滲透測試》之二:IoT威脅模組化第2章

資料流繪制完成後,表2-5對入口點進行說明。

帶你讀《物聯網滲透測試》之二:IoT威脅模組化第2章

步驟4 威脅識别

到了這個階段,我們已經繪制完成了DVR系統的資料流,并确定了都有哪些入口點。現在我們必須判斷每個入口點的風險,這些風險同使用者、網絡和應用以及應用的開發廠商息息相關。從攻擊者的視角來看,我們需要識别出影響網絡、應用以及主機的威脅,因為其中存在可以被利用的漏洞,進而可能導緻以下後果:

  • 影響大量使用某DVR系統的使用者。
  • 入侵廠商基礎設施并造成大規模漏洞利用。
  • 入侵DVR裝置,給使用者帶來隐私洩露的風險。
  • 入侵DVR裝置,給DVR使用者帶來功能安全方面的風險。

為了幫助定位威脅并對威脅進行分類,我們采用STRIDE模型對DVR IoT系統進行安全評估。在表2-6中,我們使用一組威脅類型來代替IoT中的安全隐患。表中所列内容可能并不完備,但是在考慮可能對整個DVR系統環境造成的安全威脅時,能夠為讀者提供一些思路。

帶你讀《物聯網滲透測試》之二:IoT威脅模組化第2章

或者,在這裡我們也可以從更高的層面上簡單列出可能存在的威脅,後面的章節中我們将對每個元件的威脅進行深入探讨。受知識面所限,有些威脅可能是未知的或者還停留在理論層面,但是對圍繞這些威脅開展頭腦風暴開拓思維也是很重要的。為了識别出盡可能多的威脅,讀者可以找個小夥伴一起練習,或者找到正在嘗試入侵你所感興趣的某套IoT系統的人組團開黑。下面是我們找出的DVR系統進階别威脅示例,攻擊者可以執行這些操作:

  • 遠端接管DVR系統。
  • 在未經認證的情況下,遠端檢視視訊(秘密監視)。
  • 關閉攝像頭的回放功能。
  • 跟蹤某個個人。
  • 基于所搜集的情報闖入某片區域。
  • 在DVR裝置中植入木馬。
  • 獲得實體接觸的權限,并破壞視訊記錄。
  • 通過發送請求過載DVR系統,使其不能正常工作。
  • 竊聽DVR系統通信資料。

步驟5 威脅建檔

接下來,我們将在步驟4中識别出的部分威脅用例形成文檔(見表2-7~表2-9),文檔中主要包括威脅描述、威脅目标、攻擊技術以及可能采用的對抗措施。

威脅1

帶你讀《物聯網滲透測試》之二:IoT威脅模組化第2章

威脅2

帶你讀《物聯網滲透測試》之二:IoT威脅模組化第2章

威脅3

帶你讀《物聯網滲透測試》之二:IoT威脅模組化第2章

步驟6 威脅評級

現在,我們已經識别出了針對DVR系統的威脅并将其形成了文檔,下面根據威脅發生的可能性以及可能導緻的影響,我們采用DREAD評級系統對威脅進行評級。在本章前文我們已經對DREAD評級系統進行了介紹,也正如前文所指出的那樣,使用者也可以根據實際情況采用其他評級系統進行威脅評級。DREAD評級系統中每個方面的評級都分為3個等級:3表示高風險;2表示中風險;1表示低風險。

在DREAD模型中,按照表2-10所示的評級标準确定最終的風險等級。

帶你讀《物聯網滲透測試》之二:IoT威脅模組化第2章

DVR系統中某威脅用例的威脅評級示例如表2-11所示。

帶你讀《物聯網滲透測試》之二:IoT威脅模組化第2章

起初,由于DVR系統用到了衆多不同的元件,是以在考慮到所有的威脅用例的情況下,對整個DVR系統進行威脅模組化可能會有點兒困難。盡管存在這樣或那樣的困難,但是一旦模組化完成,讀者将會發現許多潛在的高風險脆弱點,在滲透測試過程中就可以對這些高風險脆弱點予以重點關注。同時,這一工作也使得我們在對IoT系統開展滲透測試時更容易确定脆弱點的優先級。

2.4 固件威脅模組化

在之前介紹的内容中,我們對DVR系統進行了威脅模組化并對威脅用例進行了評級,這有助于對測試中所要針對的脆弱點進行優先級排序。在本節中,我們将對同一DVR系統中的固件進行威脅模組化。

2.4.1 準備工作

在針對固件的威脅模組化演練中,我們将使用免費線上繪圖軟體

刻畫固件中各元件的關系。該軟體是一款Chrome應用,存儲繪制的圖表時需要同第三方服務綁定,例如Google Drive或GitHub。借助該軟體可以繪制出重疊的關系和過程,而在微軟的威脅模組化工具Threat Modeling Tool則難以做到這一點。其實,任何能夠有效刻畫出目标裝置或軟體之間關系架構的工具都可以滿足威脅模組化的需求。

在開始繪制圖表之前,需要完成以下操作:

1)選擇“建立新圖表”(Create New Diagram)。

2)選擇“軟體設計”(Software Design)。

3)選擇部署圖2-8中所示的圖表模闆。

帶你讀《物聯網滲透測試》之二:IoT威脅模組化第2章

4)删除模闆中所有未用到的圖表,僅為固件及其内部元件保留一個方框。

5)将資産拖放到圖表中,刻畫出資産之間的關系。

2.4.2 測試流程

對于固件而言,我們能夠通過裝置封裝情況、基本的端口探測或者各種線上資源來識别其所運作的作業系統類型。現在,我們應該對固件如何在嵌入式IoT裝置中運作已經具備了一定的認識,這些内容在第1章中已經有所提及。本節不再像前面的章節一樣進行細節的深入讨論,但是我們需要依據對固件的了解情況對固件的元件加以刻畫,進而識别出潛在威脅并開展滲透測試。簡單起見,後面将會對部分威脅模組化步驟加以合并。

根據對DVR固件及其所提供服務的了解,我們對固件資産進行整理,如表2-12所示。

帶你讀《物聯網滲透測試》之二:IoT威脅模組化第2章

步驟2及步驟3 架構概況建構及分解

現在我們已經對DVR系統服務所用到的固件元件以及庫檔案有了一個大緻了解。下面繪制裝置、固件内容以及檔案系統内容之間的關系,形成概況圖,如圖2-9所示。

帶你讀《物聯網滲透測試》之二:IoT威脅模組化第2章

基于概況圖和對固件内容的了解我們可以将威脅形成文檔。需要記住的是,目前階段我們還沒有對固件鏡像進行反彙編,也尚未定位其具體位置。圖表中的内容是基于DVR系統宣稱其所提供的服務和線上文檔得到的。下面列出針對固件的潛在威脅,攻擊者可以基于所列出的威脅嘗試開展漏洞利用:

  • 針對網絡服務實施遠端代碼執行攻擊。
  • 擷取檔案系統的管理者通路權限,并對區域網路發起攻擊。
  • 攔截網絡通信。
  • 通過SSH通路檔案系統資源。
  • 篡改DNS配置資訊,将流量重定向到被攻擊者的網絡/計算機。
  • 通路固件中的Web配置資訊和敏感資訊。
  • 在DVR裝置中安裝惡意固件或應用。
  • 跟蹤使用者活動。
  • 篡改攝像頭視訊和内容。
  • 篡改審計日志資訊。
  • 毀癱DVR裝置。
  • 攔截所有向DVR裝置發起的網絡連接配接。

接下來,我們将挑選一些威脅用例,并依據威脅描述、威脅目标、攻擊技術以及可能采用的對抗措施的形成文檔(見表2-13~表2-15),進而對威脅風險進行評估。

帶你讀《物聯網滲透測試》之二:IoT威脅模組化第2章
帶你讀《物聯網滲透測試》之二:IoT威脅模組化第2章
帶你讀《物聯網滲透測試》之二:IoT威脅模組化第2章

正如我們之前所做的那樣,這裡我們仍然采用DREAD評級系統對每個威脅進行評級。我們将使用表2-16評定威脅的風險等級,評級過程中首先選擇某種威脅,然後找出其對應的風險等級即可。

帶你讀《物聯網滲透測試》之二:IoT威脅模組化第2章

大多數嵌入式裝置的作業系統通常以root或admin權限運作。這意味着任何針對固件的漏洞利用無須提權即可獲得最高通路權限。對于很多受監管行業而言可能還需要開展進一步研究,但是如果讀者正在對消費級裝置進行測試,那麼如果固件已經能夠以root權限運作了,則攻擊成功的可能性會顯著提高。

2.5 IoT Web應用威脅模組化

接下來繼續介紹針對DVR系統的威脅模組化演練,下一步我們将分解Web應用。DVR系統包含兩種類型的Web應用。一種是嵌入式Web應用,在DVR裝置内部運作。另一種是由廠商提供的SaaS應用,用于遠端通路DVR系統和視訊。

SaaS應用能夠實作對區域網路内嵌入式DVR裝置的通路。然而,本文我們主要關注DVR系統中運作的本地嵌入式Web應用,而非廠商的SaaS應用。在本章開頭,我們曾簡單提到了部分廠商Web應用所采用的技術,但是目前除此之外難以開展更深入的了解。下面,我們将繪制嵌入式Web應用的架構,其中在威脅部分涉及廠商SaaS應用,但是由于不知道其采用的架構,是以無法繪制其架構圖。

現在,我們應該對如何從頭開始建構威脅模型已經能夠在腦海中形成大體的思路了。了解了這些内容後,我們就可以忽略威脅模組化過程中的部分步驟,而将重心放在更加重要的方面。

步驟1 架構概況建立及分解

下面我們将基于對嵌入式Web應用的了解繪制架構概況圖,然後在架構的資料流中識别威脅并進行評估。圖2-10展示了嵌入式Web應用的部分基本功能。

帶你讀《物聯網滲透測試》之二:IoT威脅模組化第2章

由于隻有區域網路中的流量,沒有公網流量,是以應用的資料流比較簡單。是以,識别嵌入式應用中的威脅不算太難。

步驟2 威脅識别

嵌入式Web應用中的資料流比較簡單,是以将威脅用例形成文檔本應輕而易舉,但是考慮到還有廠商基于SaaS的Web應用,是以我們還需要再添加一些額外的場景。

攻擊者針對DVR嵌入式Web應用和廠商SaaS應用開展漏洞利用能夠實作以下操作:

  • 劫持使用者會話檢視攝像頭監控視訊和配置。
  • 監視API調用。
  • 通過指令注入漏洞執行作業系統指令。
  • 洩露敏感使用者資訊。
  • 采用SQL注入漏洞轉儲資料庫中的資料(拖庫)。
  • 任意腳本執行。
  • 擷取其他使用者賬戶的通路權限。
  • 僞造已登入使用者的請求(CSRF)。
  • 修改DVR配置,将流量重定向到未經授權的使用者或網絡。
  • 追蹤使用者。
  • 洩露攝像頭回放視訊。
  • 删除攝像頭回放視訊。
  • 對廠商的Web伺服器或應用伺服器開展漏洞利用。
  • 阻止正常使用者的通路。

步驟3 威脅建檔

接下來,同之前工作類似,我們選擇部分典型威脅用例形成文檔(見表2-17~表2-19),文檔中包括威脅描述、威脅目标、攻擊技術以及可能采用的對抗措施,并對其風險進行評級。

帶你讀《物聯網滲透測試》之二:IoT威脅模組化第2章
帶你讀《物聯網滲透測試》之二:IoT威脅模組化第2章
帶你讀《物聯網滲透測試》之二:IoT威脅模組化第2章

步驟4 威脅評級

我們将使用表2-20評定威脅的風險等級,選擇某個威脅之後,即可确定其對應的風險評級。

帶你讀《物聯網滲透測試》之二:IoT威脅模組化第2章

顯然,對于攻擊者而言,針對廠商SaaS應用開展漏洞利用能夠取得更理想的效果,因為其中儲存了大量的使用者資訊以及其他内容。但是,希望讀者一定要在法律許可的範圍内開展測試,并提前獲得甲方授權。話又說回來,針對嵌入式Web應用開展滲透測試,雖然可能不一定會取得同針對廠商SaaS應用開展滲透測試一樣的評價,但如果充分分析裝置的線上資料了解其用法,進而挖掘出一個可以遠端利用的漏洞,那麼肯定也會大有收獲。

2.6 IoT移動應用威脅模組化

在下一個威脅模組化演練中,我們将對DVR系統中的IoT移動應用進行分析。代理商和不同的OEM為DVR系統(和IoT中的其他系統一樣)開發了多套移動應用。出于示範的目的,我們隻分别選擇了一款Android應用和一款iOS應用進行威脅模組化。

在前面的章節中,我們已經繪制了很多資料流圖,本節中我們将繼續使用微軟威脅模組化工具Threat Modeling Tool進行圖表繪制。

步驟1 架構概況建構與分解

與之前繪制圖表的步驟類似,這裡我們直接展示建構完成的資料流圖,其中包括了移動應用中的所有已知資産。圖2-11是移動應用的資料流圖。

可以看到,應用每次檢視賬戶資訊和攝像頭視訊時,都需要與第三方廠商的雲平台建立連接配接,即使使用者與DVR系統處于同一網絡中。而遠端通路DVR系統所需的使用者名和密碼就存儲在移動裝置中。在這裡,我們尚不清楚同應用廠商背景系統通信時如何存儲或發送這些資料。帶着這些疑問,我們開展下一步工作,進行威脅識别。

帶你讀《物聯網滲透測試》之二:IoT威脅模組化第2章

攻擊者可以利用移動應用進行以下操作:

  • 通路移動裝置中的本地資源。
  • 洩露使用者敏感資訊。
  • 定位在移動裝置中以明文存儲的使用者敏感資訊。
  • 通過SQL(ite)注入漏洞轉儲資料庫中的資料。
  • 通過WebView控件的JavaScript接口實作任意腳本執行。
  • 在廠商的雲平台環境中追蹤使用者。
  • 通路存儲在裝置上的攝像頭回放視訊。
  • 篡改使用者資訊。
  • 在未經認證的情況下為攝像頭添加共享使用者。
  • 建立永久會話,該會話具有持久通路權限不會過期。
  • 截屏并發送給第三方。

接下來,同之前的工作類似,我們将選取部分威脅用例并形成文檔,評估其風險等級,見表2-21~表2-23。

帶你讀《物聯網滲透測試》之二:IoT威脅模組化第2章
帶你讀《物聯網滲透測試》之二:IoT威脅模組化第2章
帶你讀《物聯網滲透測試》之二:IoT威脅模組化第2章

從表2-24中選擇某種威脅并評估其風險等級。

帶你讀《物聯網滲透測試》之二:IoT威脅模組化第2章

在移動領域中,常見威脅都與資料以及資料的存儲和傳輸方式有關。是以,除非該漏洞能夠對大量使用者造成影響,或者導緻洩露大量使用者資料,否則移動應用漏洞風險一般相對較低。在對移動應用的測試過程中,移動應用的漏洞基本不會導緻攻擊者擷取伺服器或者移動裝置的shell。

2.7 IoT裝置硬體威脅模組化

現在,我們開始分析目标DVR系統的硬體威脅。大多數消費級DVR裝置很容易拆解,是以攻擊者可以很友善地對其各個輸入源以及外設進行分析。而之是以出現這種情況,一方面可能是為了便于裝置将來擴充存儲空間,另一方面也可能是因為裝置在設計之初就沒有被設計為具備防篡改保護等安全功能的産品,舉個例子,如果在設計時采用了硬體安全子產品(Hardware Security Module,HSM),那麼裝置會具備一定的防篡改能力。

在本節的演練中,我們使用

提供的工具繪制硬體輸入圖。

步驟1 架構概況建構及分解

圖2-12是DVR裝置硬體示意圖。

帶你讀《物聯網滲透測試》之二:IoT威脅模組化第2章

從圖中可以看到,DVR裝置對外連接配接的接口包括8個用于連接配接攝像頭的BNC連接配接器、2個USB接口、1個以太網口、1個電源接口、1個VGA接口以及1個HDMI端口。同時,DVR裝置中還内置了多款晶片,其中包括1塊EEPROM存儲晶片,以及PCB中UART接口的多個疑似輸入源。

攻擊者對DVR硬體輸入點開展漏洞利用可以完成以下操作:

  • 通過UART接口擷取Console口的通路權限。
  • 轉儲EEPROM存儲晶片中機密資訊。
  • 利用USB棧中的漏洞控制DVR裝置。
  • 插入惡意USB裝置造成破壞。
  • 短路DVR裝置電源。
  • 攻擊DVR bootloader擷取Console口的通路權限。
  • 通過USB接口安裝惡意軟體。

接下來,我們将挑選與之前類似的威脅案例,并對其各自風險進行評級,見表2-25~ 表2-27。

帶你讀《物聯網滲透測試》之二:IoT威脅模組化第2章
帶你讀《物聯網滲透測試》之二:IoT威脅模組化第2章
帶你讀《物聯網滲透測試》之二:IoT威脅模組化第2章

我們使用表2-28進行威脅評級,從中選擇一個威脅并找到其對應的風險等級即可。

帶你讀《物聯網滲透測試》之二:IoT威脅模組化第2章

2.8 IoT無線電通信威脅模組化

下面,我們開始對無線電/無線通信的威脅模組化,除了從用戶端應用或攝像頭傳輸到DVR裝置的資料之外,DVR系統中并沒有太多涉及無線電通信的内容。雖然大多數IoT裝置和運作環境會使用不同的協定、在不同的頻率上進行無線電通信廣播,但幸運的是,在這裡我們隻需要考慮DVR系統中的Wi-Fi協定和手機廠商的入口點。

對于無線電通信威脅模組化演練,我們隻需要對之前繪制的圖表進行簡單更新,反映出裝置和應用之間的無線電通信過程即可。

DVR系統中無線電通信的示例架構概況如圖2-13所示。

正如讀者所了解的那樣,無線通信僅限于使用者通過用戶端裝置通路DVR裝置,其中用戶端裝置包括浏覽器、應用,也包括無線網絡攝像頭。需要注意的是,目前概況圖是根據之前的概況圖疊代得到的,因為在前面**的威脅模組化過程中我們已經擷取到了很多資訊。

步驟2 威脅識别**

攻擊者可以利用無線通信進行以下操作:

  • 遠端通路DVR網絡。
  • 竊聽DVR系統無線通信。
  • 阻塞DVR系統通信。
帶你讀《物聯網滲透測試》之二:IoT威脅模組化第2章
  • 從DVR系統中移除網絡攝像頭。
  • 建立虛假接入點連接配接攝像頭。
  • 竊聽手機通信。
  • 搭建全球移動通信系統(Global System for Mobile Communication,GSM)僞基站。
  • 構造請求欺騙用戶端應用。
  • 添加虛假網絡攝像頭。
  • 通過流氓用戶端應用通路DVR系統。

接下來,我們将挑選與之前類似的威脅用例,并将其形成文檔對其風險進行評級,見表2-29~表2-31。

帶你讀《物聯網滲透測試》之二:IoT威脅模組化第2章
帶你讀《物聯網滲透測試》之二:IoT威脅模組化第2章
帶你讀《物聯網滲透測試》之二:IoT威脅模組化第2章

我們将使用表2-32選擇拟評級的威脅并評估其風險等級。

帶你讀《物聯網滲透測試》之二:IoT威脅模組化第2章

無線中間人攻擊技術較為常見,采用該技術,攻擊者可以輕而易舉地向DVR系統實施無線攻擊。而其他威脅(例如添加虛假網絡攝像頭)實作起來則可能要困難一些,是以,對于急于想要擴大戰果的攻擊者來說不值得在上面花費過多時間。

繼續閱讀