抓到炸彈魔了 – CSI Cyber S01E05

[撰文 Leaf]

哈囉大家好!又到了令人期待的看電影學資安了,每一集我們都會帶給大家不同的新知識和驚喜,希望大家會喜歡。

這次影片的專業名詞叫眾包。

有時候自己都會覺得學習資安是一件非常有趣的事情,各種攻擊方式和專業名詞,就好像是在上演武俠連續劇一般,光聽招數的名字就一整個熱血沸騰啊!

但是…眾包?我只聽過草包跟肉包耶!阿不好意思,原來是小編肚子餓了…

但這並非只有在資安才能看到的專業名詞(在這之前我甚至連聽都沒聽過QQ),這邊要跟大家介紹另一個很相似的資安小知識,叫「邏輯炸彈」。這種髒東西通常隱身於正常程式當中,當某些條件或情況發生時,才會被觸發來對目標發動攻擊。

譬如原本一個普通的小程式,到了某年某月某日某時某分時,突然就把電腦內重要資料全部刪除乾淨,據不負責任的謠言指出,這種東西似乎常現身於公司中xDDD

 

接下來我們來看看影片中有哪些有趣的資安點吧:

1.藍芽 + 炸彈 = BlueBorne?

劇情一開始就在電影院發生了一則爆炸事件,兇手利用平板來連接周遭民眾的手機,當連接上時,對方手機就會收到兩則短訊,一個是數字,一個是”KABOOM!”,數字隨著每連接到一個人就往上加一,當累積到兩百就會觸發炸彈。

透過Log訊息(1),可以查詢到攻擊者的藍芽位址。

事實上,以現在的安全機制,是不可能輕易就讓你發送短訊到對方手機的。

因為當手機利用藍芽相連接時,會出現個視窗來確認連接請求,確保不會連線到惡意裝置。

當然有防禦之法,一定也有破解之法,不過在說明破解之法前,先來給大家上個歷史課啦!

2010年是無線藍芽的分水嶺,在2010以前統稱為傳統藍芽,2010以後(藍芽4.0的產生)才出現了低功耗藍芽。

其中出現最大變革的是,針對傳統藍芽的各種攻擊方式幾乎在2010年後就漸漸消身匿跡了,小編至今也還未見識過幾種古老攻擊手法,如劇中所出現的即是有名的Bluejacking(藍芽劫持),能任意發送名片(短訊)至對方手機。

延伸閱讀:
[1] 「藍劫」(Bluejacking)藍芽手機 可整人於無形
[2] How to Hack Bluetooth, Part 1

 

至於這樣的攻擊方式還會不會重現,首先行動電話技術的進步就是一項阻饒了,如果能夠找到如同劇中的那種老舊手機,那自然是沒問題的xD

最近於藍芽安全中也發生一件重大事件,Armis Labs 號稱發現了一個叫BlueBorne的攻擊模式,當目標手機藍芽是開啟的狀態,就能遠端遙控或造成目標服務中斷。

(圖/Blueborne – Android Take Over Demo)

受影響的還不僅限於Android手機,電腦系統的Windows和Linux也遭受到同樣的威脅,原因在於BlueBorne其實是許多藍芽堆疊(2)漏洞的集合。

延伸閱讀:
[1] BlueBorne Information from the Research Team – Armis Labs
[2] 【漏洞分析】BlueBorne 蓝牙漏洞深入分析与PoC

 

(圖/電影 功夫)

這個漏洞是透過緩衝區溢出(Buffer Overflow)來達成攻擊,我用簡單的例子來跟大家介紹。

緩衝區溢出(Buffer Overflow)其實是一種程式設計師撰寫程式時的疏忽,我想大家一定沒遇過廁所馬桶內的東西滿到流出來吧。

如果這件事情真的發生了,那除了有可能是水電工裝修的技術問題外,就是工廠製作過程中發生了狀況,但這些都是不允許發生的。

緩衝區溢出(Buffer Overflow)就是如此,當緩衝區超過原本預設的長度或大小的資料時,這時候就會溢出到其他記憶體空間。

以下例子是一隻可以將輸入的資料做一些回應的小程式。

因為在撰寫程式碼時,配給輸入的值僅有27個字母的記憶體空間,所以如果輸入超過這個數量,就會導致記憶體空間被破壞,程式就會不預期的停止服務。

 

2. DOS家族中的三兄弟

分散式阻斷服務攻擊(DDOS Attack)

家族中的老大,透過控制兩台以上的電腦或被攻陷的電腦(殭屍電腦),對目標發出大量洪水般的封包,讓目標設備的資源和網路被耗盡,服務就會停止運作。

不過影片中它的用途就有點好笑了,竟然是被拿來刷網頁瀏覽人數的。是蠻有創意的啦xD。

