作者:0431實驗室
公眾號:吉林省信睿網絡

物聯網安全–第1部分(101-物聯網簡介和架構)

對于安全研究人員而言,每一種新的復雜技術都存在的問題是,不知道從哪里開始以及如何/在哪里進行攻擊。這是一個常見的問題,并且具有一個通用的解決方案,即將技術分解為多個小組件并開始分別學習每個組件。這個過程使您掌握了每個組件,并引導您專注于最有趣的組件

物聯網 != 硬件

這是人們之間普遍的誤解,認為物聯網僅指硬件,這造成了想象中的障礙,并使大多數安全研究人員不愿涉足物聯網安全。是的,其中涉及硬件,并且可以學習分析硬件所需的技能。如果有幫助,“物聯網安全研究并不難”,但需要奉獻精神和學習意愿。當您閱讀本博客文章時,您將意識到硬件僅構成IoT生態系統的1/3。最重要的是,如果您可以破壞其他組件(例如,Cloud),則不僅會入侵設備,還會造成更大的破壞。

介紹

什么是物聯網?

互聯網上有許多關于物聯網的定義,掌握一項技術的關鍵是要了解其背后的基本思想,這有助于定義您自己的含義和適用性。每個人都可以有自己的定義,對我來說,物聯網主要涉及三件事:

1. 自動化:面對現實,我們很懶惰,而未來就是讓我們變得更懶惰,并使我們手動完成的任務自動化。

2. 虛擬物理世界接口:在物理世界和虛擬世界之間建立橋梁。簡而言之,允許虛擬世界從物理世界讀取和寫入物理世界。當我說讀時,我的意思是感測物理環境并將狀態轉換為數據,并將其發送到虛擬數據存儲以進行進一步分析,例如溫度傳感器,醫療傳感器,照相機等。寫方法是通過動作來控制物理世界,即將數據轉換為對現實世界的動作,例如門鎖,控制車輛運行,噴水,醫用泵等。您就明白了。

3. 洞察力和決策能力:可以實時分析從設備收集的數據,以更好地了解環境,對某些事件采取行動,找到任何物理世界問題的根本原因等。

因此,IoT技術為最終用戶和供應商提供了實時信息和手頭任務的自動化功能。

基于以上定義,如果我們要創建一種技術來解決此問題,我們將需要

  1. 提供虛擬物理接口的硬件設備
  2. 后端數據存儲區,用于存儲和計算能力以對數據進行統計分析。
  3. 一個虛擬界面,供用戶查看分析的數據并將命令發送到物理世界。

第一種通過將經濟的硬件設備嵌入相應的傳感器/控制器來解決,第二種通過云方便地解決,最后第三種通過移動應用程序和/或Web應用程序輕松解決。

物聯網在哪里使用?

正如我上面提到的,物聯網就是讓我們變得胖和懶。人類善于創新,無論出于何種原因,我們都可以在幾乎完美的系統中找到可以改進的領域。在當今世界,物聯網技術的使用是無限的。我敢打賭,如果您環顧四周,您可能會想到一個物聯網的想法。當前,物聯網在各個領域都有很多創新,其唯一目的是實現來自物理世界的自動化和實時數據分析

  1. 家庭自動化
  2. 智能基礎設施
  3. 醫療保健
  4. 工業控制系統
  5. 運輸
  6. 實用工具
  7. 還有更多

物聯網架構

高層視野

物聯網架構以其最簡單的形式包括三個組件,如下圖所示。

  1. 移動
  2. 設備

upload successful

組件之間的通信取決于IoT產品的用途和/或類型。以下是一些示例,這些示例將使組件之間如何以及為何不相互交談變得清晰。

  1. 設備只能移動通話-例如。基于BLE的設備

  2. 設備僅與IoT網關對話–例如。ZigBee,無線HART設備等

  3. 移動僅與云對話–如果用戶沒有對設備的鄰近訪問權,并且只能通過云進行控制。

功能架構

可以進一步擴展功能架構,以定義通過互聯網與云和移動/ Web界面通信的傳感器網絡。在傳統的基于TCP / IP的技術無法實現的情況下,傳感器可能擁有自己的網絡,或者在無法實現傳統網絡并且無線電通信提供更高效率和更多意義的情況下,具有基于無線電的網絡。在后一種情況下,需要有一個網關(我們的IoT網關/集線器/路由器)充當無線電通信與傳統TCP / IP通信之間的接口。從現在開始,我將把TCP / IP稱為傳統的網絡/通信。

