隨著鐵人賽進入尾聲,該是時間來講講一開始想要講的「實體層攻擊」了。
不過按照大家的慣例,最後一天,先寫自我介紹或感謝大家之類的廢文。
從一開始參加之前,並沒有想過會參加這種比賽,寫文章,還寫了三十天。
反正本來就邊緣人,一開始覺得寫了這麼多文章,也不會有人會看/會回/會給建議。
結果還真的有人會看/會回/會給建議。
數年前,剛畢業,並不曉得要做什麼事情。只知道對電腦資訊這方面有興趣,然後因為常常玩樂高,所以立體概念很強。
由於我很早就不靠家裡資助,所以需要一份工作,先去飲料店做店員,做了一年。
一年之後,覺得對生活現況不滿,於是去了一間傳產公司,做冷鍛成形,從機台調整、沖模具修改,都摸過一遍。
公司是一人一台機台,只要機台運作順暢,就會比較有空。所以,漸漸地,有在接觸「軟體」這塊。
在機台旁邊用手機看 code,然後很悲催的用手機寫 code,寫一寫,覺得蠻有興趣的,對於於是我上 ptt 找,發現台南地區有一間軟體公司在徵實習生。雖然隔了超久,不過有寫信有機會,反正寄信也不會少一塊肉。
數週後,對方回我了,他說他們有一間新創公司要起跑,RD 部門設在台南。於是我去了,過一陣子後,金主決定撤資,所以只好找工作。
中間很悲催的投了三四個月的履歷,都沒人回,除了一間自動倉儲設備的配線工作。快沒錢的狀況下,不管什麼工作都只能接。該工作是在客戶的廠 on-site,做了半年,把客戶的機子全部裝完,但裝完之後又失業了。
某一天,我新創公司的同事和我說,台南有個「好想工作室」在免費招人訓練 Web 工程師。
因為訓練內容看起來是偏前端的,雖然原本不太喜歡做前端,覺得前端頂多就是拉拉介面,刻板。但我意識到:因為後端工作難找(尤其是無經驗的狀況下),但既然有機會可以翻身,那我就必須把握住這個機會。
當時也沒什麼可以失去的,所以我貸款買了一台 Macbook Pro 15",然後設下了門檻:
原本我自己並不覺得會成功,不過,後來我通過了這些門檻,而且也覺得這抉擇是正確的。
原本一開始只是希望有辦法維生,但後來發現:
所以,後來開始改變想法,原本只是想要以這個專長維生,轉變成:
後來,我開始有機會重新接觸到後端這塊,所以又可以回到一開始進入軟體行業時熟悉的領域,也由於新創公司同事(另一個金主?)的關係,有機會接觸到「安全」這塊,平時也會花不少時間在研究這些資訊。
約莫一個月前,工作室的夥伴 Don 說,有一個「鐵人賽」,目標是連續發 30 天文章。原本覺得周遭沒啥人可以一起研究這塊,寫了應該也沒人看,所以一直沒有太注意這個活動。後來,大家說要團報,我心裡就想著 fuck it,我寫了就有人看,點閱數是三小,就算沒人看也沒差,管他去死 於是我就一路寫,寫到今天,終於要完賽了。
除了要感謝 Don 和當初願意接納我的工作室頭頭 Howard 以外,還要感謝願意和我一起參賽的大家,也感謝大家願意被我的「催文機」bot 每天吵啊吵的。
由於這次我們是團報,參賽人數有 20 人,人多不好追,一失敗的話,團體給予的壓力也不小。
鐵人賽的通知也不會寫說誰沒發文(只會說還有人沒發文),加上我自己記性差,一定會忘記寫文章(或是貼文章),所以決定做一隻 slack 機器人,吵死大家。
於是,我就把 vim 開起來,用 python 隨便尬了一支爬文機器人,然後弄上 aws lambda。
每天八點開始,我們的隊友都會被這 bot 吵⋯⋯而且我還有實裝 slack tag 的功能。沒發文的人,會收到通知。
這篇文章要講到的東西,雖然還沒有研究完成,不過曾經在「若渴計畫」發表過。
這議題在去年十月左右有研究,參考當初講的 投影片
最近若渴也會有一次聚會,請見 傳送門。
實體層攻擊有很多種,以網路環境來說的話,可能是:
或是
第一種是真的接線去做竊聽,可以參考 Throwing Star。
第二種則是「TEMPEST」。
TEMPEST 是美國人提出的一個標準,是指以電磁信號、聲響或震動等等方式來傳輸資訊。所以如果他們說「這建築物有過 TEMPEST 認證」,大概就是「這建築物可以擋無線電信號,然後抗震動」的意思。
根據 Michael Faraday 在 19 世紀說的:
任何封閉電路中感應電動勢的大小,等於穿過這一電路磁通量的變化率。
國中理化有教,電生磁,磁生電。所以,以色列的 Negev 大學,有一群教授一直研究各種 TEMPEST 攻擊的途徑,例如這次研究就是看到他們發的 這篇 paper。
根據這篇 paper 所述,由於 USB 協定的關係,這渠道可以形成某種模式的無線電信號,然後做資料傳輸。
在研究之間,有遇到許多挫折。例如說,paper 根本沒有提到說,裝置要多大台,而且 paper 裡面來說,他們隨便拿一顆隨身碟測試。
然後我看了他們釋出的 demo 影片,覺得他們的 paper 根本是講幹話,我測試時的可用距離只有 5cm 不到,他影片中隨便就超過 20 公尺,這該不會是造假?
我還寫信去問作者說,他到底是怎麼弄出來的,不過作者沒回。
因為測到太挫折了,所以我就放置 play 了一個月,不想動這個議題。直到某天,我和 Howard 先生借了一顆行動硬碟,測了一次,發現:
這距離就變超長的(從滑鼠附近到白桌),可是因為房間太小,沒辦法走太遠。所以得知,這攻擊大概也跟元件大小有關。
因為我是直接把 paper 內的 psuedo code 拿出來用,然後測不出來,覺得挫折。於是跑回去看更多資訊。這 paper 是依據這原理來做攻擊的。
依據 USB 的 NRZI 協定:
我們可以透過「故意製造某種特定模式內容」的檔案,來讓電位依據某種形式做變動。 藉由這個方式,我們可以在某種頻段上製造震動,之後就可以用無線電收到這個震動。
並不是。
寫了這麼多篇和安全有關的議題,但有可能還是很難引起大家對於「安全」的意識。
雖然這組研究人員都一直寫一堆奇怪的取資料的方式,一般人除非得罪政府機關等等,或是身上帶有商業機密,的確是不一定會被這些手段打,但是並不代表說,不需要注重安全。
前陣子在 PTT 上面,看到有一位研究生,騎 ubike 騎到筆電忘記拿走,被阿北撿走。
雖然最後有找回來,但是硬碟加密沒開,你怎麼知道阿北沒有幹走你的資料?
陳冠希當初就是因為沒開硬碟加密,所以才被翻出有一堆照片的呀。
十年以來,沒有人會開你家的門,並不代表說,以後也沒人會試著開你家的門。
那極端一點。換指紋鎖,然後加生物辨識,養武裝警衛再養一隻藏獒?
這樣屋主進門搞不好都會怕被咬死先。
以前也沒有人會想到,你在星巴克上網,開 web,電腦也會被人家拿來挖礦。
如果當初沒人喚起大家的安全意識,讓現在 HTTPS 普及,那豈不是到處都會發生這種事情?
不要問事情會不會發生,而是問「能不能」和「要做到什麼程度」。