📜 [專欄新文章] Private key security and protection / 私錀的安全與保護 — Tim Hsu
✍️ 洪偉捷
📥 歡迎投稿: https://medium.com/taipei-ethereum-meetup #徵技術分享文 #使用心得 #教學文 #medium
Private key security and protection / 私錀的安全與保護 — Tim Hsu
Crosslink Taipei 在10/19、10/20 台北矽谷會議中心舉辦的 區塊鏈conf。 這是Crosslink Taipei 下午的演講,主講者是擔任CYBAVO CTO的徐千洋(Tim Hsu)先生,同時也是幣托、OTCBTC的資安顧問。
2018年一月被發現的硬體漏洞meldown跟spectr,我們的硬體為了要讓執行速度更快,processor會預先執行某些指令,也因此駭客可以透過這種方式,間接檢測出我們記憶體的內容,把敏感資訊都dump出來。雖然後這之後各CPU廠商都有推出針對這個bug的軟體update,但是在這之後硬體安全的問題逐漸浮出來面,也使世人意識到硬體資安的問題。而今天我們要談的部分不僅有軟體安全,也有硬體安全跟使用者資安觀念的問題。
淺談交易所與錢包
在從交易所提幣的時候,首先Server會先將這筆交易紀錄到交易所自己的資料庫內,之後再取得交易所金庫的private key去金庫取錢,再打到使用者的錢包內。在這個過程中,如果駭客可以竄改Server或資料庫的交易金額,原本要打給使用者1 BTC,變成10BTC,或是直接取得金庫的private key,對交易所都是一大噩夢
圖(一) 從交易所提幣的流程
攻擊手法
1. 交易所的網路架構
案例一: 交易所因為怕被偷交易資料與客戶資料,所以都把這些資訊先加密後再存到資料庫,但是這些資料仍然會被偷(交易所遭到電話詐騙),往後將這些資料加了三層密,仍無法防範資料被偷的情形,原因出在圖(二)的交易所網路架構。
圖(二) 交易所的網路架構(OA與資料庫間沒防火牆)
因為OA 與資料庫之間的網路沒有防火牆保護,所以駭客不用正面攻擊有防火牆的部分,而是攻擊OA的部分,再藉由OA連線到資料庫。一封藏有病毒的email求職信寄到HR的電腦,都有可能造成交易所資料外流。
解決方式: 就是在OA與資料庫間架個防火牆,如圖(三)所示。例如: 只有Engineer、RD 可以連線到資料庫,QA則只能連到測試環境,HR、CEO不需要、也不能連線到資料庫,依職責對連線範圍做縮限,則駭客可以攻擊的目標變少,我們也比較好做應對。講者重要的一句話: 「千萬不要輕忽駭客攻擊OA的能力」
圖(三) 好的交易所的網路架構
2. DNS Attack
透過汙染AWS 的DNS Server 將交易所網頁導向駭客的網頁,來騙取使用者個資。雖然在導向駭客頁面時,很容易發現駭客的網頁沒有使用安全憑證,或是安全憑證不是SSL核發,但使用者仍可能因資安觀念低落,而堅持連線到不安全的網站。
3. Online Paper Wallet
很多人因為覺得私鑰放電腦覺得不安全,又沒錢買硬體錢包,所以透過線上私鑰轉換器將私鑰轉換成QR code,然而再轉換時勢必要輸入自己的私鑰,容易使私鑰遭竊。
圖(四) 私鑰轉換詐騙網頁
4. 使用者對私鑰保護的意識很低
例如: 不了解私鑰的註記詞或其他相關資訊保密的重要性,而無意間通過社交軟體洩漏了這些重要資訊(硬體錢包開箱文 XD)。
5. 硬體錢包的漏洞
TREZOR 錢包是業內公認的研發最早最警慎最安全的加密儲存器,但是今年仍被發現硬體相關的漏洞。只要駭客輸入特定24碼pin碼,就可以通過硬體的側通道分析,輕易提取出未加密的私鑰,而且這個必須重新設計硬體架構才能夠防止這樣的攻擊。所以即便硬體錢包掉了,仍有被攻擊的疑慮,最好的解決辦法就是硬體錢包外再設定一個long Password,這樣就可以避免掉硬體錢包時帳戶虛擬貨幣遭竊
圖(五) 硬體錢包漏洞
題外話 — Iphone Jailbreak問題
今年在twitter,有人公布了最新攻擊iphone的方式,而問題出在手機晶片。Iphone開機時第一個執行的程序是 bootrom,而bootrom的程式碼則是位於記憶體唯獨區域,所以無法竄改。駭客可以利用bootrom上的bug來攻擊手機,而這些有問題的晶片出現在Iphone 6 ~ Iphone X。其實這攻擊方式充滿限制,不僅要取得欲攻擊的手機,而且這種攻擊方式每次重開機就會刷新。不過這也衍伸出新的問題,以後的iOS作業系統都更容易遭到入侵,因為我們可以在舊的手機上裝新的iOS系統,然後透過bootrom的漏洞來了解新的iOS系統的運作方式,因此這個問題應該被更加重視。
圖(六) axi0mX針對此bug的文章
保護方式
透過secure sharing將私鑰拆成User、Company、Vendor,分散私鑰存放風險
圖(七) 拆散私鑰,分散存放的風險
保護思維
未來除了在演算法的鑽研,也應該多多關注整個 區塊鏈產業的資安問題,從身分認證、系統安全、IT架構,都應該要從安全的角度來設計。
圖(八) 講者參考的設計架構
以上方的圖片為例,很多軟體架構在設計時都忽略了作業系統這一塊,而講者分享了他在設計時針對Server或資料庫的 OS做的處理,如下圖
圖(九) OS層級的安全防護
我們的app、網站、服務都跑在Sandbox層上,Sandbox可以限制由內到外的網路封包收送,同時在Sandbox之上還有Host-IDS(Host-based Intruction Detection System)會記錄及過濾程式在Sandbox跑的所有指令,而且有任何非法存取記憶體或網路封包的行為都會都過Host-IDS被記錄到Threat Intelligence,並且通知使用者。 我覺得這樣的好處是,使用者不僅可以在第一時間知道自己的帳號遭到駭客攻擊,也因為一切的動作都被Host-IDS過濾以及被記錄到Threat Intelligence,工程師也可以更快找到安全漏洞。
結語
近年來因網路的應用,資安越來越重要,除了軟體方面外,硬體方面也要兼顧安全,而使用者的觀念宣導更重要,否則不管我們的系統做的再怎麼嚴密,只要使用者意外連到駭客網站或是洩漏自己的私鑰,一切都是白談。演講中有一句話我覺得很值得借鏡,就是「我們一定要假設我們的系統會被駭客破解,而我們要做的就是盡可能減少被入侵後的損失」,上面提到的Host-IDS就是這樣的觀念,我們無法防止駭客進到Sandbox,但是可以記錄駭客的進到Sandbox後所有行為,這樣的架構才能在第一時間修正系統漏洞。
參考資料
Trezor錢包漏洞: https://bcsec.org/index/detail/id/585/tag/2
Iphone 漏洞: https://www.pcmarket.com.hk/2019/09/30/iphone-bootrom%E8%B6%8A%E7%8D%84%E5%B7%A5%E5%85%B7%E5%85%AC%E9%96%8B-4s%E8%87%B3x%E5%85%A8%E9%81%AD%E6%AE%83%E5%B9%B8%E5%8D%B1%E9%9A%AA%E6%80%A7%E4%BD%8E/
spectre&meldown介紹: https://www.youtube.com/watch?v=bs0xswK0eZk
Private key security and protection / 私錀的安全與保護 — Tim Hsu was originally published in Taipei Ethereum Meetup on Medium, where people are continuing the conversation by highlighting and responding to this story.
👏 歡迎轉載分享鼓掌
Search