upload successful

我們還可以擁有地理位置分散的傳感器網絡,這些網絡可以通過IoT網關通過傳統網絡相互通信/連接,如下所示。

upload successful

分層模型

如果從分層的角度看待物聯網技術,我們可以將其定義為構成物聯網核心的3個簡單層

  1. 傳感層–由硬件傳感器和傳感器網絡組成。

  2. 通信層–它由通信機制組成,該機制允許傳感層與管理層進行通信,例如– Wifi,3G,LTE,以太網等。

  3. 管理層–這是最頂層,負責從原始數據中弄清楚意義,并為用戶提供可呈現的精美視圖。它包括云,存儲,應用等。

upload successful

物聯網安全–第2部分 (102-物聯網攻擊面)

現在我們可以很容易地將IoT的各個組成部分隔離開來,并嘗試為每個組件分別定義攻擊面,然后將它們組合起來以創建 一個整體的概述。物聯網生態系統的攻擊面。我稱其為IoT生態系統而不是IoT產品,因為它確實是一個由不同組件相互交談并解決特定現實問題的生態系統。讓我們繼續定義IoT生態系統的攻擊面,并詳細討論每個組件的攻擊面。按組件劃分的攻擊面可以分為三個或四個(如果我們將通信作為攻擊面)主要區域如下:

  1. 移動
  2. 通訊
  3. 設備

upload successful

OWASP現在還在IoT安全方面做了很多工作。他們還定義了攻擊面。希望大家可以好好閱讀它。理解不同的想法是一件好事,因為它可以幫助您創建自己的綜合攻擊面。

注意

  1. 除非特別說明,否則“微控制器”一詞的通用形式表示微控制器,微處理器或SoC(片上系統)。

  2. 下面的攻擊面是我們定義的,可能與其他來源不同。

移動

移動是物聯網的重要用戶界面之一,通過它最終用戶可以洞悉物理世界的狀態。由于移動應用程序與IoT生態系統進行通信以發送命令和讀取數據,因此它成為IoT生態系統的切入點之一。我們將嘗試從物聯網的角度列出移動設備的攻擊面

  1. 存儲
  2. 認證
  3. 加密
  4. 通訊
  5. 通用移動漏洞–想到OWASP Mobile Top 10

云是物聯網的重要組成部分之一,通常來自產品線所有實例的數據都在這里匯聚。這使其成為非常有趣的攻擊點。記住,我在上一篇文章中提到物聯網不僅與硬件有關。原因是云將保存所有已部署的IoT實例的數據,并具有向所有實例發送命令的特權。通常它是由用戶啟動的,但是如果受到威脅,攻擊者將獲得對全球部署的設備(及其數據)的控制權,這很危險。總體而言,攻擊面專注于它提供的接口,其中包括

  1. 存儲
  2. 認證
  3. 加密
  4. 通訊
  5. 蜜蜂
  6. 通用的Web /云漏洞-想到OWASP Web Top 10

設備

接下來是設備,它是IoT技術的游戲規則改變者:)。它與物理世界進行交互,并與虛擬世界進行通信。這是物理世界數據的第一站。鑒于圍繞用戶隱私存儲的用戶敏感數據(例如房屋數據,身體數據,個人信息),圍繞用戶隱私存在著整個爭論。將來,設備可能會直接通過其錢包或單獨的臨時錢包使用用戶的加密貨幣來購買物品,進行維修等。攻擊面看起來如下所示

  1. 存儲
  2. 認證
  3. 加密
  4. 通訊
  5. 傳感器接口
  6. 外圍接口
  7. 硬件接口
  8. 人機接口

通訊

盡管這不是有形的攻擊面,但理想情況下,有形的攻擊面將是通信接口和負責通信的各個驅動程序/固件。但是,這需要一個單獨的部分,因為IoT生態系統可以在有線以及無線介質上使用的通信協議列表很多。以下是構成通信攻擊面的一些區域。

  1. 認證
  2. 加密
  3. 偏離協議標準
  4. 協議實施異常