小編非常幸運地看到最新剛發佈的一篇新聞,如果真的實現的話,那對資訊界來說真的是一大福音。

延伸閱讀:
[1] 終結 DDoS 駭客!Cloudflare 執行長霸氣宣布:「現在開始 DDoS 攻擊將成歷史」

 

阻斷服務攻擊(DOS Attack)

家族中的老二,目前幾乎大家都比較不怕它了,不過還是不能小看它,在一些比較小型的系統上,受限於設備和成本,依舊無法輕易排除它的攻擊。

Ping屬於用來測試網路連線是否正常的工具,但是到了有心人手裡,就變成阻斷服務攻擊的利器了。

延伸閱讀:
[1] PING 指令詳解

重要提醒:
一個小小的指令看起來沒什麼,但千萬別以身試法。資安技術和工具的研究,是為了讓這個領域持續進步的,切勿拿來做不正當的事情。

 

拒絕睡眠攻擊(DOSL Attack)

它是家族中的小弟,是家族中最隱密的,這個名詞應該比較少人聽過吧,也有人也稱它是電池耗盡攻擊(Battery Exhaustion Attack),它跟二哥一樣只對小型系統造成比較大的威脅,但它的目標更多的是放在IoT的小型省電裝置上。

劇中透過將平板電腦的電池接在汽車發動機上來快速耗電,以阻止平板引爆炸彈。

實際上,拒絕睡眠攻擊跟影片中的目標是一致的,但手法卻是大不相同,千萬別搞錯了。

拒絕睡眠攻擊通常是透過重複發送各種情求來消耗目標電池資源,好讓目標設備的電池資源快速被耗盡,甚至在攻擊完成之後,可以搭配其他手法來加以利用。

不過我在想,可以不要搞的那麼驚險嗎?!把炸彈丟河裡,或把平板強制關機不就好。

(圖/無法拔電池之手機與平板死當時如何強制關機?-電腦王阿達)

 

3. 歹戲拖棚的NFC

最後於結局中,曾經是團隊成員但因為背叛國家被抓進牢裡的Tobin,使出了一些手法意圖越獄,透過使用NFC設備來竊取Nelson電腦裡頭的惡意程式。

很奇怪的是,他在監獄內如何弄來NFC設備,而且他的攻擊目標是筆電,似乎筆電擁有NFC不太常見吧!

但NFC的攻擊確實曾經發生過,差別在於攻擊目標變成了手機。

延伸閱讀:
[1] Don’t Stand So Close to Me, An Analysis of the NFC Attack Surface | Black Hat 2012 USA
[2] NFC Phone Hacking and Other Mobile Attacks
[3] Exploring the NFC Attack Surface.pdf

 

結論

最後,關於BlueBorne造成的影響,已經有許多業者釋出更新了,所以也不用太擔心,擁有資安意識其中一項要素就是定期系統更新,確保系統安全性,以及發布的漏洞都已經被彌補。

攻擊手法的產生、漏洞的挖掘是必然的,就像是一場和攻擊者的角力,確保攻擊者手邊沒有尚未公布的Zero-Day漏洞 (請見上一期看電影學資安:燃燒吧!普林特 – CSI Cyber S01E04),也確保系統變得比之前更加強壯及安全。

 

名詞解釋

(1) Log訊息

中文名稱也可以叫日誌紀錄,當系統遇到任何狀況時,都會將這些警告訊息存放於系統中,好讓維護者可以方便排除錯誤,甚至警方在偵查時也需要這些紀錄來追蹤一些惡意的網路行為。

(2) 藍芽堆疊(Bluetooth Stack)

藍芽分為Controller和Host端,Controller是指筆電內建的藍芽晶片,或市面上在賣的USB藍芽傳輸器,而Host則是指主機系統內的藍芽堆疊,兩者是獨立運作且透過某種通道來做資料的傳輸。

藍芽堆疊在Linux系統中,最大眾的就是BlueZ,而且程式碼是開源的,Android手機在早年也是使用BlueZ,不過後來經過改良變成BlueDroid,所以其實只要BlueZ受到影響,基本上許多系統都遭受影響。

延伸閱讀:
[1] Bluetooth stack – Wikipedia

 

BlueZ曾經被挖掘到的漏洞也不是只有一兩個,但除了這次外,始終難以看到關於BlueZ漏洞利用的技術文章或代碼,其中的原因值得深思。

 


我們是ISDA(台灣資訊安全聯合發展協會)。

為了要讓更多人了解資訊安全,除了基礎資訊安全教育訓練以外,我們將針對影集裡面會提到的技術作一系列的資訊安全解說。

歡迎認同我們的朋友給我們一點鼓勵,到我們的FB粉絲頁按個讚加分享。
https://www.facebook.com/ISDA.tw/

有任何活動相關訊息,我們也會第一時間張貼在ISDA粉絲團喔!