按 Enter 到主內容區
:::

TWCERT-電子報

:::

小蟻家用攝影機27US型驚現一打嚴重漏洞

發布日期:
字型大小:
  • 發布單位:TWCERT/CC
  • 更新日期:2019-04-03
  • 點閱次數:1223
小蟻家用攝影機27US型驚現一打嚴重漏洞

CVE編號

CVE-2018-3900 CVE-2018-3947 CVE-2018-3928 CVE-2018-3934 CVE-2018-3920 CVE-2018-3935 CVE-2018-3910 CVE-2018-3890 CVE-2018-3891 CVE-2018-3892 CVE-2018-3898 CVE-2018-3899

內文

●概述:
小米旗下小蟻系列家用智慧攝影機,具遠端影像、語音傳送功能,經思科Talos分析出12個嚴重弱點,其QR Code受部分參數影響,掃描惡意圖形後易觸發overflow;且因手機app對攝影機多採明文傳輸,與既有中繼IP連線時,恐遭受中間人攻擊而竄改資料,或者在時間同步時以過大回應封包造成溢位;藉由操縱UDP封包流量,駭客能導致p2p_tnp程序耗盡記憶體,並持續關閉攝影機,使設備無法使用;另雲端OTA(Over-the-air)缺乏安全防護,cloudAPI SSID被偽造可引發command injection;雖有設計Nonce清單以防止重放攻擊,但駭客靠竊聽掌握有效nonce,可騙過驗證機制建立新的TNP_Session;最後韌體從SD卡更新時,無法精確辨識版本,可能降級舊版而喚回更多漏洞,甚至攻擊者放置假韌體檔,利用rsa_pub_dec()程式設計瑕疵,執行惡意程式,上述分析成果適用於美國境內販售之小蟻商品,目前已改善韌體並釋出,至於台灣地區銷售之小蟻攝影機是否具類情,尚須專業單位鑑定。
●編註:
(1)偽冒QR Code
在網路組態設定階段,攝影機要求用戶以手機產生一組QR Code圖形,app連線https://api.us.xiaoyi.com取得bindkey值,QR Code內包含3類資訊,有服務設定識別碼SSID(Service set ID)、密碼、bindkey(伺服器用來識別攝影機),然而未妥善檢查參數decoded_password資料長度,且針對ssid_dst、password_dst兩項緩衝區位址所填入字串,已超過其buffer size,皆觸發overflow,若駭客誘騙受害者使用假造QR Code進行掃描,可能衍生代碼執行事件。
(2)明文傳輸
(2-1)背景程式p2p_tnp服務運作時,搜尋網段、授權、設定控制等重要資訊循UDP傳送,手機app對攝影機連線內容絕大部分未加密,由於原廠認證伺服器會通知攝影機新的橋接IP,通常173.153.82.163給camera而173.73.4.202給手機,相關資訊已公開,若遭遇中間人攻擊,恐怕被竄改資料。
(2-2)設備與網路初始化成功後,旋即與api.us.xiaoyi.com進行時間同步,然此過程不是經由HTTP s而是HTTP,故駭客得採中間人攻擊掌控回應封包,造成回傳資料大於預設buffer,觸發overflow。
(3)UDP封包服務阻斷攻擊
(3-1)在特定條件下,囿於CRCDec不釋放已經配置過的記憶體範圍,而p2p_tnp程序卻持續配置記憶體,攻擊者送出成套惡意UDP封包,可能導致記憶體耗盡,發生DoS。
(3-2)韌體更新功能啟動後,首先驗證設備(device ID:DID),隨後呼叫notice_callback()函數,notice_callback()只負責檢查buffer內資料,是否吻合TurnOff或TurnOn字串,若然則呼叫p2p_set_power,將該狀態數據送進攝影機,此時用戶無法使用攝影機功能,當攝影機開機時,循環發送偽造MSG_NOTICE_TO packet流量,將使攝影機持恆關閉而失效。
(4)命令注入
因設備商提供雲端OTA(Over-the-air)設定功能,故可接收無線服務,但cloudAPI SSID被劫持偽造,攝影機連線後將引發command injection,執行惡意程式。
(5)重放攻擊
在資安領域,Nonce是在加密通訊中只能使用一次的數字,在認證協定中,是隨機或偽隨機數,以避免資料重送。攝影機韌體更新時,為避免Nonce重複,每次TNP_Session都儲存一個清單,記載100組使用過Nonce,有新的request就檢查Nonce清單,發現Nonce出現過,攝影機就丟棄該次請求,然Nonce清單屬於TNP_Session內部資料結構,一旦駭客竊聽到即時流量,可能掌握有效的nonce,趁著舊Session仍進行中,建立新的TNP_Session封包,騙過驗證機制。
(6)本機SD card攻擊
(6-1)小蟻韌體更新作業,係設備開機時執行/home/base/init.sh,檢查/tmp/sd/home_y18m檔案是否存在於SD卡根目錄,比較版本字串差異,接著才是實際更新,執行/tmp/update/extpkg.sh,囿於設計瑕疵,並未有效檢查版本是否較新,僅僅是發現版本不同於現有版本,照樣安裝,故攻擊者可在SD card內放置舊版韌體,讓設備降級。
(6-2)升級韌體時,/tmp/update/rsa_pub_dec負責解密檔案,如果加密韌體檔小於1344 bytes,將造成解密失敗且dec_enc_key成為空檔案,但rsa_pub_dec( )回傳值無檢查機制,即使出錯仍繼續進行更新,rsa_pub_dec( )解密既然失敗,竟直接將輸入值當作輸出寫入dec_enc_key檔案,表示攻擊者在SD card內存放變造之韌體檔,可間接控制dec_enc_key,extpkg.sh執行時引用dec_enc_key內容,能執行任意碼或者注入指令。

影響產品

Yi Technology Home Camera 27US 1.8.7.0D

解決辦法

(1)手機app連線攝影機,搜尋新版韌體。
(2)SD card 存入最新firmware.bin,camera開機。
回頁首