硬件接口允許實際通信。但是,實際的數據通信/數據包是由軟件中實現的上層定義的。因此,在此“攻擊表面積”(通信)中,我們將僅討論協議。盡管協議中的缺陷可能導致對駐留在移動設備,設備或云上的協議端點的攻擊,但為清楚起見,我們將其保留為單獨的攻擊面。這里的列表中有太多標準要提及。但是,我們將列出各種物聯網產品中使用的一些常見協議。

1.網站

Web或技術術語HTTP(S)是用于通信的最常見協議,并在各處使用。由于網絡上的攻擊面很大,因此我們專門為此單獨輸入一個條目。但是,好消息是,由于已經研究了二十多年,因此攻擊面,漏洞和緩解技術已基本標準化。在線上有大量資源詳細描述了攻擊和防護。對于初學者來說,OWASP在其Web Top 10,測試指南和各種開源工具(www.owasp.org)方面做得很好

2.其他

除了網絡之外,還有許多協議,某些協議是特定于域的,有些是通用的,還有一些是出于效率原因。為簡潔起見,這里要列出的協議太多了,為簡便起見,我們將列出一些通用協議標準,以使您對所使用的協議種類有一個清晰的了解。歷史告訴我們,所有協議都有其實施缺陷,協議設計缺陷和配置缺陷。這些需要在滲透測試中進行分析。

  1. CoAP – https://en.wikipedia.org/wiki/Constrained_Application_Protocol
  2. MQTT – https://en.wikipedia.org/wiki/MQTT
  3. AMQP – https://en.wikipedia.org/wiki/Advanced_Message_Queuing_Protocol
  4. WebSocket – https://en.wikipedia.org/wiki/WebSocket
  5. CANbus – https://en.wikipedia.org/wiki/CAN_bus
  6. Modbus – https://en.wikipedia.org/wiki/Modbus
  7. Profibus – https://en.wikipedia.org/wiki/Profibus
  8. DNP3 – https://en.wikipedia.org/wiki/DNP3
  9. BACNet – https://en.wikipedia.org/wiki/BACnet
  10. HL7 – https://zh.wikipedia.org/wiki/Health_Level_7
  11. XMPP – https://en.wikipedia.org/wiki/XMPP
  12. UPnP – https://en.wikipedia.org/wiki/Universal_Plug_and_Play
  13. DNS
  14. SSH
  15. <您的名字在這里>

上面的內容應該為您全面概述IoT生態系統的攻擊面。既然我們對此有了一個清晰的主意,讓我們為設備定義一個詳細的攻擊面,以便我們知道在標準的IoT滲透測試中到底需要攻擊什么。這也有助于物聯網安全設計師為物聯網產品創建威脅模型。

請注意,我們不會(重新)定義Mobile和Cloud的攻擊面,因為您可以在Internet上找到大量描述相同內容的資源。本博客系列的目的是為安全研究人員建立物聯網安全性打下橋梁,因此,我們將專注于當前尚無可用或結構化的知識。鑒于我們仍將從我們的角度討論與物聯網生態系統相關的移動和云安全性

設備攻擊面

好的,讓我們這樣做:)。以下是IoT攻擊面的分離結構化定義。請注意,這是根據我們的理解,并未從其他來源獲取。

1.儲存

設備使用的存儲空間。這可以進一步分為內部和外部,持久性和易失性。

1.1 SD卡

SD卡通常用于存儲配置和產品數據。它們也可以用于存儲固件更新。這是一個非常有趣的攻擊面,我們將在以后的博客文章中討論通過SD卡可能發生的某些攻擊。

1.2個USB

某些產品可能使用USB驅動器來存儲與SD卡中相似的數據,以及讀取已下載或存儲在USB驅動器中的數據。與SD卡類似的攻擊也適用于USB存儲設備。

1.3非易失性存儲器

這些用于各種用途,包括讀/寫傳感器數據,引導程序,固件,憑證,密鑰等。在測試硬件板時,查看存儲在芯片上的數據至關重要。我們還可以對內存和微控制器之間的通信進行運行時分析,以分析在不同操作期間存儲/讀取的數據類型。這可以通過使邏輯分析儀嗅探總線通信來實現。在觸發設備上的特定操作時,您會發現正在讀取/寫入的有趣數據。內存芯片有以下幾種:

  1. EPROM
  2. EEPROM
  3. 閃存–由于速度和效率較高,因此更常用

upload successful

I2C串行EEPROM

