FineArt News

IoT微型裝置入侵模式:Poisontap技術分析白皮書

對「親密近身」的駭客行為來說,找尋一個簡易且具備多面向入侵竊取技術,兼具迴避安全偵測技術,是一種簡易間諜行為。隨著IoT微型裝置的普及,可以隱匿在各個角落進行竊取。為何重視這樣的資安問題,可以順著以下幾則情境,檢視我們應該重視的理由。或許大多人會認為這不就是USB裝置嗎?其實是有很大差異的。

情境一:銀行ATM定期補鈔保全人員,打開ATM偷偷插入類似裝置。
我們都熟知ATM內部就是一部Windows PC,入侵方式簡易的多,不論是側錄提款密碼或植入破壞,都遠比入侵封閉銀行網路簡易且隱蔽,下次更換時取走,就有滿滿資料可用。

情境二:企業組織都有敏感安全資料,例如:封閉隔離的電腦或內部網路,只需要在其中一部工作站電腦,偷偷置入類似的微型裝置,隔天再找機會取回,又是一個豐收的入侵成果。這遠比透過網路留下軌跡更不易發現,即便被發現也很難鎖定對象,除非每個實體空間都有完善CCTV 24小時錄影。

但是這類入侵竊取方式有一個嚴格環境限制,必須能夠接觸相關實體裝置才能進行,也是聚焦在「親密近身」的理由。簡言之,組織與企業內員工就是一個很好身分掩飾,更不用提委外第三方輔助人力。

usbdevice

舉凡本案例所使用Raspberry Pi Zero one(圖1)外,其他如USB Armory(圖2) 與 LAN Turtle(圖3)都可以安裝相關入侵程式,其他類似裝置USB Rubber Ducky(圖4)結合unicorn的入侵應用。還有一種真的是USB微型裝置,不需要使用駭客程式,在大陸用語稱為「蹭網」USB微型裝置,例如:小米USB Wifi(圖4),可以藉由內部電腦網路分享給外部不受管控的電腦,輕易進入受控內網取得資料。隨著IoT產業快速發展,可預期的安全管控將會更加艱鉅。

usb-architecture

圖6:運作示意架構圖


實踐原理與應用環境

適用於Windows和Mac系統,將具有Poisontap 程式的Client裝置,如Raspberry Pi Zero one或是USB Armory插入電腦,因為透過USB供電,將會自動帶起內崁OS與設定在自動啟動startup程式。

偽裝成新加入的乙太網連接,即便使用者使用WiFi,可以使系統優先接入其偽裝的虛假網路,就是一種中間人網路劫持模式。PoisonTap劫持監聽受害者所有網路流量,竊取並且儲存在Browser任何Cookie和Session,接著然後發送給Server端。

換言之,通過USB或Thunderbolt偽裝新加入的乙太網連接設備,進而劫持受害目標電腦系統所有網路連接流量,不論是否設定優先順序或是未知的網路連接,都可處理。

