ESET研究人員強調了一種設備上的一系列安全性漏洞,旨在使家庭和辦公室更加安全
更新(5月31日):D-Link發佈了一份聲明,承認ESET的調查結果:“D-Link知道所報告的安全問題,並一直在努力調查和解决這些問題。一些漏洞已經在當前可用的固件版本(可通過mydlink應用程序和此處獲得)中解决。我們將在獲得更多資訊後立即提供更新。”
許多人希望通過安裝“智慧”監視器來提高他們家或辦公室的安全性。通過與互聯網的直接連接,他們的監控流只需點擊幾下,就可以隨時使用。然而,如果相機存在安全性漏洞,從而為未經授權的演員打開了大門,這種便利性很快就會變壞。如ESET智能家居研究所示,D-Link DCS-2132L雲監視器就是這樣,攻擊者不僅可以攔截和查看錄製的視頻,還可以操縱設備固件。
D-Link DCS-2132L雲攝像機最嚴重的問題是視頻流的未加密傳輸。它在攝像機和雲端之間以及雲端和用戶端瀏覽器應用程序之間的兩個連接上都未加密地運行,為中間人(MitM)攻擊提供了肥沃的土壤,並允許入侵者監視受害者的視頻流。
圖1。易受攻擊的資料傳輸和可能的MitM攻擊向量的描述方案
檢視器應用程序和相機通過埠2048上的代理伺服器進行通信,使用基於自定義D-Link隧道協定的TCP隧道。不幸的是,只有部分通過這些隧道的流量是加密的,使得一些最敏感的內容(如對攝像機IP和MAC地址的請求、版本資訊、視頻和音訊流以及大量攝像機資訊)沒有加密。
導致此問題和本blogpost後面描述的一些問題的漏洞可以追溯到request.c檔案(D-Link自定義開源Boa web服務器原始程式碼的一部分)中的一個條件,該文件處理對攝像機的HTTP請求。來自127.0.0.1的所有HTTP請求都提升到管理級別,從而授予潜在攻擊者對設備的完全存取權限。
圖2。boa web服務器原始程式碼中的條件。所有傳入的請求都提升為管理員
截取視頻和音訊流
MitM攻擊者攔截檢視器應用程序與雲之間或雲與相機之間的網路流量時,可以使用服務器(雲)埠2048上的TCP連接的資料流程查看視頻和音訊數据包的HTTP請求。然後攻擊者可以隨時重建和重播這些視頻,以從該攝像機獲取當前音訊或視頻流。在我們的實驗中,我們獲得了兩種原始格式的流式視頻內容,特別是M-JPEG和H.264。
要重建視頻流,需要採取幾個步驟(可以通過簡單的程式或腳本輕鬆實現自動化):
- 標識表示視頻流的流量。此通信量由多個數據塊組成,每個數據塊具有特定的頭和定義的長度。
- 將數據部分與標題分開。
- 最後,視頻的部分被合併到一個檔案中。
播放以這種管道獲得的視頻檔案可能有點棘手,因為它們是原始流格式而不是容器檔案格式。但是,如果使用適當的命令列開關運行,一些媒體播放機可以處理這些原始格式(例如,MPlayer可以處理M-JPEG檔案,VLC可以播放H.264檔案)。
有缺陷的挿件
相機中發現的另一個嚴重問題隱藏在“mydlink服務”web流覽器外掛程式中。這是用戶可以使用的檢視器應用程序的一種形式,其他的是不屬於我們研究的移動應用程序。
web流覽器外掛程式管理TCP隧道的創建和用戶端瀏覽器中的實时視頻播放,但也負責通過隧道轉發對視頻和音訊資料流程的請求,該隧道偵聽本地主機上動態生成的埠。
隧道可用於整個作業系統,囙此用戶端電腦上的任何應用程序或用戶只需向hxxp://127.0.0.1:RANDOM_PORT/發出一個簡單的請求(僅在實时視頻流期間),就可以訪問攝像機的web介面。
無需授權,因為從本地主機IP訪問相機的Web服務器時,對該服務器的HTTP請求會自動提升到管理級別(檢視器應用的本地主機通過隧道連接到相機的本地主機)。
此漏洞還允許任何攻擊者使用自己的安裝或後門版本替換合法固件。
下麵的視頻演示了挿件現在修復的安全問題:
非法固件更換
在編寫本文時,“mydlink服務”挿件的問題已由製造商成功解决。
然而,惡意固件替換仍然有可能通過自定義友訊隧道協定中的漏洞,如本文前面所述。為此,攻擊者需要修改通道中的流量,方法是將視頻流GET請求替換為上載並運行偽造固件“更新”的特定POST請求。
在這一點上,我們需要強調,執行這樣的攻擊是非常重要的,因為它必須遵循隧道協定的所有規則,將固件檔案分成具有特定頭和特定最大長度的塊。
但是,在更新過程中不會驗證固件二進位檔案的真實性。一個定制的固件與一些額外的“隱藏”功能,如加密貨幣礦工,後門,間諜軟體,僵屍網路或其他特洛伊木馬,囙此可以上傳到設備。此外,缺乏任何真實性檢查意味著惡意行為人可能會故意“磚”設備。
向internet公開HTTP埠的UPnP
D-Link DCS-2132L也有一些其他的小問題,但仍在關注中。它可以通過使用通用隨插即用(UPnP)在家庭路由器上設定埠轉發。這會將其埠80上的HTTP介面公開到internet,即使未選中設定中的“Enable UPnP presentation”或“Enable UPnP port forwarding”欄位,也可能在未經用戶同意的情况下發生。
為什麼相機使用如此危險的設定還不清楚。現時,通過Shodan可以找到近1600個D-Link DCS-2132L攝像機,其中80號埠暴露在外,其中大部分在美國、俄羅斯和澳大利亞。
圖3。80埠DCS-2132L的Shodan搜索結果
減輕當前風險的最簡單方法是禁用用戶路由器上的UPnP。
挿件已修復,其他問題仍然存在
作為負責任披露的一部分,ESET於2018年8月22日向D-Link報告了發現的問題,包括易受攻擊的未加密雲通信、雲消息身份驗證不足和未加密的LAN通信。
D-Link立即作出回應,告知ESET,脆弱性報告已轉發給其研發團隊,有望採取後續行動。
從那時起,一些漏洞已經得到了緩解——根據我們的測試,“mydlink服務”挿件現在已經得到了適當的保護——儘管其他問題仍然存在。在編寫本文時,可供下載的最新固件版本是2016年11月的版本,它沒有解决允許惡意更換相機固件以及攔截音訊和視頻流的漏洞。
D-Link DCS-2132L相機仍在市場上銷售。建議設備的當前擁有者檢查埠80是否未暴露在公共互聯網中,如果攝像機正在監視其家庭或公司的高度敏感區域,則應重新考慮使用遠端存取。
作者:ESET惡意軟件研究人員米蘭·弗裏尼克和米洛舍爾姆
米洛舍爾馬克和米蘭弗拉尼克2019年5月2日上午11:30