1.4易失性記憶

當談到易失性內存時,“ RAM”一詞立即浮現在腦海中。它們廣泛用于PC和嵌入式系統中,并在運行時保存代碼和數據。關閉設備電源后,數據將丟失。一些常見的RAM類型如下

  1. SRAM(靜態隨機存取存儲器)–一種RAM,用于保存斷電時丟失的數據。
  2. DRAM(動態隨機存取存儲器)–數據將保留一段時間,直到丟失為止,除非在運行時刷新。這意味著與SRAM相比,即使在芯片加電期間,數據的使用壽命也很短。當芯片斷電時,數據也會丟失。

1.5微控制器內部存儲器

微控制器還具有自己的內部存儲器,通常用于存儲代碼。這些存儲器通常在調試微控制器(例如通過JTAG調試)時可訪問。微控制器中使用的各種存儲器是:

  1. SRAM
  2. EEPROM

2.硬件通訊接口

同一塊板上的不同硬件組件需要相互交流,并與外界對話。所有這些通信都是使用定義良好的標準硬件通信協議完成的。從攻擊者的角度來看,它可以通過嗅探或注入惡意數據使他們深入了解實際的通信。應該分析下面提到的一些最常見的接口,以發現安全問題。

2.1 UART

UART(通用異步接收器發送器)是一個硬件組件,它允許兩個硬件外設之間進行異步串行通信。它們可以在同一塊板上(例如與電動機或LED屏幕對話的微控制器),也可以在兩個不同設備之間(例如與PC對話的設備微控制器)之間。這是一個有趣的攻擊面,因為它可能允許通過串行方式對設備進行讀/寫訪問。在許多設備中,板上的UART端口保持開放狀態,任何人都可以通過串行端口進行連接和訪問,以獲得某種類型的控制臺,例如簡單的外殼,自定義命令行控制臺,日志輸出等。設備通常具有一組針腳,輸出連接到微控制器的UART RX和TX引腳,用于發送和接收串行數據。

upload successful

典型的4引腳UART端口

2.2單片機調試端口

微控制器具有使用指定的引腳在運行時進行調試的規定,這些引腳連接到板上的引腳輸出。這些引腳(端口)供開發人員和設計人員用來調試,讀取/寫入固件和微控制器內部存儲器,并在生產后控制/測試微控制器引腳。鑒于調試端口提供給攻擊者的能力和訪問權限,這使得調試端口成為最關鍵的攻擊面之一。有一些用于此目的的標準接口如下:

  1. JTAG(聯合測試行動小組):隨著微控制器和PCB越來越小,在生產后對其進行測試變得越來越困難。因此,為了有效地在生產后測試電路板,電子行業創建了一個同名協會,并定義了一種在生產后測試電路板的方法。后來改編為IEEE標準1149.1。JTAG協議定義了可用于測試和調試微控制器的標準接口和命令。JTAG定義了四個引腳接口(和一個附加的可選引腳TRST):
  2. TMS –測試模式選擇
  3. TCK –測試時鐘
  4. TDI –測試數據輸入
  5. TDO –測試數據輸出
  6. TRST –測試復位(可選引腳)

除測試芯片外,調試器還使用這些引腳與微控制器上實現的TAP(測試訪問端口)進行通信。從安全角度來看,識別JTAG端口并與之連接可以使攻擊者提取固件,對邏輯進行逆向工程并在設備上刷新惡意固件。以后會在以后的博客文章中提供更多信息。

  1. cJTAG(緊湊型JTAG):這是標準IEEE 1149.7中定義的新JTAG協議。它不會替代1149.1標準,而是會進一步擴展它,并且與JTAG向后兼容。它定義了兩個引腳的接口(TCK和TMS)以及實現新功能的新TAP。

  2. SWD(串行線調試):SWD是用于調試微控制器的另一個接口/協議。它是一個兩針接口:a。SWDIO(雙向)b。SWCLK(時鐘)這是ARM特定的協議,使用ARM調試接口v5中定義的ARM CPU標準雙向有線協議。SWD的好處是它聲稱比JTAG更有效。

upload successful

JTAG端口在PCB板上的外觀如何

請注意,如上圖所示,JTAG端口不一定是10個引腳。

2.3 I2C

