2018年5月7日 星期一

.駭客小哥如何以上帝視角操縱高樓飯店?

駭客將麻省理工學院建築變成俄羅斯方塊遊戲



leiphone 作者:又田


還記得當年紅極一時的駭客操控大廈電力,玩起坦克大戰的電玩嗎?(就是這個)影片真實性拋開不論,帶給圍觀群眾的震撼效果絕對是十級。


小編今天帶來的是另一組大片。


影片中的神操作者,是來自騰訊安全平台部Blade團隊的兩位小哥Nicky、Xbalien。沒錯,就是這兩位

黑客小哥如何以上帝视角操纵高楼酒店?
▲左xbalien,右Nicky

這兩位還在不久前,舉辦的歐洲頂級安全會議HITB大會上,分享了如何以上帝視角,完成操控大樓燈光的壯舉。

先拿下一層樓
月黑風高夜,某座大廈的36樓突得陷入黑暗。

一片靜謐中有人屏息以待,心中默念:1、2、3!一間屋子亮起了燈光,又一間亮了起來……

監控器前的拍攝團隊大喊一聲「卡」,錄製結束了。

Nicky和Xbalien長舒了一口氣,拍了三次,終於搞定了。

這不是大電影的拍攝現場,主角不是明星,而是一台無人機和一層高樓。這波操作也並非你所預想的特效製作,而是真實上演的,是針對智慧建築設備 ZigBee 通信協議新的攻擊方式——有別於以往針對某一廠商的某一產品進行攻擊,而是通用、快速的批量攻擊。



當然要實現影片中的炫酷動作需要三步。

第一就是利用無人機,使其載著樹莓派(Raspberry PI)設備,以較慢速度,圍繞某一建築,進行網路資訊蒐集。

具體來說,要發送一些信標包,探測 ZigBee 信道的網路網管資訊,比如設備ID資訊,還會進一步探測其使用的密鑰,並進行解析。

這些結果資訊都會被回饋回來,進行半自動化分析。


所謂的半自動化分析是什麼?
這就要回到ZigBee協議本身了,ZigBee廣泛應用於智慧家庭系統中,諸如ABB、三星、小米等廠商,都有生產ZigBee設備。為了使用戶更方便地連接第三方廠商生產的ZigBee設備,許多製造商使用ZigBee聯盟通用密鑰,允許設備在不同的供應商之間進行配對。也就是說你可以用小米的網關控制三星設備,而控制燈光、窗簾、空調等也有標準的實現指令。

所謂知己知彼,半自動化分析就是讓你更清楚的瞭解「彼方」,透過分析 ZigBee 設備來源廠商,以及其控制指令是否標準,如果是相容協議,就可以自動生成攻擊指令。假如遇上特立獨行的廠商,懶得去容協議,或者在控制指令中加入了特殊指令,就需要預先進行簡單的人工分析及提取指令。

完成半自動化分析後,無人機第二次起飛進行自動化批量攻擊,此時就會出現影片中的畫面,無人機「操控」燈光,窗簾,空調等設備自動打開與關閉。

此處有個大膽腦洞,是不是以後求婚可以有這種操作……(據說兩位小哥哥也有此想法)

Hacking Intelligent Buildings and a Journey into a Modern Private ...

當然批量攻擊的實現,是借前兩步中收集 ZigBee 密鑰和網路資訊的光,透過模擬網路節點,發送包含攻擊載體的廣播包,控制所有燈一起開或者關。

但要知道,一個樓層可能有幾百個ZigBee設備,它們分布在不同房間中處於不同信道。而每次攻擊卻只能針對一個信道,還存在要攻擊的信道,距離無人機稍遠的可能,這會拖慢整個測試速度。

「我們做了一個新的改變!」Nicky興奮地告訴小編,他們在樹莓派上,同時使用了兩個嗅探設備和兩個發送設備,以便在前期蒐集網路資訊時可以加快速度。同理,在發射 ZigBee 數據包進行攻擊時,也可以同時使用兩個發射器發射信號,加速攻擊流程。

ZigBee並非沒有防禦措施,但Nicky和Alien利用一些漏洞繞過這些防禦措施。比如Blade團隊還發現了,一種新的繞過ZigBee協議,重放防禦機制的方法:

透過在ZigBee網路中創建一個虛擬節點,並將這個虛擬節點的設置,在一個隨機的MAC地址,和一個與網路中節點設備相同的網路地址,這樣在以當虛擬節點身份發送廣播包時,序列號與計數器都會從0開始計數,完全可以隨心所欲的控制所有設備。


Nicky和Alien研究這種批量攻擊方式時間不算短,從2017年6月開始,歷經兩三個月,中間也有不少難題。比如攻擊高層樓宇的智能設備可能面臨信號發射功率不夠,需要尋找載體——無人機,對無人機的控制技術也有一定要求。另外為了不影響大樓中的工作人員辦公,測試往往選擇深夜進行……