進一步竊取儲存在Browser內相關Alexa (http://www.alexa.com/)排名前100萬網站Cookie和Session,並且識別目標Routing資訊,通過遠端outbound方式進行WebSocket或DNS重新綁定攻擊。

接著通過HTTP的JS「緩存中毒」(非真的中毒)手法,長期利用web後門。搭配上千個功能變數名稱,以及通用JavaScript CDN 連結使用用戶Cookie,達成遠端HTTP GET或POST控制連接。所以不需要系統密碼解鎖必要性,即便移除了Raspberry Pi Zero one或是USB Armory
實體後,因為已經側錄,所脅持後門仍保持有效可用。


PoisonTap突破的資安防護

歸納了幾個比較重要技巧,電腦帳號螢幕鎖定(非真正破解螢幕鎖定帳密)、改變Routing Table及網路卡優先順序、Web Application同源保護政策、Cookie相關安全保護與機制、突破雙因素(2FA)與多因素(驗MFA)證機制、利用DNS Ping技術、跨網域檔案分享(CORS)。而在Samy Kamkar 官網資料列舉了以下幾種:

  1. Password Protected Lock Screens
  2. Routing Table priority and network interface Service Order
  3. Same-Origin Policy
  4. X-Frame-Options
  5. HttpOnly Cookies
  6. SameSite cookie attribute
  7. Two-Factor/Multi-Factor Authentication (2FA/MFA)
  8. DNS Pinning
  9. Cross-Origin Resource Sharing (CORS)
  10. HTTPS cookie protection when Secure cookie flag & HSTS not enabled

進一步可以歸納幾個筆者認為重要核心特性:

  1. 網路劫持
    竊取者針對有密碼保護並且螢幕鎖定的電腦插入PoisonTap裝置,偽裝成一個新加入網路連接系統,會識別該虛假網路裝置進行連接,發送DHCP請求。
    PoisonTap回應請求,提供一組經過我們設定後網段資訊,可以從0.0.0.0至255.255.255.255,與其隨機IP位址組合;但是在基於「Internet traffic」的 「LAN traffic」情況下,任何路由表/閘道優先順序/網路介面服務順序設置都可被繞過。PoisonTap通過更改原網路閘道位址,將流量引入到Raspberry Pi Zero進而劫持系統所有網路流量。

  2. Cookie竊取
    當目標電腦開始使用browser連接Web based系統,會將通過AJAX或動態script或iframes所產生各類請求(由於網路劫持),PoisonTap將監聽到所有HTTP請求和回應,並將這些內容發送到PoisonTap的web服務端(Node.js)
    即便DNS伺服器指向內部IP,由於內部DNS伺服器因為緩存功能變數所產生內外部IP位址,因被PoisonTap劫持,所以攻擊竊取仍然有效。反觀Node web伺服器會接收到請求,PoisonTap城市則透過HTML或JavaScript進行回應(多數網站會在後台系統請求時載入HTML或JS)然而HTML / JS-agnostic頁面會生成許多隱藏的iframe。
    PoisonTap會生成上千個iframe,迫使browser載入所有iframe,但這些iframe不僅是空白頁,也是用來無限緩存的HTML + JavaScript後門使用。即使受害者未登入,由於PoisonTap已在每個緩存的功能變數強制綁定後門,使攻擊者能夠使用Cookie並在將來啟動相同程序之請求。
    實際回應頁面是HTML和JavaScript的組成,並產生持續而有效的WebSocket來連接攻擊者web伺服器端,換言之,就是通過互聯網送往攻擊者伺服器,而不是PoisonTap載體來進行傳送。

  3. 內部路由後門和遠端存取
    PoisonTap可以劫持當前網路與子網路,只需要在目標路由器的IP後面加上「.ip.samy.pl」,如192.168.0.1.ip.samy.pl,就可以成為一個的DNS重綁定攻擊手法。意味著任何請求都將access到攻擊竊取者後端伺服器。再利用DNS某些特性,耗盡DNS pinning表,最終將被繞過。至此之後DNS就不需要重新綁定,使得該攻擊可以持續很長時間。
    換言之在iframe中載入192.168.xx.xx.ip.samy.pl/PoisonTap指向主機,就可以對內部路由器執行AJAX GET/POST和其它任意頁面,達成完全控制內部路由。


預防手段或對策

在Samy Kamkar論述中提到幾個可能防禦方式,歸納如下:

  1. 全面使用HTTPS,因通道加密,相關機制將會失效,至少在認證和認證內容使用HTTPS。(反思美國政府大力推動網站HTTPS保護,是一個不錯的方式)
  2. 網站設計應啟用Cookie安全標記,防止HTTPS Cookie資訊洩露或劫持。
  3. 調用遠端Java Script程序時,請使用完整性(SRI)標記屬性。
  4. 強制使用HTTP Strict Transport Security (HSTS) 防止降級攻擊。
  5. 黏膠封住USB和Thunderbolt埠(這一個很不聰明處置)。我個人認為應該從DLP管控著手,從識別出裝置,而管控裝置才是好方法。筆者在多次測試發現,因使用Open Driver在攔阻上需要更細緻的處置。
  6. 離開電腦時務必關閉browser,並且清除browser Cache或是Cookie的暫存資料。
  7. 讓電腦進入休眠狀態而不是睡眠狀態,在休眠狀態中,電腦中所有的進程都將停止工作,安全性更高。待確認GCB是否可以控制相關狀態。

微軟與Apple的回應:

PoisonTap採行多種駭客技巧所組合而成的攻擊。整個攻擊和利用過程無法明確反應作業系統的漏洞,目前沒有明確的修復措施。但Samy Kamkar指出了一種解決方式,在系統層面的網路連接切換中加入許可機制。(筆者認為這是一個不錯的概念)Apple沒有對此作出回應;Microsoft回覆表示,PoisonTap是一種物理接入攻擊,防禦策略就是自己管好自己的電腦。

相關影片與參考資源:

  1. https://github.com/samyk/poisontap
  2. https://samy.pl/poisontap/
  3. https://youtu.be/Aatp5gCskvk
  4. http://arstechnica.com/security/2016/11/meet-poisontap-the-5-tool-that-ransacks-password-protected-computers/
  5. https://www.hak5.org/
  6. https://inversepath.com/usbarmory
  7. https://www.raspberrypi.org/downloads/
  8. https://www.wikiwand.com/en/Routing_table
  9. https://world.taobao.com/item/539099877727.htm?fromSite=main&spm=a230r.1.14.7.VJqqNk&ns=1&abbucket=1#detail
  10. http://www.alexa.com/