集成電路間是一種短距離通信協議,用于在同一板上的芯片之間進行通信。它是由飛利浦(現在為NXP)發明的。它具有主從(多)架構,并使用兩線總線

  1. SDA –串行數據
  2. SCL –串行時鐘

I2C的一種使用情況是在EEPROM芯片中,該芯片連接到微控制器的I2C引腳,通常存儲數據或代碼。典型的攻擊包括篡改數據,提取敏感信息,破壞數據等。我們應該分析EEPROM芯片上的靜態數據,以及通過嗅探I2C通信執行運行時分析以了解行為和安全隱患。如前所述,我們將在系列文章中專門寫一篇博客文章,以了解和分析I2C通信。

2.4 SPI

串行外設接口也是一種短距離通信協議,用于在同一板上的芯片之間進行通信。它是由摩托羅拉公司開發的。它是全雙工的,并使用主從結構(單個主服務器)。與I2C相比,它還具有更高的吞吐量。它使用四線串行總線:

  1. SCLK –串行時鐘。其他名稱包括SCK
  2. MOSI –主輸出從站輸入。其他名稱包括SIMO,SDI,DI,DIN,SI,MTSR。
  3. MISO –主進從出。其他名稱包括SOMI,SDO,DO,DOUT,SO,MRST。
  4. SS –從機選擇。其他名稱包括S?S?,SSEL,CS,C?S?,CE,nSS,/ SS,SS#

它用于與各種外圍設備通信。閃存和EEPROM芯片也使用SPI。測試和分析的方法類似于I2C,只是我們具有不同的總線接口。我們將在后面的博客文章中詳細討論SPI。

2.5個USB

該設備可以具有用于充電或通訊的USB(微型/微型等)接口。對于后者,有必要測試接口的已知或未知問題。我們應該嗅探通信以進行運行時分析,并模糊USB接口中的未知錯誤。

2.6傳感器

這是一個寬松的名稱,我們指的是與物理世界的接口。它可以不必限于感測類型的接口。例如,溫度傳感器將是一個完美的例子,但門鎖除了“ Lock / Unlock”(鎖定/解鎖)動作可控制物理世界之外,什么也不會感測。根據它們的操作,它們可以分為三種類型:

  1. 監控器:這與傳感器的字面含義更緊密地聯系在一起,即感測或監控物理世界的任何變化。防爆。溫度,運動,脈搏,血壓,輪胎氣壓等

  2. 控制:這些類型的設備以某種方式控制物理世界。防爆。鎖,分配器等

  3. 混合:這是上述兩種類型的組合,例如溫度控制,基于一天中的時間的照明燈等。這是關鍵接口之一,因為從物理世界獲得的所有值和數據都將傳輸到云中。如果攻擊者可以用錯誤的(錯誤的)數據強制設備,則整個生態系統都將受到影響,因為所有決策和統計都基于此數據。換句話說,這是物聯網生態系統的關鍵。錯誤的值可能會對生態系統做出的決定造成災難性的影響。

2.7人機界面

與傳感器接口一樣,我們使用HMI作為通用術語來定義用戶與設備之間的接口,而并不局限于工業控制系統中使用的術語。這是用戶可用來與設備通信并直接在其上進行操作的界面。一些常見的例子是觸摸屏,按鈕,觸摸板等。測試此接口以發現任何旁路機制,安全漏洞等非常重要。

2.8其他硬件接口

還有許多其他硬件接口用于與設備通信。作為最后一個階段,分析并發現所有接口中的缺陷和旁路機制非常重要。一些眾所周知的接口包括(但不限于):

  1. d類微型- https://en.wikipedia.org/wiki/D-subminiature
  2. ecommended標準(RS232,RS485等)–有關RS協議的更多詳細信息,請參見https://en.wikipedia.org/wiki/EIA_standards
  3. 板載診斷(OBD)– https://en.wikipedia.org/wiki/On-board_diagnostics

3.網絡通訊接口

該接口允許設備與虛擬世界的其余部分進行對話,包括傳感器網絡,云和移動設備。負責網絡通信的硬件接口可能具有提供通信功能的獨立微控制器/固件。在這種情況下,攻擊面是實施低級通信的固件或驅動程序代碼。

3.1 Wifi

wifi接口存在一些已知問題。從攻擊面的角度來看,攻擊wifi芯片可能會損壞它,DOS,繞過安全限制或執行代碼會很有趣。