不過這兩位研究員也樂在其中,他們在不久前舉辦的HITB大會上分享了針對 ZigBee 協議的批量攻擊方式以及對應的安全加密機制,主要有以下幾點。
    1. 如果不需要相容其它廠商的設備,廠商可以避免使用通用安全密鑰。
    2. 以「新」代「舊」,目前市面上不少晶片廠商提供較老的晶片只支持老版本的ZigBee協議棧,但老版本的ZigBee協議是存在漏洞的,建議使用高版本的ZigBee協議棧。
    3. 制訂自定義加密方案,ZigBee包含實體層、網路層、應用層等,建議廠商在應用層,用非對稱算法實現自己的認證加密方案,這樣即使密鑰洩露,網路通信也有一定的安全保證。
    4. 密鑰儲存,市面上一些廠商的 ZigBee 固件或者硬體的flash晶片會明文儲存一些密鑰。駭客只要購買這種智慧設備,就可以從固件中提取密鑰,進而攻擊同類產品。因此密鑰不應該以明文方式駭在固件或晶片中,應該做一些加密或打散方式儲存,提高駭客攻擊成本。

下一步:拿下一棟飯店
拿下一層樓不算什麼,Blade團隊的下一個目標是整棟飯店,他們瞄準的是KNX協議。


目前,智慧家庭的通信協議,大多使用ZigBee協議,而KNX常用於大型公共場所,如體育場館、機場、豪華飯店,以及核電站、工廠等一些工業設施。Nicky和Xbalien從去年11月開始研究這一協議,發現這一協議相關的研究及安全工具極少,他們前期花費了大量時間和精力去分析這一協議。

早前在 DEFCON 大會上,曾有安全研究員透過WiFi網路,入侵了深圳京基100大樓瑞吉酒店的 KNX系統,並控制了酒店的照明系統。但 Nicky和Xbalien在實地測試時發現,多數飯店的KNX網關網路,與飯店本身的WiFi網路相隔離,其 KNX 設備的最後網關在單獨的控制室內,旁人接觸不到。

透過對KNX協議的分析,他們發現可以透過接入KNX電纜網路,來修改KNX/IP路由器的配置,在不影響整個原有KNX網網路設備的正常使用情況下,攻擊KNX網網路中的任何設備或嗅探KNX網網路流量,這種攻擊同時可以導致整個KNX網路的設備拒絕服務。

當然這只是一個思路,能否實現還需親自接觸KNX設備進行測試。

於是兩位小哥哥自己添置了KNX設備,搭建起小型KNX網路,並在上面完成了整套攻擊流程。

「但這種小型網路無法完全模擬大型網路的攻擊場景,於是我們決定,去某五星級飯店開房。」


選擇某五星級飯店開房是有原因的,當然不是你想的某些不正經原因,而是因為該飯店的所有房間,以及走廊或大廳,都用到了KNX設備。這是一個較大型的網路,其中可能使用了幾千甚至上萬個KNX設備,以此為研究目標,就可以實現大型KNX網路的批量攻擊。

於是,Nicky和Xbalien一拍即合,跑去飯店花了1800開了一間房,在裡面測試了一天一夜,成功驗證了利用上述攻擊方式,可以操縱飯店走廊燈,以及客房「請勿打擾」燈牌亮滅。

(試想若是這波操作被心懷不軌的駭客利用,在男女主角在床上做雙人運動之時,窗簾慢慢打開……好吧,以上情節只是小編的不良腦洞……)

他們也在HITB大會上,分享了針對KNX協議的安全防護建議:


    1. 目前多數廠商仍在使用老舊KNX設備,這些設備不相容最新版KNX協議,更不支持最新版協議中的加密機制,暴露出來的漏洞有很多,應該將設備升級到新版協議。
    2. KNX網關要做好網誤隔離,不能將KNX網關,開放在公網上,這會帶來很大安全風險。
    3. 另外,最新版的KNX協議支持數據包加密,但很多廠商沒有開啓這一安全選項。我們建議廠商開啓這一選項,對數據進行加密。

智慧建築通信協議安全性普遍不高?
針對這兩種協議的攻擊,是否會被駭客利用?

Nicky告訴小編,目前新聞中並未出現過,駭客大規模攻擊這些設備。究其原因可能是ZigBee和KNX皆偏向控制設備一類的通信協議,本身不會包含一些敏感資訊或者數據。

而駭客攻擊往往帶有逐利性,攻擊這兩種協議所能得到的回報不高,通常只是為了炫技。

但實際上這類攻擊,同樣可能被恐怖分子用於攻擊城市電力與照明系統,製造社會恐慌等

「我們選擇研究的這兩種協議,是智慧建築領域使用最廣泛的、最具代表性的協議,透過這兩種協議的研究,我們認為智慧建築領域普遍使用協議的安全性不高。」

這種安全性不高的原因主要源於廠商。

credit card hacking - Online Cyber Security News

這倒不是說廠商對協議安全性毫不關注,而取決於在部署安裝設備時的安裝人員,是否有開啓安全選項,或者用正確的網管及路由設備部署網路。也就是說,就算設備是安全的,安全人員卻沒有正確部署設備,同樣會造成安全問題

另外,還有一些廠商缺少由於安全技術人員,基本只要實現設備可用性,就不會再考慮設備的安全性的原因。

當然,這些都只是冰山一角,智慧建築的安全攻防之戰還任重道遠。

                                                                                                                                                                                                                 

沒有留言:

張貼留言