您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關Windows 10 IoT Core遠程命令執行漏洞驗證及建議是什么,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
近日,安天微電子與嵌入式安全研發部(安天微嵌)針對SafeBreach[1]公司披露的Windows IoT[2]操作系統的安全漏洞進行了詳細分析和驗證。攻擊者利用該漏洞可實現對目標設備的完全控制,如遠程命令執行、文件上傳/下載等。對此,安天微嵌成立了分析小組,分析驗證了SafeBreach公司在GitHub中公布的該漏洞的原理及POC,對該漏洞的影響范圍進行了確認,并針對不同應用場景給出了相應的防護建議。
Windows作為IoT市場中僅次于Linux系統的第二大系統,其Windows IoT Core是面向物聯網領域的核心操作系統版本,覆蓋了智能家居、智能醫療、智慧城市、智能物流等眾多領域。Windows IoT分為IoT Core和IoT Enterprise版本,而Windows IoT Core又分為Stock Image和Custom Image兩個版本。其中,Stock Image版本也被稱為Test Image版本,其包含了用于開發及硬件兼容性測試用途的相關接口。
Windows IoT Core系統目前支持的硬件平臺包括:高通DragonBoard 410c、樹莓派2、樹莓派3B、MinnowBoard Turbot、Aaeon Up Squared。
HLK(Hardware Lab Kit)是一個用于測試硬件設備及對應驅動程序和Windows系統之間兼容性的測試框架。PC端軟件HLK Studio[3]中包含了該測試框架的Server部分,測試設備中包含了該測試框架的Client部分。用戶可在HLK Studio中選擇測試用例并發送到待測試的設備中進行測試。在底層實現中,HLK Studio軟件通過Sirep協議[4]與待測試設備進行交互。HLK Server與HLK Client的關系如圖1-1所示:
圖1-1 HLK Server與HLK Client的關系
實現Sirep協議的DLL文件位于Windows IoT Core系統的C:\..\testsirepsvc.dll位置,該DLL實現了包括HLK Studio和Windows IoT Core系統間的通信功能,及執行HLK Studio下發至Windows IoT Core的測試任務等功能。而Sirep協議本身實現了如下功能:
獲取Windows IoT Core系統信息;
執行Windows IoT Core系統命令;
下載Windows IoT Core系統中的文件;
上傳文件到Windows IoT Core系統中;
獲取Windows IoT Core系統中的文件屬性信息。
根據公開資料及分析小組實際驗證,該漏洞目前主要影響Windows IoT Core的Stock/Test Image[4]版本。若開發人員或廠商在最終發布的產品中使用了Stock/Test Image版本的系統,且該產品存在有線連接場景,則會受到此次披露的漏洞影響。構建Custom版本需要從CA(Certificate Authority)購買簽名證書,并使用該證書對Custom版本的系統進行簽名,因為時間倉促,分析小組暫未對Custom版本的Windows IoT系統進行驗證。
本次分析過程使用樹莓派2B和Windows IoT Core(17763)版本作為驗證環境。設備連接示意圖如圖3-1所示:
圖3-1 設備連接示意圖
首先,可使用Windows 10 IoT Core Dashboard[5]軟件制作帶有Windows IoT Core系統的TF卡,然后將TF卡插入到樹莓派中,使用網線連接樹莓派,通電后即可啟動系統。系統啟動后,Windows 10 IoT Core Dashboard軟件可自動發現局域網范圍內的Windows IoT 設備、執行啟用遠程PowerShell、向設備中部署應用軟件等。但這些操作需要首先通過Windows IoT系統管理員賬號和密碼認證才能正常使用。
在實現Sirep協議時,testsirepsvc.dll的代碼使用TCP Socket服務程序監聽了29817、29819、29820端口,且在代碼中并未對接收到的請求進行適當的權限檢查,進而導致了在未經授權的情況下即可執行Sirep協議所實現的功能。
在testsirepsvc.dll中,實現對遠程請求進行權限檢查的函數名稱為:
ControllerWSA::IsConnectionAllowed
在Windows IoT Core系統運行后,可通過U盤將該DLL文件拷貝到分析機中,使用IDA查看實現該函數的匯編代碼,如圖3-2、圖3-3所示:
圖3-2 ControllerWSA::IsConnectionAllowed函數代碼片段1
圖3-3 ControllerWSA::IsConnectionAllowed函數代碼片段2
以上代碼片段解釋了testsirepsvc.dll如何對接收到的請求進行權限檢查的邏輯,程序邏輯僅僅判斷getsockname函數返回的SOCKADDR_IN數據結構是否為有線網卡的IP地址,也就是說testsirepsvc.dll認為所有來自有線網絡的請求都是合法的請求,這個過程并不需要用戶輸入用戶名和密碼進行認證。
在testsirepsvc.dll中的服務程序接收到HLK Studio發送的命令數據后,會經過SirepPipeServiceRoutine函數進行分流,在該函數中通過命令類型字段將不同的命令分流到不同的函數中進行執行,不同的命令類型對應的執行函數名稱分別為:
SirepGetSystemInformationFromDevice;SirepPutFileOnDevice;SirepGetFileFromDevice;SirepGetFileInformationFromDevice;SirepLaunchWithOutput
實現該命令分流過程的SirepPipeServiceRoutine函數匯編代碼如圖3-4所示:
圖3-4 SirepPipeServiceRoutine函數命令分流代碼
分析小組通過樹莓派2B和Windows IoT Core(17763)(Stock/Test Image)搭建了驗證環境,結合上述的分析過程對公開的POC[6]進行了驗證。
上傳文件POC執行示例如圖4-1、圖4-2所示:
圖4-1 上傳文件POC執行示例
如圖4-1所示,該POC在C:\Windows\System32\目錄下創建了一個名為uploaded.txt的文件,文件內容為“Hello Windows IoT!”。
圖4-2 查看上傳文件結果
如圖4-2所示,在執行圖4-1所示的POC命令后,使用cat命令可查看C:\Windows\System32\目錄下的文件名為uploaded.txt的文件內容。
遠程執行系統命令POC執行示例如圖4-3所示:
圖4-3 遠程執行系統命令POC執行示例
如圖4-3所示,該POC實現了遠程命令執行,在目標設備中執行了hostname命令,并返回了命令執行的結果,即“minwinpc”
經過驗證,SafeBreach公司安全研究人員公開的POC能夠實現對Stock/Test Image版本的Windows IoT Core系統的上傳文件和執行系統命令,Stock/Test Image版本的Windows IoT Core系統存在嚴重的安全隱患。
本次驗證的漏洞能夠不經授權就可以在受影響系統設備上執行上傳文件和執行系統命令等高危動作,惡意軟件通過本漏洞的利用很容易劫持設備成為僵尸網絡的一員,成為黑客發起網絡攻擊的武器之一;設備也能夠被黑客控制成為挖礦中的一部分;同時由于IoT設備應用于各行各業,一旦受到控制最直接的就是影響設備的正常運行,進而對生產生活造成影響;同時黑客也可以通過設備作為跳板進一步入侵IoT設備所在網絡進行病毒傳播、情報竊取和網絡破壞等危險行為,對目標網絡造成嚴重威脅。
雖然本次驗證的漏洞僅適用于Stock/Test Image版本的Windows IoT Core系統,但由于構建Custom版本需要從Certificate Authority (CA)購買簽名證書,并使用該證書對Custom版本的系統進行簽名,廠商可能出于成本或其它方面考慮直接使用Stock/Test Image版本的Windows IoT Core系統進行產品發布,也就是說以Stock/Test Image版本的Windows IoT Core系統IoT設備可能已經廣泛進入供應鏈。并且IoT設備在現實應用場景中進行固件升級較為困難,容易被忽視。
綜合上述情況,為了有效降低漏洞所帶來的威脅,在提高產品安全性的同時,有效提升產品所在網絡的安全防護能力,保障客戶價值,我們結合漏洞的分析和驗證情況給出三點安全建議,具體如下:
建議一: 產品實際的上線過程應該嚴格按照官方要求的研發、測試和發布流程規范操作,使用Custom Image而非Stock/Test Image版本的Windows IoT系統作為實際產品的發布系統,能夠有效避免本次或其它未被發現的Stock/Test Image版本系統漏洞所產生的影響。
建議二:本漏洞所涉及到的服務使用29817、29819、29820三個端口,且涉及到的服務僅用于研發階段的兼容性測試,并不是實際產品所使用的功能。在暫時無法升級固件的情況下,并確保實際產品中沒有依賴相應端口的功能,以防止在關閉相應端口后影響設備的正常使用,則可以臨時在Windows IoT Core系統防火墻中將兼容性測試服務所使用的29817、29819、29820三個端口進行阻斷,也可暫時避免本次披露漏洞所產生的影響。但仍需要盡快升級固件修補漏洞,才能有效避免本次或其它未被發現的Stock/Test Image版本系統漏洞所產生的影響。
在Windows IoT Core系統臨時阻斷端口的命令如下:
建議三: 根據IoT設備所實現功能的技術特征并結合實際運行環境,詳細梳理可以訪問設備的IP列表、端口列表、訪問協議類型,以及設備可以向外主動連接的協議類型、IP列表和端口列表,結合梳理結果使用邊界防火墻產品或設備專用防火墻產品配置相應的雙向IP地址、端口和協議的白名單訪問規則列表,可最大限度的保障IoT設備的訪問安全。該方法雖然能夠有效保障IoT設備的訪問安全,降低漏洞被利用的可能,但并未根除漏洞風險,所以盡快升級固件修補漏洞,才能有效避免本次或其它未被發現的Stock/Test Image版本系統漏洞所產生的影響。
以上就是Windows 10 IoT Core遠程命令執行漏洞驗證及建議是什么,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。