3.2以太網

以太網接口(與wifi接口一樣)具有低級別的TCP / IP堆棧漏洞,硬件實現漏洞和類似的攻擊媒介。

3.3廣播

考慮到許多物聯網產品已轉移到/正在使用無線電通信構建,無線電接口已成為最重要的攻擊面之一。優先選擇源于以下事實:在許多情況下,通過Wifi /有線網絡連接使用無線電更為有效。我將Wifi進行單獨分類而不是在本節中進行分類的原因主要是為了清楚地區分可以直接連接到互聯網的設備(Wifi /有線)和需要網關(例如智能集線器)的設備,這些設備必須同時實現無線電以及Wifi /有線接口,分別用于與傳感器和Internet進行通信。從實際的通信角度來看,可以將其視為兩種不同的通信模式:

  1. 簡單/非結構化:這種類型通常用于諸如百葉窗,鎖,門鈴等簡單產品。簡單非結構化是指它使用簡單(主要是專有的)數據(流)并通過無線電接口發送。作為滲透測試人員,您需要對通信進行反向工程以發現實施中的缺陷。使用諸如SDR(軟件定義的無線電)之類的無線電嗅探硬件工具來嗅探無線電通信很容易。

  2. 復雜/結構化的:復雜和結構化的通信意味著它使用結構化的數據包進行無線電通信,這是復雜的,因為它們不僅攜帶數據,還攜帶有關協議的其他信息和元信息。這些協議由于效率,標準化,經濟芯片和實施便利性而在物聯網世界中非常出名。同樣,有多種工具可用于嗅探和解析協議,以提取跨應用程序發送的特定于應用程序的數據。一些常見的協議包括:

a.Bluetooth and BLE
b.ZigBee
c.Zwave
d.NFC
e.RFID
f.LORA
g.Wireless HART …

物聯網安全–第3部分(103-物聯網十大漏洞)

在談論十大漏洞時,我們首先想到的是OWASP。為什么不呢,畢竟他們是定義Web和移動十大漏洞的先鋒。我是OWASP的粉絲,僅因為OWASP社區多年來為定義應用程序安全性問題所做的工作,為行業提供了免費的教程和開源工具以減輕風險和漏洞。您不太可能沒有聽說過OWASP或從他們的網站上閱讀過內容,但是,如果您沒有聽說過,我強烈建議您瀏覽他們的網站 https://www.owasp.org

OWASP還啟動了IoT安全計劃,該社區已定義了IoT攻擊面和除Web和移動設備之外的IoT十大漏洞。他們朝著正確的方向發展,很快它將成為物聯網安全內容的絕佳去處。

OWASP網站上與IoT安全讀者相關的內容如下:

  1. OWASP Web十大項目:https://www.owasp.org/index.php/Category:OWASP_Top_Ten_Project
  2. OWASP Mobile十大項目:https://www.owasp.org/index.php/OWASP_Mobile_Security_Project
  3. 事物項目OWASP互聯網:https://www.owasp.org/index.php/OWASP_Internet_of_Things_Project

OWASP IoT攻擊面:https://www.owasp.org/index.php/OWASP_Internet_of_Things_Project#tab=IoT_Attack_Surface_Areas

OWASP IoT十大漏洞:https://www.owasp.org/index.php/Top_10_IoT_Vulnerabilities_(2014)

OWASP物聯網十大漏洞

