新的物聯網基礎模塊漏洞可能使全球天量設備面臨安全風險
社會對技術的依賴程度非常高,預計到2025年,全球使用的互聯網連接設備數量將增長到559億台。這些設備中的許多設備涵蓋了工業控制系統(ICS)的各個部分,它們影響著世界,協助我們在家中的日常生活,並監控和自動化生產工作中從能源使用到機器維護的一切。濫用這些系統的潛力已經引起了網絡犯罪分子的注意;根據2020年IBM X-Force威脅情報指數,自2018年以來,針對這些系統的攻擊增加了2000%以上。
作為持續研究的一部分,IBM的黑客團隊X-Force Red發現了一個新的物聯網漏洞,可以被遠程利用。製造商泰雷茲自2020年2月起向客戶提供了CVE-2020-15858的補丁,X-Force Red一直在合作,以確保用戶了解該補丁,並採取措施保護他們的系統。
在今天使用的數十億智能設備中,泰雷茲是使它們能夠連接到互聯網、安全存儲信息和驗證身份的組件的供應商之一。泰雷茲的整個產品組合每年連接超過30億個設備,從智能能源表到醫療監控設備和汽車,有超過3萬家機構依賴其解決方案。
然而,在2019年9月,X-Force Red發現了泰雷茲(原金雅拓)的Cinterion EHS8 M2M模塊中的一個漏洞,該模塊在過去十年中被用於數百萬個互聯網連接設備。經過進一步的測試,泰雷茲確認該漏洞會影響到EHS8同一產品線中的其他模塊(BGS5、EHS5/6/8、PDS5/6/8、ELS61、ELS81、PLS62),進一步擴大了該漏洞的潛在影響。這些模塊是實現物聯網設備移動通信的微型電路板。
更重要的是,它們存儲和運行的Java代碼通常包含密碼、加密密鑰和證書等機密信息。利用從模塊中竊取的信息,惡意行為者有可能控制設備或獲得中央控製網絡的訪問權,從而進行廣泛的攻擊–在某些情況下甚至可以通過3G遠程攻擊。利用這個漏洞,攻擊者有可能指示智能電錶打掉一個城市的電力,甚至給醫療病人注射過量的藥物,只要負責這些關鍵功能的設備使用的是一個暴露在攻擊者面前的未打補丁的模塊,例如,通過這個模塊啟用的3G/4G連接。
關於該漏洞
EHS8模塊及其係列中的其他模塊,旨在通過3G/4G網絡實現連接設備之間的安全通信。將該模塊視為相當於一個值得信賴的數字鎖箱,公司可以在其中安全地存儲密碼、憑證和操作代碼等一系列秘密。這個漏洞破壞了這一功能,允許攻擊者竊取組織機密。
X-Force Red發現了一種繞過安全檢查的方法,這種檢查可以使文件或操作代碼對未經授權的用戶隱藏起來。這個漏洞可能使攻擊者能夠入侵數百萬台設備,並通過轉入提供商的後端網絡來訪問支持這些設備的網絡或VPN。反過來,知識產權(IP)、憑證、密碼、加密密鑰都可能被攻擊者輕易獲得。換句話說,模塊存儲的機密信息可能不再是機密。攻擊者甚至可以搶奪應用程序代碼,徹底改變邏輯,操縱設備。
潛在的影響是什麼?
這個漏洞的潛在影響根據攻擊者可能入侵使用這一行模塊的哪些設備而有所不同。據了解,全球有數百萬台設備使用該模塊,橫跨汽車、醫療、能源和電信行業。
鑑於其中許多設備的關鍵性,有針對性的網絡攻擊可能會很重要。以下是一些例子,說明如果在各種類型的設備中暴露出未打補丁的模塊,攻擊者可能會做什麼。
醫療設備: 操縱監測設備的讀數來掩蓋生命體徵或製造虛假恐慌在根據輸入提供治療的設備中,如胰島素泵,網絡犯罪分子可能會使患者用藥過量或不足。
能源和公用事業。篡改智能電錶,提供偽造的讀數,增加或減少每月的賬單。通過控製網絡訪問一大群這些設備,惡意行為者還可以關閉整個城市的電錶,造成大範圍的停電,需要進行單獨維修,甚至更糟糕的是,破壞電網本身。
技術細節
EHS8模塊與該系列的其他模塊一樣,由一個微處理器組成,內嵌Java ME解釋器和閃存,以及GSM、GPIO、ADC、數字和模擬音頻、GPS、I2C、SPI和USB接口。它還提供了更高層次的通信堆棧,如PPP和IP。嵌入式Java環境允許安裝Java “midlet”,以提供可定制的功能和與主機設備的交互,和/或作為主邏輯。該模塊在基本的OEM集成商層面上運行時,其行為很像傳統的”Hayes”調製解調器。這意味著,除了加載到系統中的Java應用程序外,還可以通過內置在電路中的物理UART連接使用”AT “串行命令進行控制。
在安全研究實踐中,Java應用程序可以被繞過,並將控制權交還給低層,允許攻擊者直接控制模塊。一旦控制了AT命令接口,就可以發出大量的標準命令,如”ATD”–撥號,或”ATI”–顯示製造商信息。還有一些配置命令和用於訪問覆蓋在閃存上的基本文件系統的特定命令子集–“AT^SFA”。這提供了文件和子目錄的讀、寫、刪除和重命名。
為了方便Java環境,還有一些與Java相關的命令,其中一個命令是”安裝”先前上傳到閃存文件系統的Java midlet。這可以有效地將Java代碼複製到閃存文件系統中的”安全存儲”中,理論上是”只寫”的–即數據可以復製到該存儲中,但永遠不會被讀回。這樣一來,OEM廠商包含其IP的私有Java代碼,以及任何安全相關的文件,如PKI密鑰或證書和應用相關的數據庫,都可以防止第三方竊取。
然而,X-Force Red發現的漏洞允許對隱藏區域進行完全的讀、寫、刪除訪問(儘管Thales已經針對特定的文件類型進行了額外的檢查)。這將允許攻擊者讀出系統上運行的全部java代碼(包括OEM midlets和Thales的主”主”代碼),以及他們可能擁有的任何其他”隱藏”支持文件。
由於Java很容易被反轉為人類可讀的代碼,這可能會暴露任何應用程序的完整邏輯以及任何嵌入的”秘密”,如密碼、加密密鑰等,並使IP竊取成為一個非常簡單的操作。掌握了這些數據,攻擊者可以很容易地創建”克隆”設備,或者更可怕的是,修改功能以實現欺詐或惡意活動。
帶有漏洞的代碼列表
上圖顯示了該漏洞存在於計算路徑子串中的字符數並檢查第四個字符是否為點(字符數組中的第三個索引)的代碼中。在正常情況下,任何訪問帶有點前綴的隱藏文件的嘗試都會被拒絕(例如:a:/.hidden_file)。然而,用雙斜線代替斜線(例如:a://.hidden_file)將導致條件失敗,代碼執行將跳轉到一個字符檢查循環,該循環將匹配任何可打印字符。在第二個斜線之後,系統將忽略它,沒有什麼能阻止攻擊者使用點前綴的文件名,繞過安全測試條件。
責任披露和補救
泰雷茲公司與X-Force Red團隊合作,在2020年2月測試、創建並向其客戶分發補丁。
補丁可以通過兩種方式管理–通過軟件插入USB運行更新,或者通過管理空中(OTA)更新。這個漏洞的補丁過程完全取決於設備的製造商和它的能力,例如,設備是否可以訪問互聯網,可能會使它的工作變得複雜。另一項需要注意的是,設備越是受監管(醫療設備、工業控制等),應用補丁的難度就越大,因為這樣做可能需要重新認證,這往往是一個耗時的過程。
我們要讚揚泰雷茲公司對這一缺陷的處理,並花費大量時間與客戶合作,以確保他們了解補丁並採取步驟保護用戶的安全。關於CVE-2020-15858的更多信息可以在https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-15858頁面當中找到。