OWASP最近定義了IoT中的十大漏洞。它們非常全面,我們建議您仔細閱讀它們,了解IoT生態系統的威脅和問題。作為一項家庭作業,您可以將其映射到上一篇博客文章中定義的攻擊面。OWASP IoT的十大漏洞(根據https://www.owasp.org/index.php/Top_IoT_Vulnerabilities)

  1. 不安全的Web界面
  2. 身份驗證/授權不足
  3. 不安全的網絡服務
  4. 缺少傳輸加密/完整性驗證
  5. 隱私權問題
  6. 云接口
  7. 不安全的移動接口
  8. 不安全的安全配置性不足
  9. 不安全的軟件/固件
  10. 人身安全性差

我們不會在前十名列表中詳細介紹每個項目。可以在OWASP鏈接(如上)中找到詳細信息。相反,我們將根據對我們發現的問題或在Internet上發布的問題的經驗來完善前十名。

物聯網十大漏洞2018

免責聲明:請注意,我們的目標不是要超越OWASP十強,這是伙計們所做的出色工作。OWASP團隊敬上!這是根據我們的經驗進行的練習,應將重點更多地放在硬件和新的物聯網技術上,這一點值得引起我們的注意。

Payatu IoT十大漏洞,將Web和云合并到一個項目中,原因是并非所有傳感器或IoT設備都將具有Web界面,因此云是生態系統的重要組成部分,從攻擊面的角度來看,云主要是基于Web API的。另外,某些漏洞可能適用于多個組件,例如,硬編碼適用于設備和移動應用程序。

我們將定義對IoT安全市場和產品產生影響的十大IoT漏洞。我們將在下面解釋所有IoT漏洞,以提供對基本安全問題的理解。

P1. 硬編碼的敏感信息
P2. 啟用了硬件調試端口
P3. 不安全的固件
P4. 不安全的數據存儲
P5. 認證不足
P6. 通信不安全
P7. 配置不安全
P8. 數據輸入過濾
P9. 不足。移動接口
P10. 不安全。不安全的云/ Web界面

P1. 硬編碼的敏感信息

開發人員在程序中對靜態數據進行硬編碼是在開發過程中對信息進行硬編碼的常見做法。但是,當敏感信息被硬編碼時,就會出現問題。很有可能在固件以及移動應用程序或胖客戶端中對敏感信息進行了硬編碼。問題在于,該產品的所有實例均保持相同,并且可用于攻擊現場部署的任何產品實例。一些經過硬編碼的敏感信息的示例:

  1. 憑證–設備服務,云服務等
  2. 加密密鑰–私鑰,對稱加密密鑰
  3. 證書–客戶端證書等
  4. API密鑰–私有/付費API
  5. URL –開發,固件相關,用戶相關,后端等
  6. 配置

P2. 啟用的硬件調試端口

設備硬件可能已打開調試端口以與系統交互。簡而言之,它是PCB上的一組引腳,它們連接到微控制器/微處理器引腳,您可以使用客戶端軟件連接到這些引腳,以通過硬件通信協議進行通信,從而使您可以與系統交互。交互和特權的級別取決于協議的類型及其用法。例如,可能有UART接口的管腳輸出,它可以使您訪問高級軟件/應用程序,即命令外殼,記錄器輸出等。您還可以使用以下協議與微控制器進行低級交互: JTAG,SWD等,這些可讓您直接控制微控制器,因此您可以測試和分析微控制器的引腳值,讀/寫內部閃存,讀/寫寄存器值,調試OS /基本固件代碼等等。如果在設備上啟用了這些端口/引腳,則攻擊者可以劫持設備和/或從設備中提取敏感信息,包括固件和數據。通常啟用這些端口以解決生產設備中的故障/調試問題。

P3. 不安全的固件

這里的術語“不安全”是指固件的管理方式,而不是固件本身的代碼漏洞。固件包含設備的業務邏輯,并且大多是專有的,即供應商的IP(知識產權)。如果攻擊者可以訪問純文本固件,則他/她可以對其進行反向工程以發現安全問題或克隆邏輯并最終克隆產品本身。漏洞取決于在設備上存儲和更新固件的方式。如果不小心對存儲或移動中的固件進行適當加密(更新),則攻擊者可以控制它。固件的一些問題是(但不限于):

  1. 固件以純文本格式存儲在內存芯片上
  2. 固件未簽名,并且/或者引導程序未在加載之前驗證固件的完整性。
  3. 固件更新以純文本格式從云或移動設備傳輸到設備。
  4. 固件更新通過明文通信協議(例如,http)進行傳輸。
  5. 對所有設備實例使用單個對稱密鑰加密的固件。
  6. 固件加密密鑰與更新一起傳輸到設備。

正確實施的基于PKI的系統可以確保最佳安全性,但是大多數低功耗傳感器缺乏有效實施PKI的計算能力。同樣,如果更新是安全的,但是可以使用其他漏洞從設備中提取密鑰,那么整個練習將是徒勞的。

P4. 不安全的數據存儲

該問題在設備和移動應用程序中都很突出。在設備硬件中更明顯,可能是由于假設反轉硬件很困難。敏感數據(如果未安全存儲)可能會被攻擊者提取并利用來破壞系統。除了安全問題,如果用戶的個人數據沒有得到適當的保護,它也可能會涉及隱私。一些常見問題:

  1. 敏感數據以明文形式存儲在內存芯片上;
  2. 敏感數據已加密存儲,但可以訪問加密密鑰;
  3. 自定義加密用于加密數據;
  4. 無訪問控制權,無法修改數據;
  5. 移動設備上的數據存儲不安全。應用程序(請參閱“ P9。不安全的移動界面”)

P5. 認證不足

設備可能會使用不正確的身份驗證機制或不使用身份驗證機制,如果身份驗證機制實施得不好,則攻擊者將完全繞過身份驗證機制,并向設備發送未經授權的命令。對于關鍵的物聯網設備而言,這是一個嚴重的問題,因為網絡上的任何人(TCP / IP或無線電)都可以覆蓋正常操作并控制設備。設備上發生的一些身份驗證問題包括(但不限于):

  1. 無客戶端身份驗證
  2. 通過明文通信通道進行身份驗證
  3. 用于憑據的加密不正確
  4. 可預測的憑據
  5. 默認憑據

P6. 不安全的溝通

如果攻擊者能夠嗅探,分析,重播和提取通信中的敏感信息,則物聯網生態系統中的通信可能不安全。該漏洞可能是由于使用不安全的通信協議或協議缺陷本身引起的。為了簡單起見,供應商可能選擇使用不安全的通信方式。由于IoT是一項新興技術,因此許多IoT協議沒有定義適當的安全機制,或者供應商實施默認的不安全模式。問題包括(但不限于):

  1. 共享敏感信息時未加密的通信
  2. 使用自定義加密
  3. 使用自定義/專有協議
  4. 使用的加密不正確
  5. 使用協議默認(弱)安全模式
  6. 使用已知問題的協議
  7. 重播問題

P7. 不安全的配置

當設備配置不安全或設備不允許用戶修改配置參數時,會發生此問題。移動應用程序和云配置中也會發生此問題。為了使事情簡單或快速交付產品,開發人員可能選擇使用簡單但不安全的配置和/或不允許更改。一些明顯的問題是(但不限于):

  1. 使用默認的不安全配置
  2. 禁止集成商和/或用戶修改配置
  3. 版本產品中的低級協議和硬件配置不安全
  4. 加密模式和設置不安全
  5. 對共享或存儲的用戶個人數據了解甚少或根本看不到

P8. 數據輸入過濾不足

隨著越來越多的物聯網協議在物聯網生態系統中實現,這將成為一個重大問題。例如,來自設備的遙測數據可能會被云或IoT網關信任,從而導致已知和未知的安全問題,例如遠程代碼執行,基于Web的攻擊(例如SQL注入),跨站點腳本編寫等等。我們希望這一點將來會優先發展。盡管成熟的實現確實可以過濾傳統技術的數據,但對于新的物聯網協議實現來說,同樣有待提高。

P9. 移動接口不安全

從安全的角度來看,與傳感器技術相比,移動技術已經成熟,因此我們將所有移動安全問題歸為一類。這并不意味著它們的優先級較低,因為您可以看到某些高優先級漏洞也適用于移動設備。但是,由于技術的成熟,它已經具有關于安全性問題和安全實現的大量信息。作為OWASP的粉絲,我們建議從OWASP Mobile十大漏洞開始,這些漏洞將解決大多數安全問題。

P10. 不安全的云/ Web界面

如“ P9。不安全的移動界面”,同樣適用于云和網絡。如果設備具有Web界面,您仍然可以通過Web攻擊來擁有該設備,但是這些安全問題已經得到很好的定義和理解。同樣,我們建議從OWASP Web十大漏洞開始,以了解和緩解Web安全問題以及來自Cloud Security Alliance的云安全文檔。請注意,這不是唯一可用的知識庫,并且應該查看互聯網上可用的工具和研究論文。重要的是要注意,云構成了物聯網生態系統的數據存儲和通信主干。如果云遭到破壞,則可能導致整個IoT生態系統遭到破壞,包括全球和整個宇宙中所有已部署的產品。

參考:

  1. https://payatu.com/blog_31
  2. https://payatu.com/blog_23
  3. https://payatu.com/blog_14

Paper 本文由 Seebug Paper 發布,如需轉載請注明來源。本文地址:http://www.jmbmsq.com/1045/